Ethereum hoạt động như thế nào?

When Lambor 06/02/2018

Sau khi đã đọc qua các bài viết trước, chắc hẳn các bạn đã nắm được Ethereum là gì. Tiếp theo, chúng ta sẽ đi sâu vào tìm hiểu các chức năng nền tảng của nó.

Khi sử dụng Ethereum, ứng dụng không hề yêu cầu một bên trung gian nào lưu trữ và kiểm soát dữ liệu của nó. Để đạt được điều này, Ethereum vay mượn rất nhiều từ Blockchain Bitcoin.

Mục tiêu của ngôn ngữ lập trình ‘Turing-complete’ của Ethereum là cho phép các nhà phát triển viết nhiều chương trình hơn. Trong đó, các giao dịch Blockchain có thể điều chỉnh và tự động hóa các kết quả cụ thể. Bitcoin không hề có khả năng này. Đây là lợi thế của Ethereum và cũng là điểm yếu của nó – cuộc tấn công quỹ DAO là một minh chứng.

( *Turing-complete: Một đặc trưng chính của Ethereum, cho phép tính toán mọi thứ tư thời gian cho đến mức tiêu thụ điện chỉ vừa đủ và tiết kiệm thời gian.)

Blockchain Ethereum

Cấu trúc của Blockchain Ethereum khá giống với Bitcoin, nó là một bản ghi chia sẻ toàn bộ lịch sử giao dịch. Mỗi node trên network đều lưu trữ một bản sao lịch sử giao dịch. Sự khác biệt lớn nhất là các node của nó lưu trữ trạng thái gần đây nhất của mỗi smart contract, bên cạnh toàn bộ các giao dịch Ether. Điều này phức tạp hơn nhiều so với mô tả, nhưng bài viết dưới đây sẽ giúp bạn hiểu rõ hơn.

blockchain-ethereum-tiendientu.org

Đối với mỗi ứng dụng Etherum, network cần theo dõi ‘trạng thái’ hoặc thông tin hiện tại của chúng, bao gồm số dư của mỗi user, tất cả mã code smart contract và nơi lưu trữ. Bitcoin sử dụng cơ sở dữ liệu UTXXO để theo dõi user sở hữu bao nhiêu BTC.

( *UTXO (Unspent Transaction Output – đầu ra giao dịch chưa dùng đến, có thể được sử dụng như đầu vào của giao dịch mới.))

Khác với Bitcoin, Ethereum lại sử dụng các tài khoản.Giống như tiền trong tài khoản ngân hàng, các token xuất hiện trong ví điện tử và có thể được chuyển vào tài khoản khác

Ethereum Virtual Machine là gì?

Cũng như bất kì Blockchain nào, Ethereum cũng cần hàng ngàn người chạy phần mềm trên máy tính để tiếp sức cho network. Mỗi node trong network chạy một thứ gọi là Ethereum Virtual Machine (EVM). Hãy nghĩ về EVM như một hệ điều hành có thể hiểu và chạy các phần mềm được viết bằng ngôn ngữ lập trình riêng của Ethereum. Phần mềm hay ứng dụng chạy trên EVM được gọi là smart contract.

Hãy nhớ rằng mỗi node trong network đều giữ lại bản sao của giao dịch và lịch sử smart contract. Mỗi khi user thực hiện một số hành động, tất cả các node trên mạng đều phải cùng đồng thuận thay đổi này đã diễn ra.
Mục tiêu ở đây là network miner và các node phải có trách nhiệm truyền tải sự chuyển đổi từ trạng thái này sang trạng thái khác, không như PayPal hoặc giới ngân hàng. EVM phụ trách thực thi các hợp đồng theo bất kỳ quy tắc nào mà nhà phát triển ban đầu lập trình ra.

blockchain-ethereum-tiendientu.org

Việc tính toán thực tế trên EVM được thực hiện thông qua một ngôn ngữ bytecode dựa trên stack (các giá trị này và các giá trị zero mà máy có thể đọc). Nhưng các nhà phát triển vẫn có thể viết các smart contract bằng nhiều ngôn ngữ cấp cao như Solidity và Serpent. Hai ngôn ngữ lập trình này giúp người ta đọc và viết dễ dàng hơn.

Như đã giải thích trong bài Hoạt động mining Ethereum diễn ra như thế nào?, miner là những người phụ trách ngăn chặn những hành vi phi pháp trên network. Chẳng hạn như đảm bảo rằng không có ai đang thực hiện double-spending và từ chối trả tiền cho các smart contract. Có vài nghìn node Ethereum ở đó và mỗi node đang biên dịch và thực hiện cùng một mã code.

Đọc đến đây chắc bạn sẽ nghĩ chúng có vẻ đắt hơn nhiều so với một sự tính toán bình thường? Vâng, đúng vậy. Đó là lý do tại sao network chỉ có thể được dùng cho các trường hợp sử dụng cụ thể.

Nhà phát triển chính thức của Ethereum cũng thừa nhận sự không hiệu quả này:

“Trường hợp sử dụng hiệu quả nhất là bạn sẽ không thể làm bất cứ điều gì trên EVM mà không thể làm trên smart phone từ năm 1999.”

Đánh giá