Đã được xác thực, đặt cược trên eth2: # 3 – Sự đồng thuận sắc bén

Rate this post

Đặc biệt cảm ơn Sacha Yves Saint-Leger & Joseph Schweitzer đã đánh giá.

Sharding là một trong nhiều cải tiến mà eth2 có so với eth1. Thuật ngữ này được mượn từ nghiên cứu cơ sở dữ liệu trong đó phân đoạn có nghĩa là một phần của tổng thể lớn hơn. Trong ngữ cảnh của cơ sở dữ liệu và eth2, sharding có nghĩa là chia nhỏ việc lưu trữ và tính toán của toàn hệ thống thành các phân đoạn, xử lý các phân đoạn riêng biệt và kết hợp các kết quả khi cần thiết. Cụ thể, eth2 thực hiện nhiều chuỗi phân đoạn, trong đó mỗi phân đoạn có khả năng tương tự như chuỗi eth1. Điều này dẫn đến những cải tiến về quy mô lớn.

Tuy nhiên, có một loại sharding ít được biết đến hơn trong eth2. Một điều được cho là thú vị hơn từ quan điểm thiết kế giao thức. Nhập đồng thuận phân đoạn.

Sự đồng thuận sắc bén

Cũng giống như cách mà sức mạnh xử lý của nút chậm nhất giới hạn thông lượng của mạng, tài nguyên tính toán của một trình xác nhận duy nhất giới hạn tổng số trình xác nhận có thể tham gia vào sự đồng thuận. Vì mỗi trình xác thực bổ sung giới thiệu công việc bổ sung cho mọi trình xác thực khác trong hệ thống, sẽ đến lúc trình xác thực có ít tài nguyên nhất không thể tham gia được nữa (vì nó không còn có thể theo dõi các phiếu bầu của tất cả các trình xác thực khác) . Giải pháp eth2 sử dụng cho điều này là sự đồng thuận của sharding.

Phá vỡ nó

Eth2 chia nhỏ thời gian thành hai khoảng thời gian, khoảng thời gian và kỷ nguyên.

Vị trí là khung thời gian 12 giây trong đó khối mới dự kiến ​​sẽ được thêm vào chuỗi. Các khối là cơ chế mà các phiếu bầu do người xác nhận thực hiện được đưa vào chuỗi bên cạnh các giao dịch thực sự làm cho chuỗi trở nên hữu ích.

Một kỷ nguyên bao gồm 32 vị trí (6,4 phút) trong đó chuỗi báo hiệu thực hiện tất cả các phép tính liên quan đến việc duy trì chuỗi, bao gồm: xác minh và hoàn thiện các khối mới, đồng thời ban hành phần thưởng và hình phạt cho người xác thực.

Như chúng tôi đã chạm vào trong bài đầu tiên của loạt bài nàytrình xác nhận được tổ chức thành các ủy ban để thực hiện công việc của họ. Tại bất kỳ thời điểm nào, mỗi trình xác thực là thành viên của chính xác một chuỗi báo hiệu và một ủy ban chuỗi phân đoạn và được yêu cầu thực hiện chứng thực chính xác một lần trong mỗi kỷ nguyên – trong đó chứng thực là một phiếu bầu cho khối chuỗi báo hiệu đã được đề xuất Một khe.

Mô hình bảo mật của sự đồng thuận phân đoạn của eth2 dựa trên ý tưởng rằng các ủy ban ít nhiều là một đại diện thống kê chính xác của tập hợp trình xác nhận tổng thể.

Ví dụ: nếu chúng ta gặp tình huống trong đó 33% trình xác thực trong tập hợp tổng thể là độc hại, thì có khả năng chúng sẽ nằm trong cùng một ủy ban. Đây sẽ là một thảm họa cho mô hình bảo mật của chúng tôi.

Vì vậy, chúng tôi cần một cách để đảm bảo rằng điều này không thể xảy ra. Nói cách khác, chúng tôi cần một cách để đảm bảo rằng nếu 33% trình xác thực là độc hại, thì chỉ có khoảng ~ 33% trình xác nhận trong một ủy ban là độc hại.

Hóa ra chúng ta có thể đạt được điều này bằng cách làm hai điều:

  1. Đảm bảo các nhiệm vụ của ủy ban là ngẫu nhiên
  2. Yêu cầu số lượng người xác nhận tối thiểu trong mỗi ủy ban

Ví dụ: với 128 người xác thực được lấy mẫu ngẫu nhiên cho mỗi ủy ban, cơ hội kẻ tấn công với 1/3 số người xác nhận giành được quyền kiểm soát> 2/3 ủy ban là rất nhỏ (xác suất nhỏ hơn 2 ^ -40).

Xây dựng nó lên

Phiếu bầu do người xác nhận thực hiện được gọi là chứng thực. Chứng thực bao gồm nhiều yếu tố, cụ thể:

  • một phiếu bầu cho người đứng đầu chuỗi đèn hiệu hiện tại
  • một cuộc bỏ phiếu về khối beacon nào nên được xác minh / hoàn thiện
  • một cuộc bỏ phiếu về trạng thái hiện tại của chuỗi phân đoạn
  • chữ ký của tất cả những người xác nhận đồng ý với phiếu bầu đó

Bằng cách kết hợp càng nhiều thành phần càng tốt vào một chứng thực, hiệu quả tổng thể của hệ thống được tăng lên. Điều này có thể thực hiện được vì thay vì phải kiểm tra các phiếu bầu và chữ ký cho các khối beacon và các khối phân đoạn riêng biệt, các nút chỉ cần thực hiện phép toán về chứng thực để được thông báo về trạng thái của chuỗi báo hiệu và của mọi chuỗi phân đoạn.

Nếu mọi trình xác thực đều tạo ra chứng thực của riêng họ và mọi chứng thực cần thiết để được xác minh bởi tất cả các nút khác, thì việc trở thành một nút eth2 sẽ rất tốn kém. Nhập tổng hợp.

Chứng thực được thiết kế để dễ dàng kết hợp sao cho nếu hai hoặc nhiều người xác nhận có chứng thực với cùng một phiếu bầu, chúng có thể được kết hợp bằng cách thêm các trường chữ ký lại với nhau trong một chứng thực. Đây là những gì chúng tôi có nghĩa là tổng hợp.

Các ủy ban, do họ xây dựng, sẽ có các phiếu bầu dễ tổng hợp vì chúng được chỉ định vào cùng một phân đoạn và do đó phải có cùng số phiếu bầu cho cả trạng thái phân đoạn và chuỗi báo hiệu. Đây là cơ chế mà eth2 chia tỷ lệ số lượng trình xác thực. Bằng cách chia người xác nhận thành các ủy ban, người xác nhận chỉ cần quan tâm đến các thành viên trong ủy ban của họ và chỉ phải kiểm tra rất ít chứng thực tổng hợp từ mỗi ủy ban khác.

Tổng hợp chữ ký

Eth2 sử dụng chữ ký BLS – một lược đồ chữ ký được xác định trên một số đường cong elliptic thân thiện với việc tổng hợp. Trên đường cong cụ thể đã chọn, các chữ ký là 96 byte mỗi.

Nếu 10% của tất cả ETH kết thúc được đặt cược, thì sẽ có ~ 350.000 người xác thực trên eth2. Điều này có nghĩa là giá trị chữ ký của một kỷ nguyên sẽ là 33,6 megabyte mà đến ~7,6 gigabyte mỗi ngày. Trong trường hợp này, tất cả các tuyên bố sai về kích thước trạng thái eth1 đạt 1TB trở lại vào năm 2018 sẽ đúng trong trường hợp của eth2 trong vòng chưa đầy 133 ngày (chỉ dựa trên chữ ký).

Bí quyết ở đây là các chữ ký BLS có thể được tổng hợp: Nếu Alice tạo ra chữ ký Mộtvà chữ ký của Bob là B trên cùng một dữ liệu, thì cả chữ ký của Alice và Bob đều có thể được lưu trữ và kiểm tra cùng nhau bằng cách chỉ lưu trữ C = A + B. Bằng cách sử dụng tính năng tổng hợp chữ ký, chỉ 1 chữ ký cần được lưu trữ và kiểm tra cho toàn bộ ủy ban. Điều này làm giảm các yêu cầu lưu trữ xuống ít hơn 2 megabyte mỗi ngày.

Tóm tắt,

Bằng cách tách các trình xác nhận thành các ủy ban, nỗ lực cần thiết để xác minh eth2 được giảm bớt theo các cấp độ.

Để một nút xác thực chuỗi báo hiệu và tất cả các chuỗi phân đoạn, nó chỉ cần xem xét các chứng thực tổng hợp từ mỗi ủy ban. Bằng cách này, nó có thể biết trạng thái của mọi phân đoạn và mọi ý kiến ​​của người xác nhận về các khối nào là và không phải là một phần của chuỗi.

Do đó, cơ chế ủy ban giúp eth2 đạt được hai trong số các mục tiêu thiết kế được thiết lập trong bài viết đầu tiên: cụ thể là việc tham gia vào mạng eth2 phải có thể thực hiện được trên máy tính xách tay cấp dành cho người tiêu dùng và nó phải cố gắng được phân cấp tối đa bằng cách hỗ trợ càng nhiều trình xác nhận càng tốt.

Nói một cách dễ hiểu, trong khi hầu hết các giao thức Proof of Stake của Byzantine Fault Tolerant có quy mô lên đến hàng chục (và trong những trường hợp cực đoan là hàng trăm trình xác thực), eth2 có khả năng có hàng trăm nghìn trình xác thực góp phần bảo mật mà không ảnh hưởng đến độ trễ hoặc thông lượng.

Thuc Quyen

Leave a Reply

Your email address will not be published. Required fields are marked *