[Series Blockchain Foundation - 02] ETHEREUM VÀ PROOF OF STAKE
Tác giả: Quang Nguyen (quatino#3391)
1. Sự ra đời của Ethereum
1.1. Giới thiệu Ethereum
Ethereum là một trong những blockchain nổi tiếng nhất hiện nay, được phát triển bởi Vitalik Buterin. Ý tưởng ban đầu của Ethereum được Vitalik trình bày vào năm 2013, tại một hội nghị về Bitcoin. Sau đó, đội ngũ Ethereum Foundation thành lập và Ethereum chính thức ra mắt vào năm 2015.
Với sự ra đời của Ethereum, công nghệ blockchain đã được đưa tới một tầm cao mới. Ethereum được coi là một sự tiến bộ đáng kể so với Bitcoin về mặt công nghệ, đặc biệt là khả năng xử lý các hợp đồng thông minh. Ethereum cũng đã phát triển một hệ sinh thái đa dạng các ứng dụng phụ trợ, cho phép người dùng tạo ra các dịch vụ và sản phẩm mới trên nền tảng blockchain.
1.2. Sự cải tiến của Ethereum so với Bitcoin
a. Smart contract (hợp đồng thông minh)
Ethereum được coi là một trong những đột phá quan trọng nhất trong lĩnh vực blockchain bởi khả năng hỗ trợ smart contract. Smart contract là một khái niệm hoàn toàn mới trong lĩnh vực công nghệ và tài chính, đó là một chương trình đặc biệt có thể tự động hóa việc thực hiện các thỏa thuận hợp đồng giữa các bên, mà không cần sự can thiệp của bên thứ ba.
Mã nguồn của smart contract được lưu trên blockchain Ethereum, đảm bảo tính toàn vẹn và an ninh của hợp đồng. Việc tạo các thỏa thuận hợp đồng trực tuyến thông qua smart contract trên Ethereum rất thuận tiện và tiết kiệm chi phí.
Như vậy, khác với blockchain ledger của Bitcoin chỉ lưu trữ lịch sử giao dịch, Ethereum blockchain ledger còn lưu trữ mã nguồn của các hợp đồng thông minh.
b. Máy ảo EVM
Để thực hiện việc thực thi smart contract, các nhà sáng lập Ethereum thiết kế một máy ảo gọi là Ethereum Virtual Machine (EVM). Máy ảo này được cài đặt trên các node của Ethereum và có khả năng thực thi các mã nguồn smart contract được lưu trong blockchain ledger của Ethereum.
Tóm lại, Ethereum khác biệt với Bitcoin blockchain bởi khả năng hỗ trợ smart contract và có EVM để thực thi chúng. Điều này tạo ra tiềm năng lớn cho Ethereum phát triển nhiều ứng dụng và dịch vụ mới trên nền tảng blockchain.
2. Dapp và sự ra đời của DeFi
2.1. Khái niệm DApp
DApp (decentralized application) là các ứng dụng phi tập trung được xây dựng trên nền tảng blockchain. Đây là một mô hình ứng dụng hoàn toàn khác biệt so với mô hình client-server truyền thống. Mô hình này giúp cho các ứng dụng trở nên an toàn và bảo mật hơn, vì dữ liệu và logic xử lý được lưu trữ trên mạng blockchain giúp chúng không thể bị thay đổi hay xâm nhập.
Các DApp sử dụng smart contract để xây dựng các logic, xử lý dữ liệu và thực thi quá trình tương tác giữa các bên. Smart contract giúp cho việc thực hiện các giao dịch và thỏa thuận trực tuyến trở nên đơn giản và tiện lợi hơn.
Bên cạnh đó, các DApp cũng có giao diện (front-end) để người dùng có thể tương tác với ứng dụng dễ dàng hơn. Điều này giúp cho người dùng có thể thực hiện các giao dịch trực tiếp trên ứng dụng mà không cần thông qua các bên trung gian.
2.2. Sự ra đời của DeFi
Sự ra đời của Ethereum smart contract và ứng dụng phi tập trung đã thúc đẩy sự ra đời và phát triển của DeFi (Decentralized Finance) - tài chính phi tập trung. Điểm đặc biệt của DeFi là sự thay thế các tổ chức tài chính truyền thống bằng blockchain, giúp cho các dịch vụ tài chính trở nên an toàn, minh bạch và tiện lợi hơn.
Nếu Bitcoin blockchain giúp người dùng chuyển và nhận tiền xuyên biên giới không thông qua các trung gian tài chính (Trusted Arbiter) thì DeFi còn làm được nhiều hơn thế. Với sự hỗ trợ của smart contract, người dùng DeFi có thể sử dụng và thực hiện các dịch vụ tài chính phức tạp hoàn toàn trực tuyến, không thông qua các tổ chức trung gian.
Một số ví dụ về DeFi bao gồm:
DEX (Decentralized Exchange): sàn giao dịch phi tập trung, cho phép người dùng trao đổi tiền điện tử với nhau mà không cần thông qua sàn giao dịch truyền thống.
Lending: cho phép người dùng cho vay hoặc vay tiền mà không cần thông qua các tổ chức tài chính truyền thống.
Synthetic asset: tài sản được tạo ra thông qua smart contract, giúp người dùng đầu tư vào các tài sản khác nhau mà không cần sở hữu thực tế.
Asset management: một loại dApp được phát triển để giúp quản lý tài sản của người dùng một cách hiệu quả và an toàn. Nhờ vào smart contract, các dịch vụ asset management có khả năng tự động thực hiện các giao dịch mua bán, tái cân bằng danh mục và định giá tài sản.
DeFi đang trở thành một ngành công nghiệp đầy tiềm năng, với mức tăng trưởng nhanh chóng trong những năm qua. Các dịch vụ DeFi không chỉ mang lại sự tiện lợi và độc lập cho người dùng, mà còn đem lại nhiều cơ hội đầu tư hấp dẫn. Tuy nhiên, việc sử dụng các dịch vụ DeFi cũng có các rủi ro riêng, bao gồm các vấn đề về độ bảo mật, giá thị trường và rủi ro về lừa đảo. Do đó, cần thận trọng và nắm rõ các rủi ro trước khi quyết định đầu tư vào DeFi.
3. Kiến trúc Ethereum
3.1. Phí giao dịch trên Ethereum
Khi thực hiện giao dịch trên blockchain Ethereum, người dùng cần trả phí để đảm bảo rằng giao dịch của họ được xử lý và ghi vào blockchain. Phí giao dịch này là phần thưởng cho miner, những người đóng vai trò xác nhận và xử lý các giao dịch trên mạng.
Trong Ethereum, phí giao dịch được tính thông qua Gas, đơn vị đo lường cho công việc tính toán và xử lý trên blockchain. Mỗi hành động trong một giao dịch (ví dụ: phép tính số học, tạo tài khoản, gọi hàm trong smart contract) sẽ tiêu tốn một lượng gas nhất định.
Gas Limit là giới hạn tối đa của Gas mà một giao dịch được phép sử dụng khi tương tác với một smart contract nào đó. Thông số này được mỗi smart contract quy định. Nếu lượng gas thực tế được sử dụng trong giao dịch vượt quá Gas Limit, giao dịch sẽ bị hủy và không thực hiện trên blockchain.
Gas Usage là lượng Gas thực tế được sử dụng trong một giao dịch. Điều này phụ thuộc vào các hành động và toán tử được sử dụng trong giao dịch. Gas Usage không thể vượt quá Gas Limit để giao dịch được xác nhận và ghi vào blockchain.
Gas Price là giá tiền của mỗi đơn vị gas, được đo bằng Gwei (giga-wei). Một Gwei tương đương với một tỷ wei và có giá trị tương ứng với 10-9 ETH. Giá Gas Price được người dùng đưa ra để xác định mức phí mà họ sẽ trả cho miner để thực hiện giao dịch của họ. Ở thời điểm mạng lưới bị quá tải, người dùng cần trả một mức Gas Price rất cao thì giao dịch mới có thể thực hiện được.
Max Fee là tổng số tiền phí tối đa mà người dùng sẵn sàng trả cho một giao dịch. Nó được tính bằng cách nhân gas limit với gas price. Tuy nhiên, phí thực tế mà người dùng phải trả là Actual Fee, được tính bằng cách nhân Gas Usage với Gas Price.
3.2. Kiến trúc Account-based của Ethereum
Kiến trúc Account-based là phương thức lưu trữ lịch sử giao dịch trên mạng lưới Ethereum. Điểm đặc trưng của kiến trúc này là mỗi tài khoản Ethereum được đại diện bởi một địa chỉ (address) duy nhất trong hệ thống. Mỗi địa chỉ này có một số dư tương ứng của đơn vị tiền tệ của Ethereum, gọi là Ether (ETH).
Khi người dùng thực hiện giao dịch trên Ethereum, họ tạo ra và ký một giao dịch, sau đó gửi nó tới mạng lưới để được xác nhận và ghi vào blockchain. Giao dịch chứa thông tin về địa chỉ nguồn, địa chỉ đích, số lượng Ether được chuyển đi, cùng với các thông tin khác liên quan.
Trong kiến trúc Account-based, mỗi giao dịch được thực hiện bằng cách chỉ định địa chỉ nguồn và đích, và hệ thống kiểm tra xem nguồn có đủ số dư để thực hiện giao dịch hay không. Nếu đủ, số dư sẽ được cập nhật tương ứng.
Một ưu điểm của kiến trúc Account-based là tính đơn giản và dễ sử dụng. Người dùng có thể thực hiện giao dịch trực tiếp từ tài khoản của họ mà không cần phải tham chiếu đến các đầu ra chưa được tiêu tốn như trong kiến trúc UTXO của Bitcoin.
Tuy nhiên, kiến trúc Account-based cũng có một số hạn chế. Ví dụ, việc sử dụng mô hình tài khoản có thể tạo ra một hạn chế về quy mô và khả năng mở rộng của mạng lưới. Khi số lượng tài khoản và giao dịch tăng lên, cần có sự xử lý và lưu trữ lớn hơn để duy trì thông tin của từng tài khoản trên blockchain.
3.3. Vấn đề thực thi tuần tự trên EVM
Trong mạng lưới Ethereum, việc thực thi smart contract được thực hiện trên Máy ảo Ethereum (EVM) thông qua cơ chế lập trình tuần tự. Điều này có nghĩa là các lệnh trong smart contract được thực hiện theo thứ tự từng bước một, một lệnh sau lệnh khác. Tuy nhiên, việc lập trình tuần tự này có thể tạo ra một số vấn đề.
Một trong những vấn đề chính là hiệu suất và tốc độ xử lý giao dịch. Khi một smart contract được thực thi trên EVM, các lệnh và giao dịch trong smart contract phải được thực hiện theo thứ tự tuần tự. Điều này có nghĩa là mỗi lệnh phải chờ đợi cho đến khi lệnh trước đó hoàn thành trước khi tiếp tục thực hiện. Việc này có thể làm cho quá trình thực thi smart contract trở nên chậm chạp, đặc biệt khi smart contract có nhiều lệnh phức tạp.
Hơn nữa, việc lập trình tuần tự cũng gây ra hạn chế về khả năng mở rộng của mạng lưới Ethereum. Khi có một lượng lớn giao dịch được gửi đến cùng một thời điểm, EVM phải xử lý chúng một cách tuần tự. Điều này dẫn đến việc tăng thời gian xử lý và làm cho mạng lưới trở nên chậm và tắc nghẽn.
Vấn đề lập trình tuần tự trên EVM cũng ảnh hưởng đến tính bảo mật của mạng lưới. Nếu một lệnh hoặc giao dịch trong smart contract gặp lỗi, quá trình thực thi sẽ dừng lại. Điều này có thể tạo ra lỗ hổng bảo mật và gây nguy cơ cho các ứng dụng và người dùng.
Để giải quyết vấn đề này, các nền tảng blockchain khác như Solana đã áp dụng các phương pháp lập trình đồng thời (concurrent programming) để thực thi smart contract. Điều này cho phép các lệnh và giao dịch trong smart contract được thực hiện đồng thời và tăng cường hiệu suất xử lý của hệ thống. Sự lựa chọn này giúp giảm thời gian xử lý và tăng khả năng mở rộng của mạng lưới.
Tuy nhiên, việc thay đổi kiến trúc lập trình tuần tự trên EVM đòi hỏi sự thay đổi lớn và có thể ảnh hưởng đến khả năng tương thích ngược với các smart contract và ứng dụng hiện có trên mạng lưới Ethereum. Do đó, việc áp dụng các giải pháp như của Solana đòi hỏi sự tính toán và cân nhắc kỹ lưỡng trong cộng đồng phát triển và người dùng của Ethereum.
4. Proof of Stake
4.1. Giới thiệu ETH 2.0
ETH 2.0, hay còn được gọi là Ethereum 2.0, là phiên bản nâng cấp lớn của mạng lưới Ethereum. Nó được phát triển để giải quyết một số hạn chế của phiên bản trước đó (ETH 1.0) và mang đến nhiều cải tiến quan trọng.
Một trong những cải tiến quan trọng nhất của ETH 2.0 là chuyển đổi từ Proof of Work (PoW) sang Proof of Stake (PoS). Điều này giúp giảm thiểu sự tiêu tốn năng lượng và tăng tốc độ xác nhận giao dịch.
ETH 2.0 cũng đưa vào sử dụng một cơ chế mới gọi là sharding. Sharding cho phép mạng lưới Ethereum chia thành nhiều phân đoạn (shard) nhỏ hơn, mỗi shard có thể xử lý các giao dịch độc lập. Điều này giúp tăng khả năng mở rộng và tăng cường hiệu suất của mạng lưới, cho phép xử lý được một lượng lớn giao dịch cùng một lúc.
ETH 2.0 cũng đưa vào sử dụng các smart contract layer 2, như Rollups, để giảm tải cho lớp chính của mạng lưới Ethereum. Các Rollups cho phép thực hiện các giao dịch ngoài chuỗi chính, giúp tăng tốc độ xử lý và giảm phí giao dịch.
Ngoài ra, ETH 2.0 còn mang đến nhiều cải tiến về độ bảo mật, khả năng mở rộng và tăng cường tính khả dụng của mạng lưới Ethereum. Sự chuyển đổi sang ETH 2.0 đang diễn ra theo từng giai đoạn (hiện đã hoàn toàn chuyển qua PoS) và được kỳ vọng sẽ đem lại những cải tiến đáng kể cho cộng đồng Ethereum và người dùng.
4.2. Khái niệm PoS và các ưu điểm so với PoW
Proof of Stake (PoS) là một cơ chế đồng thuận trong hệ thống blockchain, khác với Proof of Work (PoW) mà Bitcoin sử dụng. Thay vì dựa vào việc giải quyết các bài toán tính toán phức tạp như PoW, PoS yêu cầu người tham gia gửi một số lượng tiền mã hóa (ví dụ ETH) vào hệ thống như tiền cọc để được chọn làm validator và thực hiện các giao dịch. Các validator này có quyền xác nhận các giao dịch và tạo block mới trên blockchain.
So với PoW, PoS mang lại nhiều ưu điểm quan trọng. Đầu tiên, nó giảm thiểu sự tiêu tốn năng lượng đáng kể, vì không cần phải thực hiện quá trình tính toán phức tạp như PoW. Điều này không chỉ giúp giảm tác động tiêu cực lên môi trường mà còn giúp mạng lưới Ethereum trở nên hiệu quả hơn.
Thứ hai, PoS cung cấp tính phi tập trung cao hơn. Thay vì chỉ những miner có khả năng tính toán mạnh mới có thể xác thực khối, PoS cho phép bất kỳ người dùng nào có số lượng tiền điện tử cần thiết để stake cũng có thể tham gia vào quá trình này (staking pool thậm chí cho phép người có ít hơn 32 ETH vẫn có thể tham gia stake). Điều này tạo ra sự công bằng và giúp giảm sự tập trung quyền lực.
Ngoài ra, PoS cũng cho phép phát hành ít ETH mới hơn để khuyến khích miner/validator. Cùng với cơ chế đốt phí, điều này góp phần làm tăng giá trị dài hạn của ETH.
4.3. PoS trên Ethereum
Validator trong Ethereum Proof of Stake (PoS)
Để trở thành Validator trong Ethereum PoS, có một số yêu cầu và quy định cụ thể:
Điều kiện phần cứng: Validator cần sử dụng máy tính có hiệu năng đủ mạnh và đảm bảo kết nối internet liên tục để tham gia vào mạng lưới Ethereum. So với các blockchain sử dụng PoS khác thì yêu cầu phần cứng của Ethereum là khá thấp, điều này góp phần làm tăng tính phi tập trung cho mạng lưới.
Số lượng ETH stake: Validator cần đặt cọc một số lượng Ether (ETH) nhất định vào mạng lưới. Hiện tại, yêu cầu để trở thành Validator là stake 32 ETH. Lưu ý rằng, validator sẽ không có thêm lợi ích nếu stake nhiều hơn con số 32. Số lượng ETH đặt cọc này được sử dụng như một bằng chứng về tính trung thực và đảm bảo hoạt động đúng quy tắc của Validators.
Delegate: Ngoài việc trở thành Validator bằng cách stake ETH, người dùng cũng có thể delegate số ETH của mình cho một Validator khác. Điều này cho phép người dùng không có số lượng ETH đủ để trở thành Validator vẫn có thể tham gia vào quá trình PoS.
Epoch và Slot, cách chọn Validator và Proposer
Ethereum PoS chia mạng lưới thành các chu kỳ gọi là epoch. Mỗi epoch có độ dài nhất định và được chia thành các khoảng thời gian nhỏ hơn gọi là slot (1 epoch = 32 slot, 1 slot = 12 giây).
Với mỗi epoch, một ủy ban (committee) sẽ được lựa chọn một cách ngẫu nhiên từ danh sách các node. Tất cả các node hợp lệ (validator) đều có xác suất được chọn vào ủy ban như nhau. Tại mỗi slot, các thành viên của ủy ban này sẽ đảm nhiệm 1 trong 2 vai trò:
Đề xuất khối (propose block): một thành viên của ủy ban sẽ được chọn làm người đề xuất khối (block proposer) cho slot hiện tại. Block proposer sẽ có quyền lựa chọn, thực thi và đóng gói các giao dịch tạo thành block. Sau đó proposer gửi block này đến các node khác trong ủy ban để kiểm tra.
Xác thực khối (validate block): các thành viên còn lại trong ủy ban sẽ đóng vai trò người xác thực cho khối mới được đề xuất. Cụ thể, các node này sẽ tái thực thi các giao dịch và kiểm tra tính hợp lệ của block được đề xuất. Nếu được thông qua, block được đề xuất sẽ trở thành block mới hợp lệ được thêm vào blockchain.
Tính ngẫu nhiên đạt được thông qua một quá trình được gọi là RANDAO (Random Number Generation and Distributed Autonomous Organization). Trước mỗi epoch, các validator trong mạng Ethereum đóng góp các số ngẫu nhiên và những số này được kết hợp để tạo ra một hạt giống ngẫu nhiên (random seed). Sau đó, seed này được sử dụng để xác định các thành viên ủy ban (committee) cho epoch tiếp theo và thành viên cụ thể được chỉ định làm người đề xuất (block proposer) cho từng slot trong epoch đó.
Gasper: cơ chế thưởng phạt và lựa chọn rẽ nhánh trong Ethereum PoS
Gasper là cơ chế để xác định cách các validator trong mạng Ethereum thực hiện việc xác thực giao dịch và nhận phần thưởng cho công việc của họ. Gasper là sự kết hợp giữa Casper the Friendly Finality Gadget (Casper FFG) và thuật toán LMD-GHOST fork choice. Casper FFG sử dụng việc đặt cược (stake) của validator như một cơ chế để đảm bảo tính trung thực và đồng thuận. Trong khi đó, LMD-GHOST tập trung vào việc xác định finality (sự hoàn thành) cho các khối trong mạng.
Chi tiết về Gasper, bạn đọc có thể tham khảo ở trang tài liệu chính thức của Ethereum: https://ethereum.org/en/developers/docs/consensus-mechanisms/pos/gasper/
Trong phạm vi bài viết này, chúng ta sẽ chỉ đề cập đến hai vấn đề quan trọng: cơ chế thưởng phạt và lựa chọn rẽ nhánh (thuật toán LMD-GHOST fork choice).
a. Cơ chế thưởng phạt:
Trong Gasper, các validator được chọn ngẫu nhiên để tham gia vào việc tạo khối trong mỗi Slot. Những validator này cần thực hiện việc xác thực giao dịch và tạo khối trong thời gian được quy định. Nếu validator thực hiện công việc của mình một cách trung thực và chính xác, họ sẽ nhận được phần thưởng. Tuy nhiên, nếu validator vi phạm các quy tắc hoặc không hoạt động trung thực, họ có thể bị trừng phạt và mất một phần hoặc toàn bộ số ETH đã stake của mình. Mức độ nghiêm trọng của hình phạt sẽ phụ thuộc vào tính chất của hành động và trạng thái của mạng lưới. Cụ thể hơn, hình phạt cho việc ngoại tuyến là nhỏ, nhưng hình phạt cho việc đề xuất hoặc chứng thực nhiều block trong cùng một slot là rất lớn. Hình phạt sẽ nghiêm trọng hơn nếu có nhiều validator bị phạt trong cùng một khoảng thời gian. Hình phạt tối đa là toàn bộ tiền stake. Những phần thưởng và hình phạt này được thiết kế để khuyến khích validator trung thực và hạn chế các cuộc tấn công mạng lưới.
b. Lựa chọn rẽ nhánh:
Trong các điều kiện bình thường, quy tắc lựa chọn rẽ nhánh là không cần thiết, bởi chỉ có một block được đề xuất ứng với mỗi slot và các validator trung thực chứng thực điều đó. Chỉ trong trường hợp mạng không đồng bộ hoặc khi một block proposer không trung thực thì thuật toán lựa chọn rẽ nhánh mới được sử dụng. Khi những trường hợp đó phát sinh, thuật toán lựa chọn rẽ nhánh LMD-GHOST là một biện pháp bảo vệ quan trọng để đảm bảo chuỗi chính xác.
LMD-GHOST là viết tắt của "Latest Message-Driven Greedy Heaviest-Observed Sub-Tree" (duyệt tham lam dựa trên thông điệp mới nhất để chọn cây con nặng nhất quan sát được).
Thuật toán LMD-GHOST hoạt động dựa trên một cây thời gian (time-ordered tree) gọi là cây trạng thái (state tree) để lưu trữ thông tin về các khối và giao dịch. Mỗi validator sẽ chọn một khối cha (parent block) từ cây trạng thái và xác định khối tiếp theo dựa trên các tin nhắn mới nhất (latest messages) nhận được từ các validator khác. Các tin nhắn này cung cấp thông tin về việc xác thực và đề xuất khối.
LMD-GHOST sẽ duyệt tham lam và chọn các khối có trọng lượng (weight) lớn nhất để xây dựng một nhánh con (sub-tree) làm nhánh tiêu chuẩn (canonical). Các khối trong nhánh con này được xem là những khối có sự đồng thuận lớn nhất và tạo ra một trạng thái cuối cùng đáng tin cậy. Quá trình này giúp tăng tính bảo mật và đồng thuận trong việc xác thực và chọn các khối mới.
Gasper trong Ethereum PoS là một cơ chế quan trọng giúp đảm bảo tính an toàn, trung thực và bảo mật trong việc xác thực giao dịch và tạo khối trong mạng Ethereum 2.0. Nó cung cấp một hệ thống đáng tin cậy và phi tập trung, tạo điều kiện cho sự phát triển và mở rộng của blockchain Ethereum trong tương lai.