Mỗi vòng đồng thuận cần thêm một khối mới, nhưng bản whitepaper nói rằng lần này không phải là “đi một lần xong ngay”, mà là thực hiện qua nhiều lần lặp (iteration). Mỗi lần lặp lại được chia thành ba bước. Trong mục 3.2 của whitepaper, ba bước đó được gọi là Proposal, Validation và Ratification。

Bước đầu tiên là Proposal. Thuật toán DS chọn ngẫu nhiên một provisioner làm người tạo khối (block producer). Người này chịu trách nhiệm tạo ra một khối ứng viên (candidate block), rồi phát tán ra toàn mạng. Nếu khối ứng viên không được tạo ra hoặc không nhận được trong thời gian quá hạn quy định, bước này sẽ xuất ra NIL và chuyển thẳng sang bước tiếp theo. Nhưng nếu không có khối ứng viên nào trong tay thì các bước sau sẽ bỏ phiếu gì? Câu trả lời là không bỏ phiếu trắng (không bỏ phiếu trống), mà bỏ phiếu NoCandidate, nghĩa là “không có khối ứng viên nào để xác minh”. $DUSK

Bước thứ hai là Validation. Thuật toán DS chọn ngẫu nhiên một tập ủy ban bỏ phiếu (voting committee) để xác minh khối ứng viên từ bước trước. Nếu khối ứng viên hợp lệ, bỏ phiếu Valid; nếu không hợp lệ thì bỏ phiếu Invalid; nếu không có khối ứng viên thì bỏ phiếu NoCandidate. Ủy ban bỏ phiếu cần đạt đa số tuyệt đối 2/3 để hình thành quorum. Nếu đến thời hạn mà vẫn chưa đạt quorum, sẽ xuất NoQuorum. Đầu ra của bước này là một ValidationResult, bao gồm loại phiếu đã đạt quorum và chữ ký tổng hợp (aggregate) của tất cả người bỏ phiếu. @Dusk

Bước thứ ba là Ratification. Lại chọn một tập ủy ban bỏ phiếu mới để xác nhận kết quả Validation. Nếu bước trước đạt quorum ở mức Valid, họ sẽ xác nhận kết quả đó; nếu bước trước là NoQuorum hoặc thất bại, họ sẽ bỏ phiếu NoQuorum. Bước này đảm bảo rằng kết quả xác minh không chỉ do một nhóm nhỏ quyết định, mà phải được nhiều provisioner công nhận.

Nếu đầu ra của Ratification là Success, khối ứng viên sẽ được chấp nhận chính thức là khối mới, và kết thúc vòng này. Nếu đầu ra là Fail hoặc unknown, thì tiến hành lần lặp tiếp theo: chọn lại người tạo khối, và bỏ phiếu lại. Whitepaper nêu rằng số lần lặp tối đa do tham số toàn cục quyết định; cấu hình hiện tại là 50. Nếu liên tiếp 16 lần lặp đều thất bại, giao thức sẽ chuyển sang chế độ khẩn cấp (góc độ 10).

Logic cốt lõi của thiết kế ba bước là cơ chế kiểm soát và cân bằng (giới hạn quyền lực) — người tạo khối chỉ có thể tạo khối ứng viên, không được bỏ phiếu; ủy ban xác minh chỉ có thể xác minh, không được xác nhận; ủy ban xác nhận chỉ có thể xác nhận kết quả xác minh, không được kiểm tra lại. Không một vai trò nào có thể tự mình quyết định số phận của một khối. #dusk