Thuật toán đồng thuận Blockchain là gì?
Vậy thuật toán đồng thuận blockchain là gì? Tại sao blockchain lại cần cơ chế đồng thuận? Có những loại thuật toán blockchain nào? Cơ chế của thuật toán đồng thuận này có gì khác nhau?
Thuật toán đồng thuận blockchain là gì?
Thuật toán đồng thuận blockchain là một quy tắc hoặc cơ chế để các node tuân theo, nhằm đảm bảo các giao dịch được thực hiện trên blockchain là chính xác, minh bạch và giống nhau trên tất cả các node* của mạng.
*Node là các thiết bị (máy tính, điện thoại…) đảm nhiệm vai trò gửi, nhận, xác thực và ghi giao dịch lên blockchain. Tất cả các node trên một blockchain được kết nối với nhau thông qua mạng lưới ngang hàng, chúng liên tục trao đổi dữ liệu mới nhất để tất cả các node luôn được cập nhật.
Cách hoạt động của cơ chế đồng thuận trên blockchain
Về bản chất, blockchain bao gồm nhiều node kết hợp lại tạo ra một mạng lưới. Để một giao dịch được ghi lại trên blockchain, nó phải được xác thực đồng thời bởi tất cả các node trên mạng lưới dựa trên cơ chế đồng thuận.
Trước tiên, cần hiểu rằng cấu trúc của blockchain bao gồm nhiều block (khối) liên kết với nhau và tạo thành một chain (chuỗi). Mỗi block sẽ chứa thông tin về mã băm (hash) của khối trước đó. Mã hash này được tạo ra dựa trên các thông tin đầu vào đã được xác định sẵn của một khối, bao gồm cả thông tin giao dịch đã được xác thực bởi node.
Khi người dùng thực hiện một giao dịch, các node sẽ dựa trên thuật toán đồng thuận của blockchain (như PoS, PoW, PoA…) để xác thực và ghi giao dịch vào khối mới trên blockchain. Sau đó, tất cả các node đều phải tải xuống thông tin về khối giao dịch mới được xác thực, để đảm bảo tính thống nhất và toàn vẹn dữ liệu trên mạng lưới.
Thuật toán đồng thuận cũng giúp việc thay đổi dữ liệu trên blockchain là không thể:
- Khi một block bị thay đổi dữ liệu thì mã hash của block cũng bị thay đổi theo.
- Chúng sẽ được so sánh với dữ liệu của khối khác để đảm bảo tính đúng đắn và phù hợp giữa mã hash của khối trước và sau nó.
- Nếu thấy có sự khác biệt, dữ liệu kia sẽ không được phép ghi vào blockchain.
Ví dụ: Giả sử có hacker tấn công và thay đổi thông tin trên khối n. Tại thời điểm đó:
- Hash của khối n bị thay đổi.
- Hệ thống sẽ so sánh hash khối n với mã hash của khối trước đó để phát hiện sai lệch.
- Hacker phải thay đổi hash của khối trước n. Hệ thống lại phát hiện ra sai lệch ở khối n-1. Hacker phải tiếp tục thay đổi hash của khối n-2.
Như vậy, để thay đổi được giao dịch thì hacker phải thay đổi tất cả các khối để đảm bảo theo cơ chế đồng thuận của blockchain.
Tại sao một blockchain cần có cơ chế đồng thuận?
Giúp đảm bảo node thực hiện đúng vai trò
Blockchain hoạt động phi tập trung dựa trên mạng lưới nhiều node trên toàn cầu, chứ không có bất kỳ một bên trung gian nào kiểm soát hay điều khiển blockchain.
Vậy làm thế nào để đảm bảo rằng các node này có thể xác thực giao dịch hợp lệ, vận hành blockchain đúng cách và không có gian lận? Đó là lúc cơ chế đồng thuận phát huy tác dụng. Các node buộc phải tuân thủ theo thuật toán đồng thuận để thực hiện đúng vai trò của mình. Nếu không, họ phải bị phạt theo cơ chế slashing.
Giúp blockchain trở thành hệ thống chịu lỗi Byzantine (BFT)
“Bài toán các vị tướng Byzantine” là một bài toán mô tả việc một nhóm các vị tướng Byzantine gặp vấn đề trong việc liên lạc với nhau khi cố gắng đạt sự đồng thuận về hành động tiếp theo (tấn công hay phòng thủ). Cụ thể:
- Khi tất cả (hoặc số đông hơn) cùng đồng thuận về việc tấn công, họ sẽ thắng.
- Khi số ít tấn công và phần còn lại phòng thủ, họ sẽ thua.
Nó đồng thời trở thành một bài toán khó khi áp dụng vào lĩnh vực khoa học máy tính. Câu hỏi đặt ra là: Trong một môi trường mà vấn đề trao đổi (communication) có thể xảy ra lỗi, làm thế nào để đảm bảo được sự thống nhất giữa các bên để vận hành một cách trơn tru?
Tuy nhiên, nhờ có thuật toán đồng thuận mà blockchain đã có thể giải quyết được bài toán trên. Theo đó, blockchain trở thành một Hệ thống Chịu lỗi Byzantine (Byzantine Fault Tolerance - BFT). Tức là mạng lưới blockchain vẫn có thể hoạt động bình thường ngay cả khi có một số node bị lỗi, gây gian lận hoặc có hành vi gây hại cho mạng (miễn là phần lớn node còn lại tuân thủ theo cơ chế).
Lưu ý rằng blockchain sẽ có cơ chế thưởng và phạt khác nhau nhằm khuyến khích các node phải tuân thủ theo cơ chế đồng thuận.
Tìm hiểu thêm: Byzantine Fault Tolerance là gì?
Các thuật toán đồng thuận blockchain phổ biến
Proof of Work (PoW)
Proof of Work (PoW) hay bằng chứng công việc là cơ chế đồng thuận phi tập trung đầu tiên, được sử dụng để bảo mật blockchain Bitcoin.
PoW yêu cầu các node sử dụng sức mạnh tính toán của máy tính để giải các bài toán và tạo ra mã hash. Node đầu tiên giải bài toán và giành quyền xác thực giao dịch thì sẽ được nhận phần thưởng là đồng coin native của blockchain (ví dụ như BTC, ETH). Quá trình này được gọi là “mining” (đào coin), và node này được gọi là miner node (thợ đào).
Nếu một miner node giải bài toán, xác thực và ghi giao dịch lên khối mới, khối này sẽ được gửi tới tất cả các node khác trong mạng lưới. Khi có đủ số lượng node xác thực khối, chúng sẽ đạt được sự đồng thuận và giao dịch sẽ được xử lý.
Tuy nhiên, PoW sẽ có một số nhược điểm như:
- PoW sử dụng sức mạnh máy tính để bảo mật cho blockchain, do đó yêu cầu điện năng tiêu thụ lớn và chi phí đắt đỏ cho các phần cứng bắt buộc.
- Một block trên blockchain PoW cần nhiều thời gian hơn để được tạo ra và xác thực, khiến cho thuật toán này kém hiệu quả và tốn tài nguyên (thậm chí là không thân thiện với môi trường) hơn các thuật toán đồng thuận khác.
Đây là cơ chế đồng thuận gắn liền với Bitcoin (BTC), Litecoin (LTC)...
Trước khi thực hiện bản nâng cấp The Merge, mạng Ethereum (ETH) cũng hoạt động dưới cơ chế PoW, hiện tại đã chuyển sang PoS.
Proof of Stake (PoS)
Proof of Stake (PoS) hay bằng chứng cổ phần là thuật toán đồng thuận phổ biến nhất hiện nay, được giới thiệu đầu tiên bởi Peercoin vào năm 2013.
Thay vì sử dụng sức mạnh máy tính, Proof of Stake yêu cầu các node tham gia xác thực giao dịch phải đặt cược (stake) một số lượng nhất định đồng coin native của blockchain để giành quyền tham gia xác thực và tạo khối.
Số token này nhằm đảm bảo các node hoạt động tốt, tức là nếu node đó offline quá lâu hoặc có những hành vi gian lận, số token đã stake có thể bị thu một phần hoặc mất toàn bộ tuỳ thuộc vào mức độ và quy định slashing (phạt).
Trong cơ chế PoS, node sẽ đóng vai trò là các validator thay vì miner như trong PoW.
Các validator trong mạng lưới PoS sẽ nhận được phí giao dịch làm phần thưởng. Khi một giao dịch diễn ra, các validator sẽ được chọn để xác thực giao dịch dựa trên số lượng token và thời gian stake. Stake càng nhiều và thời gian càng lâu thì tỉ lệ được chọn sẽ càng cao.
Với cách hoạt động trên, Proof of Stake là thuật toán tiết kiệm chi phí, thân thiện với môi trường hơn Proof of Work. Để trở thành một validator node cũng đơn giản hơn và không phải sử dụng các thiết bị phần cứng chuyên dụng quá “khủng”.
Ví dụ: Ban đầu, blockchain Ethereum sử dụng cơ chế đồng thuận PoW, sau đó đã chuyển sang PoS vào năm 2022. Lúc này, để trở thành validator của Ethereum, người dùng phải stake ít nhất 32 ETH.
Delegated Proof of Stake (DPoS)
Delegated Proof of Stake (DPoS) hay bằng chứng uỷ quyền cổ phần, là thuật toán đồng thuận được phát triển từ Proof of Stake.
Thay vì trở thành validator, DPoS cho phép người nắm giữ token (holder) stake token và chọn một người đại diện (delegator) để uỷ quyền xác thực giao dịch, duy trì bảo mật cho blockchain. Đổi lại, holder sẽ được chia sẻ phần thưởng từ việc gián tiếp vận hành mạng lưới.
Thông thường, delegator sẽ được chọn dựa trên danh tiếng (chứ không phải tài sản) của họ và có số lượng giới hạn khoảng 20-100 delegator trên mỗi block.
So với PoS, DPoS được đánh giá là nhanh hơn và hiệu suất tốt hơn. DPoS giúp đảm bảo sự minh bạch, công bằng và đáng tin cậy thông qua việc liên tục thực hiện các hoạt động bỏ phiếu và xáo trộn trong hệ thống, nhằm đảm bảo những delegator được chọn là trung thực và có trách nhiệm.
Một số dự án sử dụng cơ chế này là: Cosmos (ATOM), EOS (EOS), Tron (TRX)...
Proof of Authority (PoA)
Proof of Authority (PoA) hay bằng chứng uỷ quyền là thuật toán đồng thuận dựa trên danh tiếng, phát triển dựa trên Proof of Stake.
Thay vì stake coin, validator stake “uy tín” của mình để được tham gia vào mạng lưới node xác thực giao dịch và khối của blockchain, đồng thời đóng vai trò như là những người vận hành của hệ thống.
PoA đề cao giá trị danh tính, tức là những người được chọn để trở thành validator phải thật sự đáng tin cậy. Điều này khiến cho các blockchain PoA phải đối mặt với sự đánh đổi giữa tính phi tập trung và khả năng mở rộng:
- Vì tính chất chỉ lựa chọn những người uy tín và có danh tiếng, blockchain PoA thường có ít validator node, dẫn đến việc ít phi tập trung hơn so với những thuật toán đồng thuận khác.
- PoA có số lượng validator giới hạn, giúp giảm thời gian xác nhận giao dịch, tăng thông lượng và khả năng mở rộng cho mạng lưới.
Nói cách khác, thuật toán đồng thuận PoA sẽ phù hợp hơn với các hệ thống tập trung.
Một số blockchain sử dụng cơ chế PoA: Vechain (VET), HECO Chain (HECO)...
Cơ chế đồng thuận khác
Ngoài ra, còn có rất nhiều thuật toán đồng thuận khác có thể kể đến như Proof of Weight (PoWeight), Proof of Capacity (PoC), Proof of Burn (PoB), Direct Acyclic Graph Tangle (DAG)...
Điều quan trọng cần lưu ý là mặc dù các node và cơ chế đồng thuận cho phép blockchain hoạt động mà không cần sự kiểm soát của một bên thứ ba, nhưng điều đó không đồng nghĩa với việc chúng hoàn toàn phân quyền (phi tập trung). Một số cơ chế đồng thuận có tính tập trung cao hơn (như PoA) các cơ chế khác bởi nó phù hợp với mục đích hoạt động của blockchain đó.
Vì mỗi mạng lưới sẽ phục vụ cho các nhu cầu đa dạng và mục tiêu khác nhau, sẽ có lẽ chúng ta cũng sẽ thấy sự xuất hiện của nhiều cơ chế đồng thuận hơn nữa trong tương lai.