V God đích thân nói về nguyên tắc thiết kế của Serenity và giúp bạn hiểu được sự khéo léo đằng sau dự án tráng lệ này!
Lưu ý của biên tập viên: Bài viết này đến từUnitimes(ID:Uni-times)Lưu ý của biên tập viên: Bài viết này đến từ

Đối với tài liệu nguyên tắc thiết kế của chuỗi Eth1.0, hãy xem:
https://github.com/ethereum/wiki/wiki/Design-Rationale
tiêu đề phụ
Nguyên tắc thiết kế thanh bình
▲ Tính đơn giản: Đặc biệt là vì PoS kinh tế tiền điện tử và sharding bậc hai về bản chất là phức tạp, các giao thức nên cố gắng đạt được sự đơn giản nhất có thể trong các quyết định của mình. Điều này rất quan trọng vì nó sẽ:
(i) giảm thiểu chi phí phát triển,
(ii) giảm rủi ro về các vấn đề an toàn ngoài ý muốn, và
(iii) Giúp các nhà thiết kế giao thức dễ dàng thuyết phục người dùng về tính hợp pháp của các lựa chọn tham số.
Theo liên kết này [1] để biết thông tin cơ bản. Khi muốn đạt được một mức độ chức năng nhất định, chúng ta không thể tránh khỏi sự phức tạp nhất định. Mức độ phức tạp ưu tiên là: Độ phức tạp giao thức lớp 2 > độ phức tạp triển khai máy khách > độ phức tạp đặc tả giao thức.
▲ Ổn định lâu dài: Lý tưởng nhất là giao thức cấp thấp hơn nên được xây dựng sao cho không cần thực hiện thay đổi giao thức nào trong 10 năm trở lên và mọi đổi mới cần thiết đều có thể được triển khai ở cấp cao hơn (triển khai ứng dụng khách hoặc thỏa thuận Lớp 2) trên .
▲ Tính đầy đủ: Có thể xây dựng càng nhiều hạng mục ứng dụng trên giao thức càng tốt.
▲Khả năng xác minh của ứng dụng khách nhẹ: Với một số giả định bảo mật (ví dụ: độ trễ mạng, giới hạn ngân sách của kẻ tấn công, chỉ 1/n hoặc một vài người xác minh trung thực), xác minh dữ liệu O© (lý tưởng nhất là chỉ xác minh chuỗi đèn hiệu) Khách hàng của sẽ có thể nhận được sự đảm bảo gián tiếp rằng tất cả dữ liệu trên toàn hệ thống đều có sẵn và hợp lệ, ngay cả trong trường hợp bị tấn công 51% (lưu ý: đây là một trong những mục tiêu của khía cạnh "bảo vệ theo chiều sâu").
tiêu đề phụ
Sự thỏa hiệp giữa Layer1 và Layer2
Độc giả có thể đọc hai bài viết trước của tôi: Lớp 1 nên đổi mới trong ngắn hạn nhưng kém hơn trong dài hạn [2] và Sidechains vs Plasma vs Sharding [3].
Trong bất kỳ thiết kế giao thức chuỗi khối nào, có sự khác biệt giữa việc giới thiệu nhiều tính năng hơn ở Lớp 1 (nghĩa là lớp đồng thuận) và xây dựng giao thức Lớp 1 ngắn gọn hơn và cho phép các tính năng này được xây dựng trên Lớp 2 (nghĩa là ứng dụng lớp). Mỗi cái đều có sự đánh đổi:
Các lập luận ủng hộ Layer2:
Giảm độ phức tạp của lớp đồng thuận (xem "sự đơn giản" đã đề cập ở trên);
Giảm nhu cầu sửa đổi các lớp giao thức (xem "Tính ổn định dài hạn" được đề cập ở trên):
-- Giảm rủi ro không đạt được sự đồng thuận;-- Giảm khối lượng công việc về quản trị giao thức và rủi ro chính trị
Linh hoạt hơn và khả năng thực hiện các ý tưởng mới theo thời gian
Các lập luận ủng hộ Layer1:
Giảm nguy cơ tiến trình bị đình trệ do thiếu cơ chế buộc mọi người phải nâng cấp lên giao thức mới (tức là hard fork);
Có khả năng làm giảm sự phức tạp của toàn bộ hệ thống;
Nếu Layer1 không đủ mạnh thì không thể xây dựng hệ thống Layer2 với hiệu năng như yêu cầu của Layer1 (xem phần "sự phong phú" đã đề cập ở trên)
Thiết kế của Ethereum 2.0 phần lớn được dành riêng để duy trì cẩn thận sự cân bằng giữa Lớp 1 và Lớp 2. Điều này bao gồm (i) thực thi mã Turing hoàn chỉnh, giàu trạng thái, (ii) khả năng mở rộng về tính hợp lệ và tính toán của dữ liệu, và (iii) thời gian xác nhận khối nhanh hơn, rất quan trọng đối với việc triển khai giao thức.Sex] là rất cần thiết bởi vì:
Nếu không triển khai (i), không thể xây dựng các ứng dụng Lớp 2 với mô hình tin cậy mạnh mẽ.
Nếu không có (ii), khả năng mở rộng sẽ bị giới hạn ở các công nghệ như kênh trạng thái hoặc Plasma, những công nghệ gặp thách thức trong việc mở rộng quy mô và khóa tiền và/hoặc thoát trên quy mô lớn.
Nếu (iii) không đạt được, không có cách nào để thực hiện các giao dịch nhanh chóng mà không sử dụng công nghệ kênh, vốn có những thách thức về quảng cáo và khóa tiền và/hoặc thoát quy mô lớn.
Nhưng Ethereum 2.0 cũng cố ý để lại một số tính năng khác cho Lớp 2: (i) quyền riêng tư, (ii) ngôn ngữ lập trình cấp cao, (iii) lưu trữ trạng thái có thể mở rộng và (iv) sơ đồ chữ ký. Các tính năng này được để lại cho Lớp 2 vì những khía cạnh này là lĩnh vực đổi mới nhanh chóng, nhiều giải pháp hiện có có các đặc điểm khác nhau và chắc chắn phải đánh đổi để có được các giải pháp tốt hơn và mới hơn. Ví dụ:
Quyền riêng tư: Chữ ký vòng + Giá trị bí mật so với ZK-SNARK và ZK-STARK, Rollup so với ZEXE, v.v.
Ngôn ngữ lập trình cấp cao: lập trình khai báo so với lập trình mệnh lệnh, cú pháp, tính năng xác minh chính thức, hệ thống loại, tính năng bảo vệ (chẳng hạn như cấm sử dụng hàm không thuần túy trong biểu thức số học), tính năng bảo mật được hỗ trợ nguyên bản, v.v.;
Sơ đồ chữ ký: Chữ ký Schnorr, chữ ký BLS, chữ ký Lamport, v.v.
tiêu đề phụ
nhìn thấy:
https://github.com/ethereum/wiki/wiki/Proof-of-Stake-FAQ
https://medium.com/@VitalikButerin/a-proof-of-stake-design-philosophy-506585978d51
tiêu đề phụ
Tại sao nên sử dụng Casper?
Thuật toán đồng thuận bằng chứng cổ phần (PoS) hiện tại chủ yếu rơi vào ba nhóm:
Các thuật toán bằng chứng cổ phần lấy cảm hứng từ Satoshi Nakamoto (chẳng hạn như Peercoin (Đồng tiền ngang hàng), NXT (Đồng xu tương lai), Ouroboros (thuật toán đồng thuận của Cardano) và các thuật toán thực tế khác)
Các thuật toán Proof-of-Stake lấy cảm hứng từ PBFT (Dung sai lỗi Byzantine thực tế) (chẳng hạn như Tendermint, Casper FFG, Hotstuff, v.v.)
CBC Casper (xem [4] và [5] để được giải thích)
Trong hai phe sau, có một câu hỏi đặt ra là liệu có nên sử dụng tiền gửi ký quỹ (đặt cược) và cắt giảm (đặt cược) hay không và như thế nào. Cả ba cơ chế bằng chứng cổ phần đều vượt trội so với bằng chứng công việc (PoW), nhưng chúng tôi muốn bảo vệ phương pháp được Ethereum 2.0 sử dụng trong bài viết này.
chém
Ethereum 2.0 sử dụng cơ chế Slashing (phạt ký quỹ), tức là người xác minh bị phát hiện có hành vi sai trái sẽ bị trừng phạt. Hình phạt nhẹ nhất là hủy ~1% cam kết và hình phạt nghiêm trọng nhất là hủy người xác minh. Tất cả tiền gửi.
Chúng tôi bảo vệ việc sử dụng cơ chế Chém với các lý do sau:
Tăng chi phí tấn công: Điều chúng tôi muốn đảm bảo là bất kỳ cuộc tấn công 51% nào vào chuỗi PoS sẽ dẫn đến việc kẻ tấn công phải trả một khoản phí rất lớn (chẳng hạn như trị giá hàng trăm triệu đô la để khôi phục sau cuộc tấn công. Điều này làm cho tính toán tấn công/phòng thủ trở nên rất bất lợi cho kẻ tấn công và thực sự có thể khiến cuộc tấn công trở nên phản tác dụng.
Vượt qua tình thế tiến thoái lưỡng nan do người xác minh mang lại: Cách thực tế và trực tiếp nhất để nút bắt đầu đi chệch khỏi hành vi "trung thực" là sơ suất (chẳng hạn như người xác minh nên tham gia xác minh, nhưng không tham gia xác minh; hoặc ký tên khi nó không nên được ký, v.v.). Tình thế tiến thoái lưỡng nan do các trình xác nhận đặt ra được trình bày chi tiết trong [6] và khai thác Bitcoin SPV [7] là một ví dụ về điều này xảy ra, điều này sẽ dẫn đến hậu quả rất nghiêm trọng. Các hình phạt xác thực đối với những người xác thực không trung thực giúp giảm bớt những tình huống khó xử này.
Nếu có cả nút chính và nút dự phòng trở thành tiêu chuẩn, kẻ tấn công có thể phân vùng mạng chuỗi khối và khiến tất cả các nút chính và nút dự phòng của trình xác thực gửi các khối khác nhau, dẫn đến hai vùng xung đột. Hình phạt chém giúp trấn áp trên diện rộng hoạt động này, giảm nguy cơ xảy ra.
chữ
Lựa chọn thuật toán đồng thuận
Trong số ba phe của thuật toán đồng thuận PoS được đề cập ở trên, chỉ có hai phe sau (tức là thuật toán đồng thuận lấy cảm hứng từ PBFT và CBC Casper) có khái niệm về tính hữu hạn trong hai thuật toán này, nghĩa là một khu vực nhất định Khối được xác nhận trong theo cách này: chỉ khi một tỷ lệ lớn trình xác thực (thuật toán lấy cảm hứng từ PBFT yêu cầu ít nhất 1/3 số trình xác thực, thuật toán CBC Casper yêu cầu ít nhất 1/4 số trình xác thực) hoạt động sai và do đó, khối sẽ chỉ bị đảo ngược khi nó bị cắt;
Và trại đầu tiên - thuật toán đồng thuận lấy cảm hứng từ Nakamoto (quy tắc chuỗi dài nhất) không thể đạt được mục đích cuối cùng theo nghĩa này.
Chúng tôi chọn Casper FFG đơn giản vì đây là thuật toán đơn giản nhất có sẵn cho giao thức khi đạt được tính quyết định. Chúng tôi hiện đang tích cực khám phá việc chuyển sang CBC Casper trong Giai đoạn 3 của Ethereum 2.0.
tiêu đề phụ
Sharding, hoặc tại sao chúng ta ghét các siêu nút?
Đối với việc mở rộng Lớp 1, một trong những lựa chọn thay thế chính cho sharding là sử dụng các siêu nút.Các siêu nút yêu cầu mỗi nút đồng thuận phải có một máy chủ mạnh để nút có thể xử lý từng giao dịch riêng lẻ.
Việc mở rộng quy mô dựa trên siêu nút thuận tiện vì nó dễ triển khai: đó là cách tiếp cận tương tự được nhiều chuỗi khối hiện tại thực hiện, ngoại trừ việc nó yêu cầu nhiều công việc thiết kế phần mềm hơn để xây dựng theo cách song song hơn.
Chúng tôi không chọn cách sử dụng siêu nút này vì những lý do chính sau:
Rủi ro tập trung nhóm xác thực: Trong một hệ thống dựa trên siêu nút, việc chạy một nút sẽ yêu cầu chi phí cố định cao, điều này làm hạn chế số lượng người dùng có thể tham gia. Mặc dù một số người sẽ phản đối rằng "trong hầu hết các loại tiền điện tử PoW và PoS, sự đồng thuận được kiểm soát bởi 5-20 nhóm (nhóm khai thác hoặc nhóm xác thực) có thể chạy các nút tốt." Vấn đề là nó bỏ qua rủi ro về áp lực tập trung, ngay cả giữa các nhóm hồ bơi với túi sâu. Nếu chi phí cố định để chạy một trình xác thực rất cao so với phần thưởng, thì các nhóm trình xác thực lớn hơn có thể đưa ra mức phí thấp hơn các nhóm trình xác thực nhỏ hơn, điều này có thể khiến các nhóm trình xác thực nhỏ đó bị lấn át và cảm thấy áp lực phải hợp nhất. Trong một hệ thống sharding, những người xác thực cam kết nhiều ETH hơn sẽ cần xác minh nhiều giao dịch hơn, vì vậy chi phí không cố định.
Rủi ro tập trung trên đám mây: Trong một hệ thống dựa trên siêu nút, người dùng không thể đặt cược tại nhà, vì vậy hầu hết việc đặt cược có nhiều khả năng xảy ra trong môi trường điện toán đám mây. Điều này tạo ra một điểm thất bại duy nhất.
Giảm khả năng chống kiểm duyệt: Người dùng không thể tham gia đồng thuận nếu không có yêu cầu về băng thông + tính toán cao, điều này giúp dễ dàng phát hiện và kiểm duyệt trình xác thực hơn.
Những rủi ro tập trung được đề cập ở trên cũng là lý do tại sao chúng tôi sẽ không cố gắng đạt được độ trễ cực thấp của Ethereum (dưới 1 giây), mà chọn độ trễ (tương đối) vừa phải. Trong hệ thống Ethereum 2.0, bạn có thể tham gia bằng cách sử dụng ít hoặc nhiều ETH nhất có thể và sử dụng ít hoặc nhiều sức mạnh tính toán nhất có thể (mặc dù bạn cần nhất quán về ETH và sức mạnh tính toán, tức là bạn không thể Staking một lượng lớn ETH với ít sức mạnh tính toán và ngược lại), chi phí cố định được giảm thiểu, mặc dù chi phí này sẽ tăng theo số lượng ETH mà bạn stake (khi số lượng ETH bạn stake vượt quá 32.768 ETH thì bạn sẽ hầu hết thời gian xác minh tất cả các chuỗi phân đoạn (lưu ý: có tổng cộng 1024 chuỗi phân đoạn và mỗi danh tính người xác nhận cần cam kết 32 ETH, vì vậy 1024*32=32.768)).
tiêu đề phụ
mô hình bảo mật
Người ta thường tin rằng tính bảo mật của chuỗi khối dựa trên giả định rằng "hầu hết những người tham gia đều trung thực", nghĩa là ≥50% số người tham gia sẽ trung thực tuân theo thỏa thuận đã thiết lập và sẽ từ bỏ cơ hội phản bội vì lợi ích cá nhân.
Trên thực tế, (i) giả định rằng "phần lớn những người tham gia đều trung thực" là không thực tế, vì những người tham gia có thể "lười biếng" và ký các khối mà không xác thực chúng (xem Trình xác thực [9] và các nhánh do khai thác Bitcoin SPV gây ra [10]) , đây là những trường hợp đào thoát rất phổ biến; nhưng may mắn thay, (ii) các chuỗi khối thường vượt qua một số mô hình bảo mật (trong khi không cho rằng phần lớn những người tham gia sẽ trung thực) để duy trì các thuộc tính bảo mật của chính nó.
Một mô hình bảo mật phổ biến và nghiêm ngặt là mô hình đa số duy lý không phối hợp (uncorateded Rational Đa số), tức là những người tham gia sẽ hành động theo lợi ích của mình, nhưng số lượng người tham gia hợp tác với nhau sẽ không vượt quá một tỷ lệ nhất định (đơn giản là Trong chuỗi PoW, tỷ lệ này là 23,2% [11]).
Một mô hình bảo mật nghiêm ngặt khác là mô hình trường hợp xấu nhất, nghĩa là khi một người tham gia kiểm soát hơn 50% sức mạnh tính toán hoặc cam kết, vấn đề lúc này sẽ trở thành:
(1) Trong trường hợp này, chúng tôi có thể đảm bảo rằng người xác minh sẽ phải trả giá rất cao khi cố gắng phá hủy toàn bộ chuỗi không?
(2) Chúng ta có thể giữ vô điều kiện những bảo đảm nào?
Trong chuỗi PoS, việc cắt giảm (cắt giảm tiền gửi) có thể đảm bảo cho vấn đề đầu tiên ở trên, đó là khi kẻ tấn công cố gắng phá hủy toàn bộ chuỗi, nó sẽ phải trả giá rất đắt. Trong một chuỗi khối không có sự phân mảnh (chẳng hạn như chuỗi Ethereum 1.0 hiện tại), mỗi nút xác minh tất cả các khối sẽ đáp ứng các yêu cầu của câu hỏi thứ hai ở trên bằng cách cung cấp hai đảm bảo sau: (i) chuỗi dài nhất là hợp lệ và (ii) chuỗi dài nhất cũng có sẵn (xem liên kết này [12] để biết cơ sở lý thuyết về tầm quan trọng của "tính sẵn có của dữ liệu").
Trong Ethereum 2.0, chúng tôi triển khai bảo vệ theo chiều sâu thông qua phân đoạn bảo vệ (sharding), nghĩa là bằng cách kết hợp một ủy ban trình xác thực được chọn ngẫu nhiên, dựa trên mô hình bảo mật mà hầu hết các trình xác thực sẽ trung thực, để đạt được hiệu quả và đảm bảo tính khả dụng, đồng thời ngăn chặn các trình xác thực lười biếng thông qua bằng chứng lưu ký (nghĩa là nếu người xác thực "lười biếng" và không tham gia xác minh sẽ bị phạt), thông qua bằng chứng gian lận và bằng chứng về tính khả dụng của dữ liệu [9] Phát hiện các chuỗi không hợp lệ và không sử dụng được mà không cần tải xuống và xác thực tất cả dữ liệu. Điều này sẽ cho phép khách hàng từ chối các chuỗi không hợp lệ và không sử dụng được ngay cả khi chuỗi được hỗ trợ bởi phần lớn trình xác thực PoS.
Các đặc điểm bảo mật dự kiến được hiển thị trong bảng dưới đây:

tiêu đề phụ
Cơ chế khuyến khích do Casper đặt ra
Phần thưởng cơ bản
Trong mỗi kỷ nguyên (trong Ethereum 2.0, cứ sau 64 khối được tạo (khoảng 6,4 phút) được gọi là một kỷ nguyên), mỗi trình xác thực phải thực hiện "chứng thực", nghĩa là để người đứng đầu chuỗi (người đứng đầu) bỏ phiếu và ký tên (người đứng đầu chuỗi là khối trên cùng). Nếu "bằng chứng" của người xác minh được bao gồm trong tiêu đề chuỗi, thì người xác minh sẽ được thưởng. Phần thưởng này bao gồm năm phần:
Phần thưởng cho việc đưa "bằng chứng" vào khối hàng đầu;
Phần thưởng cho việc "chứng minh" đúng điểm kiểm tra kỷ nguyên (Lưu ý: vị trí cuối cùng trong mỗi kỷ nguyên được gọi là điểm kiểm tra (điểm kiểm tra) và vị trí là thời gian cần thiết để tạo khối do giao thức đặt (6 giây));
Phần thưởng cho việc "chứng minh" rằng đầu chuỗi chính xác (khối trên cùng) được xác định;
Phần thưởng cho "bằng chứng" được đưa vào chuỗi một cách nhanh chóng (nếu "bằng chứng" được đưa vào sau 1 vị trí, người xác minh sẽ nhận được toàn bộ phần thưởng; nếu nó được đưa vào sau n vị trí Trên chuỗi, phần thưởng nhận được sẽ là 1/n của tất cả các phần thưởng);
Phần thưởng cho việc "chứng minh" rằng khối phân đoạn chính xác đã được xác định.
Trong mỗi trường hợp, phần thưởng thực tế được tính như sau. Nếu B là phần thưởng cơ bản và P là tỷ lệ người xác thực thực hiện thao tác "bằng chứng" mong muốn, thì bất kỳ người xác thực nào thực hiện thao tác được yêu cầu sẽ được thưởng B*P, trong khi bất kỳ người xác nhận nào lẽ ra phải thực hiện thao tác có liên quan nhưng đã không phải Trình xác thực không làm điều này sẽ bị phạt với -B. Mục tiêu của cơ chế “thưởng tập thể” này là “ai làm tốt hơn thì mọi người làm tốt hơn”, từ đó hạn chế yếu tố phá hoại. (Xem bài viết này [13] để biết mô tả về các yếu tố phá hoại và tại sao việc hạn chế chúng lại quan trọng)
Lưu ý rằng điểm 4 ở trên là một ngoại lệ; phần thưởng này phụ thuộc vào độ trễ của "bằng chứng" được thông qua, không phụ thuộc vào hành vi của người xác thực và không có nguy cơ bị trừng phạt.
Bản thân phần thưởng cơ bản B được tính như sau, trong đó D1...Dn là kích thước tiền gửi của người xác thực và k là một hằng số. Đây là sự thỏa hiệp giữa hai mô hình phổ biến là (i) đặt tỷ lệ phần thưởng cố định, tức là k*Di và (ii) đặt tổng phần thưởng cố định, tức là.
Lập luận chính chống lại (i) là mô hình này mang lại hai điều không chắc chắn cho mạng: tổng số tiền được phát hành là không chắc chắn và tổng số cam kết tham gia là không chắc chắn (vì nếu tỷ lệ phần thưởng cố định quá thấp, thì về cơ bản là không một người sẽ tham gia, điều này đe dọa toàn bộ mạng lưới; và nếu tỷ lệ phần thưởng cố định quá cao, sẽ có quá nhiều người tham gia, làm cho lượng tiền lưu thông cao bất ngờ).
Lập luận chính chống lại (ii) là mô hình này sẽ khiến mạng dễ bị “tấn công làm nản lòng” hơn, xem [13] để biết chi tiết.
Người đề xuất khối được thưởng 1/8 phần thưởng cơ bản vì đã bao gồm "bằng chứng" trong khối, nhằm khuyến khích người đề xuất khối lắng nghe thông tin càng nhiều càng tốt và chấp nhận càng nhiều thông tin càng tốt.
Thời gian trực tuyến để hòa vốn
chữ
Giả sử có hai loại người xác minh: (i) người xác minh trực tuyến đóng vai trò và (ii) người xác minh ngoại tuyến. Nếu loại người xác minh trước đây là một phần P và phần thưởng cơ bản là B, thì người xác minh trực tuyến sẽ nhận được The phần thưởng là: thưởng B*4P cho các trường hợp thứ 1, 2, 3 và 5 ở trên + 7/8*B*(P+(P*(1-P))/2+(P *(1-P)^2) /3+...) (vì "bằng chứng" có thể bị chậm đưa vào tiêu đề chuỗi do không có trình xác thực) + phần thưởng cho người đề xuất khối 1/8*B*P . Người xác minh vắng mặt (nghĩa là phải tham gia xác minh nhưng không thực sự xác minh) sẽ bị phạt B*4. Do đó, nếu tất cả những người xác minh khác đang trực tuyến, thì người xác minh đó sẽ được thưởng B*5 khi trực tuyến và bị phạt B*4 khi ngoại tuyến, vì vậy nếu người xác minh trực tuyến với ≥4/(4+ 5) ≈ 44,44%, thì người xác minh đó sẽ có thể hòa vốn (break even). Nếu P=2/3 (nghĩa là người xác minh trực tuyến chiếm 2/3 tổng số người xác minh), thì người xác minh sẽ được thưởng vì trực tuyến là ≈B*(2/3*4.125+7/8*0.81 )≈B *3,46, hoặc sẽ đạt cán cân thanh toán do thời gian trực tuyến ≥ 53,6%.
Inacivity leak
Tuy nhiên, nếu P thấp hơn 2/3 (tức là số người xác minh trực tuyến ít hơn 2/3 tổng số), thì những người xác minh ngoại tuyến sẽ bị phạt gọi là "rò rỉ không hoạt động".
Nếu chuỗi Ethereum 2.0 không đạt được kết quả cuối cùng trong hơn 4 kỷ nguyên, các hình phạt bổ sung sẽ được thêm vào sao cho phần thưởng tối đa có thể bằng 0 (người xác minh không thực hiện đúng các thao tác sẽ bị phạt), và hình phạt thứ hai sẽ được thêm vào, điều này sẽ tăng tỷ lệ thuận theo bao nhiêu kỷ nguyên không đạt được mục đích cuối cùng. Điều này nhằm đảm bảo rằng nếu hơn 1/3 số người xác nhận ngoại tuyến, những người xác nhận ngoại tuyến này sẽ bị trừng phạt nghiêm khắc hơn và hình phạt này sẽ tăng theo cấp số nhân theo thời gian.
Điều này sẽ có ba hiệu ứng:
Trình xác thực ngoại tuyến sẽ bị phạt nặng hơn, bởi vì tại thời điểm này, trình xác thực ngoại tuyến thực sự sẽ ngăn khối được hoàn thiện;
Phục vụ mục tiêu "hình phạt chống tương quan" (giải thích thêm bên dưới)
Đảm bảo rằng nếu hơn 1/3 số người xác thực ngoại tuyến cùng một lúc, thì số lượng người xác thực cuối cùng trực tuyến sẽ phục hồi thành 2/3 tổng số, bởi vì số tiền gửi giảm dần của người xác thực ngoại tuyến sẽ khiến họ bị trục xuất khỏi xếp hạng trình xác thực.
Điều này có nghĩa là nếu 50% người xác thực ngoại tuyến, thì khối sẽ được hoàn thiện lại sau 21 ngày, vì sau 21 ngày, tất cả người xác thực ngoại tuyến đã mất 50% số tiền gửi (16 ETH) và nếu khoản tiền gửi của người xác thực thấp hơn 16 ETH, anh ta sẽ bị trục xuất khỏi cấp bậc trình xác nhận.
chữ
Cắt giảm & hình phạt chống tương quan
Nếu người xác thực bị phát hiện vi phạm các điều kiện cắt giảm của Casper FFG, thì người xác thực đó sẽ bị phạt (mất một phần cổ phần); nếu những người xác thực khác bị cắt giảm cùng thời điểm (cụ thể là từ 18 ngày trước khi người xác minh bị trừng phạt đến khoảng thời gian khi người xác minh thoát khỏi người xác minh), thì hình phạt sẽ gấp ba lần so với lần trước. Điều này phục vụ một số mục đích:
Chỉ khi một người xác thực có hành vi sai trái với nhiều người xác nhận khác cùng một lúc thì hành vi của người xác nhận đó mới có thể gây ra thiệt hại thực sự cho mạng, vì vậy hình phạt trong trường hợp này sẽ nghiêm khắc hơn;
Điều này trừng phạt nặng nề cuộc tấn công thực tế, nhưng rất nhẹ đối với những sai lầm cá nhân có thể không ác ý;
Điều này ngăn cản mọi người tham gia nhóm trình xác thực lớn nhất.
chữ ký BLS
chữ
Chúng tôi sẽ sử dụng chữ ký BLS vì chữ ký BLS thân thiện với tập hợp: một tin nhắn M được xử lý bởi các khóa k1 và k2 (các khóa công khai tương ứng K1=G*k1, K2=G*k2, trong đó G là điểm cơ sở của đường cong elliptic) . Bất kỳ hai chữ ký S1 và S2 của có thể được tổng hợp đơn giản bằng phép cộng điểm đường cong elip: S1+S2. Điều này cho phép hàng nghìn chữ ký được tạo, mỗi chữ ký có chi phí cận biên là một bit dữ liệu (để biểu thị sự hiện diện của một khóa công khai cụ thể trong chữ ký tổng hợp đó) và một đường cong elip bổ sung để tính toán.
Chúng tôi sử dụng chữ ký trong thông báo thế chấp của người xác thực làm bằng chứng về quyền sở hữu, chỉ định khóa ký và thông tin quan trọng khác, chẳng hạn như khóa rút tiền.
tiêu đề phụ
lựa chọn ngẫu nhiên của người xác minh<- hash(seed,Hạt giống được sử dụng để đạt được tính ngẫu nhiên đạt được bằng cách "trộn lẫn" một giá trị mà người đề xuất khối phải tiết lộ (nghĩa là hạt giống
new_data)) sẽ được cập nhật trong mỗi khối. Cũng giống như khóa con của bằng chứng ký quỹ, các giá trị của người xác minh được xác định ngay sau khi người xác minh đưa ra cam kết và bên thứ ba không thể tính toán khóa con, nhưng khi khóa con được tiết lộ bởi tài nguyên, hãy xác thực nó (cơ chế này là đôi khi được gọi là RANDAO).
Trong tương lai, chúng tôi dự định sử dụng VDF (Chức năng trì hoãn có thể xác minh) để tăng cường hơn nữa tính mạnh mẽ của các hạt giống ngẫu nhiên chống lại sự thao túng.
chữ
Xáo trộn trình xác thực
Trong mỗi kỷ nguyên, chúng tôi sử dụng hoán đổi hoặc không xáo trộn [13] để xáo trộn các trình xác thực và phân công trách nhiệm. Thuật toán này đảm bảo rằng:
Vì xáo trộn là một hoán vị, nên mỗi người xác thực được bổ nhiệm làm thành viên của một ủy ban dài hạn trong mỗi kỷ nguyên;
chữ
Ủy ban liên kết chéo
Trong mỗi kỷ nguyên, mỗi phân đoạn sẽ thực hiện liên kết chéo (liên kết ngang), nghĩa là chọn ngẫu nhiên 2/3 số người xác thực từ ủy ban phân đoạn (số lượng người xác nhận trong mỗi ủy ban phân đoạn là khoảng 128). trong phân đoạn kể từ khi liên kết chéo cuối cùng được ký (do liên kết chéo trong phân đoạn có thể bị lỗi, hàm băm có thể đại diện cho dữ liệu của tối đa 64 kỷ nguyên đầu tiên; nếu có nhiều kỷ nguyên liên tiếp trong phân đoạn. Nếu liên kết chéo đầu tiên không thành công, nó có thể lấy nhiều liên kết chéo thành công để bắt kịp).
Số lượng người xác thực trên mỗi ủy ban phân đoạn được đặt thành 128 vì đây là con số tối thiểu để chống lại kẻ tấn công vô tình kiểm soát 2/3 số thành viên ủy ban trong khi kiểm soát ít hơn 1/3 tổng số người xác thực. Theo định lý nhị thức, cơ hội kẻ tấn công kiểm soát 2/3 số thành viên ủy ban là 5,55*10^(-15)
Sau mỗi kỷ nguyên (64 khối, khoảng 6,4 phút), chuỗi đèn hiệu sẽ tổ chức lại một ủy ban phân đoạn cho mỗi chuỗi phân đoạn (nghĩa là phá vỡ trình xác thực). Mục đích của trình xác thực xáo trộn nhanh là để đảm bảo rằng nếu kẻ tấn công muốn tấn công chuỗi phân đoạn, kẻ tấn công sẽ cần phải nhanh chóng phá hủy (chiếm quyền kiểm soát) ủy ban phân đoạn.
chữ
ủy ban dài hạn
Cứ sau 27 giờ hoặc lâu hơn, hệ thống sẽ chọn một ủy ban liên tục cho mỗi chuỗi phân đoạn. Tại bất kỳ thời điểm nào, mọi trình xác thực trong hệ thống Ethereum 2.0 đều là thành viên của một trong những ủy ban dài hạn này. Các ủy ban dài hạn chịu trách nhiệm đề xuất các khối phân đoạn, cung cấp cho người dùng một số mức độ đảm bảo về các khối phân đoạn (cho đến khi khối phân đoạn đó được đưa vào liên kết chéo) và các khách hàng nhẹ có thể dựa vào các ủy ban dài hạn. Để duy trì sự ổn định của mạng P2P và hiệu quả của các ứng dụng khách nhẹ, các thay đổi ủy ban dài hạn tương đối ít xảy ra (trong khi các ủy ban phân đoạn được thay đổi cứ sau ~ 6 phút).
Để tiếp tục duy trì tính ổn định của mạng, không phải tất cả các trình xác nhận sẽ được luân chuyển từ ủy ban dài hạn trong khoảng thời gian n sang ủy ban dài hạn trong khoảng thời gian n+1 cùng một lúc; thay vào đó, luân phiên của từng trình xác thực sẽ bị trì hoãn cho đến Vòng quay tiếp theo tại một thời điểm ngẫu nhiên trong một khoảng thời gian.
tiêu đề phụ
Quy tắc lựa chọn ngã ba LMD GHOST
Quy tắc lựa chọn ngã ba LMD GHOST sẽ kết hợp thông tin từ tất cả các trình xác thực để đảm bảo rằng trong các trường hợp bình thường, không thể đảo ngược bất kỳ khối nào. Vì quy tắc lựa chọn ngã ba này dựa trên tất cả các trình xác nhận, nên nó cũng đảm bảo rằng các khối không thể bị đảo ngược trừ khi kẻ tấn công kiểm soát hơn 50% số trình xác nhận, trong trường hợp đó, kẻ tấn công không thể đạt được nhiều lợi thế bằng cách thao túng tính ngẫu nhiên.
tiêu đề phụ
Cấu trúc chuỗi Beacon/Shard Chain
Cấu trúc của hệ thống phân đoạn Ethereum 2.0 bao gồm một "chuỗi đèn hiệu" trung tâm điều phối tất cả các hoạt động và 1024 chuỗi phân đoạn. Mỗi chuỗi phân đoạn được kết nối thường xuyên với chuỗi báo hiệu thông qua liên kết ngang.
Các lựa chọn thay thế cho cấu trúc sharding này:
(1) Ký các khối phân đoạn thông qua ủy ban và đặt tất cả các khối phân đoạn trực tiếp vào chuỗi đèn hiệu;
(2) Không có chuỗi đèn hiệu, nhưng tất cả các chuỗi phân đoạn được kết nối thông qua một cấu trúc nhất định.
Lý do tại sao cấu trúc trên (1) bị bỏ qua là nên đặt thời gian 6 giây (khe) cho khối chuỗi phân đoạn, nhưng thực hiện 1024 liên kết chéo trên chuỗi đèn hiệu cứ sau 6 giây sẽ dẫn đến Chuỗi chịu tải trọng rất cao.
Lý do từ bỏ cấu trúc trong (2) của lời kêu gọi là cấu trúc chuỗi đèn hiệu trục và nan hoa dễ thực hiện và dễ hiểu hơn bất kỳ cấu trúc phức tạp nào.
Thiết kế chuỗi mảnh
Mỗi phân đoạn là một chuỗi bán độc lập có thể xử lý các khối nhanh hơn các khối tổng hợp được liên kết chéo (mục tiêu 3-6 giây). Điều này cho phép các giao dịch nhanh chóng đạt được một số mức xác nhận thông qua ủy ban dài hạn của phân đoạn trước khi được xác nhận bởi chuỗi đèn hiệu (bằng cách liên kết chéo).
Cấu trúc của chuỗi phân đoạn sao cho mỗi khối được chứng thực bởi từng người xác minh của ủy ban phân đoạn, điều này đảm bảo tính đơn giản của việc xác minh và đảm bảo rằng khối phân đoạn có mức độ xác nhận khá cao; lớn Hầu hết các ứng dụng xử lý các giá trị thấp hơn nên có thể dựa vào một xác nhận duy nhất.
Khi bắt đầu mỗi kỷ nguyên, mỗi khối phân đoạn chứa một con trỏ tới khối cha của nó và một con trỏ tới khối báo hiệu. Sự kết hợp nửa chặt chẽ giữa beacon chain và shard chain là để (i) đảm bảo rằng shard chain biết thông tin về ủy ban dài hạn của nó (vì thông tin này được tạo ra bởi các khối chain Shard là một cách khả thi để quyết định xem chain nào là chuỗi đèn hiệu kinh điển.
Trạng thái chuỗi phân đoạn (phần thưởng, hình phạt, bộ tích lũy lịch sử) được cố ý thiết kế nhỏ hơn kích thước khối để đảm bảo rằng trạng thái chuỗi phân đoạn có thể được đặt hoàn toàn vào chuỗi đèn hiệu nếu bằng chứng gian lận yêu cầu (mặc dù điều này chỉ có thể được Giới hạn sẽ được nới lỏng trong giai đoạn 2, trong đó trạng thái của từng môi trường thực thi riêng lẻ sẽ bị giới hạn bởi kích thước này, nhưng tất cả các trạng thái cộng lại sẽ rất lớn, do đó, bằng chứng gian lận sẽ yêu cầu bằng chứng Merkle).
dữ liệu liên kết chéo
Một liên kết chéo chứa data_root, gốc Merkle của cấu trúc dữ liệu chứa tất cả các khối phân đoạn trong một phân đoạn kể từ liên kết chéo cuối cùng. Cấu trúc dữ liệu liên kết chéo này + gốc có nhiều mục tiêu:
Cho beacon chain biết đâu là các khối chain shard chính tắc;
Tạo một mảng byte đơn giản có thể được đánh giá để tìm bằng chứng gian lận.
tiêu đề phụ
Vòng đời của trình xác thực
lời hứa
Trình xác minh thực hiện cam kết ETH bằng cách gửi một giao dịch (giao dịch này sẽ gọi một chức năng của hợp đồng tiền gửi được triển khai trên chuỗi Eth1.0) và cuối cùng chúng tôi sẽ thêm phương thức cam kết trên chuỗi Eth2.0. Hành động này của người xác minh làm rõ:
khóa chung tương ứng với khóa riêng được sử dụng để ký tin nhắn;
Thông tin xác thực rút tiền (nghĩa là hàm băm khóa công khai, sẽ được sử dụng để rút tiền khi người xác minh hoàn tất xác minh)
số tiền cầm cố
Các giá trị này đều được ký bởi khóa ký. Mục đích của việc tách khóa ký khỏi khóa rút tiền là để làm cho khóa rút tiền rủi ro hơn trở nên an toàn hơn (khóa rút tiền ngoại tuyến và sẽ không được chia sẻ với bất kỳ nhóm cam kết nào, v.v.) và khóa ký được sử dụng để ký tin nhắn trong mỗi thời đại.
Hợp đồng tiền gửi nắm giữ gốc Merkle của tất cả các khoản cam kết. Sau khi gốc Merkle được người xác thực cam kết được đưa vào chuỗi Eth2.0 (thông qua cơ chế bỏ phiếu dữ liệu Eth1.0), người đề xuất khối Eth2.0 có thể gửi bằng chứng Merkle về cam kết và bắt đầu quy trình cam kết.
kích hoạt
Khi người xác minh gửi một giao dịch đến hợp đồng thế chấp, nó sẽ ngay lập tức được thêm vào bảng đăng ký người xác minh, nhưng người xác minh ban đầu không hoạt động. Trình xác thực sẽ chỉ được kích hoạt sau ít nhất 4 kỷ nguyên; lý do tại sao trình xác thực cần đợi ít nhất 4 kỷ nguyên (khoảng 6,4 phút mỗi kỷ nguyên) là để đảm bảo rằng RANDAO không bị thao túng và nếu nhiều trình xác thực tham gia cùng một lúc. trong, N đó có thể vượt quá 4.
Nếu tổng số người xác minh hiện có trong Eth2.0 là |V|, thì số lượng người xác minh tối đa có thể được thêm vào trong mỗi kỷ nguyên sẽ là max(4, |V|/65536); nếu có nhiều người xác minh muốn tham gia, thì họ sẽ cần xếp hàng và hệ thống sẽ xử lý nhanh nhất có thể.
từ bỏ
Khi người xác thực rút khỏi hệ thống Eth2.0 (dù bằng cách đăng thông báo thoát tự nguyện hay thoát do bị gạch chéo), người xác nhận cũng sẽ cần phải xếp hàng để rút khỏi hệ thống. giống như số lượng trình xác nhận mới tối đa có thể được thêm vào như mô tả ở trên.
Lý do cho giới hạn hàng đợi tham gia/thoát mới này là để đảm bảo rằng tổng số người xác thực trong hệ thống không thay đổi quá nhanh giữa hai thời điểm bất kỳ, điều này đảm bảo rằng miễn là người xác thực đăng nhập đủ thường xuyên (nếu tổng số người xác thực số ≥ 262144, thì người xác minh được đảm bảo có thể đăng nhập 1-2 tháng một lần), thì nó có thể đảm bảo rằng vẫn có sự chắc chắn giữa chuỗi Ethereum cũ và mới. Các nguyên tắc liên quan tham khảo [17] và [18].
rút tiền
Sau khi người xác thực đã thoát thành công qua hàng đợi, sẽ có khoảng thời gian chờ khoảng 27 giờ trước khi có thể thực hiện rút tiền. Thời gian chờ đợi này có một số tác dụng:
Điều này đảm bảo rằng nếu trình xác nhận hoạt động sai, sẽ có thời gian để phát hiện hành vi sai và cắt bỏ trình xác nhận;
Điều này giúp hệ thống có thời gian phân phối phần thưởng phân đoạn giai đoạn cuối cho người xác thực đó;
Điều này cung cấp thời gian cho một thử thách đối với Bằng chứng ký quỹ được bắt đầu.
Trong giai đoạn 0, những người xác thực muốn "rút tiền" thực sự không thể làm như vậy; trong các giai đoạn sau, họ sẽ có thể chuyển số tiền mà người xác nhận đã rút sang môi trường thực thi.
cân bằng hiệu quả
Hầu hết các phép tính dựa trên số dư của trình xác nhận đều sử dụng "số dư hiệu dụng (EB)" của trình xác thực; ngoại lệ duy nhất là các phép tính làm tăng hoặc giảm số dư của trình xác thực. Chỉ khi số dư B của người xác minh thấp hơn EB hoặc cao hơn EB+1.5, EB mới được điều chỉnh bằng với sàn(B). Điều này nhằm đảm bảo rằng số dư hiệu dụng không thay đổi quá thường xuyên, giảm lượng hàm băm cần thiết để tính toán lại trạng thái trong mỗi kỷ nguyên; trung bình, chỉ cần cập nhật số dư và mỗi trình xác thực cần cập nhật số dư hiệu dụng tương đối ít hơn .
tiêu đề phụ
cơ chế ngã ba
Cấu trúc dữ liệu fork chứa (i) "ID fork" hiện tại, (ii) "ID fork" trước đó và (iii) vị trí đã chuyển đổi hai fork. ID ngã ba ở chiều cao khối hiện tại ảnh hưởng đến chữ ký hợp lệ của tất cả các thông báo; do đó, một thông báo được ký bằng một ID ngã ba là không hợp lệ đối với chức năng xác minh sử dụng bất kỳ ID ngã ba nào khác.
Việc rẽ nhánh có thể được thực hiện bằng cách thêm một quá trình chuyển đổi trạng thái vào một "khe rẽ nhánh". Chức năng xác minh chữ ký sẽ sử dụng ID ngã ba của vị trí đặt thư để xác minh thư. ID ngã ba này có thể là ID ngã ba trước đó hoặc ID ngã ba hiện tại.
Nếu bất kỳ người dùng nào không muốn tham gia một ngã ba, chỉ cần ở lại chuỗi không thay đổi ID ngã ba trong vị trí ngã ba. Cả hai chuỗi có thể tiếp tục tồn tại và người xác thực có thể tự do xác thực cả hai chuỗi mà không bị phạt.
Ghi chú: Bản dịch đã bị xóa
[1]:https://radicalxchange.org/blog/posts/2018-11-26-4m9b8b/
[2]:https://vitalik.ca/general/2018/08/26/layer_1.html
[3]:https://vitalik.ca/general/2019/06/12/plasma_vs_sharding.html
[4]:https://vitalik.ca/general/2018/12/05/cbc_casper.html
[5]:https://medium.com/@aditya.asgaonkar/casper-cbc-simplified-2370922f9aa6
[6]:https://eprint.iacr.org/2015/702.pdf
[7]:https://bitcoin.stackexchange.com/questions/38437/what-is-spv-mining-and-how-did-it-inadvertently-cause-the-fork-after-bip66-wa
[8]:https://twitter.com/VitalikButerin/status/1145576103089602560
[9]:https://eprint.iacr.org/2015/702.pdf
[10]:https://bitcoin.stackexchange.com/questions/38437/what-is-spv-mining-and-how-did-it-inadvertently-cause-the-fork-after-bip66-wa
[11]:https://arxiv.org/abs/1507.06183
[12]:https://github.com/ethereum/research/wiki/A-note-on-data-availability-and-erasure-coding
[13]:https://ethresear.ch/t/censorship-detectors-via-99-fault-tolerant-consensus/2878
[14]:https://github.com/ethereum/research/raw/master/papers/discouragement/discouragement.pdf
[15]:https://link.springer.com/content/pdf/10.1007%2F978-3-642-32009-5_1.pdf
[16]:https://github.com/ethereum/eth2.0-specs/blob/master/specs/core/0_fork-choice.md
[17]:https://ethresear.ch/t/rate-limiting-entry-exits-not-withdrawals/4942
[18]:https://ethresear.ch/t/weak-subjectivity-under-the-exit-queue-model/5187


