Chương 1. TỔNG QUAN VỀ BLOCKCHAIN VÀ NỀN TẢNG
1.4. CÁC CƠ CHẾ ĐỒNG THUẬN CỦA BLOCKCHAIN
Blockchain là một hệ thống phi tập trung, không lệ thuộc vào bên thứ ba để xác thực giao dịch. Do đó mà cần phải có các thuật toán đồng thuận để đảm bảo rằng tất cả các giao dịch được diễn ra một cách đáng tin cậy [5].. Về cơ bản, các thuật toán đồng thuận cần thực hiện được hai điều:
Đảm bảo rằng khối tiếp theo trong blockchain là duy nhất và tin cậy;
Giữ cho các tác nhân bên ngoài không thể phá hỏng hệ thống.
Một số cơ chế đồng thuận của Blockchain cụ thể như sau:
1.4.1. Proof of Work (PoW)
Trong thuật toán PoW, các nút mạng sẽ phải tính toán một giá trị băm của block header. Block header chứa một giá trị nonce và thợ mỏ sẽ thay đổi giá trị nonce để thu được giá trị băm khác nhau sao cho chuỗi giá trị băm phải bắt đầu bằng các số 0 liên tiếp đủ số lượng nhất định đã cho [5].. Khi một nút tìm ra giá trị nonce đúng yêu cầu, nó sẽ phát block tới các nút khác và tất cả các nút khác phải lẫn nhau xác nhận tính chính xác của giá trị băm. Nếu block được xác thực, các nút khác sẽ nối thêm block mới này vào chuỗi block cục bộ của mình. Các nút tính toán các giá trị băm được gọi là các thợ mỏ.
Hình 1.4 Blockchain công nhận nhánh dài hơn
Trong mạng phi tập trung, có thể có nhiều nút tìm thấy giá trị nonce gần như cùng một lúc, kết quả là chuỗi block sẽ bị phân nhánh tạm thời. Tuy nhiên, hai nhánh cạnh tranh chắc chắn sẽ không cùng một lúc tạo ra block tiếp theo. Hình 1 .4
giao thức PoW, nhánh nào tạo được block mới tiếp theo dài hơn và thông báo lên hệ thống thì nhánh đó sẽ được công nhận.
1.4.2. Proof of Stake (PoS)
Thuật toán PoS xác minh các block không dựa vào năng lực tính toán như PoW. Ý tưởng đằng sau PoS là việc các bên tham gia sẽ khó có được số lượng tiền kỹ thuật số đủ lớn so với việc trang bị các máy tính đủ mạnh. Người có nhiều tiền số sẽ ít có khả năng tấn công phá hoại hơn, tức là đáng tin cậy hơn. Các bên tham gia xác nhận block sẽ phải khóa một số tiền của họ làm cổ phần. Sau đó, họ sẽ bắt đầu xác thực các block, nghĩa là khi phát hiện ra một block mà họ cho rằng có thể được thêm vào chuỗi, họ sẽ xác thực nó bằng cách đặt cược. Nếu block được thêm vào chuỗi, thì người xác nhận sẽ nhận được phần thưởng tương ứng với tiền cược của họ. So với PoW, PoS có độ trễ thấp và không cần tiêu thụ nhiều tài nguyên và năng lực tính toán.
1.4.3. Delegated Proof of Stake (DPoS)
DPoS tương tự như PoS nhưng đòi hỏi các “cổ đông” phải bỏ phiếu cho các
"đại biểu", những người này sau đó chịu trách nhiệm xác nhận các giao dịch và duy trì chuỗi khối.
DPoS có các tính năng "dân chủ" khác nhau được cho là hiệu quả và công bằng hơn. Thay vì phải đặt cọc để xác thực giao dịch, những người nắm giữ token sẽ tiến hành bỏ phiếu cho một nhóm đại biểu được chọn để thực hiện vai trò xác nhận các giao dịch. Quyền biểu quyết của người nắm giữ token nhiều hay ít là dựa trên số lượng token mà người đó có, hay còn gọi là trọng số biểu quyết.
1.4.4. Practical Byzantine Fault Tolerance (PBFT)
PBFT cung cấp đồng thuận trong mạng ngay cả khi có các nút độc hại trong hệ thống. Các nút trong hệ thống được sắp xếp theo thứ tự với một nút là nút chính (nút leader) và các nút khác được gọi là nút phụ (hoặc nút backup). Lưu ý là bất kỳ nút đủ điều kiện nào trong hệ thống đều có thể trở thành nút chính bằng cách chuyển từ thứ cấp sang chính (ví dụ khi nút chính bị lỗi). Mục tiêu là tất cả các nút trung thực giúp đạt được sự đồng thuận về trạng thái của hệ thống bằng cách sử dụng quy tắc số đông. Một hệ thống chịu lỗi Byzantine thực tế có thể hoạt động với điều kiện số lượng nút độc hại tối đa phải ít hơn 1/3 tổng số tất cả các nút trong hệ thống. Khi số lượng nút tăng lên, hệ thống trở nên an toàn hơn.
Bảng 1.2 Bảng so sánh các cơ chế đồng thuận của blockchain
PoW PoS DpoS PBFT
Tiêu thụ điện Cao Thấp Rất thấp Rất thấp
Số giao dịch
/giây 7 - 30 30 - 173 2.3 - 2500 100 - 2500
Phí giao dịch Cao Thấp Thấp Rất thấp
Cấu trúc Phi tập
trung
Phi tập
trung Tập trung Phi tập
trung
Sử dụng bởi Bitcoin Dash BitShare Stellar