Công nghệ xác thực phân tán (DVT) là một cách để người dùng Ethereum có thể Stake mà không cần hoàn toàn phụ thuộc vào một nút duy nhất. Thay vào đó, khóa bí mật được chia sẻ giữa một vài nút, và tất cả chữ ký đều được ký khi đạt Threshold . Nút được đảm bảo hoạt động chính xác (và không bị phạt hoặc rò rỉ do không hoạt động) miễn là hơn 2/3 số nút hoạt động trung thực.
DVT bao gồm các giải pháp như ssv.network , cũng như những gì tôi gọi là “DVT-lite”: sự kết hợp giữa Dirk và Vouch hoặc Vero . Các giải pháp này không thực hiện Consensus hoàn chỉnh bên trong mỗi trình xác thực, vì vậy chúng cung cấp mức độ đảm bảo hơi kém hơn, nhưng lại đơn giản hơn Bit . Nhiều tổ chức hiện đang nghiên cứu sử dụng DVT để Stake cọc tiền điện tử của họ.
Tuy nhiên, những giải pháp này khá phức tạp. Chúng có quy trình thiết lập phức tạp, yêu cầu các kênh mạng giữa các nút, ETC Thêm vào đó, chúng phụ thuộc vào tính chất tuyến tính của BLS, chính tính chất này lại khiến nó không an toàn trước các cuộc tấn công lượng tử.
Trong bài viết này, tôi đề xuất một giải pháp thay thế đơn giản đến bất ngờ: chúng ta đưa DVT vào quy trình.
Thiết kế
Nếu một trình xác thực có số dư gấp >= n lần số dư tối thiểu, họ được phép chỉ định tối đa n khóa và một Threshold m , với mức tối đa là m <= n <= 16 Điều này tạo ra n “danh tính ảo” mà tất cả đều tuân theo giao thức một cách hoàn toàn độc lập, nhưng luôn được gán cho các vai trò (người đề xuất, ủy ban, mạng con p2p) cùng nhau.
Tức là, nếu có tổng cộng 100.000 trình xác thực và bạn có một trình xác thực kích thước n với nhiều thực thể ảo, và có một vai trò với t người tham gia (ví dụ: t=1 cho đề xuất, t=16 cho FOCIL, t=n/64 cho một số hệ thống con p2p phân chia các nút thành 64 mạng con), thì có xác suất 1/100.000 rằng tất cả các danh tính ảo của bạn sẽ được gán cho vai trò đó.
Từ góc độ kế toán giao thức, các danh tính ảo này được nhóm lại thành một “danh tính nhóm” duy nhất. Đối tượng duy nhất đó được coi là thực hiện một hành động nào đó (ví dụ: tạo Block, ký) nếu và chỉ nếu ít nhất m hoặc n danh tính ảo đã ký xác nhận hành động đó. Dựa trên điều này, phần thưởng và hình phạt được ấn định.
Do đó, nếu bạn có một danh tính với ví dụ m = 5 , n = 7 , thì nếu năm chữ ký đều xác nhận một Block, bạn sẽ nhận được 100% phần thưởng cho người xác nhận và sự tham gia của bạn được tính, nhưng nếu chỉ có bốn chữ ký xác nhận, bạn sẽ nhận được 0% phần thưởng và sự tham gia của bạn không được tính. Tương tự, để loại bỏ một trình xác thực như vậy, bạn cần phải chứng minh rằng >= 5 nút bỏ phiếu cho A và >= 5 nút bỏ phiếu cho B.
Lưu ý rằng điều này có nghĩa là nếu m <= n/2 , Slashing có thể thực hiện mà không gây ra bất kỳ hành vi sai trái nào, vì vậy thiết lập như vậy hoàn toàn không được khuyến khích và chỉ nên được xem xét trong các trường hợp một số nút là bản sao lưu ngoại tuyến thông thường.
Của cải
Từ góc nhìn của người dùng, thiết kế này cực kỳ đơn giản. Staking DVT chỉ đơn giản là chạy n bản sao của một nút máy khách tiêu chuẩn. Độ phức tạp duy nhất trong quá trình triển khai là việc tạo Block (hoặc tạo FOCIL): trên thực tế, một nút ngẫu nhiên cần được thăng cấp thành nút chính, và các nút khác cần xác nhận điều đó.
Điều này chỉ làm tăng thêm một vòng độ trễ trong quá trình tạo Block và FOCIL, và không làm tăng độ trễ trong quá trình xác thực.
Thiết kế này dễ dàng thích ứng với bất kỳ sơ đồ chữ ký nào, nó không phụ thuộc vào bất kỳ thuộc tính số học nào.
Thiết kế này nhằm đạt được hai hiệu quả mong muốn:
- Giúp những người tham gia staking quan tâm đến bảo mật với số lượng ETH Trung bình đến lớn (cả cá nhân và tổ chức) Stake trong một thiết lập M-of-N an toàn hơn, thay vì chỉ dựa vào một node duy nhất (điều này cũng giúp dễ dàng đạt được nhiều lợi ích hơn từ sự đa dạng của client).
- Giúp những người tham gia staking tự mình Stake thay vì gửi tiền của họ vào các nhà cung cấp dịch vụ Staking , từ đó tăng đáng kể mức độ phân quyền có thể đo lường được (ví dụ: chỉ số Herfindahl, hệ số Nakamoto) của việc phân phối Staking Ethereum.




