Đồng thuận

Mục tiêu chính của giao thức đồng thuận là cung cấp cơ chế cho tất cả các bên tham gia trong mạng để đạt được thỏa thuận về trạng thái hiện tại của blockchain và đảm bảo rằng tất cả các giao dịch được bao gồm trong một khối là hợp lệ và trạng thái blockchain được cập nhật một cách nhất quán và an toàn trên tất cả các mức độ (shardchains, workchains và masterchain).

Tổng quan

Venom blockchain sử dụng cơ chế đồng thuận Proof of Stake (PoS) với thuật toán chống lỗi Byzantine (BFT) để đạt được thỏa thuận đồng thuận giữa các validator. Phương pháp này đảm bảo bảo mật của mạng và cung cấp khả năng chống Sybil.

Các nhà xác thực giữ an ninh mạng bằng cách đặt cược VENOM tokens và cam kết tham gia vào các vòng đồng thuận với các nhà xác thực khác. Bằng cách đặt cược token của họ, những nhà xác thực này chứng tỏ họ có một lợi ích về mặt tài chính đối với sự phát triển của mạng và giúp tăng cường tính kháng Sybil. Số lượng token được đặt cược trên mạng càng nhiều thì càng khó cho một kẻ tấn công tạo ra nhiều danh tính và kiểm soát mạng.

Nhà xác thực đề xuất các khối ứng cử viên và bỏ phiếu cho các khối được đề xuất bởi những nhà xác thực khác, sử dụng thuật toán Byzantine fault-tolerant (BFT) để đảm bảo quá trình đồng thuận đáng tin cậy. Giao thức tiến hành thông qua một loạt các vòng đồng thuận, mỗi vòng đều có một tập hợp các nút nhà xác thực chịu trách nhiệm đề xuất, xác minh và cam kết các khối. Nếu một khối ứng cử viên được phê duyệt bởi 2/3 các nút nhà xác thực, nó được cam kết vào blockchain. Nếu khối ứng cử viên không được phê duyệt trong thời gian nhất định, nó sẽ được bỏ qua và vòng đồng thuận tiếp theo bắt đầu.

Thuật toán đồng thuận có thể được chia thành hai lớp rộng rãi: những thuật toán cho phép tạo nhiều chuỗi đồng thời (fork) và những thuật toán không cho phép tạo forks. Nói cách khác, một đồng thuận có thể có tính xác suất hoặc xác định.

Độ chính xác xác định đề cập đến ý tưởng rằng một khi một giao dịch đã được thực hiện trong một khối và được thêm vào blockchain, nó được coi là cuối cùng và không thể đảo ngược. Điều này quan trọng đối với sự an toàn và tính toàn vẹn của mạng, vì nó đảm bảo rằng các giao dịch không thể bị thay đổi sau khi được ghi lại trên blockchain. Ví dụ, trong ngữ cảnh của Bitcoin, một giao dịch chỉ được coi là cuối cùng với tính xác suất. Xác suất đảo ngược của giao dịch giảm dần khi có nhiều khối được thêm vào chuỗi sau đó.

Giao thức Venom Consensus thuộc lớp thuật toán xác định, nghĩa là đảm bảo tính cuối cùng của các giao dịch tại giai đoạn cam kết. Sử dụng BFT khiến cho khó có khả năng xảy ra forks, vì chúng chỉ có thể xảy ra trong trường hợp các hành vi không đúng của đa số các validators.

Delegated staking pools

Những người tham gia có số lượng VENOM tối thiểu có thể tham gia vào quá trình xác thực thông qua các staking pools được ủy quyền. Cơ chế này cho phép những người tham gia mạng ủy quyền cổ phần của họ cho những người tham gia hoặc tổ chức khác, những người sẽ đóng vai trò là các validator. Chủ sở hữu mã thông báo có thể đặt cược mã thông báo của họ vào các validator cụ thể — càng nhiều mã thông báo được đặt vào một Validator, nó càng có trọng lượng trong quá trình bỏ phiếu đồng thuận. Nó cho phép chủ sở hữu token có tiếng nói về việc ai sẽ trở thành validator bằng cách chọn ứng cử viên validator nào để ủy quyền cổ phần của họ. Điều này giúp đảm bảo rằng validator đại diện cho lợi ích và mục tiêu của cộng đồng rộng lớn hơn.

Các bộ validator

Có ba loại tập validator chính:

Tập validator toàn bộ: danh sách validator được sắp xếp theo trọng số của tất cả các validator được chọn để tham gia quá trình xác thực.

Tập validator Masterchain: danh sách các validator có số dư lớn nhất được chọn từ tập validator toàn bộ.

Tập validator Shardchain: nhóm các validator được chọn từ tập validator toàn bộ duy trì xử lý khối cho một Shardchain cụ thể.

Giao thức sử dụng hệ thống chuyển vai trò theo vòng tròn, trong đó các validator luân phiên tạo ra các khối để ngăn chặn một nhóm độc quyền kiểm soát quá trình xác thực. Thuật toán đồng thuận được thực hiện bởi mỗi Shard sử dụng nhóm validator của nó.

Các thành phần

Giao thức đồng thuận có thể được phân tách thành nhiều thành phần riêng biệt, mỗi thành phần chịu trách nhiệm về một khía cạnh giao thức cụ thể:

1) Bầu cử: lựa chọn tập validator toàn bộ; 2) Tạo khối: tạo và xác minh các khối; 3) Đồng thuận: đạt được sự đồng thuận; 4) Giao thức truyền tin nhắn: truyền tin giữa các validator.

Cuộc bầu cử

Đầu tiên, giao thức đồng thuận phải xác định những người tham gia nào có đủ điều kiện để phục vụ như các validator thông qua quá trình bầu cử. Hợp đồng thông minh triển khai một thuật toán bầu cử dựa trên bằng chứng cổ phần để chọn một danh sách validator được sắp xếp theo trọng số, trong đó cổ phần quyết định trọng số.

Hợp đồng bầu cử sử dụng các yếu tố khác nhau để lựa chọn validator, bao gồm kích thước cổ phần của validator, số lượng validator tối thiểu/tối đa được phép, kích thước cổ phần tối thiểu/tối đa và sự khác biệt tối đa giữa cổ phần validator lớn nhất và nhỏ nhất. Điều này giúp đảm bảo an ninh mạng lưới bằng cách tối đa hóa số lượng cổ phần và số lượng validator hoạt động.

Quá trình bầu cử cung cấp tập validator tổng thể để bắt đầu phiên validator. Tập validator được lựa chọn sẽ tạo ra các khối bằng cách theo thuật toán đồng thuận trong suốt phiên validator.

The Validator Session

Trong Validator Session, có nhiều vòng lặp để tạo khối. Trong các vòng lặp này, validator thực hiện thuật toán đồng thuận [4.3], dẫn đến việc cam kết khối được bầu chọn vào blockchain.

Các validator sẽ có một số lần thử để cam kết một khối hợp lệ cho mạng trước khi được coi là thất bại và quá trình phải bắt đầu lại với các lead validator mới. Trong mỗi lần thử, chỉ một số lượng giới hạn validator có thể đề xuất một khối để cùng xem xét với toàn bộ mạng.

Nếu một validator bỏ lỡ lượt hoặc sản xuất một khối không hợp lệ, họ có thể bị phạt bằng cách cắt giảm phần thưởng đặt cược của họ.

Tạo khối

Trước khi một validator đề xuất một khối cho mạng lưới, nó phải trước tiên thu thập và đảm bảo rằng khối đó đã được tạo ra và hợp lệ theo các quy tắc tạo khối. Những quy tắc này bao gồm kích thước của khối, khối có thể bao gồm bao nhiêu giao dịch, thời gian giữa các khối, định dạng tiêu đề khối và giao dịch, vv. Thành phần tạo khối được đảm bảo để tạo và xác thực các khối mới trong mạng lưới blockchain.

Thuật toán Đồng thuận

Thuật toán Byzantine Fault Tolerant (BFT) là một phần của vòng tạo khối và chịu trách nhiệm đạt được thỏa thuận về sản xuất khối.

Quá trình đồng thuận bao gồm nhiều giai đoạn đạt được sự đồng ý:

1) Tạo block ứng cử viên: Các validator có ưu tiên tạo block cho vòng tròn tạo ra một block ứng cử viên mới. Khi ứng cử viên được tạo ra, nó được gửi đến giai đoạn Phê duyệt đến các nút validator khác trong mạng.

2) Phê duyệt block ứng cử viên: Mỗi nút validator kiểm tra và chứng thực tính hợp lệ của block ứng cử viên. Nếu block được phê duyệt, nó sẽ được ký nhận phê duyệt bởi mỗi validator và phát sóng đến mạng. Một block được coi là đã được phê duyệt bởi một nút khi nó nhận được hơn 2/3 số lượng thông điệp phê duyệt và đi đến giai đoạn Bỏ phiếu.

3) Các nỗ lực bỏ phiếu: Nhiều lần bỏ phiếu được tiến hành, mỗi lần có giới hạn thời gian. Validator dẫn đầu cho lần bỏ phiếu lựa chọn block ứng cử viên để bỏ phiếu và thông báo cho các nút khác. Mỗi nút validator sau đó thiết lập một block để bỏ phiếu theo đề xuất của validator dẫn đầu. Một validator không bắt buộc phải bỏ phiếu cho block được đề xuất và có thể chọn một block khác, tuy nhiên, block ưu tiên được ưa chuộng vì tốc độ thực thi nhanh hơn. Nếu bất kỳ block được phê duyệt nào nhận được hơn 2/3 trong số tổng trọng số validator trong quá trình bỏ phiếu, nó trở thành block để ký nhận (pre-commit block). Nếu hai lần bỏ phiếu đề xuất pre-commit block khác nhau, lần gần nhất sẽ chiến thắng.

4) Ký nhận block: Việc ký nhận bắt đầu ngay khi một vòng tròn thử nghiệm cho ra pre-committed block. Validator nhận được pre-committed block trong vòng hiện tại sẽ ký nhận và phát sóng nó đến các validator khác. Khi một validator cụ thể nhận được hơn 2/3 chữ ký từ các validator khác, nó chuyển sang vòng tiếp theo và ký nhận block đã ký nhận vào blockchain. Nếu không có block nào được ký nhận trong vòng hiện tại, vòng đó được coi là thất bại và quá trình di chuyển đến vòng tiếp theo.

Giao thức truyền thông tin qua tin nhắn

Giao thức truyền thông tin qua tin nhắn là giao thức tầng mạng được sử dụng cho việc giao tiếp và phối hợp giữa các validator trong mạng. Các validator sử dụng nó để phát sóng các tin nhắn chứa các khối ứng cử viên, phê duyệt, phiếu bầu và các khối đã ký cho các nút khác trong mạng. Nó cũng được sử dụng để đồng bộ hóa trạng thái phiên xác thực của các nút trong mạng. Giao thức truyền thông tin qua tin nhắn không thực hiện thuật toán đồng thuận chính mà chỉ là phương tiện giao tiếp và phối hợp cho thành phần cấp cao hơn của phiên xác thực xác định quyết định liên quan đến quá trình đồng thuận.

Lưu ý rằng các tin nhắn được thảo luận trong phần này không phải là các tin nhắn mà các tài khoản gửi cho nhau. Tin nhắn của giao thức này là các tin nhắn tầng mạng và không có đại diện trên chuỗi.

Giao thức truyền thông qua tin nhắn cung cấp một cách để đồng bộ trạng thái của chuỗi và giao tiếp để đạt được thỏa thuận đồng thuận.

Last updated