Tạo bằng chứng phân tán

Bài viết này được dịch máy
Xem bản gốc

Thông số kỹ thuật Tạo bằng chứng phân tán trên giao thức Consensus như Ethereum

Tổng quan

Thông số kỹ thuật này xác định một giao thức tạo bằng chứng phân tán được tích hợp với Ethereum (hoặc bất kỳ giao thức Consensus nào), giới thiệu hai vai trò riêng biệt:

  • Các validator: Các validator Ethereum hiện tại tham gia vào Block consensus và xác minh các bằng chứng zk được gửi.
  • Các prover: Một vai trò mới, tách biệt với các validator, chịu trách nhiệm tạo các bằng chứng zk bằng GPU. Các prover được yêu cầu stake riêng biệt với các validator Ethereum.

Hệ thống được thiết kế để đảm bảo việc tạo bằng chứng kịp thời, dự phòng và có thể xác minh thông qua một giao thức đa giai đoạn được khuyến khích (T1–T5).

Các biến số

// Các số cần được điều chỉnh, chúng chỉ là một số ý tưởng ban đầu.PROVERS_PER_PROOF = 200PROVERS_PER_AGGPROOF = 5REWARD_FULL_PROOF_PROVER_T1 = 9000 // Phần thưởng nhận được bởi mỗi prover được chọn trong T1 nếu một FullProof hợp lệ được gửi.REWARD_FULL_PROOF_SENDER_T1 = 50 // Phần thưởng nhận được bởi prover gửi một FullProof hợp lệ trong T1.REWARD_FULL_PROOF_VALIDATOR_T1 = 1000REWARD_T1_VALIDATOR = 3PENALTY_T1_PROVER = -1REWARD_FULL_PROOF_PROVER_T2 = 8000REWARD_FULL_PROOF_SENDER_T2 = 40REWARD_FULL_PROOF_VALIDATOR_T2 = 900REWARD_T2_VALIDATOR = 3PENALTY_T2_PROVER = -3REWARD_PROVER_REUSING_T3 = 40REWARD_PROVER_REUSED_T3 = 40REWARD_PROVER_T3 = 50REWARD_VALIDATOR_T3 = 1PENALTY_PROVER_T3 = -1PENALTY_PROVER_NOTREUSED_T3 = -1REWARD_PROVER_REUSING_T4 = 30REWARD_PROVER_REUSED_T4 = 30REWARD_PROVER_T4 = 40REWARD_VALIDATOR_T4 = 1PENALTY_PROVER_T4 = -2PENALTY_PROVER_NOTREUSED_T4 = -1REWARD_PROVER_REUSING_T5 = 20REWARD_PROVER_REUSED_T5 = 20REWARD_PROVER_T5 = 40REWARD_VALIDATOR_T5 = 1PENALTY_PROVER_T5 = -4PENALTY_PROVER_NOTREUSED_T5 = -1REWARD_AGG_PROOF_PROVER = 50REWARD_AGG_PROOF_VALIDATOR = 3

Lựa chọn và Gán nhiệm vụ cho Prover

  • Đối với mỗi Block mới, một tập con ngẫu nhiên xác định của các prover được chọn bằng cơ chế như RANDAO.
  • Số lượng prover được chọn phụ thuộc vào việc sử dụng gas của Block:
num_provers_selected = Min(PROVERS_PER_PROOF, availableProvers / 2)
  • Mỗi prover được chọn được gán ngẫu nhiên một tập hợp bằng chứng một phần (các nhiệm vụ phụ) để tạo, được phân phối với hệ số dự phòng:
num_airs_assigned = (num_of_partial_proofs / num_provers_selected) * redundancy_factor
  • Các partial_proofs được gán của mỗi prover được chọn được xác định ngẫu nhiên-xác định sau giai đoạn đếm & kế hoạch.
  • Các prover có lịch sử gửi hợp lệ mạnh có thể có xác suất được chọn cao hơn (nhưng bị giới hạn) trong các vòng tiếp theo.
  • Một prover chỉ có thể được gán một bằng chứng tại một thời điểm.

Tạo Bằng chứng Đa giai đoạn

T1: Giai đoạn Cam kết Thử thách

  • Tất cả các prover được chọn phải:

    • Cam kết với thử thách được ký (ví dụ: cam kết đa thức của các sub-AIR mà họ chịu trách nhiệm xây dựng).
    • Tùy chọn gửi một bằng chứng đầy đủ.
  • Chỉ một giao dịch mỗi prover được phép. Bằng chứng phải bao gồm khóa công khai của prover như một đầu ra công khai để ngăn chặn việc đánh cắp bằng chứng.

Các ưu đãi:

  • Nếu một bằng chứng đầy đủ hợp lệ được gửi trong T1:

    • REWARD_FULL_PROOF_PROVER_T1 cho mỗi prover được chọn.
    • REWARD_FULL_PROOF_VALIDATOR_T1 cho validator.
    • REWARD_FULL_PROOF_SENDER_T1 thêm cho prover gửi.
  • Nếu không:

    • REWARD_T1_VALIDATOR × cam kết hợp lệ cho các validator.
    • PENALTY_T1_PROVER cho các prover không cam kết.

T2: Giai đoạn Gửi Bằng chứng Một phần

  • Tất cả các prover được chọn phải:
    • Gửi bằng chứng một phần của họ, tham chiếu các thử thách từ T1.
    • Tùy chọn gửi một bằng chứng đầy đủ.

Các ưu đãi:

  • Nếu một bằng chứng đầy đủ hợp lệ được gửi:

    • REWARD_FULL_PROOF_PROVER_T2 cho mỗi prover được chọn.
    • REWARD_FULL_PROOF_VALIDATOR_T2 cho các validator.
    • REWARD_FULL_PROOF_SENDER_T2 thêm cho prover gửi.
  • Nếu không:

    • REWARD_T2_PROVER cho các prover gửi bằng chứng một phần hợp lệ.
    • PENALTY_T2_PROVER cho các bản gửi không thành công.
    • REWARD_T2_VALIDATOR × bằng chứng một phần hợp lệ cho các validator.

T3: Giai đoạn Tổng hợp Bằng chứng Đầy đủ

  • Bất kỳ prover nào cũng có thể gửi một bằng chứng đầy đủ, bao gồm một BloomHash tóm tắt các bằng chứng một phần được sử dụng lại.

Phần thưởng:

  • REWARD_PROVER_REUSING_T3 × bằng chứng một phần được sử dụng lại
  • REWARD_PROVER_REUSED_T3 × số lần được sử dụng bởi người khác
  • PENALTY_PROVER_NOTREUSED_T3 × số lần không được sử dụng bởi người khác
  • Nếu nhiều bằng chứng đầy đủ hợp lệ được gửi, các phần thưởng trên sẽ được tính trung bình giữa chúng.
  • REWARD_PROVER_T3 cho prover gửi.
  • REWARD_VALIDATOR_T3 × bằng chứng đầy đủ hợp lệ
  • PENALTY_PROVER_T3 cho việc không tham gia.

T4 / T5: Các Giai đoạn Tổng hợp Dự phòng

  • Nếu T3 không hoàn tất một bằng chứng hợp lệ:
    • Chuyển sang T4, sau đó T5 nếu cần.
    • Thử lại với tập prover giống hoặc mới (nếu T5 không thành công).
    • Phần thưởng/Hình phạt được điều chỉnh như trong T3 nhưng được điều chỉnh (giảm/tăng) theo một tỷ lệ phần trăm được xác định.

Phần mở rộng cho Nhiều Sub-block (Gigagas)

  • Số lượng sub-block bị giới hạn bởi các giới hạn hệ thống và sự sẵn có của prover.
  • Một tập prover được gán cho mỗi sub-block. Giao thức trên được áp dụng độc lập cho từng sub-block.
  • Một nhóm PROVERS_PER_AGGPROOF prover cũng được chọn để tổng hợp các sub-block thành một block đầy đủ.

Trong T1:

  • Các prover được chọn có thể gửi một AggProof cho block.

Các ưu đãi:

  • REWARD_AGG_PROOF_PROVER mỗi prover tổng hợp.
  • REWARD_AGG_PROOF_VALIDATOR mỗi validator bao gồm một AggProof.

Nguồn
Tuyên bố từ chối trách nhiệm: Nội dung trên chỉ là ý kiến của tác giả, không đại diện cho bất kỳ lập trường nào của Followin, không nhằm mục đích và sẽ không được hiểu hay hiểu là lời khuyên đầu tư từ Followin.
Thích
Thêm vào Yêu thích
Bình luận