Polkadot : vision d'un cadre multi-chaînes hétérogène
Tóm tắt
POLKADOT: TẦM NHÌN VỀ KHUNG KHUNG ĐA CHUỖI KHÔNG ĐỒNG THỂ DỰ THẢO 1 DR. GỖ GAVIN NGƯỜI SÁNG LẬP, ETHEREUM & PARITY [email protected] Trừu tượng. Các kiến trúc blockchain ngày nay đều gặp phải một số vấn đề, đặc biệt là các phương tiện thực tế về khả năng mở rộng và khả năng mở rộng. Chúng tôi tin rằng điều này bắt nguồn từ việc ràng buộc hai phần rất quan trọng của cấu trúc đồng thuận, đó là tính chuẩn tắc và tính giá trị quá chặt chẽ với nhau. Bài viết này giới thiệu một kiến trúc đa chuỗi không đồng nhất, về cơ bản làm cho hai điều này trở nên khác biệt. Trong việc chia thành hai phần này và bằng cách giữ cho chức năng tổng thể được cung cấp ở mức tối thiểu về an ninh và vận tải, chúng tôi giới thiệu các phương tiện thực tế về khả năng mở rộng cốt lõi tại chỗ. Khả năng mở rộng được giải quyết thông qua một cách tiếp cận phân chia và chinh phục đối với hai chức năng này, mở rộng ra khỏi cốt lõi liên kết của nó thông qua việc khuyến khích các nút công khai không đáng tin cậy. Bản chất không đồng nhất của kiến trúc này cho phép nhiều loại hệ thống đồng thuận rất khác nhau tương tác trong một “liên đoàn” phi tập trung hoàn toàn, không cần tin cậy, cho phép các mạng mở và đóng có quyền truy cập không cần tin cậy vào lẫn nhau. Chúng tôi đưa ra phương tiện cung cấp khả năng tương thích ngược với một hoặc nhiều mạng có sẵn như Ethereum. Chúng tôi tin rằng một hệ thống như vậy cung cấp một thành phần cấp cơ sở hữu ích trong việc tìm kiếm tổng thể một giải pháp thực tế. hệ thống có thể triển khai có khả năng đạt được mức độ thương mại toàn cầu về khả năng mở rộng và quyền riêng tư. 1. Lời nói đầu Đây được coi là bản tóm tắt “tầm nhìn” kỹ thuật về một hướng khả thi có thể được thực hiện để phát triển hơn nữa mô hình blockchain cùng với một số lý do căn bản giải thích tại sao hướng này lại hợp lý. Nó đặt ra trong càng nhiều chi tiết càng tốt ở giai đoạn phát triển này một hệ thống có thể mang lại sự cải thiện cụ thể về số khía cạnh của công nghệ blockchain. Nó không nhằm mục đích cụ thể hóa, hình thức hay cách khác. Nó không nhằm mục đích toàn diện cũng như không phải là một thiết kế cuối cùng. Nó không nhằm mục đích bao gồm các khía cạnh không cốt lõi của khung như API, ràng buộc, ngôn ngữ và cách sử dụng. Điều này đáng chú ý là mang tính thử nghiệm; thông số ở đâu được chỉ định, chúng có thể thay đổi. Cơ chế sẽ được thêm vào, tinh chỉnh và loại bỏ để đáp ứng với cộng đồng ý tưởng và phê bình. Phần lớn của bài viết này có thể sẽ được sửa đổi như bằng chứng thực nghiệm và nguyên mẫu cung cấp cho chúng tôi thông tin về điều gì sẽ hiệu quả và điều gì không. Tài liệu này bao gồm mô tả cốt lõi của giao thức cùng với các ý tưởng về các hướng dẫn có thể được thực hiện để cải thiện các khía cạnh khác nhau. Người ta hình dung rằng cốt lõi mô tả sẽ được sử dụng làm điểm bắt đầu cho lần đầu tiên một loạt các bằng chứng về khái niệm. “Phiên bản 1.0” cuối cùng sẽ là dựa trên giao thức được cải tiến này cùng với các ý tưởng bổ sung đã được chứng minh và quyết tâm thực hiện cần thiết để dự án đạt được mục tiêu của nó. 1.1. Lịch sử. • 10/09/2016: 0.1.0-proof1 • 20/10/2016: 0.1.0-proof2 • 11/01/2016: 0.1.0-proof3 • 11/10/2016: 0.1.0 2. Giới thiệu Blockchain đã chứng tỏ nhiều hứa hẹn về tiện ích trên một số lĩnh vực bao gồm “Internet of Things” (IoT), tài chính, quản trị, quản lý danh tính, phân quyền web và theo dõi tài sản. Tuy nhiên, mặc dù hứa hẹn về công nghệ và những cuộc nói chuyện hoành tráng, chúng ta vẫn chưa thấy triển khai đáng kể trong thế giới thực của công nghệ hiện tại. Chúng tôi tin rằng đây là do năm thất bại chính của hiện tại. ngăn xếp công nghệ: Khả năng mở rộng: Bao nhiêu tài nguyên được chi tiêu trên toàn cầu về xử lý, băng thông và lưu trữ để hệ thống xử lý một giao dịch và có bao nhiêu giao dịch giao dịch có thể được xử lý hợp lý theo điều kiện cao điểm? Tính cô lập: Liệu nhu cầu khác nhau của nhiều người có thể các bên và đơn đăng ký có được giải quyết ở mức độ gần như tối ưu trong cùng một khuôn khổ không? Khả năng phát triển: Các công cụ này hoạt động tốt như thế nào? làm API có giải quyết được nhu cầu của nhà phát triển không? Tài liệu giáo dục có sẵn không? Có sự tích hợp phù hợp ở đó không? Quản trị: Mạng có thể duy trì tính linh hoạt để phát triển và thích nghi theo thời gian? Liệu các quyết định có thể được được thực hiện với tính toàn diện, hợp pháp và minh bạch để cung cấp sự lãnh đạo hiệu quả của một hệ thống phi tập trung? Khả năng ứng dụng: Công nghệ này có thực sự giải quyết được nhu cầu cấp bách không? “Phần mềm trung gian” khác có cần thiết để thu hẹp khoảng cách với ứng dụng thực tế? Trong công việc hiện tại, chúng tôi mong muốn giải quyết hai vấn đề đầu tiên vấn đề: khả năng mở rộng và khả năng cô lập. Điều đó nói lên rằng, chúng tôi tin khuôn khổ Polkadot có thể cung cấp những cải tiến có ý nghĩa cho từng loại vấn đề này. Triển khai blockchain hiện đại, hiệu quả như ứng dụng Parity Ethereum [17] có thể sản xuấtess vượt quá 3.000 giao dịch mỗi giây khi chạy trên phần cứng tiêu dùng hiệu suất cao. Tuy nhiên, thực tế hiện nay blockchain mạng thực tế bị giới hạn ở khoảng 30 giao dịch mỗi giây. Hạn chế này chủ yếu bắt nguồn từ thực tế là các cơ chế đồng thuận đồng bộ hiện tại yêu cầu biên độ an toàn về thời gian rộng. thời gian xử lý dự kiến, điều này càng trở nên trầm trọng hơn do 1
Résumé
POLKADOT : VISION D'UN CADRE MULTI-CHAÎNES HÉTÉROGÈNE PROJET 1 DR. GAVIN BOIS FONDATEUR, ETHEREUM & PARITÉ [email protected] Résumé. Les architectures blockchain actuelles souffrent toutes d'un certain nombre de problèmes, notamment les moyens pratiques d'extensibilité et d'évolutivité. Nous pensons que cela découle du fait de lier deux parties très importantes de l'architecture du consensus, à savoir canonicité et validité, trop étroitement liées. Cet article présente une architecture, la multi-chaîne hétérogène, ce qui distingue fondamentalement les deux. En compartimentant ces deux parties et en gardant la fonctionnalité globale fournie au minimum absolu de sécurité et de transport, nous introduisons des moyens pratiques d’extensibilité du noyau in situ. L'évolutivité est abordée via une approche « diviser pour mieux régner » sur ces deux fonctions, en s'éloignant de son noyau solidaire grâce à l'incitation des nœuds publics non fiables. La nature hétérogène de cette architecture permet à de nombreux types très divergents de systèmes de consensus d'interagir dans une « fédération » sans confiance et entièrement décentralisée, permettant aux réseaux ouverts et fermés d'avoir un accès sans confiance à les uns les autres. Nous proposons un moyen d'assurer une rétrocompatibilité avec un ou plusieurs réseaux préexistants tels que Ethereum. Nous pensons qu'un tel système constitue un élément de base utile dans la recherche globale d'un système implémentable capable d’atteindre les niveaux d’évolutivité et de confidentialité du commerce mondial. 1. Préface Ceci est destiné à être un résumé technique de la « vision » d'une direction possible qui pourrait être prise pour développer davantage le paradigme blockchain, ainsi que quelques justifications expliquant pourquoi cette direction est judicieuse. Il s'étend dans autant de détails que possible à ce stade de développement un système qui peut apporter une amélioration concrète sur un nombre d'aspects de la technologie blockchain. Il ne s’agit pas d’une spécification, formelle ou autre. Il n'est pas destiné à être exhaustif ni à être un conception finale. Il n’est pas destiné à couvrir les aspects non essentiels du framework tels que les API, les liaisons, les langages et utilisation. Ceci est particulièrement expérimental ; où les paramètres sont précisés, ils sont susceptibles de changer. Les mécanismes être ajouté, affiné et supprimé en réponse aux besoins de la communauté idées et critiques. De grandes parties de ce document seront probablement être révisé à mesure que les preuves expérimentales et le prototypage le donnent nous des informations sur ce qui fonctionnera et ce qui ne fonctionnera pas. Ce document comprend une description de base du protocole ainsi que des idées d'orientations qui peuvent être prises pour améliorer divers aspects. Il est prévu que le noyau description servira de point de départ à une première série de preuves de concept. Une dernière « version 1.0 » serait basé sur ce protocole raffiné ainsi que sur les idées supplémentaires qui ont fait leurs preuves et sont déterminées à nécessaires pour que le projet atteigne ses objectifs. 1.1. Histoire. • 10/09/2016 : 0.1.0-proof1 • 20/10/2016 : 0.1.0-proof2 • 01/11/2016 : 0.1.0-proof3 • 11/10/2016 : 0.1.0 2. Présentation Les blockchains se sont révélées très prometteuses dans plusieurs domaines, notamment celui de « l’Internet des objets ». (IoT), finance, gouvernance, gestion des identités, décentralisation du Web et suivi des actifs. Cependant, malgré le promesse technologique et grand discours, nous n'avons pas encore vu déploiement significatif dans le monde réel de la technologie actuelle. Nous pensons que cela est dû à cinq échecs majeurs du système actuel. piles technologiques : Évolutivité : combien de ressources sont dépensées à l'échelle mondiale sur le traitement, la bande passante et le stockage pour que le système puisse traiter une seule transaction et combien les transactions peuvent être raisonnablement traitées sous conditions de pointe ? Isolatabilité : les besoins divergents de plusieurs les parties et les demandes soient-elles traitées à un degré quasi optimal dans le même cadre ? Développabilité : dans quelle mesure les outils fonctionnent-ils ? Faire les API répondent-elles aux besoins des développeurs ? Des supports pédagogiques sont-ils disponibles ? Les bonnes intégrations sont-elles là ? Gouvernance : le réseau peut-il rester flexible évoluer et s'adapter au fil du temps ? Les décisions peuvent-elles être fait avec suffisamment d’inclusivité, de légitimité et transparence pour assurer un leadership efficace d’un système décentralisé ? Applicabilité : la technologie répond-elle réellement à elle seule à un besoin pressant ? Un autre « middleware » est-il nécessaire pour combler le fossé entre applications réelles ? Dans le présent travail, nous visons à aborder les deux premiers enjeux : évolutivité et isolabilité. Cela dit, nous croyons le cadre Polkadot peut apporter des améliorations significatives dans chacune de ces classes de problèmes. Des implémentations blockchain modernes et efficaces telles que le client Parité Ethereum [17] peut déclencheress au-delà de 3 000 transactions par seconde lors de l'exécution sur du matériel grand public performant. Cependant, le monde réel actuel Les réseaux blockchain sont pratiquement limités à une trentaine de transactions par seconde. Cette limitation provient principalement du fait que les mécanismes actuels de consensus synchrone nécessitent de larges marges de sécurité temporelles sur le délai de traitement prévu, qui est exacerbé par le 1
Giới thiệu
Blockchain đã chứng tỏ nhiều hứa hẹn về tiện ích trên một số lĩnh vực bao gồm “Internet of Things” (IoT), tài chính, quản trị, quản lý danh tính, phân quyền web và theo dõi tài sản. Tuy nhiên, mặc dù hứa hẹn về công nghệ và những cuộc nói chuyện hoành tráng, chúng ta vẫn chưa thấy triển khai đáng kể trong thế giới thực của công nghệ hiện tại. Chúng tôi tin rằng đây là do năm thất bại chính của hiện tại. ngăn xếp công nghệ: Khả năng mở rộng: Bao nhiêu tài nguyên được chi tiêu trên toàn cầu về xử lý, băng thông và lưu trữ để hệ thống xử lý một giao dịch và có bao nhiêu giao dịch giao dịch có thể được xử lý hợp lý theo điều kiện cao điểm? Tính cô lập: Liệu nhu cầu khác nhau của nhiều người có thể các bên và đơn đăng ký có được giải quyết ở mức độ gần như tối ưu trong cùng một khuôn khổ không? Khả năng phát triển: Các công cụ này hoạt động tốt như thế nào? làm API có giải quyết được nhu cầu của nhà phát triển không? Tài liệu giáo dục có sẵn không? Có sự tích hợp phù hợp ở đó không? Quản trị: Mạng có thể duy trì tính linh hoạt để phát triển và thích nghi theo thời gian? Liệu các quyết định có thể được được thực hiện với tính toàn diện, hợp pháp và minh bạch để cung cấp sự lãnh đạo hiệu quả của một hệ thống phi tập trung? Khả năng ứng dụng: Công nghệ này có thực sự giải quyết được nhu cầu cấp bách không? “Phần mềm trung gian” khác có cần thiết để thu hẹp khoảng cách với ứng dụng thực tế? Trong công việc hiện tại, chúng tôi mong muốn giải quyết hai vấn đề đầu tiên vấn đề: khả năng mở rộng và khả năng cô lập. Điều đó nói lên rằng, chúng tôi tin khuôn khổ Polkadot có thể cung cấp những cải tiến có ý nghĩa cho từng loại vấn đề này. Triển khai blockchain hiện đại, hiệu quả như ứng dụng Parity Ethereum [17] có thể xử lý vượt quá 3.000 giao dịch mỗi giây khi chạy trên phần cứng tiêu dùng hiệu suất cao. Tuy nhiên, thực tế hiện nay blockchain mạng thực tế bị giới hạn ở khoảng 30 giao dịch mỗi giây. Hạn chế này chủ yếu bắt nguồn từ thực tế là các cơ chế đồng thuận đồng bộ hiện tại yêu cầu biên độ an toàn về thời gian rộng. thời gian xử lý dự kiến, điều này càng trở nên trầm trọng hơn doPOLKADOT: TẦM NHÌN VỀ KHUNG KHUNG ĐA CHUỖI KHÔNG ĐỒNG THỂ DỰ THẢO 1 2 mong muốn hỗ trợ việc triển khai chậm hơn. Điều này là do kiến trúc đồng thuận cơ bản: cơ chế chuyển đổi trạng thái hoặc phương tiện để các bên đối chiếu và thực hiện các giao dịch, về cơ bản logic của nó gắn liền với vào cơ chế “chuẩn hóa” đồng thuận, hoặc có nghĩa là các bên đồng ý về một trong số các có thể, hợp lệ, lịch sử. Điều này áp dụng như nhau cho cả hai hệ thống proof-of-work (PoW) như Bitcoin [15] và Ethereum [5,23] và các hệ thống bằng chứng cổ phần (PoS) như NXT [8] và Bitshares [12]: cuối cùng tất cả đều phải chịu đựng những bất lợi giống nhau. Nó đơn giản chiến lược đã giúp blockchain thành công. Tuy nhiên, bằng cách kết hợp chặt chẽ hai cơ chế này thành một đơn vị duy nhất của giao thức, chúng tôi cũng kết hợp nhiều giao thức khác nhau các tác nhân và ứng dụng có hồ sơ rủi ro khác nhau, yêu cầu về khả năng mở rộng khác nhau và nhu cầu riêng tư khác nhau. Một kích thước không phù hợp với tất cả. Trường hợp này thường xảy ra là trong một mong muốn thu hút rộng rãi, mạng lưới áp dụng một mức độ bảo thủ dẫn đến mẫu số chung thấp nhất phục vụ tối ưu cho một số ít và cuối cùng dẫn đến thất bại trong khả năng đổi mới, thực hiện và thích ứng, đôi khi đột ngột như vậy. Một số hệ thống như v.d. Factom [21] bỏ hoàn toàn cơ chế chuyển trạng thái. Tuy nhiên, phần lớn các tiện ích mà chúng tôi mong muốn đòi hỏi khả năng chuyển trạng thái theo một máy trạng thái dùng chung. Bỏ nó đi là giải quyết được một vấn đề thay thế; nó không cung cấp một sự thay thế giải pháp. Do đó, có vẻ rõ ràng rằng một hướng đi hợp lý để khám phá như một lộ trình dẫn đến một máy tính phi tập trung có thể mở rộng nền tảng là tách rời kiến trúc đồng thuận khỏi cơ chế chuyển trạng thái. Và có lẽ không có gì đáng ngạc nhiên, đây là chiến lược mà Polkadot áp dụng như một giải pháp cho khả năng mở rộng. 2.1. Giao thức, triển khai và mạng. thích Bitcoin và Ethereum, Polkadot đề cập ngay đến giao thức mạng và giao thức chính (cho đến nay được giả định trước) mạng công cộng chạy giao thức này. Polkadot được dự định là một dự án mở và miễn phí, đặc tả giao thức theo giấy phép Creative Commons và mã được đặt theo giấy phép FLOSS. Dự án là được phát triển một cách cởi mở và chấp nhận sự đóng góp bất cứ nơi nào chúng hữu ích. Một hệ thống RFC, không khác gì Đề xuất cải tiến Python, sẽ cho phép một phương tiện cộng tác công khai về các thay đổi và nâng cấp giao thức. Triển khai ban đầu của chúng tôi về giao thức Polkadot sẽ được gọi là Nền tảng chẵn lẻ Polkadot và sẽ bao gồm việc triển khai giao thức đầy đủ cùng với API ràng buộc. Giống như các triển khai Parity blockchain khác, PPP được thiết kế để trở thành một ngăn xếp công nghệ blockchain có mục đích chung, không dành riêng cho mạng công cộng cũng như cho hoạt động tư nhân/liên doanh. Sự phát triển của nó vì thế cho đến nay đã được tài trợ bởi một số bên bao gồm thông qua một khoản trợ cấp từ chính phủ Anh. Tuy nhiên, bài viết này mô tả Polkadot theo bối cảnh của một mạng công cộng. Chức năng mà chúng ta hình dung trong một mạng công cộng là một tập hợp siêu chức năng được yêu cầu trong cài đặt thay thế (ví dụ: tư nhân và/hoặc tập đoàn). Hơn nữa, trong bối cảnh này, phạm vi đầy đủ của Polkadot có thể được mô tả và thảo luận rõ ràng hơn. Điều này có nghĩa người đọc nên biết rằng một số cơ chế nhất định có thể được mô tả (ví dụ: tương tác với các mạng công cộng khác) không liên quan trực tiếp đến Polkadot khi được triển khai trong các tình huống không công khai (“được phép”). 2.2. Công việc trước đây. Việc tách rời sự đồng thuận cơ bản khỏi quá trình chuyển đổi trạng thái đã được đề xuất một cách không chính thức riêng tư trong ít nhất hai năm—Max Kaye là người đề xuất chiến lược như vậy trong những ngày đầu của Ethereum. Một giải pháp có thể mở rộng phức tạp hơn được gọi là Chuỗi bers, có từ tháng 6 năm 2014 và được xuất bản lần đầu sau đó Năm đó1, đã đưa ra trường hợp về một chuỗi chuyển tiếp duy nhất và nhiều chuỗi đồng nhất cung cấp cơ chế thực thi liên chuỗi minh bạch. Sự mất kết hợp đã được trả giá cho thông qua độ trễ giao dịch—các giao dịch yêu cầu sự phối hợp của các phần khác nhau của hệ thống sẽ mất nhiều thời gian hơn để xử lý. Polkadot lấy phần lớn kiến trúc của nó từ đó và các cuộc trò chuyện tiếp theo với nhiều người khác nhau, mặc dù nó khác nhau rất nhiều về phần lớn thiết kế và quy định. Mặc dù không có hệ thống nào có thể so sánh được với Polkadot thực tế trong sản xuất, một số hệ thống có liên quan đã được đề xuất, mặc dù rất ít ở mức độ đáng kể chi tiết. Những đề xuất này có thểchia thành các hệ thống loại bỏ hoặc làm giảm khái niệm về một hệ thống thống nhất toàn cầu máy trạng thái, những máy cố gắng cung cấp một cách toàn cầu máy đơn kết hợp thông qua các mảnh đồng nhất và những mục tiêu chỉ nhắm đến sự không đồng nhất. 2.2.1. Hệ thống không có trạng thái toàn cầu. Factom [21] là một hệ thống thể hiện tính chuẩn mực mà không cần tuân theo giá trị, cho phép ghi chép dữ liệu một cách hiệu quả. Bởi vì sự tránh né trạng thái toàn cầu và những khó khăn với khả năng mở rộng mà điều này mang lại, nó có thể được coi là một giải pháp có thể mở rộng. Tuy nhiên, như đã đề cập trước đó, bộ số vấn đề mà nó giải quyết được nhỏ hơn đáng kể và nghiêm ngặt. Tangle [18] là một cách tiếp cận mới đối với các hệ thống đồng thuận. Thay vì sắp xếp các giao dịch thành các khối và hình thành sự đồng thuận về một danh sách được liên kết chặt chẽ để đưa ra thứ tự chuẩn mực toàn cầu về các thay đổi trạng thái, nó phần lớn từ bỏ ý tưởng về một trật tự có cấu trúc chặt chẽ và thay vào đó thúc đẩy biểu đồ tuần hoàn có hướng của các giao dịch phụ thuộc với các mục sau giúp chuẩn hóa các mục trước đó thông qua tài liệu tham khảo rõ ràng. Đối với những thay đổi trạng thái tùy ý, biểu đồ phụ thuộc này sẽ nhanh chóng trở nên khó hiểu, tuy nhiên đối với UTXO model2 đơn giản hơn nhiều thì điều này trở thành khá hợp lý. Bởi vì hệ thống chỉ có tính mạch lạc lỏng lẻo và các giao dịch thường độc lập với nhau. mặt khác, một lượng lớn sự song song toàn cầu trở nên khá tự nhiên. Sử dụng mô hình UTXO có tác dụng về việc giới hạn Tangle thành một loại “tiền tệ” chuyển giao giá trị thuần túy hệ thống hơn là bất cứ điều gì chung chung hoặc có thể mở rộng. Hơn nữa, nếu không có sự gắn kết chặt chẽ toàn cầu, sự tương tác với các hệ thống khác có xu hướng cần một sự kết nối tuyệt đối. kiến thức về trạng thái hệ thống—trở nên không thực tế. 1https://github.com/ethereum/wiki/wiki/Chain-Fibers-Redux 2đầu ra giao dịch chưa được chi tiêu, mô hình mà Bitcoin sử dụng, theo đó trạng thái thực sự là tập hợp địa chỉ được liên kết với một số giá trị; các giao dịch đối chiếu các địa chỉ đó và cải tổ chúng thành một bộ địa chỉ mới có tổng số tiền tương đương
POLKADOT: TẦM NHÌN VỀ KHUNG KHUNG ĐA CHUỖI KHÔNG ĐỒNG THỂ DỰ THẢO 1 3 2.2.2. Hệ thống chuỗi không đồng nhất. Chuỗi bên [3] là một đề xuất bổ sung vào giao thức Bitcoin sẽ cho phép tương tác không đáng tin cậy giữa chuỗi Bitcoin chính và các chuỗi bên bổ sung. Không có quy định nào cho bất kỳ mức độ tương tác 'phong phú' giữa các chuỗi bên: sự tương tác sẽ bị giới hạn ở việc cho phép các chuỗi bên được người giám sát tài sản của nhau, có hiệu lực—ở địa phương biệt ngữ—một chốt hai chiều 3. Tầm nhìn cuối cùng là về một khuôn khổ trong đó loại tiền tệ Bitcoin có thể được cung cấp chức năng bổ sung, nếu là ngoại vi, thông qua việc chốt nó lên một số chuỗi khác với sự chuyển đổi trạng thái kỳ lạ hơn hệ thống hơn giao thức Bitcoin cho phép. Theo nghĩa này, chuỗi bên giải quyết khả năng mở rộng hơn là khả năng mở rộng. Thật vậy, về cơ bản không có quy định nào về tính hợp lệ của chuỗi bên; tokens từ một chuỗi (ví dụ: Bitcoin) được tổ chức thay mặt cho chuỗi bên chỉ được bảo mật bởi khả năng của chuỗi bên để khuyến khích các thợ mỏ chuẩn hóa chuyển tiếp hợp lệ. Tính bảo mật của mạng Bitcoin không thể dễ dàng chuyển sang làm việc thay mặt cho người khác blockchains. Hơn nữa, một giao thức để đảm bảo Bitcoin các công cụ khai thác hợp nhất khai thác (nghĩa là nhân đôi sức mạnh chuẩn hóa của họ lên sức mạnh của chuỗi bên) và quan trọng hơn là xác thực các chuyển đổi của chuỗi bên nằm ngoài phạm vi phạm vi của đề xuất này. Cosmos [10] là một hệ thống đa chuỗi được đề xuất trong cùng một mạch với chuỗi bên, hoán đổi Nakamoto PoW phương pháp đồng thuận cho thuật toán Tendermint của Jae Kwon. Về cơ bản, nó mô tả nhiều chuỗi (hoạt động trong vùng) mỗi vùng sử dụng các phiên bản riêng lẻ của Tendermint, cùng với phương tiện liên lạc không tin cậy thông qua chuỗi trung tâm chính. Giao tiếp giữa các chuỗi này được giới hạn ở việc chuyển giao tài sản kỹ thuật số (“cụ thể là về tokens”) thay vì thông tin tùy ý, tuy nhiên, giao tiếp giữa các chuỗi như vậy có đường dẫn trở lại cho dữ liệu, ví dụ: để báo cáo cho người gửi về tình trạng chuyển tiền. Bộ xác thực cho các chuỗi được khoanh vùng và đặc biệt phương tiện khuyến khích họ, giống như chuỗi bên, được để lại như một bài toán chưa được giải quyết. Giả định chung là mỗi chuỗi được phân vùng sẽ tự giữ token giá trị mà lạm phát được sử dụng để thanh toán cho validators. Vẫn đang ở giai đoạn đầu về thiết kế, hiện tại đề xuất thiếu chi tiết toàn diện về các phương tiện kinh tế để đạt được khả năng mở rộng sự chắc chắn về giá trị toàn cầu. Tuy nhiên, sự gắn kết lỏng lẻo cần có giữa các vùng và trung tâm sẽ cho phép để có thêm tính linh hoạt đối với các tham số của vùng được khoanh vùng chuỗi so với chuỗi của một hệ thống thực thi mạnh hơn sự mạch lạc. 2.2.3. Casper. Chưa có đánh giá toàn diện hoặc so sánh song song giữa Casper [6] và Polkadot đã được thực hiện, mặc dù người ta có thể thực hiện khá sâu rộng (và do đó không chính xác) đặc tính của cả hai. Casper là sự mô phỏng lại cách thức thuật toán đồng thuận PoS có thể dựa trên việc người tham gia đặt cược vào ngã ba nào cuối cùng sẽ trở thành kinh điển. Sự xem xét đáng kể đã được đưa ra để đảm bảo rằng nó mạnh mẽ cho mạng phân nhánh, ngay cả khi được kéo dài và có một số mức độ mở rộng bổ sung dựa trên mô hình Ethereum cơ bản. Như như vậy, Casper cho đến nay có xu hướng trở thành một giải pháp đáng kể hơn giao thức phức tạp hơn Polkadot và các giao thức trước đó của nó, và một sai lệch đáng kể so với định dạng blockchain cơ bản. Nó vẫn chưa rõ Casper sẽ lặp lại như thế nào trong tương lai và cuối cùng nó sẽ trông như thế nào nếu được triển khai. Trong khi Casper và Polkadot đều đại diện cho các giao thức mới thú vị và, theo một nghĩa nào đó, là sự gia tăng của Ethereum, có sự khác biệt đáng kể giữa chúng mục tiêu cuối cùng và con đường để triển khai. Casper là một Ethereum Dự án lấy nền tảng làm trung tâm được thiết kế ban đầu là một sự thay đổi PoS đối với giao thức mà không mong muốn về cơ bản tạo ra blockchain có thể mở rộng quy mô. Điều quan trọng là nó được thiết kế để trở thành một hard-fork, thay vì bất kỳ thứ gì mở rộng hơn và do đó tất cả khách hàng và người dùng Ethereum sẽ cần phải nâng cấp hoặc duy trì một nhánh của việc áp dụng không chắc chắn. Do đó, việc triển khai trở nên khó khăn hơn đáng kể như vốn có trong một dự án phi tập trung có yêu cầu chặt chẽ. sự phối hợp là cần thiết. Polkadot khác nhau ở một số điểm; đầu tiên và quan trọng nhất, Polkadot được thiết kế để có thể mở rộng và thay đổi quy mô hoàn toàn blockchain thử nghiệm phát triển, triển khai và tương tác giường. Nó được chế tạo để trở thành một dây đai an toàn cho tương lai, có khả năng đồng hóa mới blockchaincông nghệ khi nó trở nên sẵn có mà không cần sự phối hợp phi tập trung quá phức tạp hoặc hard fork. Chúng tôi đã hình dung ra một số trường hợp sử dụng như như chuỗi liên minh được mã hóa và chuỗi tần số cao với thời gian chặn rất thấp, điều này không thực tế để thực hiện trong bất kỳ phiên bản tương lai nào của Ethereum hiện được hình dung. Cuối cùng, sự kết hợp giữa nó và Ethereum là vô cùng lỏng lẻo; không cần thực hiện hành động nào từ phía Ethereum để cho phép chuyển tiếp giao dịch không đáng tin cậy giữa hai mạng. Tóm lại, trong khi Casper/Ethereum 2.0 và Polkadot chia sẻ một số điểm tương đồng thoáng qua mà chúng tôi tin rằng mục tiêu cuối cùng của họ về cơ bản là khác nhau và thay vì cạnh tranh, hai giao thức cuối cùng có khả năng cùng tồn tại dưới một mối quan hệ đôi bên cùng có lợi trong tương lai gần.
Introduction
Les blockchains se sont révélées très prometteuses dans plusieurs domaines, notamment celui de « l’Internet des objets ». (IoT), finance, gouvernance, gestion des identités, décentralisation du Web et suivi des actifs. Cependant, malgré le promesse technologique et grand discours, nous n'avons pas encore vu déploiement significatif dans le monde réel de la technologie actuelle. Nous pensons que cela est dû à cinq échecs majeurs du système actuel. piles technologiques : Évolutivité : combien de ressources sont dépensées à l'échelle mondiale sur le traitement, la bande passante et le stockage pour que le système puisse traiter une seule transaction et combien les transactions peuvent être raisonnablement traitées sous conditions de pointe ? Isolatabilité : les besoins divergents de plusieurs les parties et les demandes soient-elles traitées à un degré quasi optimal dans le même cadre ? Développabilité : dans quelle mesure les outils fonctionnent-ils ? Faire les API répondent-elles aux besoins des développeurs ? Des supports pédagogiques sont-ils disponibles ? Les bonnes intégrations sont-elles là ? Gouvernance : le réseau peut-il rester flexible évoluer et s'adapter au fil du temps ? Les décisions peuvent-elles être fait avec suffisamment d’inclusivité, de légitimité et transparence pour assurer un leadership efficace d’un système décentralisé ? Applicabilité : la technologie répond-elle réellement à elle seule à un besoin pressant ? Un autre « middleware » est-il nécessaire pour combler le fossé entre applications réelles ? Dans le présent travail, nous visons à aborder les deux premiers enjeux : évolutivité et isolabilité. Cela dit, nous croyons le cadre Polkadot peut apporter des améliorations significatives dans chacune de ces classes de problèmes. Des implémentations blockchain modernes et efficaces telles que le client Parité Ethereum [17] peut traiter au-delà de 3 000 transactions par seconde lors de l'exécution sur du matériel grand public performant. Cependant, le monde réel actuel Les réseaux blockchain sont pratiquement limités à une trentaine de transactions par seconde. Cette limitation provient principalement du fait que les mécanismes actuels de consensus synchrone nécessitent de larges marges de sécurité temporelles sur le délai de traitement prévu, qui est exacerbé par lePOLKADOT : VISION D'UN CADRE MULTI-CHAÎNES HÉTÉROGÈNE PROJET 1 2 désir de prendre en charge des mises en œuvre plus lentes. Ceci est dû à l’architecture consensuelle sous-jacente : le mécanisme de transition étatique, ou les moyens par lesquels les parties se rassemblent et exécuter des transactions, a sa logique fondamentalement liée dans le mécanisme de « canonisation » du consensus, ou moyen par lequel les parties conviennent d'un certain nombre de des histoires possibles et valides. Cela s'applique également aux systèmes proof-of-work (PoW) tels que Bitcoin [15] et Ethereum [5,23] et aux systèmes de preuve de participation (PoS) tels que NXT [8] et Bitshares [12] : tous souffrent finalement du même handicap. C'est un simple stratégie qui a contribué au succès de blockchain. Cependant, en couplant étroitement ces deux mécanismes en une seule unité du protocole, nous regroupons également plusieurs des acteurs et des applications présentant différents profils de risque, différentes exigences d’évolutivité et différents besoins en matière de confidentialité. Une taille unique ne convient pas à tout le monde. Trop souvent, il arrive que dans un désir d'attirer un large public, un réseau adopte un certain degré de conservatisme qui se traduit par un plus petit dénominateur commun servir de manière optimale quelques-uns et conduire finalement à un échec dans la capacité à innover, à performer et à s'adapter, parfois dramatiquement. Certains systèmes tels que par ex. Factom [21] abandonne complètement le mécanisme de transition d'état. Cependant, une grande partie des l'utilité que nous désirons nécessite la capacité de passer d'un état à l'autre selon une machine à états partagée. Le laisser tomber résout un problème alternatif ; cela ne fournit pas d'alternative solution. Il semble donc clair qu'une direction raisonnable à explorer comme voie vers un calcul décentralisé évolutif plateforme est de dissocier l’architecture de consensus de le mécanisme de transition d’État. Et, sans surprise, c’est la stratégie adoptée par Polkadot comme solution d’évolutivité. 2.1. Protocole, mise en œuvre et réseau. Comme Bitcoin et Ethereum, Polkadot font à la fois référence à un protocole réseau et au protocole principal (jusqu'ici présupposé) réseau public qui exécute ce protocole. Polkadot se veut un projet libre et ouvert, la spécification du protocole étant sous licence Creative Commons et le le code étant placé sous une licence FLOSS. Le projet est développé de manière ouverte et accepte les contributions partout où ils sont utiles. Un système de RFC, un peu comme les propositions d'amélioration de Python, permettront de collaborer publiquement sur les modifications et les mises à niveau du protocole. Notre mise en œuvre initiale du protocole Polkadot sera connue sous le nom de Plateforme Parity Polkadot et inclure une implémentation complète du protocole avec l'API liaisons. Comme les autres implémentations de Parity blockchain, PPP est conçu pour être une pile technologique blockchain à usage général, ni uniquement pour un réseau public ni pour opération privée/consortium. Son développement donc jusqu'à présent, a été financé par plusieurs parties, notamment à travers une subvention du gouvernement britannique. Cet article décrit néanmoins Polkadot sous le contexte d’un réseau public. La fonctionnalité que nous envisageons dans un réseau public est un surensemble de celle requise dans contextes alternatifs (par exemple privés et/ou consortium). De plus, dans ce contexte, la portée complète de Polkadot peut être décrit et discuté plus clairement. Cela veut dire le lecteur doit être conscient que certains mécanismes peuvent être décrits (par exemple l'interfonctionnement avec d'autres réseaux publics) qui ne concernent pas directement Polkadot lorsqu'ils sont déployés dans des situations non publiques (« autorisées »). 2.2. Travaux antérieurs. Il a été proposé de manière informelle de dissocier le consensus sous-jacent de la transition étatique. en privé pendant au moins deux ans – Max Kaye était partisan d’une telle stratégie dès les premiers jours de Ethereum. Une solution évolutive plus complexe connue sous le nom de Chain fibres, datant de juin 2014 et publié pour la première fois plus tard cette année-là1, a plaidé en faveur d’une chaîne de relais unique et de plusieurs chaînes homogènes fournissant un mécanisme d’exécution inter-chaînes transparent. La décohérence a été payée via la latence des transactions (transactions nécessitant le la coordination de parties disparates du système serait prendre plus de temps à traiter. Polkadot tire une grande partie de son architecture de cela et des conversations de suivi avec diverses personnes, bien qu'il diffère grandement dans une grande partie de sa conception et de ses dispositions. Bien qu'il n'existe aucun système comparable à Polkadot actuellement en production, plusieurs systèmes d'une certaine pertinence ont été proposés, bien que peu nombreux et à un niveau substantiel de détail. Ces propositions peuvent êtredécomposé en systèmes qui abandonnent ou réduisent la notion de cohérence globale machine à états, celles qui tentent de fournir un système global machine singleton cohérente à travers des fragments homogènes et celles qui ciblent uniquement l’hétérogénéité. 2.2.1. Systèmes sans état global. Factom [21] est un système qui démontre la canonicité sans les validité, permettant effectivement la chronique des données. En raison de la nécessité d'éviter l'état mondial et les difficultés avec la mise à l'échelle que cela apporte, cela peut être considéré comme une solution évolutive. Cependant, comme mentionné précédemment, l'ensemble Le nombre de problèmes qu’il résout est strictement et sensiblement moindre. Tangle [18] est une nouvelle approche des systèmes de consensus. Plutôt que d'organiser les transactions en blocs et de former un consensus sur une liste strictement liée pour donner un ordre globalement canonique des changements d'état, il abandonne largement l'idée d'un ordre fortement structuré et préfère plutôt pousse à un graphique acyclique dirigé des transactions dépendantes avec des éléments ultérieurs aidant à canoniser les éléments antérieurs grâce à des références explicites. Pour les changements d'état arbitraires, ce graphe de dépendance deviendrait vite insoluble, cependant, pour le modèle UTXO2 beaucoup plus simple, cela devient tout à fait raisonnable. Parce que le système n’est que vaguement cohérent et que les transactions sont généralement indépendantes les unes des autres. d'autre part, une grande partie du parallélisme mondial devient tout à fait naturel. L'utilisation du modèle UTXO a l'effet de limiter Tangle à une « monnaie » purement de transfert de valeur système plutôt que quelque chose de plus général ou extensible. De plus, sans la stricte cohérence globale, l'interaction avec d'autres systèmes, qui ont tendance à nécessiter une cohérence absolue, une connaissance approfondie de l’état du système devient peu pratique. 1https://github.com/ethereum/wiki/wiki/Chain-Fibers-Redux 2sortie de transaction non dépensée, le modèle utilisé par Bitcoin dans lequel l'état est en fait l'ensemble d'adresses associé à une certaine valeur ; les transactions rassemblent ces adresses et les reforment en un nouvel ensemble d'adresses dont la somme totale est équivalente
POLKADOT : VISION D'UN CADRE MULTI-CHAÎNES HÉTÉROGÈNE PROJET 1 3 2.2.2. Systèmes de chaînes hétérogènes. Les chaînes latérales [3] sont un ajout proposé au protocole Bitcoin qui permettrait une interaction sans confiance entre la chaîne principale Bitcoin et des chaînes latérales supplémentaires. Aucune disposition n'est prévue pour degré d’interaction « riche » entre les chaînes latérales : l’interaction se limiterait à permettre aux chaînes latérales d’être gardiens des actifs de chacun, effectuant – au niveau local jargon - une ancrage à double sens 3. La vision finale est celle d'un cadre dans lequel la monnaie Bitcoin pourrait être dotée de fonctionnalité supplémentaire, bien que périphérique, grâce à son rattachement sur d'autres chaînes avec une transition d'état plus exotique systèmes que le protocole Bitcoin ne le permet. En ce sens, les chaînes latérales abordent l’extensibilité plutôt que l’évolutivité. En effet, il n’existe fondamentalement aucune disposition relative à la validité des side-chains ; tokens d'une chaîne (par exemple Bitcoin) détenus au nom d'une side-chain sont garantis uniquement par le la capacité de la chaîne latérale à inciter les mineurs à canoniser transitions valides. La sécurité du réseau Bitcoin ne peut pas facilement être transféré pour travailler pour le compte d’autres blockchains. De plus, un protocole pour assurer Bitcoin les mineurs fusionnent le mien (c'est-à-dire dupliquent leur pouvoir de canonisation sur celui de la side-chain) et, plus important encore, valident que les transitions de la side-chain sont en dehors du portée de cette proposition. Cosmos [10] est un système multi-chaîne proposé dans le même veine que les side-chains, en échangeant le Nakamoto PoW méthode de consensus pour l’algorithme Tendermint de Jae Kwon. Essentiellement, il décrit plusieurs chaînes (opérant dans zones) chacune utilisant des instances individuelles de Tendermint, ainsi qu'un moyen de communication sans confiance via un chaîne de moyeu principale. Cette communication inter-chaînes est limitée au transfert d'actifs numériques (« en particulier sur tokens ») plutôt qu'à des informations arbitraires, mais une telle communication inter-chaînes a un chemin de retour pour les données, par ex. informer l'expéditeur de l'état du transfert. Ensembles de validateurs pour les chaînes zonées, et en particulier les moyens de les inciter sont, comme les chaînes latérales, laissés comme un problème non résolu. L'hypothèse générale est que chaque chaîne zonée détiendra elle-même un token de valeur dont l'inflation est utilisée pour payer les validator. Encore au début de conception, à l'heure actuelle, la proposition manque de détails complets sur les moyens économiques permettant d'atteindre l'évolutivité certitude sur la validité globale. Cependant, la faible cohérence requise entre les zones et le hub permettra pour une flexibilité supplémentaire sur les paramètres du zonage chaînes par rapport à celle d’un système imposant des cohérence. 2.2.3. Casper. Pour l'instant, aucun examen complet ni comparaison côte à côte entre Casper [6] et Polkadot ont été faites, même si l'on peut faire une analyse assez radicale (et par conséquent inexacte) caractérisation des deux. Casper est une réinvention de la façon dont un algorithme de consensus PoS pourrait être basé sur des participants pariant sur quelle fourchette deviendrait finalement canonique. Une attention considérable a été accordée à la garantie qu'il soit robuste pour le réseau forks, même lorsqu'ils sont prolongés, et ont un certain degré d'évolutivité supplémentaire en plus du modèle de base Ethereum. Comme Ainsi, Casper à ce jour a eu tendance à être beaucoup plus protocole complexe que Polkadot et ses ancêtres, et un écart substantiel par rapport au format de base blockchain. Il on ne sait toujours pas comment Casper va itérer à l'avenir et à quoi il ressemblera s’il est finalement déployé. Alors que Casper et Polkadot représentent tous deux de nouveaux protocoles intéressants et, dans un certain sens, des augmentations de Ethereum, il existe des différences substantielles entre leurs objectifs ultimes et voies de déploiement. Casper est un Ethereum Projet centré sur la fondation initialement conçu être une modification PoS du protocole sans volonté de créer un blockchain fondamentalement évolutif. Fondamentalement, c'est conçu pour être un hard-fork, plutôt que quelque chose de plus expansif et donc tous les clients et utilisateurs Ethereum seraient nécessaire pour mettre à niveau ou rester sur un fork d’adoption incertaine. En tant que tel, le déploiement est rendu beaucoup plus difficile, ce qui est inhérent à un projet décentralisé où des une coordination est nécessaire. Polkadot diffère de plusieurs manières ; avant tout, Polkadot est conçu pour être un système entièrement extensible et évolutif. blockchain test de développement, de déploiement et d'interaction lit. Il est conçu pour être un harnais largement évolutif, capable de assimiler le nouveau blockchainla technologie dès qu’elle devient disponible sans coordination décentralisée trop compliquée ou des fourches dures. Nous envisageons déjà plusieurs cas d'utilisation tels comme chaînes de consortium cryptées et chaînes à haute fréquence avec des temps de blocage très faibles, irréalistes à réaliser toute version future de Ethereum actuellement envisagée. Enfin, le couplage entre celui-ci et Ethereum est extrêmement lâche; aucune action de la part de Ethereum n'est nécessaire pour activer le transfert de transactions sans confiance entre les deux réseaux. En bref, alors que Casper/Ethereum 2.0 et Polkadot partagent quelques similitudes éphémères, nous pensons que leur objectif final est sensiblement différent et que plutôt que de rivaliser, les deux protocoles finiront probablement par coexister dans le cadre d’un relation mutuellement bénéfique dans un avenir prévisible.
Bản tóm tắt
Polkadot là một chuỗi đa chuỗi không đồng nhất có thể mở rộng. Cái này có nghĩa là không giống như các lần triển khai blockchain trước đây đã tập trung vào việc cung cấp một chuỗi duy nhất các sản phẩm khác nhau mức độ tổng quát về các ứng dụng tiềm năng, Polkadot bản thân nó được thiết kế để không cung cấp chức năng ứng dụng vốn có nào cả. Đúng hơn, Polkadot cung cấp nền tảng “chuỗi chuyển tiếp” trên đó có một số lượng lớn các thông tin có thể xác nhận, cấu trúc dữ liệu động mạch lạc toàn cầu có thể được lưu trữ bên cạnh nhau. Chúng tôi gọi những cấu trúc dữ liệu này là “song song” chuỗi hoặc parachain, mặc dù không có nhu cầu cụ thể về về bản chất chúng là blockchain. Nói cách khác, Polkadot có thể được coi là tương đương với một tập hợp các chuỗi độc lập (ví dụ: tập hợp chứa Ethereum, Ethereum Classic, Namecoin và Bitcoin) ngoại trừ hai điểm rất quan trọng: • Bảo mật tổng hợp; • khả năng giao dịch liên chuỗi không cần tin cậy. Những điểm này là lý do tại sao chúng tôi coi Polkadot là “có thể mở rộng”. Về nguyên tắc, một vấn đề được triển khai trên Polkadot có thể được thực hiện song song—mở rộng quy mô—trên một số lượng lớn parachain. Vì tất cả các khía cạnh của mỗi parachain có thể được tiến hành song song bởi một phân đoạn khác nhau của mạng Polkadot, hệ thống có một số khả năng để mở rộng quy mô. Polkadot cung cấp một thông tin khá đơn giản 3trái ngược với chốt một chiều về cơ bản là hành động phá hủy tokens trong một chuỗi để tạo tokens trong một chuỗi khác mà không có cơ chế thực hiện ngược lại để khôi phục tokens ban đầuPOLKADOT: TẦM NHÌN VỀ KHUNG KHUNG ĐA CHUỖI KHÔNG ĐỒNG THỂ DỰ THẢO 1 4 cơ sở hạ tầng khiến phần lớn sự phức tạp phải được giải quyết ở cấp độ phần mềm trung gian. Đây là một quyết định có ý thức nhằm giảm thiểu rủi ro phát triển, tạo điều kiện cho phần mềm cần thiết được phát triển trong một khoảng thời gian ngắn và với mức độ tin cậy cao về tính bảo mật và sự vững chãi. 3.1. Triết lý của Polkadot. Polkadot nên cung cấp một nền tảng vững chắc tuyệt đối để xây dựng làn sóng hệ thống đồng thuận tiếp theo, ngay thông qua phổ rủi ro từ các thiết kế trưởng thành có khả năng sản xuất đến những ý tưởng non trẻ. Bằng cách cung cấp sự đảm bảo mạnh mẽ về bảo mật, cách ly và liên lạc, Polkadot có thể cho phép parachains để tự mình chọn từ một loạt thuộc tính. Thật vậy, chúng tôi đã thấy trước nhiều blockchain thử nghiệm khác nhau sẽ thúc đẩy các thuộc tính của những gì có thể được coi là hợp lý hôm nay. Chúng tôi thấy bảo thủ, chuỗi giá trị cao tương tự như Bitcoin hoặc Z-cash [20] cùng tồn tại cùng với giá trị thấp hơn “chuỗi chủ đề” (tiếp thị như vậy, rất thú vị) và mạng thử nghiệm với mức phí bằng 0 hoặc gần bằng 0. Chúng tôi thấy được mã hóa đầy đủ, “đen tối”, các chuỗi liên minh hoạt động song song—và thậm chí cung cấp dịch vụ cho—các chuỗi mở và có chức năng cao chẳng hạn như những thứ như Ethereum. Chúng tôi thấy thử nghiệm mới Các chuỗi dựa trên VM chẳng hạn như wasm tính phí theo thời gian chủ quan chuỗi đang được sử dụng như một phương tiện để gia công các vấn đề tính toán khó khăn từ chuỗi giống Ethereum hoàn thiện hơn hoặc một chuỗi giống Bitcoin bị hạn chế hơn. Để quản lý việc nâng cấp chuỗi, Polkadot vốn sẽ hỗ trợ một số loại cơ cấu quản trị, có thể dựa trên về các hệ thống chính trị ổn định hiện có và có khía cạnh lưỡng viện tương tự như Hội đồng Sách Vàng [24]. Như có thẩm quyền tối cao, những người nắm giữ token có thể đặt cược cơ bản sẽ có quyền kiểm soát "trưng cầu dân ý". Để phản ánh ý kiến của người dùng nhu cầu phát triển nhưng nhà phát triển cần tính hợp pháp, chúng tôi mong đợi một hướng đi hợp lý sẽ hình thành hai viện từ một ủy ban “người sử dụng” (gồm ngoại quan validators) và một ủy ban “kỹ thuật” được thành lập của các nhà phát triển khách hàng lớn và người chơi trong hệ sinh thái. các nhóm chủ sở hữu token sẽ duy trì tính hợp pháp cao nhất và hình thành đại đa số để tăng cường, điều chỉnh lại tham số, thay thế hoặc giải thể cấu trúc này, điều mà chúng tôi đừng nghi ngờ sự cần thiết cuối cùng của: theo lời của Twain “Chính phủ và tã lót phải được thay đổi thường xuyên, và để lý do giống nhau”. Trong khi việc tái tham số hóa thường không quan trọng để sắp xếp trong một cơ chế đồng thuận lớn hơn, thì những thay đổi về chất hơn như thay thế và tăng cường sẽ có thể cần phải là “nghị định mềm” không tự động hóa (ví dụ: thông qua việc chuẩn hóa số khối và hash của tài liệu chỉ định chính thức giao thức mới) hoặc yêu cầu cơ chế đồng thuận cốt lõi để chứa một ngôn ngữ đủ phong phú để mô tả bất kỳ khía cạnh nào của chính nó mà có thể cần phải thay đổi. Cái sau là mục đích cuối cùng, tuy nhiên, cái trước có nhiều khả năng được chọn hơn để tạo điều kiện cho một mốc thời gian phát triển hợp lý. Nguyên lý chính của Polkadot và các quy tắc trong đó chúng tôi đánh giá mọi quyết định thiết kế là: Tối thiểu: Polkadot phải có càng ít chức năng càng tốt. Đơn giản: không có sự phức tạp bổ sung nào trong giao thức cơ sở hơn mức có thể hợp lý được tải vào phần mềm trung gian, được đặt thông qua một parachain hoặc được giới thiệu trong lần tối ưu hóa sau này. Tổng quát: không có yêu cầu, ràng buộc không cần thiết hoặc nên áp dụng giới hạn đối với parachain; Polkadot phải là nơi thử nghiệm để phát triển hệ thống đồng thuận có thể được tối ưu hóa thông qua làm cho mô hình có phần mở rộng phù hợp càng trừu tượng càng tốt. Mạnh mẽ: Polkadot sẽ cung cấp cơ bản lớp nền ổn định. Ngoài sự lành mạnh về kinh tế, điều này còn có nghĩa là phân cấp để giảm thiểu các vectơ cho các cuộc tấn công có phần thưởng cao.
Résumé
Polkadot est une multi-chaîne hétérogène évolutive. Ceci signifie que contrairement aux implémentations précédentes de blockchain qui se sont concentrés sur la fourniture d'une chaîne unique de différents degrés de généralité sur les applications potentielles, Polkadot lui-même est conçu pour fournir aucune fonctionnalité d’application inhérente. Au lieu de cela, Polkadot fournit le fondement « chaîne relais » sur laquelle un grand nombre de données validables, des structures de données dynamiques globalement cohérentes peuvent être hébergées côte à côte. Nous appelons ces structures de données « parallélisées » chaînes ou parachaines, bien qu'il n'y ait pas de besoin spécifique de ils doivent être de nature blockchain. En d'autres termes, Polkadot peut être considéré comme équivalent à un ensemble de chaînes indépendantes (par exemple l'ensemble contenant Ethereum, Ethereum Classic, Namecoin et Bitcoin) sauf deux points très importants : • Sécurité mutualisée ; • Transactabilité inter-chaînes sans confiance. Ces points sont la raison pour laquelle nous considérons Polkadot comme étant « évolutif ». En principe, un problème à déployer sur Polkadot peut être considérablement parallélisé (évolué) sur un grand nombre de parachaines. Puisque tous les aspects de chacun la parachain peut être conduite en parallèle par un segment différent du réseau Polkadot, le système a une certaine capacité à l'échelle. Polkadot fournit un élément plutôt simple de 3par opposition à un ancrage à sens unique qui consiste essentiellement à détruire les token dans une chaîne pour créer des token dans une autre sans que mécanisme pour faire l'inverse afin de récupérer les token d'originePOLKADOT : VISION D'UN CADRE MULTI-CHAÎNES HÉTÉROGÈNE PROJET 1 4 infrastructure laissant une grande partie de la complexité à résoudre au niveau du middleware. Il s'agit d'une décision consciente destinée à réduire les risques de développement, permettant au logiciel requis à développer dans un court laps de temps et avec un bon niveau de confiance quant à sa sécurité et robustesse. 3.1. La philosophie de Polkadot. Polkadot devrait fournir une base solide comme le roc sur laquelle construire la prochaine vague de systèmes de consensus, tout au long le spectre des risques des conceptions matures capables de production aux idées naissantes. En offrant de solides garanties en matière de sécurité, d'isolement et de communication, Polkadot peut permettre parachains pour choisir eux-mêmes parmi une gamme de propriétés. En effet, nous prévoyons diverses blockchain expérimentales poussant les propriétés de ce qui pourrait être considéré comme raisonnable. aujourd'hui. Nous voyons des conservateurs, chaînes à haute valeur similaires à Bitcoin ou Z-cash [20] coexistant avec des valeurs de moindre valeur « chaînes thématiques » (tel le marketing, si amusant) et réseaux de test avec des frais nuls ou quasi nuls. Nous voyons entièrement crypté, « sombres », des chaînes de consortium opérant aux côtés – et même fournir des services à des chaînes hautement fonctionnelles et ouvertes comme ceux comme Ethereum. Nous voyons de nouvelles expériences Chaînes basées sur des machines virtuelles telles qu'un wasm subjectif chargé en temps chaîne utilisée comme moyen d'externalisation de problèmes de calcul difficiles à partir d'une chaîne de type Ethereum plus mature ou une chaîne de type Bitcoin plus restreinte. Pour gérer les mises à niveau de la chaîne, Polkadot sera intrinsèquement soutenir une sorte de structure de gouvernance, probablement basée sur les systèmes politiques stables existants et ayant un aspect bicaméral similaire au Conseil du Livre Jaune [24]. Comme l'autorité ultime, les détenteurs sous-jacents de token jalonnables auraient un contrôle « référendaire ». Pour refléter les attentes des utilisateurs besoin de développement mais le besoin de légitimité des développeurs, nous nous attendons à ce qu'une direction raisonnable soit de se former les deux chambres d’un comité « usagers » (composé de cautionnés validators) et un comité « technique » composé de grands clients développeurs et acteurs de l’écosystème. Le un corps de détenteurs de token conserverait la légitimité ultime et formerait une majorité qualifiée pour augmenter, reparamétrer, remplacer ou dissoudre cette structure, ce que nous ne doutez pas de la nécessité éventuelle de : selon les mots de Twain « Les gouvernements et les couches doivent être changés souvent, et pour la même raison ». Alors que le reparamétrage est généralement simple à organiser dans le cadre d'un mécanisme de consensus plus large, des changements plus qualitatifs tels que le remplacement et l'augmentation seraient nécessaires. il faudra probablement soit des « décrets souples » non automatisés (par ex. par la canonisation d'un numéro de bloc et le hash d'un document précisant formellement le nouveau protocole) ou nécessiter que le mécanisme de consensus principal contienne un langage suffisamment riche pour décrire n’importe quel aspect de lui-même qui devra peut-être changer. Ce dernier est un objectif éventuel, cependant, les premiers sont plus susceptibles d'être choisis afin de faciliter un calendrier de développement raisonnable. Les principes fondamentaux de Polkadot et les règles dans lesquelles nous évaluons que toutes les décisions de conception sont : Minimal : Polkadot doit avoir le moins de fonctionnalités possible. Simple : aucune complexité supplémentaire ne devrait être présente dans le protocole de base que ce qui peut raisonnablement être déchargé dans le middleware, placé à travers un parachain ou introduit dans une optimisation ultérieure. Général : pas d'exigence, de contrainte inutile ou une limitation devrait être imposée aux parachaines ; Polkadot devrait être un banc d'essai pour le développement d'un système de consensus qui peut être optimisé grâce à rendre le modèle dans lequel les extensions s'intègrent aussi abstrait que possible. Robuste : Polkadot devrait fournir fondamentalement couche de base stable. Outre la solidité économique, cela signifie également décentraliser pour minimiser les vecteurs d’attaques à haute récompense.
Tham gia Polkadot
Có bốn vai trò cơ bản trong việc duy trì Polkadot mạng: người đối chiếu, ngư dân, người đề cử và validator. trong một khả năng triển khai Polkadot, vai trò thứ hai thực tế có thể được chia thành hai vai trò: validator cơ bản và người bảo đảm tính sẵn có; điều này được thảo luận trong phần 6.5.3. đối chiếu ngư dân Trình xác nhận (nhóm này) Trình xác nhận (các nhóm khác) chấp thuận trở thành màn hình báo cáo xấu hành vi để cung cấp khối ứng viên cho Người đề cử Hình 1. Sự tương tác giữa bốn vai trò của Polkadot. 4.1. Trình xác nhận. validator là mức phí cao nhất và giúp niêm phong các khối mới trên mạng Polkadot. Vai trò của validator phụ thuộc vào mức độ liên kết đủ cao được ký gửi, mặc dù chúng tôi cho phép các bên liên kết khác đề cử một hoặc nhiều validator hành động thay mặt họ và với tư cách là một phần nào đó trong trái phiếu của validator có thể không nhất thiết phải thuộc sở hữu của chính validator mà là của những người này người đề cử. validator phải chạy triển khai ứng dụng khách chuỗi chuyển tiếp với độ khả dụng và băng thông cao. Tại mỗi khối nút phải sẵn sàng chấp nhận vai trò phê chuẩn một khối mới trên parachain được chỉ định. Quá trình này liên quan đến việc tiếp nhận, xác nhận và xuất bản lại ứng cử viên khối. Việc đề cử mang tính quyết định nhưng hầu như không thể đoán trước được nhiều. Vì validator không thể được mong đợi một cách hợp lý là sẽ duy trì một hệ thống được đồng bộ hóa hoàn toàn cơ sở dữ liệu của tất cả các parachain, dự kiến validator sẽ chỉ định nhiệm vụ đưa ra một đề xuất mới khối parachain cho bên thứ ba, được gọi là đối tác. Sau khi tất cả các khối parachain mới đã được phê duyệt hợp lệ bởi các nhóm con validator được chỉ định của chúng, validators sau đó phải phê chuẩn chính khối chuỗi chuyển tiếp. Điều này liên quan đến cập nhật trạng thái của hàng đợi giao dịch (về cơ bản di chuyển dữ liệu từ hàng đợi đầu ra của parachain sang hàng đợi khác hàng đợi đầu vào của parachain), xử lý các giao dịch của bộ giao dịch chuỗi chuyển tiếp đã được phê duyệt và phê chuẩn khối cuối cùng, bao gồm cả những thay đổi cuối cùng của parachain.POLKADOT: TẦM NHÌN VỀ KHUNG KHUNG ĐA CHUỖI KHÔNG ĐỒNG THỂ DỰ THẢO 1 5 validator không hoàn thành nghĩa vụ tìm kiếm sự đồng thuận theo các quy tắc của thuật toán đồng thuận đã chọn của chúng tôi sẽ bị trừng phạt. Đối với những thất bại ban đầu, không chủ ý, điều này là thông qua giữ lại phần thưởng của validator. Những thất bại lặp đi lặp lại dẫn đến việc giảm liên kết bảo mật của họ (thông qua việc đốt cháy). Các hành động có hại có thể xảy ra như ký hai lần hoặc âm mưu cung cấp một khối không hợp lệ dẫn đến việc mất toàn bộ trái phiếu (bị đốt cháy một phần nhưng phần lớn được trao cho cho người cung cấp thông tin và người trung thực). Theo một nghĩa nào đó, validator tương tự như nhóm khai thác của PoW hiện tại blockchains. 4.2. Người đề cử. Người được đề cử là bên nắm giữ cổ phần người đóng góp vào trái phiếu bảo đảm của validator. Họ không có vai trò bổ sung nào ngoại trừ việc bố trí vốn rủi ro và như như vậy để báo hiệu rằng họ tin tưởng một validator cụ thể (hoặc được thiết lập) để hành động có trách nhiệm trong việc duy trì mạng. Họ nhận được sự tăng hoặc giảm theo tỷ lệ trong khoản tiền gửi của họ tùy theo mức tăng trưởng của trái phiếu họ đóng góp. Cùng với những người đối chiếu, tiếp theo, những người được đề cử nằm trong một số có ý nghĩa tương tự như các công cụ khai thác của mạng PoW ngày nay. 4.3. Người hợp tác. Đối chiếu giao dịch (gọi tắt là đối chiếu) là các bên hỗ trợ validator tạo ra các khối parachain. Họ duy trì một “nút đầy đủ” cho một parachain cụ thể; có nghĩa là họ giữ lại tất cả những gì cần thiết thông tin để có thể tạo các khối mới và thực thi giao dịch theo cách tương tự như cách các thợ mỏ thực hiện trên PoW blockchain hiện tại. Trong hoàn cảnh bình thường, họ sẽ đối chiếu và thực hiện các giao dịch để tạo ra một bản ghi chưa được niêm phong chặn và cung cấp nó cùng với kiến thức bằng không bằng chứng cho một hoặc nhiều validator hiện chịu trách nhiệm về đề xuất một khối parachain. Bản chất chính xác của mối quan hệ giữa người đối chiếu, người đề cử và validator có thể sẽ thay đổi theo thời gian. Ban đầu, chúng tôi mong đợi những người cộng tác sẽ hợp tác rất chặt chẽ với validators, vì sẽ chỉ có một vài (có lẽ chỉ một) parachain với khối lượng giao dịch ít. các Việc triển khai ứng dụng khách ban đầu sẽ bao gồm các RPC để cho phép nút đối chiếu parachain để cung cấp vô điều kiện nút (chuỗi chuyển tiếp) validator với một parachain hợp lệ có thể được chứng minh khối. Vì chi phí duy trì phiên bản được đồng bộ hóa của tất cả các parachain như vậy đều tăng lên, chúng tôi hy vọng sẽ thấy thêm cơ sở hạ tầng sẵn có sẽ giúp tách biệt các nghĩa vụ đối với các đảng độc lập, có động cơ kinh tế. Cuối cùng, chúng tôi hy vọng sẽ thấy các nhóm đối tác cạnh tranh thu nhiều phí giao dịch nhất. Những người đối chiếu như vậy có thể ký hợp đồng để phục vụ validator cụ thể trong một khoảng thời gian để được chia sẻ liên tục trong số tiền thưởng. Ngoài ra, những người cộng tác “tự do” có thể chỉ cần tạo một thị trường cung cấp các khối parachain hợp lệ để đổi lấy phần thưởng cạnh tranh được trả ngay lập tức. Tương tự, nhóm đề cử phi tập trung sẽ cho phép nhiều những người tham gia liên kết để phối hợp và chia sẻ nhiệm vụ của một validator. Khả năng tập hợp này đảm bảo sự tham gia cởi mở dẫn đến một hệ thống phi tập trung hơn. 4.4. Ngư dân. Không giống như hai bên hoạt động còn lại, ngư dân không liên quan trực tiếp đến việc tạo khối quá trình. Đúng hơn họ là những “thợ săn tiền thưởng” độc lập được thúc đẩy bởi một phần thưởng lớn. Chính xác là do sự tồn tại của ngư dân, chúng tôi cho rằng những hành vi sai trái hiếm khi xảy ra và khi chúng xảy ra chỉ do bên liên quan bất cẩn với việc bảo mật khóa bí mật, chứ không phải thông qua mục đích xấu. Cái tên đến từ tần suất thưởng dự kiến, yêu cầu tối thiểu để tham gia và quy mô phần thưởng cuối cùng. Ngư dân nhận được phần thưởng thông qua việc chứng minh kịp thời rằng ít nhất một bên liên quan đã hành động trái pháp luật. Hành động trái pháp luật bao gồm việc ký hai khối với cùng một khối gốc đã được phê duyệt hoặc, trong trường hợp của parachain, giúp phê chuẩn một khối không hợp lệ khối. Để ngăn chặn việc khen thưởng quá mức hoặc sự thỏa hiệp và sử dụng trái phép khóa bí mật của phiên, phần thưởng cơ bản cho việc cung cấp tin nhắn được ký bất hợp pháp của một validator là tối thiểu. Phần thưởng này tăng tiệm cận khi càng nhiều chứng thực chữ ký bất hợp pháp từ validator khác là được cung cấp ngụ ý một cuộc tấn công thực sự. Đường tiệm cận được thiết lập ở mức 66% theo khẳng định bảo mật cơ sở của chúng tôi rằng ít nhất hai phần ba validator hành động nhân từ. Fishermen có phần giống với “các nút đầy đủ” trong hệ thống blockchain ngày nay mà tài nguyên cần thiết tương đối nhỏ và cam kết về thời gian hoạt động ổn định và băng thông là không cần thiết. Ngư dân có sự khác biệt ở điểm này nhiều như họ phải đăng một trái phiếu nhỏ.Liên kết này ngăn cản các cuộc tấn công sybil do lãng phí validators thời gian và tính toán tài nguyên. Có thể rút ngay lập tức, có lẽ là không nhiều hơn số tiền tương đương với một vài đô la và có thể dẫn đến để gặt hái một phần thưởng khổng lồ từ việc phát hiện ra hành vi sai trái validator.
Participation à Polkadot
Il y a quatre rôles de base dans l'entretien d'un Polkadot réseau : assembleur, pêcheur, proposant et validator. Dans une implémentation possible de Polkadot, ce dernier rôle peut en fait se décomposer en deux rôles : validator de base et garant de disponibilité ; ceci est discuté dans la section 6.5.3. Assembleur Pêcheur Validateurs (ce groupe) Validateurs (autres groupes) approuve devient moniteurs rapports mauvais comportement à fournit un bloc candidats pour Proposant Figure 1. L'interaction entre le quatre rôles de Polkadot. 4.1. Validateurs. A validator est la charge la plus élevée et aide à sceller les nouveaux blocs sur le réseau Polkadot. Le rôle du validator dépend d’une liaison suffisamment élevée en cours de dépôt, bien que nous autorisons d'autres parties cautionnées à nommer un ou plusieurs validator pour agir en leur nom et en tant que une telle partie de l'obligation de validator n'appartient pas nécessairement à validator lui-même, mais plutôt à ceux-ci. proposants. Un validator doit exécuter une implémentation client de chaîne de relais avec une disponibilité et une bande passante élevées. A chaque bloc le nœud doit être prêt à accepter le rôle de ratification un nouveau bloc sur une parachain nommée. Ce processus consiste à recevoir, valider et republier les candidats blocs. La nomination est déterministe mais pratiquement imprévisible longtemps à l’avance. Puisque le validator ne peut pas on peut raisonnablement s'attendre à ce qu'il maintienne un système entièrement synchronisé base de données de toutes les parachaines, il est prévu que le validator désignera la tâche de concevoir une nouvelle suggestion bloc parachain à un tiers, connu sous le nom d’assembleur. Une fois que tous les nouveaux blocs de parachain ont été correctement ratifiés par leurs sous-groupes validator désignés, validators devra alors ratifier lui-même le bloc de la chaîne relais. Cela implique mettre à jour l'état des files d'attente de transactions (essentiellement déplacer les données de la file d'attente de sortie d'une parachain vers une autre file d'attente d'entrée de parachain), traitant les transactions de l’ensemble des transactions en chaîne relais ratifié et ratifiant le bloc final, y compris les changements finaux de parachain.POLKADOT : VISION D'UN CADRE MULTI-CHAÎNES HÉTÉROGÈNE PROJET 1 5 A validator ne remplissant pas son devoir de trouver un consensus selon les règles de l’algorithme de consensus choisi, est puni. Pour les pannes initiales involontaires, cela passe par retenir la récompense du validator. Les échecs répétés entraînent la réduction de leur caution (par brûlage). Actions manifestement malveillantes telles que la double signature ou conspirer pour fournir un bloc invalide entraîne la perte de la totalité du lien (qui est partiellement brûlé mais en grande partie donné à l'informateur et aux acteurs honnêtes). Dans un certain sens, les validator sont similaires aux pools miniers du PoW actuel blockchains. 4.2. Les proposants. Un proposant est une partie prenante qui contribue au cautionnement d'un validator. Ils n'ont aucun rôle supplémentaire, sauf celui de placer du capital-risque et, tels pour signaler qu'ils font confiance à un validator particulier (ou ensemble de ceux-ci) à agir de manière responsable dans leur entretien du réseau. Ils bénéficient d'une majoration ou d'une réduction au prorata dans leur dépôt en fonction de la croissance de l’obligation à laquelle ils contribuent. Avec les assembleurs, les proposants sont ensuite dans certains sens similaire aux mineurs des réseaux PoW actuels. 4.3. Collateurs. Assembleurs de transactions (assembleurs en abrégé) sont des parties qui aident les validator à produire des blocs de parachaine. Ils maintiennent un « nœud complet » pour une parachain particulière ; ce qui signifie qu'ils conservent tous les éléments nécessaires informations pour pouvoir créer de nouveaux blocs et exécuter transactions de la même manière que les mineurs le font sur les PoW actuels blockchain. Dans des circonstances normales, ils rassemblera et exécutera des transactions pour créer un compte non scellé bloquer et le fournir, avec une connaissance nulle preuve, à un ou plusieurs validator actuellement responsables de proposant un bloc parachain. La nature précise de la relation entre les assembleurs, les proposants et les validator changera probablement au fil du temps. le temps. Dans un premier temps, nous attendons des assembleurs qu'ils travaillent en étroite collaboration avec validators, puisqu'il n'y en aura que quelques-uns (peut-être une seule) parachain(s) avec un faible volume de transactions. Le la mise en œuvre initiale du client inclura des RPC pour permettre un nœud de collecte de parachain pour fournir inconditionnellement un nœud (relaychain) validator avec une parachain dont la validité est prouvée bloquer. Comme le coût de maintenance d'une version synchronisée de toutes ces parachaines augmentent, nous nous attendons à voir des infrastructure en place qui aidera à séparer les obligations envers des partis indépendants et motivés par l’économie. À terme, nous nous attendons à voir des pools d'assembleurs rivaliser pour perçoivent le plus de frais de transaction. Ces assembleurs peuvent être engagés par contrat pour servir des validator particuliers pendant un certain temps en échange d'une part continue du produit de la récompense. Alternativement, les assembleurs « indépendants » peuvent simplement créer un marché offrant des blocs de parachain valides en échange d'une part compétitive de la récompense payable immédiatement. De même, les pools de proposants décentralisés permettraient à plusieurs participants liés pour coordonner et partager le devoir d’un validator. Cette capacité de mutualisation garantit une participation ouverte conduisant à un système plus décentralisé. 4.4. Pêcheurs. Contrairement aux deux autres partis actifs, les pêcheurs ne sont pas directement liés à la création des blocs processus. Ce sont plutôt des « chasseurs de primes » indépendants. motivé par une grande récompense unique. Justement à cause de En raison de l'existence des pêcheurs, nous nous attendons à ce que les cas de mauvaise conduite se produisent rarement, et lorsqu'ils se produisent uniquement à cause de la partie cautionnée étant négligente avec la sécurité de la clé secrète, plutôt que par intention malveillante. Le nom vient de la fréquence attendue de la récompense, des exigences minimales pour participer et du montant éventuel de la récompense. Les pêcheurs reçoivent leur récompense en fournissant en temps opportun la preuve que au moins une partie cautionnée a agi illégalement. Actions illégales inclure la signature de deux blocs chacun avec le même parent ratifié ou, dans le cas des parachains, aider à ratifier un invalide bloquer. Pour éviter la récompense excessive ou le compromis et utilisation illicite de la clé secrète d’une session, la récompense de base pour fournir un seul message signé illégalement de validator est minime. Cette récompense augmente asymptotiquement à mesure que des signatures illégales corroborantes d'autres validator sont à condition d'impliquer une véritable attaque. L'asymptote est définie à 66 % suite à notre affirmation de sécurité de base selon laquelle au moins les deux tiers des validator agissent avec bienveillance. Les pêcheurs ressemblent quelque peu aux « nœuds complets » dans systèmes blockchain actuels dont les ressources nécessaires sont relativement petits et l'engagement d'une disponibilité stable et la bande passante n'est pas nécessaire. Les pêcheurs diffèrent tellement d'autant qu'ils doivent déposer une petite caution.Ce lien empêche Sybil attaque en faisant perdre du temps et du calcul à validators ressources. Il est immédiatement retirable, probablement non plus que l'équivalent de quelques dollars et peut conduire à récolter une lourde récompense en repérant un mauvais comportement validator.
Tổng quan về thiết kế
Phần này nhằm mục đích cung cấp một cái nhìn tổng quan ngắn gọn về toàn bộ hệ thống. Sự thăm dò kỹ lưỡng hơn về hệ thống được đưa ra trong phần tiếp theo nó. 5.1. Sự đồng thuận. Trên chuỗi chuyển tiếp, Polkadot đạt được sự đồng thuận ở mức độ thấp đối với một tập hợp các thông tin có giá trị được các bên đồng ý chặn thông qua thuật toán chịu lỗi Byzantine không đồng bộ hiện đại (BFT). Thuật toán sẽ được lấy cảm hứng bởi Tendermint đơn giản [11] và hơn thế nữa có liên quan đến HoneyBadgerBFT [14]. Cái sau cung cấp một sự đồng thuận hiệu quả và có khả năng chấp nhận sai sót đối với một hành động tùy tiện cơ sở hạ tầng mạng bị lỗi, được cung cấp một tập hợp các cơ quan có thẩm quyền hầu như lành tính hoặc validator. Đối với mạng kiểu bằng chứng xác thực (PoA), riêng điều này sẽ là đủ, tuy nhiên Polkadot được cho là cũng có thể triển khai như một mạng hoàn toàn mở và công khai tình huống mà không có bất kỳ tổ chức cụ thể hoặc đáng tin cậy nào thẩm quyền cần thiết để duy trì nó. Như vậy chúng ta cần một phương tiện xác định một tập hợp validator và khuyến khích họ phải thành thật. Đối với điều này, chúng tôi sử dụng lựa chọn dựa trên PoS tiêu chí. 5.2. Chứng minh tiền đặt cược. Chúng tôi giả sử rằng mạng sẽ có một số phương tiện để đo lường “cổ phần” là bao nhiêu bất kỳ tài khoản cụ thể nào cũng có. Để dễ so sánh với các hệ thống có sẵn, chúng ta sẽ gọi đơn vị đo là “tokens”. Thật không may, thuật ngữ này ít lý tưởng hơn cho một nhiều lý do, nhất là việc chỉ đơn giản là một đại lượng vô hướng giá trị liên quan đến một tài khoản, không có khái niệm về tính cá nhân. Chúng tôi cho rằng validator sẽ được bầu không thường xuyên (nhiều nhất là một lần mỗi ngày nhưng có lẽ hiếm khi một lần mỗi quý), thông qua chương trình Bằng chứng cổ phần được đề cử (NPoS). Việc khuyến khích có thể xảy ra thông qua việc phân bổ theo tỷ lệPOLKADOT: TẦM NHÌN VỀ KHUNG KHUNG ĐA CHUỖI KHÔNG ĐỒNG THỂ DỰ THẢO 1 6 Rơle chuỗi Nhóm xác thực (mỗi màu được tô màu bởi nó parachain được chỉ định) Giao dịch (gửi bởi tác nhân bên ngoài) Parachain cầu parachain ảo (ví dụ: Ethereum) Parachain Parachain hàng đợi và I/O Giao dịch lan truyền Chặn việc nộp hồ sơ ứng viên đơn hàng thứ 2 Chuỗi rơle cộng đồng parachain Tài khoản Giao dịch trong nước Giao dịch đi Giao dịch liên chuỗi (được quản lý bởi validators) đối chiếu Khối lan truyền ngư dân Hình 2. Sơ đồ tóm tắt của hệ thống Polkadot. Điều này cho thấy các bộ đối chiếu đang thu thập và truyền bá các giao dịch của người dùng, cũng như truyền bá các ứng cử viên khối cho ngư dân và validators. Nó cũng cho thấy cách một tài khoản có thể đăng một giao dịch được thực hiện từ parachain của nó, thông qua chuỗi chuyển tiếp và vào một parachain khác, nơi nó có thể được hiểu là một giao dịch đối với một tài khoản ở đó. số tiền đến từ việc mở rộng cơ sở token (tối đa 100% mỗi năm, mặc dù nhiều khả năng là khoảng 10%) cùng với bất kỳ khoản phí giao dịch nào được thu thập. Trong khi việc mở rộng cơ sở tiền tệ thường dẫn đến lạm phát, vì tất cả chủ sở hữu token sẽ có cơ hội tham gia công bằng, không chủ sở hữu token nào sẽ phải chịu sự giảm giá trị tài sản của mình nắm giữ theo thời gian miễn là họ vui vẻ chấp nhận vai trò trong cơ chế đồng thuận Một tỷ lệ cụ thể trong số token sẽ được nhắm mục tiêu cho quy trình staking; cái việc mở rộng cơ sở token hiệu quả sẽ được điều chỉnh thông qua một cơ chế dựa trên thị trường để đạt được mục tiêu này. Những người xác nhận được liên kết chặt chẽ bởi cổ phần của họ; thoát ra Trái phiếu của validator vẫn được giữ nguyên lâu sau khi nhiệm vụ của validator chấm dứt (có thể là khoảng 3 tháng). Dài thế này thời gian thanh lý trái phiếu cho phép hành vi sai trái trong tương lai có thể xảy ra bị trừng phạt cho đến khi kiểm tra dây chuyền định kỳ. Hành vi sai trái dẫn đến hình phạt, chẳng hạn như giảm thưởng hoặc, trong trường hợp cố ý làm tổn hại đến tính toàn vẹn của mạng, validator mất một phần hoặc toàn bộ cổ phần cho validator khác, người cung cấp thông tin hoặc các bên liên quan nói chung (thông qua việc đốt cháy). Ví dụ: validator người cố gắng phê chuẩn cả hai nhánh của một ngã ba (đôi khi được gọi là cuộc tấn công “tầm ngắn”) có thể được xác định và bị trừng phạt theo cách thứ hai. Các cuộc tấn công tầm xa “không có gì đáng đe dọa”4 bị phá vỡ thông qua một chốt “điểm kiểm tra” đơn giản nhằm ngăn chặn việc tổ chức lại chuỗi nguy hiểm của nhiều hơn một độ sâu chuỗi cụ thể. Để đảm bảo các máy khách mới được đồng bộ hóa không thể bị lừa vào chuỗi sai, thường xuyên “hard fork” sẽ xảy ra (nhiều nhất là trong cùng thời kỳ của validators' thanh lý trái phiếu) mã hóa cứng khối điểm kiểm tra gần đây hash vào khách hàng. Điều này hoạt động tốt với một biện pháp giảm dấu chân hơn nữa là “độ dài chuỗi hữu hạn” hoặc thiết lập lại định kỳ khối Genesis. 5.3. Parachains và Collators. Mỗi parachain được các điều kiện bảo mật tương tự như chuỗi chuyển tiếp: cái Các tiêu đề của parachains được niêm phong trong khối chuỗi chuyển tiếp đảm bảo không tổ chức lại hoặc "chi tiêu gấp đôi" sau khi được xác nhận. Đây là sự đảm bảo an ninh tương tự như sự đảm bảo an ninh được cung cấp bởi chuỗi bên và hoạt động khai thác hợp nhất của Bitcoin. Tuy nhiên, Polkadot cũng cung cấp sự đảm bảo mạnh mẽ rằng việc chuyển đổi trạng thái của parachain là hợp lệ. Cái này xảy ra thông qua tập hợp validator được phân chia ngẫu nhiên bằng mật mã thành các tập hợp con; một tập hợp con cho mỗi parachain, các tập hợp con có khả năng khác nhau trên mỗi khối. Cái này thiết lập thường ngụ ý rằng thời gian chặn của parachains sẽ ít nhất phải dài bằng chuỗi chuyển tiếp. cụ thể phương tiện xác định phân vùng nằm ngoài phạm vi 4Cuộc tấn công như vậy là lúc đối thủ tạo ra một chuỗi lịch sử hoàn toàn mới từ khối khởi đầu trở đi. Thông qua việc kiểm soát một phần cổ phần tương đối không đáng kể khi bù đắp, họ có thể tăng dần phần cổ phần của mình so với tất cả những người khác các bên liên quan vì họ là những người tham gia tích cực duy nhất trong lịch sử thay thế của họ. Vì không có giới hạn vật lý nội tại nào tồn tại trong quá trình tạo ra của các khối (không giống như PoW nơi phải tiêu tốn năng lượng tính toán khá thực), họ có thể tạo ra một chuỗi dài hơn chuỗi thực trong một khoảng thời gian tương đối ngắn và có khả năng làm cho nó dài nhất và tốt nhất, tiếp quản trạng thái chuẩn của mạng.POLKADOT: TẦM NHÌN VỀ KHUNG KHUNG ĐA CHUỖI KHÔNG ĐỒNG THỂ DỰ THẢO 1 7 của tài liệu này nhưng có thể sẽ dựa trên khung tiết lộ cam kết tương tự như RanDAO [19] hoặc sử dụng dữ liệu kết hợp từ các khối trước của mỗi parachain theo mật mã hash được bảo mật. Các tập hợp con validator như vậy được yêu cầu để cung cấp ứng cử viên khối parachain được đảm bảo hợp lệ (trên nỗi đau của sự tịch thu trái phiếu). Hiệu lực xoay quanh hai điểm quan trọng; trước hết là nó có giá trị về bản chất—rằng tất cả các chuyển đổi trạng thái đều được thực hiện một cách trung thực và tất cả dữ liệu bên ngoài được tham chiếu (tức là các giao dịch) có giá trị để đưa vào. Thứ hai, bất kỳ dữ liệu nào nằm ngoài phạm vi của nó ứng viên, chẳng hạn như các giao dịch bên ngoài, có tính sẵn sàng cao để người tham gia có thể tải xuống và thực thi khối theo cách thủ công.5 Người xác thực chỉ có thể cung cấp khối “null” không chứa dữ liệu “giao dịch” bên ngoài, nhưng có thể gặp rủi ro bị giảm phần thưởng nếu họ làm như vậy. Họ làm việc bên cạnh một giao thức tin đồn parachain với các đối tác—các cá nhân người đối chiếu các giao dịch thành các khối và cung cấp bằng chứng không tương tác, không có kiến thức rằng khối đó cấu thành một phần tử con hợp lệ của phần tử mẹ của nó (và thực hiện bất kỳ giao dịch nào phí cho rắc rối của họ). Các giao thức parachain phải tự xác định phương tiện ngăn chặn thư rác: không có khái niệm cơ bản nào về “đo lường tài nguyên máy tính” hoặc “phí giao dịch” được áp đặt bởi chuỗi chuyển tiếp. Giao thức chuỗi chuyển tiếp cũng không có sự thực thi trực tiếp nào về vấn đề này (mặc dù nó khó có khả năng các bên liên quan sẽ chọn áp dụng một parachain không cung cấp một cơ chế phù hợp). Đây là một sự đồng ý rõ ràng về khả năng của các chuỗi không giống như Ethereum, ví dụ: một chuỗi giống Bitcoin có mô hình tính phí đơn giản hơn nhiều hoặc một số mô hình ngăn chặn thư rác khác chưa được đề xuất. Bản thân chuỗi chuyển tiếp của Polkadot có thể sẽ tồn tại dưới dạng Ethereum giống như tài khoản và chuỗi trạng thái, có thể là phái sinh EVM. Vì các nút chuỗi chuyển tiếp sẽ được yêu cầu thực hiện các xử lý đáng kể khác, thông lượng giao dịch sẽ được giảm thiểu một phần thông qua phí giao dịch lớn và nếu mô hình nghiên cứu của chúng tôi yêu cầu, giới hạn kích thước khối. 5.4. Truyền thông liên chuỗi. Thành phần quan trọng cuối cùng của Polkadot là giao tiếp giữa các chuỗi. Kể từ khi parachains có thể có một số loại kênh thông tin giữa chúng, chúng tôi cho phép mình xem xét Polkadot một đa chuỗi có thể mở rộng. Trong trường hợp Polkadot, việc giao tiếp càng đơn giản càng tốt: các giao dịch được thực hiện trong một parachain (theo logic của chuỗi đó) có thể ảnh hưởng đến việc gửi một giao dịch vào parachain thứ hai hoặc có thể là chuỗi chuyển tiếp. Giống như các giao dịch bên ngoài trên blockchains sản xuất, chúng hoàn toàn không đồng bộ và không có khả năng nội tại để họ trả lại bất kỳ loại thông tin trở lại nguồn gốc của nó. Điểm đến: được dữ liệu từ trước validator của khối. Tài khoản nhận được bài viết: mục nhập bị xóa khỏi xâm nhập Merkle tree Tài khoản gửi bài: mục được đặt trong đi ra Merkle tree cho điểm đến parachain đi ra Nguồn: chia sẻ dữ liệu với khối tiếp theo validators bằng chứng của bài viết được lưu trữ trong lối ra parachain Merkle cây tham chiếu định tuyến được đặt trong parachain đích xâm nhập Merkle tree xâm nhập Hình 3. Sơ đồ cơ bản thể hiện các phần chính của định tuyến cho bài đăng giao dịch (“bài đăng”). Để đảm bảo độ phức tạp thực hiện tối thiểu, tối thiểu rủi ro và tối thiểu áo khoác thẳng của tương lai kiến trúc parachain, các giao dịch liên chuỗi này được thực sự không thể phân biệt được với các giao dịch được ký kết bên ngoài tiêu chuẩn. Giao dịch có phân đoạn gốc, cung cấp khả năng xác định parachain và một địa chỉ có thể có kích thước tùy ý. Không giống như các hệ thống phổ biến hiện nay như Bitcoin và Ethereum, các giao dịch liên chuỗi không đi kèm với bất kỳ hình thức “thanh toán” phí liên quan nào; mọi khoản thanh toán như vậy phải được quản lý thông qua logic đàm phán trên parachain nguồn và đích. Một hệ thống như vậy được đề xuất cho Bản phát hành Serenity của Ethereum [7] sẽ là một phương tiện đơn giản Tuy nhiên, việc quản lý việc thanh toán tài nguyên xuyên chuỗi như vậy chúng tôi cho rằng những người khác có thể chiếm ưu thế vào thời điểm thích hợp. Các giao dịch liên chuỗi được giải quyết bằng cách sử dụng một cách đơn giản cơ chế xếp hàng dựa trên Merkle tree để đảm bảo sự chính xác. Nhiệm vụ của người bảo trì chuỗi chuyển tiếp là di chuyển các giao dịch trên hàng đợi đầu ra của một parachain vào hàng đợi đầu vào của parachain đích. các các giao dịch đã được thông qua sẽ được tham chiếu trên chuỗi chuyển tiếp, tuy nhiên không liên quanbản thân các giao dịch chuỗi ay. Để ngăn chặn một parachain gửi thư rác cho một parachain khác bằng giao dịch, để một giao dịch được gửi đi, cần phải có hàng đợi đầu vào của đích không quá lớn thời điểm kết thúc khối trước đó. Nếu đầu vào hàng đợi quá lớn sau khi xử lý khối thì nó được coi là “bão hòa” và không có giao dịch nào có thể được chuyển đến nó trong các khối tiếp theo cho đến khi giảm trở lại dưới mức giới hạn. Những hàng đợi này được quản lý trên chuỗi chuyển tiếp cho phép các parachain xác định độ bão hòa của nhau tình trạng; theo cách này, một nỗ lực thất bại trong việc đăng một giao dịch đến một đích bị đình trệ có thể được báo cáo đồng bộ. (Mặc dù không có đường dẫn trở lại tồn tại nên nếu giao dịch thứ cấp không thành công vì lý do đó thì nó không thể được báo cáo lại tới người gọi ban đầu và một số phương tiện phục hồi khác sẽ phải diễn ra.) 5.5. Polkadot và Ethereum. Do tính hoàn thiện Turing của Ethereum, chúng tôi hy vọng có nhiều cơ hội để Polkadot và Ethereum có thể tương tác với nhau, ít nhất là trong một số giới hạn an ninh dễ dàng được khấu trừ. Nói tóm lại, chúng tôi hình dung rằng các giao dịch từ Polkadot có thể được ký bởi validators và sau đó được đưa vào 5Nhiệm vụ như vậy có thể được chia sẻ giữa các validator hoặc có thể trở thành nhiệm vụ được chỉ định của một tập hợp các validator được liên kết chặt chẽ được gọi là người bảo đảm sẵn có.
POLKADOT: TẦM NHÌN VỀ KHUNG KHUNG ĐA CHUỖI KHÔNG ĐỒNG THỂ DỰ THẢO 1 8 Ethereum nơi chúng có thể được diễn giải và ban hành bởi một hợp đồng chuyển tiếp giao dịch. Ở hướng khác, chúng tôi thấy trước việc sử dụng nhật ký (sự kiện) được định dạng đặc biệt đến từ một “hợp đồng đột phá” để cho phép xác minh nhanh chóng rằng một tin nhắn cụ thể sẽ được chuyển tiếp. 5.5.1. Polkadot đến Ethereum. Thông qua việc lựa chọn một BFT cơ chế đồng thuận với validator được hình thành từ một tập hợp các bên liên quan được xác định thông qua bỏ phiếu phê duyệt cơ chế, chúng ta có thể đạt được sự đồng thuận an toàn với một thay đổi không thường xuyên và số lượng khiêm tốn validators. Trong một hệ thống có tổng cộng 144 validators, thời gian khối là 4 giây và độ chính xác 900 khối (cho phép mã độc hành vi như bỏ phiếu hai lần sẽ bị báo cáo, bị trừng phạt và được sửa chữa), tính hợp lệ của một khối có thể được xác định một cách hợp lý được coi là đã được chứng minh thông qua ít nhất 97 chữ ký (hai phần ba của 144 cộng một) và thời gian xác minh kéo dài 60 phút sau đó mà không có khiếu nại nào được đưa ra. Ethereum có thể lưu trữ một “hợp đồng đột nhập” có thể duy trì 144 bên ký kết và được kiểm soát bởi họ. Vì việc khôi phục chữ ký số theo đường cong elip (ECDSA) chỉ mất 3.000 gas trong EVM và kể từ đó chúng tôi có thể chỉ muốn việc xác thực diễn ra trên một siêu đa số validators (thay vì hoàn toàn nhất trí), chi phí cơ bản của Ethereum xác nhận rằng một lệnh đã được xác thực hợp lệ vì đến từ mạng Polkadot sẽ tiêu tốn không quá 300.000 gas—chỉ 6% trong số đó tổng giới hạn khí khối ở mức 5,5M. Tăng số lượng validators (cần thiết để xử lý hàng chục chuỗi) chắc chắn sẽ làm tăng chi phí này, tuy nhiên Người ta mong đợi băng thông giao dịch của Ethereum sẽ tăng theo thời gian khi công nghệ hoàn thiện và cơ sở hạ tầng được cải thiện. Cùng với thực tế là không tất cả validator đều cần được tham gia (ví dụ: chỉ có mức cao nhất validator đã đặt cược có thể được yêu cầu thực hiện một nhiệm vụ như vậy) giới hạn của cơ chế này mở rộng khá tốt. Giả sử luân chuyển hàng ngày validators như vậy (tức là khá thận trọng—hàng tuần hoặc thậm chí hàng tháng có thể được chấp nhận), thì chi phí cho mạng lưới duy trì cầu chuyển tiếp Ethereum này sẽ có giá khoảng 540.000 gas mỗi ngày hoặc, theo giá gas hiện tại, là 45 USD mỗi năm. Một giao dịch cơ bản được chuyển tiếp qua cầu sẽ có chi phí khoảng 0,11 USD; việc tính toán hợp đồng bổ sung sẽ tốn kém tất nhiên là nhiều hơn nữa. Bằng cách đệm và đóng gói các giao dịch cùng với nhau, chi phí ủy quyền đột nhập có thể dễ dàng được tính toán được chia sẻ, giảm đáng kể chi phí cho mỗi giao dịch; nếu cần 20 giao dịch trước khi chuyển tiếp thì chi phí để chuyển tiếp một giao dịch cơ bản sẽ giảm xuống khoảng 0,01 USD. Một giải pháp thay thế thú vị và rẻ hơn cho mô hình hợp đồng đa chữ ký này là sử dụng chữ ký ngưỡng để đạt được ngữ nghĩa quyền sở hữu đa phương. Trong khi các sơ đồ chữ ký ngưỡng cho ECDSA đắt tiền về mặt tính toán, đối với các chương trình khác chẳng hạn như chữ ký Schnorr là rất hợp lý. Ethereum có kế hoạch giới thiệu những thứ nguyên thủy sẽ tạo ra những thứ như vậy các chương trình rẻ tiền để sử dụng trong đợt hardfork Metropolis sắp tới. Nếu một phương tiện như vậy có thể được sử dụng, chi phí khí đốt để chuyển tiếp giao dịch Polkadot vào Ethereum mạng sẽ giảm đáng kể xuống gần bằng không chi phí chung vượt quá chi phí cơ bản để xác nhận ký và thực hiện giao dịch cơ bản. Trong mô hình này, các nút validator của Polkadot sẽ có không làm gì khác ngoài việc ký tin nhắn. Để các giao dịch thực sự được định tuyến trên mạng Ethereum, chúng tôi giả sử chính validator cũng sẽ cư trú trên mạng Ethereum hoặc nhiều khả năng là những khoản tiền thưởng nhỏ đó được cung cấp cho tác nhân đầu tiên chuyển tiếp tin nhắn trên vào mạng (tiền thưởng có thể được trả một cách tầm thường cho người khởi tạo giao dịch). 5.5.2. Ethereum tới Polkadot. Bắt các giao dịch được thực hiện được chuyển tiếp từ Ethereum đến Polkadot sử dụng khái niệm nhật ký đơn giản. Khi hợp đồng Ethereum muốn gửi giao dịch đến một parachain cụ thể của Polkadot, nó chỉ cần gọi đến một “hợp đồng đột phá” đặc biệt. Hợp đồng đột phá sẽ nhận bất kỳ khoản thanh toán nào có thể được yêu cầu và đưa ra hướng dẫn ghi nhật ký để sự tồn tại của nó có thể được chứng minh thông qua bằng chứng Merkle và xác nhận rằng tiêu đề của khối tương ứng là hợp lệ và kinh điển. Trong hai điều kiện sau, tính hợp lệ có lẽ là điều kiện dễ chứng minh nhất. Về nguyên tắc, yêu cầu duy nhất làcho mỗi nút Polkadot cần bằng chứng (tức là các nút validator được chỉ định) để chạy một phiên bản được đồng bộ hóa hoàn toàn của nút Ethereum tiêu chuẩn. Thật không may, bản thân điều này lại là một sự phụ thuộc khá nặng nề. Thêm nữa phương pháp nhẹ nhàng sẽ là sử dụng một bằng chứng đơn giản rằng tiêu đề được đánh giá chính xác thông qua việc chỉ cung cấp cần có một phần trạng thái của Ethereum để thực thi đúng cách các giao dịch trong khối và kiểm tra xem nhật ký (có trong biên lai khối) có hợp lệ hay không. Những thứ “giống SPV”6 bằng chứng có thể vẫn yêu cầu một lượng thông tin đáng kể; một cách thuận tiện, chúng thường không cần thiết ở tất cả: hệ thống liên kết bên trong Polkadot sẽ cho phép liên kết bên thứ ba gửi tiêu đề có nguy cơ bị mất mối ràng buộc nếu một số bên thứ ba khác (chẳng hạn như “ngư dân”, xem 6.2.3) cung cấp bằng chứng rằng tiêu đề không hợp lệ (cụ thể là gốc nhà nước hoặc gốc nhận là kẻ mạo danh). Trên mạng PoW chưa hoàn thiện như Ethereum, tính kinh điển không thể được chứng minh một cách thuyết phục. Để giải quyết vấn đề này, các ứng dụng cố gắng dựa vào bất kỳ loại nguyên nhân-kết quả phụ thuộc vào chuỗi, hãy đợi một số “xác nhận” hoặc cho đến khi giao dịch phụ thuộc ở một mức nào đó độ sâu cụ thể trong chuỗi. Vào Ethereum, cái này độ sâu thay đổi từ 1 khối đối với các giao dịch ít giá trị nhất mà không có sự cố mạng nào được xác định đến 1200 khối như trước đây trường hợp này trong lần phát hành Frontier đầu tiên cho các sàn giao dịch. Trên mạng “Homestead” ổn định, hình này nằm ở 120 khối cho hầu hết các sàn giao dịch và chúng tôi có thể sẽ lấy một tham số tương tự. Vì vậy chúng tôi có thể tưởng tượng của chúng tôi Polkadot bên Ethereumgiao diện có một số chức năng đơn giản: có thể chấp nhận tiêu đề mới từ mạng Ethereum và xác thực PoW, để có thể chấp nhận một số bằng chứng cho thấy nhật ký cụ thể được phát ra bởi hợp đồng đột phá bên Ethereum cho tiêu đề có đủ độ sâu (và chuyển tiếp tin nhắn tương ứng trong Polkadot) và cuối cùng để có thể chấp nhận bằng chứng rằng một bằng chứng đã được chấp nhận trước đó nhưng tiêu đề chưa được ban hành chứa gốc biên nhận không hợp lệ. Để thực sự có được dữ liệu tiêu đề Ethereum (và bất kỳ bằng chứng SPV hoặc sự bác bỏ tính hợp lệ/kinh điển nào) vào mạng Polkadot, một sự khuyến khích chuyển tiếp 6SPV đề cập đến Xác minh thanh toán đơn giản hóa trong Bitcoin và mô tả phương pháp để khách hàng xác minh giao dịch trong khi chỉ giữ lại một bản sao của tất cả các tiêu đề khối của chuỗi PoW dài nhất.POLKADOT: TẦM NHÌN VỀ KHUNG KHUNG ĐA CHUỖI KHÔNG ĐỒNG THỂ DỰ THẢO 1 9 dữ liệu là cần thiết. Điều này có thể đơn giản như một khoản thanh toán (được tài trợ từ phí thu được từ phía Ethereum) đã thanh toán cho bất kỳ ai có thể chuyển tiếp một khối hữu ích có tiêu đề là hợp lệ. Người xác thực sẽ được yêu cầu lưu giữ thông tin liên quan đến vài nghìn khối cuối cùng để có thể quản lý các nhánh, thông qua một số phương tiện giao thức nội tại hoặc thông qua hợp đồng được duy trì trên chuỗi rơle. 5.6. Polkadot và Bitcoin. Bitcoin tương tác đưa ra một thử thách thú vị dành cho Polkadot: cái gọi là “chốt hai chiều” sẽ là một phần cơ sở hạ tầng hữu ích có ở phía của cả hai mạng. Tuy nhiên, do những hạn chế của Bitcoin, việc cung cấp chốt như vậy một cách an toàn là một công việc không tầm thường. Thực hiện giao dịch từ Bitcoin tới Polkadot về nguyên tắc có thể được thực hiện bằng quy trình tương tự như quy trình dành cho Ethereum; một “địa chỉ đột phá” được kiểm soát theo cách nào đó bởi Polkadot validator có thể nhận token được chuyển (và dữ liệu được gửi cùng với chúng). Bằng chứng SPV có thể được cung cấp bởi oracle được khuyến khích và, cùng với thời gian xác nhận, tiền thưởng được trao cho xác định các khối không chuẩn ngụ ý giao dịch đã được “chi tiêu gấp đôi”. Bất kỳ token nào sau đó được sở hữu trong Về nguyên tắc, “địa chỉ đột phá” sẽ được kiểm soát bởi chính validator đó để phân tán sau này. Tuy nhiên, vấn đề là làm thế nào để có thể kiểm soát khoản tiền gửi một cách an toàn từ bộ validator luân phiên. Không giống Ethereum có thể đưa ra quyết định tùy ý dựa trên dựa trên sự kết hợp của chữ ký, Bitcoin về cơ bản là hạn chế hơn, với hầu hết khách hàng chỉ chấp nhận các giao dịch đa chữ ký với tối đa 3 bên. Việc mở rộng con số này lên 36, hoặc thậm chí hàng nghìn như mong muốn cuối cùng, là không thể theo giao thức hiện tại. Một tùy chọn là thay đổi giao thức Bitcoin để kích hoạt chức năng như vậy, tuy nhiên cái gọi là “hard fork” trong Bitcoin thế giới rất khó sắp xếp việc đánh giá bằng những nỗ lực gần đây. Một khả năng là việc sử dụng chữ ký ngưỡng, các sơ đồ mật mã cho phép một công chúng có thể nhận dạng được một cách duy nhất khóa được kiểm soát hiệu quả bởi nhiều “bộ phận” bí mật, một số hoặc tất cả trong số đó phải được sử dụng để tạo chữ ký hợp lệ. Thật không may, chữ ký ngưỡng tương thích với ECDSA của Bitcoin rất tốn kém về mặt tính toán tạo và có độ phức tạp đa thức. Các phương án khác như chữ ký Schnorr mang lại chi phí thấp hơn nhiều, tuy nhiên dòng thời gian mà chúng có thể được đưa vào Bitcoin giao thức không chắc chắn. Vì sự an toàn cuối cùng của tiền gửi phụ thuộc vào một số validator được liên kết, một tùy chọn khác là giảm số lượng người nắm giữ khóa đa chữ ký xuống chỉ còn rất nhiều tập hợp con liên kết của tổng validators sao cho ngưỡng đó chữ ký trở nên khả thi (hoặc tệ nhất là chữ ký gốc của Bitcoin có thể có nhiều chữ ký). Điều này tất nhiên làm giảm tổng số tiền trái phiếu có thể được khấu trừ để bồi thường nếu validator hành xử bất hợp pháp, tuy nhiên điều này là một sự xuống cấp duyên dáng, chỉ đơn giản là thiết lập giới hạn trên của số tiền có thể chạy một cách an toàn giữa hai mạng (hoặc thực tế là trên % tổn thất nếu một cuộc tấn công từ validators thành công). Vì vậy, chúng tôi tin rằng sẽ không phi thực tế khi đặt một “parachain ảo” có khả năng tương tác an toàn hợp lý Bitcoin giữa hai mạng, mặc dù vậy vẫn là một nỗ lực đáng kể với thời gian không chắc chắn và hoàn toàn có thể đòi hỏi sự hợp tác của các bên liên quan trong đó mạng.
Aperçu de la conception
Cette section a pour but de donner un bref aperçu de système dans son ensemble. Une exploration plus approfondie du Le système est donné dans la section qui le suit. 5.1. Consensus. Sur la chaîne-relais, Polkadot réalise consensus de bas niveau sur un ensemble de critères valables mutuellement convenus bloque grâce à un algorithme byzantin asynchrone moderne de tolérance aux pannes (BFT). L'algorithme s'inspirera par le simple Tendermint [11] et le nettement plus impliqué HoneyBadgerBFT [14]. Ce dernier fournit un consensus efficace et tolérant aux pannes sur un infrastructure de réseau défectueuse, étant donné un ensemble d’autorités pour la plupart inoffensives ou validators. Pour un réseau de type preuve d'autorité (PoA), cela seul serait suffisant, mais Polkadot est supposé être également déployable en réseau dans un environnement entièrement ouvert et public situation sans organisation particulière ni confiance autorité nécessaire à son entretien. En tant que tel, nous avons besoin d'un moyens de déterminer un ensemble de validator et d'inciter eux pour être honnête. Pour cela, nous utilisons une sélection basée sur PoS critères. 5.2. Prouver l'enjeu. Nous supposons que le réseau aura des moyens de mesurer le montant de la « mise » n'importe quel compte particulier a. Pour faciliter la comparaison avec systèmes préexistants, nous appellerons l'unité de mesure « tokens ». Malheureusement, le terme est loin d'être idéal pour un un certain nombre de raisons, notamment le fait qu'il s'agit simplement d'un scalaire valeur associée à un compte, il n'y a aucune notion de individualité. Nous imaginons que les validator soient élus, rarement (au plus une fois par jour mais peut-être aussi rarement qu'une fois par trimestre), via un système de preuve de participation nommée (NPoS). L'incitation peut se faire par le biais d'une allocation au prorata dePOLKADOT : VISION D'UN CADRE MULTI-CHAÎNES HÉTÉROGÈNE PROJET 1 6 Relais chaîne Essaim de validateurs (chacun coloré par son parachaîne désignée) Transaction (soumis par acteur externe) Parachaine pont Parachaine virtuelle (par exemple Ethereum) Parachaine Parachaine files d'attente et E/S Transactions propagées Bloquer la soumission des candidats 2ème commande Chaîne relais Communauté Parachain Compte Transaction entrante Transaction sortante Transactions inter-chaînes (géré par validators) Assembleur Bloc propagé Pêcheur Figure 2. Un schéma récapitulatif du système Polkadot. Cela montre les assembleurs collectant et propageant les transactions des utilisateurs, ainsi que la propagation des candidats au bloc aux pêcheurs et aux validator. C'est aussi montre comment un compte peut poster une transaction qui est effectuée depuis sa parachain, via la chaine-relais et ensuite dans une autre parachain où cela peut être interprété comme une transaction sur un compte là-bas. fonds provenant d'une expansion de base token (jusqu'à 100 % par an, mais plus probablement autour de 10 %), ainsi que tous les frais de transaction perçus. Alors que l’expansion de la base monétaire conduit généralement à l’inflation, puisque tous les propriétaires de token aurait une chance équitable de participer, aucun titulaire de token n'aurait besoin de subir une réduction de la valeur de son avoirs au fil du temps, à condition qu'ils soient heureux de prendre un rôle dans le mécanisme de consensus. Une proportion particulière des token seraient ciblés pour le processus staking ; le l’expansion effective de la base token serait ajustée grâce à un mécanisme basé sur le marché pour atteindre cet objectif. Les validateurs sont fortement liés par leurs enjeux ; sortir Les obligations des validator restent en place longtemps après la fin des fonctions des validator (peut-être environ 3 mois). Ce long la période de liquidation des obligations permet à une mauvaise conduite future d'être sanctionné jusqu'au contrôle périodique de la chaîne. Une mauvaise conduite entraîne des sanctions, telles qu'une réduction de récompense ou, dans les cas qui compromettent intentionnellement la l'intégrité du réseau, le validator perdant tout ou partie de son l'enjeu à d'autres validators, informateurs ou parties prenantes dans son ensemble (par brûlage). Par exemple, un validator qui tente de ratifier les deux branches d'une fourchette (parfois connue sous le nom d’attaque « à courte portée ») peut être identifiée et puni de cette dernière manière. Les attaques à longue portée « sans enjeu »4 sont contournées grâce à un simple « point de contrôle » qui empêche une dangereuse réorganisation en chaîne de plus d’un profondeur de chaîne particulière. Pour garantir la synchronisation des clients ne peuvent pas se laisser tromper par la mauvaise chaîne, régulier des « hard forks » se produiront (au plus pendant la même période du liquidation des obligations de validators) qui code en dur le bloc de point de contrôle récent hashes dans les clients. Cela s’accorde bien avec une mesure supplémentaire de réduction de l’empreinte de « longueur de chaîne finie » ou réinitialisation périodique du bloc de genèse. 5.3. Parachains et assembleurs. Chaque parachain obtient des conditions de sécurité similaires à celles de la chaîne relais : le les en-têtes des parachains sont scellés dans le bloc de chaîne de relais s’assurer qu’aucune réorganisation, ou « double dépense », n’est possible après confirmation. Il s’agit d’une garantie de sécurité similaire à celle offerte par les side-chains et la fusion de Bitcoin. Polkadot, cependant, fournit également de fortes garanties que les transitions d'état des parachains sont valides. Ceci cela se produit lorsque l'ensemble des validator est segmenté de manière cryptographique aléatoire en sous-ensembles ; un sous-ensemble par parachain, les sous-ensembles potentiellement différents par bloc. Ceci la configuration implique généralement que les temps de blocage des parachains seront être au moins aussi longue que celle de la chaîne-relais. Le spécifique les moyens permettant de déterminer le partage ne relèvent pas du champ d'application 4Une telle attaque est le moment où l’adversaire forge une chaîne historique entièrement nouvelle à partir du bloc de genèse. En contrôlant un part de participation relativement insignifiante au départ, ils sont capables d'augmenter progressivement leur part de participation par rapport à tous les autres parties prenantes car ils sont les seuls participants actifs à leur histoire alternative. Puisqu'il n'existe aucune limitation physique intrinsèque à la création de blocs (contrairement à PoW où une énergie de calcul assez réelle doit être dépensée), ils sont capables de créer une chaîne plus longue que la chaîne réelle dans un une période de temps relativement courte et en fera potentiellement la plus longue et la meilleure, reprenant l'état canonique du réseau.POLKADOT : VISION D'UN CADRE MULTI-CHAÎNES HÉTÉROGÈNE PROJET 1 7 de ce document mais serait probablement basé soit sur un cadre de validation-révélation similaire au RanDAO [19] ou utiliser les données combinées des blocs précédents de chaque parachain sous un hash cryptographiquement sécurisé. De tels sous-ensembles de validator sont nécessaires pour fournir un candidat de bloc parachain qui est garanti valide (sur peine de confiscation de la caution). La validité s'articule autour de deux points importants; d’abord qu’il est intrinsèquement valable – que toutes les transitions d'état ont été exécutées fidèlement et que tout les données externes référencées (c'est-à-dire les transactions) sont valables pour l'inclusion. Deuxièmement, que toute donnée extrinsèque à son Le candidat, comme ces transactions externes, a une disponibilité suffisamment élevée pour que les participants puissent téléchargez-le et exécutez le bloc manuellement.5 Les validateurs peuvent fournir uniquement un bloc « nul » ne contenant aucune donnée de « transactions » externe, mais peuvent courir le risque d'obtenir une récompense réduite s'ils le font. Ils travaillent aux côtés un protocole de potins en parachain avec des assembleurs – des particuliers qui rassemblent les transactions en blocs et fournissent une preuve non interactive et sans connaissance que le bloc constitue un enfant valide de son parent (et prend toute transaction frais pour leurs ennuis). Il appartient aux protocoles de parachain de spécifier les leurs moyens de prévention du spam : il n'existe pas de notion fondamentale de « mesure des ressources de calcul » ou de « frais de transaction » imposée par la chaîne-relais. Il n'y a pas non plus d'application directe à ce sujet par le protocole de chaîne de relais (bien qu'il Il est peu probable que les parties prenantes choisissent d'adopter une parachain qui ne fournissait pas un mécanisme décent). Il s’agit d’un clin d’œil explicite à la possibilité de chaînes contrairement à Ethereum, par ex. une chaîne de type Bitcoin qui a un modèle de frais beaucoup plus simple ou un autre modèle de prévention du spam, qui n'a pas encore été proposé. La chaîne de relais de Polkadot elle-même existera probablement en tant que Comptes et chaîne d'état de type Ethereum, éventuellement un dérivé EVM. Puisque les nœuds de la chaîne relais devront effectuer d'autres traitements substantiels, débit de transaction sera minimisé en partie grâce à des frais de transaction importants et, si nos modèles de recherche l'exigent, une limite de taille de bloc. 5.4. Communication inter-chaînes. Le dernier ingrédient essentiel de Polkadot est la communication inter-chaînes. Depuis les parachains peuvent avoir une sorte de canal d'information entre elles, nous nous permettons de considérer Polkadot un multi-chaîne évolutive. Dans le cas de Polkadot, la communication est aussi simple que possible : des transactions s'exécutant dans un les parachain sont (selon la logique de cette chaîne) capables de effectuer l'envoi d'une transaction dans une deuxième parachain ou, potentiellement, la chaîne relais. Comme les transactions externes sur les blockchain de production, ils sont entièrement asynchrones et il n'y a aucune capacité intrinsèque pour eux de rendre quoi que ce soit type d'information jusqu'à son origine. Destination : obtient données antérieures les validators du bloc. Le compte reçoit la publication : entrée supprimée de entrée Merkle tree Le compte envoie le message : entrée placée dans sortie Merkle tree pour destination parachaine sortie Source : partages données avec le bloc suivant validators preuve de courrier stockée dans sortie de parachain Merkle arbre référence routé placée dans les parachaines de destination entrée Merkle tree entrée Figure 3. Un schéma de base montrant les principales parties du routage pour posté transactions (« posts »). Pour garantir une complexité de mise en œuvre minimale, un minimum risque et minime camisole de force de avenir architectures parachain, ces transactions interchaînes sont en fait impossible à distinguer des transactions standard signées en externe. La transaction a un segment d'origine, offrant la possibilité d'identifier une parachain, et une adresse qui peut être de taille arbitraire. Contrairement aux systèmes actuels courants tels que Bitcoin et Ethereum, les transactions inter-chaînes ne s'accompagnent d'aucun type de « paiement » de frais associés ; tout paiement de ce type doit être géré via une logique de négociation sur les parachains source et de destination. Un système tel que celui proposé pour La version Serenity de Ethereum [7] serait un moyen simple de gérer un tel paiement de ressources inter-chaînes, bien que nous supposons que d’autres pourraient apparaître en temps voulu. Les transactions interchaînes sont résolues à l'aide d'un simple mécanisme de file d'attente basé sur un Merkle tree pour garantir fidélité. C'est la tâche des mainteneurs de la chaîne de relais de déplacer les transactions sur la file d'attente de sortie d'une parachain dans la file d’attente d’entrée de la parachain de destination. Le les transactions passées sont référencées sur la chaîne de relais, mais ne sont pas pertinentestransactions en chaîne elles-mêmes. Pour empêcher une parachain de spammer une autre parachain avec transactions, pour qu'une transaction soit envoyée, il est nécessaire que la file d'attente d'entrée de la destination ne soit pas trop grande à l'heure de fin du bloc précédent. Si l'entrée est trop grande après le traitement des blocs, elle est alors considérée comme « saturée » et aucune transaction ne peut être acheminée vers dans les blocs suivants jusqu'à ce qu'il soit réduit en dessous du limite. Ces files d'attente sont administrées sur la chaîne-relais permettre aux parachains de déterminer la saturation de chacun statut ; de cette façon, une tentative infructueuse de publier une transaction vers une destination bloquée peut être signalé de manière synchrone. (Mais comme aucun chemin de retour n'existe, si une transaction secondaire échouait pour cette raison, elle ne pourrait pas être signalée. à l'appelant d'origine et à d'autres moyens de récupération devrait avoir lieu.) 5.5. Polkadot et Ethereum. En raison de l'exhaustivité de Turing de Ethereum, nous pensons qu'il existe de nombreuses possibilités pour Polkadot et Ethereum d'être interopérables avec les uns les autres, du moins dans certaines limites de sécurité facilement déductibles. En bref, nous envisageons que les transactions de Polkadot peut être signé par validators puis introduit dans 5Une telle tâche pourrait être partagée entre les validator ou pourrait devenir la tâche désignée d'un ensemble de validator fortement liés, connu sous le nom de garants de disponibilité.
POLKADOT : VISION D'UN CADRE MULTI-CHAÎNES HÉTÉROGÈNE PROJET 1 8 Ethereum où ils peuvent être interprétés et mis en œuvre par un contrat de transmission de transactions. Dans l'autre sens, nous prévoyons l'utilisation de journaux (événements) spécialement formatés provenant d’un « contrat de rupture » pour permettre une vérification rapide qu’un message particulier doit être transmis. 5.5.1. Polkadot à Ethereum. Grâce au choix d'un BFT mécanisme de consensus avec validators formés à partir d'un ensemble de parties prenantes déterminées par un vote d'approbation mécanisme, nous sommes en mesure d’obtenir un consensus sûr avec un changement peu fréquent et nombre modeste de validator. Dans un système avec un total de 144 validators, un temps de bloc de 4 secondes et une finalité de 900 blocs (permettant des attaques malveillantes) les comportements tels que les doubles votes doivent être signalés et punis et réparé), la validité d'un blocage peut raisonnablement être est considérée comme prouvée par seulement 97 signatures (les deux tiers de 144 plus une) et une période de vérification ultérieure de 60 minutes au cours de laquelle aucune contestation n'est déposée. Ethereum est en mesure d'héberger un « contrat de rodage » qui peut maintenir les 144 signataires et être contrôlé par eux. Étant donné que la récupération de la signature numérique à courbe elliptique (ECDSA) ne nécessite que 3 000 gaz sous le EVM, et depuis nous voudrions probablement que la validation n'ait lieu que sur un majorité qualifiée de validator (plutôt que l'unanimité totale), le coût de base de Ethereum confirmant qu'une instruction a été correctement validé car provenant du réseau Polkadot ne représenterait pas plus de 300 000 gaz, soit seulement 6 % du la limite totale de gaz du bloc à 5,5 M. Augmenter le nombre de validator (ce qui serait nécessaire pour faire face aux des dizaines de chaînes) augmente inévitablement ce coût, mais on s'attend généralement à ce que la bande passante de transaction de Ethereum augmente au fil du temps à mesure que la technologie évolue et les infrastructures s’améliorent. Avec le fait que non tous les validator doivent être impliqués (par exemple, seul le niveau le plus élevé les validator jalonnés peuvent être sollicités pour une telle tâche), le les limites de ce mécanisme s’étendent raisonnablement bien. En supposant une rotation quotidienne de ces validator (ce qui est assez conservateur (une fréquence hebdomadaire ou même mensuelle peut être acceptable), alors le coût pour le réseau de maintenance ce pont de transfert Ethereum serait d'environ 540 000 gaz par jour ou, aux prix actuels du gaz, 45 $ par an. Une transaction de base transmise seule via le pont coûterait environ 0,11 $ ; le calcul supplémentaire du contrat coûterait plus, bien sûr. En tamponnant et en regroupant les transactions ensemble, les coûts d'autorisation d'effraction peuvent facilement être partagé, réduisant considérablement le coût par transaction ; si 20 transactions étaient nécessaires avant la transmission, alors le coût de transmission d'une transaction de base tomberait à environ 0,01 $. Une alternative intéressante et moins coûteuse à ce modèle de contrat multisignature serait d’utiliser des signatures à seuil afin d’obtenir la sémantique de propriété multilatérale. Alors que les schémas de signature à seuil pour l'ECDSA sont coûteux en calcul, ceux des autres schémas comme les signatures Schnorr sont très raisonnables. Ethereum envisage d'introduire des primitives qui rendraient un tel des schémas bon marché à utiliser dans le prochain hardfork de Metropolis. Si un tel moyen pouvait être utilisé, les coûts du gaz pour transférer une transaction Polkadot vers le Ethereum le réseau serait considérablement réduit à un niveau proche de zéro frais généraux qui s'ajoutent aux coûts de base liés à la validation du signature et exécution de la transaction sous-jacente. Dans ce modèle, les nœuds validator de Polkadot auraient faire peu d'autre que signer des messages. Pour que les transactions soient réellement acheminées sur le réseau Ethereum, nous supposons que les validator eux-mêmes résideraient également sur le réseau Ethereum ou, plus probablement, que de petites primes être proposé au premier acteur qui transmet le message sur au réseau (la prime pourrait trivialement être versée au initiateur de la transaction). 5.5.2. Ethereum à Polkadot. Faire en sorte que les transactions soient transmis de Ethereum à Polkadot utilise la simple notion de logs. Lorsqu'un contrat Ethereum souhaite envoyer une transaction vers une parachain particulière de Polkadot, il suffit de faire appel à un « contrat de rupture » spécial. Le contrat de rupture accepterait tout paiement qui pourrait être requis et émettre une instruction de journalisation afin que son existence puisse être prouvée par une preuve Merkle et une affirmation que l'en-tête du bloc correspondant est valide et canonique. Parmi ces deux dernières conditions, la validité est peut-être la le plus simple à prouver. En principe, la seule exigence estpour chaque nœud Polkadot nécessitant la preuve (c'est-à-dire des nœuds validator désignés) pour exécuter une instance entièrement synchronisée d'un nœud Ethereum standard. Malheureusement, il s’agit en soi d’une dépendance assez lourde. Un plus méthode légère consisterait à utiliser une preuve simple que le l'en-tête a été évalué correctement en fournissant uniquement le une partie du test d'état de Ethereum nécessaire pour s'exécuter correctement les transactions du bloc et vérifier que les logs (contenus dans le reçu de bloc) sont valides. Un tel « SPV-like »6 les preuves peuvent pourtant nécessiter une quantité substantielle d'informations ; commodément, ils ne seraient généralement pas nécessaires à tous : un système de liaison à l'intérieur de Polkadot permettrait les tiers à soumettre des en-têtes au risque de perdre leur caution si un autre tiers (tel qu’un « pêcheur », voir 6.2.3) fournit la preuve que l’en-tête n’est pas valide (en particulier que la racine de l'État ou la racine du reçu étaient des imposteurs). Sur un réseau PoW non finalisant comme Ethereum, le la canonicité est impossible à prouver de manière concluante. Pour résoudre ce problème, les applications qui tentent de s'appuyer sur n'importe quel type de cause à effet dépendant d’une chaîne, attendez un certain nombre de « confirmations » ou jusqu’à ce que la transaction dépendante soit à un certain point. profondeur particulière au sein de la chaîne. Le Ethereum, ceci la profondeur varie de 1 bloc pour les transactions les moins précieuses sans problème de réseau connu à 1 200 blocs comme c'était le cas ce fut le cas lors de la première version de Frontier pour les échanges. Sur le réseau stable « Homestead », ce chiffre se situe à 120 blocs pour la plupart des échanges, et nous prendrions probablement un paramètre similaire. Alors nous peut imaginer notre Côté Polkadot Ethereuminterface pour avoir quelques fonctions simples : pouvoir acceptez un nouvel en-tête du réseau Ethereum et validez le PoW, pour pouvoir accepter une preuve qu'un un journal particulier a été émis par le contrat de rupture côté Ethereum pour un en-tête de profondeur suffisante (et vers l'avant le message correspondant dans Polkadot) et enfin être capable d'accepter des preuves qu'un document précédemment accepté mais l'en-tête non encore adopté contient une racine de reçu non valide. Pour obtenir réellement les données d'en-tête Ethereum elles-mêmes (et toutes preuves SPV ou réfutations de validité/canonicité) dans le réseau Polkadot, une incitation à la réexpédition 6SPV fait référence à la vérification simplifiée des paiements dans Bitcoin et décrit une méthode permettant aux clients de vérifier les transactions tout en ne conservant que une copie de tous les en-têtes de blocs de la plus longue chaîne PoW.POLKADOT : VISION D'UN CADRE MULTI-CHAÎNES HÉTÉROGÈNE PROJET 1 9 des données sont nécessaires. Cela pourrait être aussi simple qu'un paiement (financé par les frais perçus du côté Ethereum) payé à toute personne capable de transmettre un bloc utile dont l'en-tête est valide. Les validateurs seraient appelés à conserver les informations relatives aux derniers milliers de blocs afin de être capable de gérer les forks, soit par des moyens protocolaires intrinsèques, soit par le biais d'un contrat maintenu sur le chaîne de relais. 5.6. Polkadot et Bitcoin. Bitcoin interopération présente un défi intéressant pour Polkadot : un soi-disant un « ancrage bidirectionnel » serait une infrastructure utile avoir du côté des deux réseaux. Cependant, en raison de les limites de Bitcoin, à condition qu'une telle cheville soit solidement une entreprise non triviale. Réaliser une transaction depuis Bitcoin à Polkadot peut en principe être réalisé avec un processus similaire à celui de Ethereum ; une « adresse en petits groupes » contrôlé d'une manière ou d'une autre par les Polkadot validator pourraient recevoir les token transférés (et les données envoyées avec eux). Les preuves SPV pourraient être fournies par des oracle incités et, accompagné d'une période de confirmation, une prime accordée pour identifier les blocs non canoniques impliquant la transaction a été « dépensé deux fois ». Tous les token alors possédés dans le « l'adresse de rupture » serait alors, en principe, contrôlée par ces mêmes validator pour une dispersion ultérieure. Le problème est cependant de savoir comment les dépôts peuvent être contrôlés en toute sécurité à partir d'un ensemble validator rotatif. Contrairement à Ethereum qui est capable de prendre des décisions arbitraires basées sur sur des combinaisons de signatures, Bitcoin est substantiellement plus limité, la plupart des clients n'acceptant que les transactions multisignatures avec un maximum de 3 parties. Étendre ce chiffre à 36, voire à des milliers comme on pourrait le souhaiter en fin de compte, est impossible dans le cadre du protocole actuel. Une option consiste à modifier le protocole Bitcoin pour activer une telle fonctionnalité, mais ce qu'on appelle des « hard forks » dans le Le monde Bitcoin est difficile à organiser à en juger par les tentatives récentes. Une possibilité est l'utilisation de signatures à seuil, schémas cryptographiques pour permettre à un public identifiable une seule fois clé pour être contrôlée efficacement par plusieurs « parties » secrètes dont tout ou partie doit être utilisé pour créer une signature valide. Malheureusement, les signatures de seuil sont compatibles avec l'ECDSA de Bitcoin sont coûteux en calcul créer et de complexité polynomiale. D'autres schémas tels a Les signatures Schnorr offrent des coûts bien inférieurs, mais le calendrier sur lequel ils peuvent être introduits dans le Bitcoin le protocole est incertain. Puisque la sécurité ultime des dépôts repose sur un certain nombre de validator liés, une autre option consiste à réduire les détenteurs de clés multi-signatures à seulement un nombre important sous-ensemble lié du total de validators tel que ce seuil les signatures deviennent réalisables (ou, au pire, les signatures natives de Bitcoin la multi-signature est possible). Cela réduit bien sûr le montant total des obligations qui pourraient être déduites à titre de réparations si les validator se comportaient illégalement, mais cela est une dégradation gracieuse, fixant simplement une limite supérieure de le montant des fonds qui peuvent circuler en toute sécurité entre le deux réseaux (ou encore, sur le % de pertes en cas d'attaque des validator réussissent). En tant que tel, nous pensons qu’il n’est pas irréaliste de placer une « parachain virtuelle » d’interopérabilité Bitcoin raisonnablement sécurisée. entre les deux réseaux, mais néanmoins un effort conséquent avec un calendrier incertain et très probablement exigeant la coopération des parties prenantes au sein de ce réseau.
Giao thức chi tiết
Giao thức có thể được chia đại khái thành ba các bộ phận: cơ chế đồng thuận, giao diện parachain và định tuyến giao dịch liên chuỗi. 6.1. Chuỗi rơle Hoạt động. các chuỗi chuyển tiếp sẽ có thể là một chuỗi tương tự như Ethereum ở chỗ nó dựa trên trạng thái với địa chỉ ánh xạ trạng thái tới tài khoản thông tin, chủ yếu là số dư và (để tránh lặp lại) quầy giao dịch. Việc đặt tài khoản ở đây nhằm đáp ứng một mục đích: cung cấp thông tin kế toán mà danh tính sở hữu số lượng cổ phần trong hệ thống là bao nhiêu.7 Tuy nhiên, sẽ có những khác biệt đáng chú ý: • Hợp đồng không thể triển khai thông qua giao dịch; xuất phát từ mong muốn tránh chức năng ứng dụng trên chuỗi chuyển tiếp, nó sẽ không hỗ trợ triển khai công khai các hợp đồng. • Tính toán việc sử dụng tài nguyên (“gas”) không được tính; vì các chức năng duy nhất có sẵn cho mục đích sử dụng công cộng sẽ được khắc phục, cơ sở lý luận đằng sau việc tính toán khí đốt không còn giữ được nữa. Do đó, một khoản phí cố định sẽ được áp dụng trong mọi trường hợp, cho phép đạt được hiệu suất cao hơn từ bất kỳ thực thi mã động có thể cần phải được thực hiện và một hình thức giao dịch đơn giản hơn. • Chức năng đặc biệt được hỗ trợ cho các hợp đồng được liệt kê cho phép thực hiện tự động và xuất ra thông báo mạng. Trong trường hợp chuỗi chuyển tiếp có VM và nó được dựa trên EVM, nó sẽ có một số sửa đổi để đảm bảo tính đơn giản tối đa. Nó có thể sẽ có một số hợp đồng được xây dựng sẵn (tương tự như ở địa chỉ 1-4 trong Ethereum) để cho phép nền tảng cụ thể nhiệm vụ phải được quản lý bao gồm một hợp đồng đồng thuận, một hợp đồng validator và hợp đồng parachain. Nếu không phải là EVM thì phần phụ trợ WebAssembly [2] (wasm) là lựa chọn thay thế phù hợp nhất; trong trường hợp này tổng thể cấu trúc sẽ tương tự, nhưng sẽ không cần vì các hợp đồng tích hợp với Wasm là mục tiêu khả thi cho các ngôn ngữ có mục đích chung hơn là ngôn ngữ chưa trưởng thành và ngôn ngữ hạn chế cho EVM. Những sai lệch có thể xảy ra khác so với giao thức Ethereum hiện tại là hoàn toàn có thể xảy ra, ví dụ như việc đơn giản hóa định dạng biên nhận giao dịch cho phép thực hiện song song các giao dịch không xung đột trong cùng một khối, như đề xuất cho chuỗi thay đổi Serenity. Có thể, mặc dù không chắc chắn, rằng một thứ giống như Serenity Chuỗi “thuần túy” được triển khai như chuỗi chuyển tiếp, cho phép hợp đồng cụ thể để quản lý những thứ như staking token cân đối hơn là biến nó thành một phần cơ bản của giao thức của chuỗi. Hiện tại, chúng tôi cảm thấy điều này khó có thể xảy ra sẽ cung cấp một sự đơn giản hóa giao thức đủ lớn để đáng giá thêm sự phức tạp và sự không chắc chắn liên quan trong việc phát triển nó. 7Là phương tiện thể hiện số tiền mà một chủ sở hữu nhất định chịu trách nhiệm về tính bảo mật chung của hệ thống, các tài khoản cổ phần này sẽ chắc chắn mã hóa một số giá trị kinh tế. Tuy nhiên, cần hiểu rằng vì không có ý định sử dụng những giá trị đó trong bằng bất kỳ cách nào nhằm mục đích trao đổi hàng hóa và dịch vụ trong thế giới thực, cần lưu ý rằng token không được so sánh với tiền tệ và do đó, chuỗi chuyển tiếp vẫn giữ nguyên triết lý hư vô về các ứng dụng.POLKADOT: TẦM NHÌN VỀ KHUNG KHUNG ĐA CHUỖI KHÔNG ĐỒNG THỂ DỰ THẢO 1 10 Có một số phần chức năng nhỏ cần thiết để quản lý cơ chế đồng thuận, bộ validator, cơ chế xác thực và parachain. Những cái này có thể được thực hiện cùng nhau theo một giao thức nguyên khối. Tuy nhiên, vì lý do tăng cường tính mô-đun, chúng tôi mô tả đây là “hợp đồng” của chuỗi chuyển tiếp. Điều này nên được hiểu là chúng là đối tượng (theo nghĩa lập trình hướng đối tượng) được quản lý bởi cơ chế đồng thuận của chuỗi chuyển tiếp, nhưng không nhất thiết phải như vậy chúng được định nghĩa là các chương trình có mã opcode giống EVM, cũng như thậm chí chúng có thể được định địa chỉ riêng lẻ thông qua hệ thống tài khoản. 6.2. Hợp đồng đặt cọc. Hợp đồng này duy trì bộ validator. Nó quản lý: • tài khoản nào hiện là validators; • có sẵn để trở thành validator trong thời gian ngắn thông báo; • tài khoản nào đã đặt cược đề cử vào một validator; • thuộc tính của từng loại bao gồm staking khối lượng, tỷ lệ thanh toán và địa chỉ được chấp nhận cũng như danh tính (phiên) ngắn hạn. Nó cho phép một tài khoản đăng ký mong muốn trở thành một validator được liên kết (cùng với các yêu cầu của nó), để đề cử một số danh tính và để các validator được liên kết trước đó đăng ký mong muốn thoát khỏi trạng thái này. Nó cũng bao gồm chính bộ máy dành cho cơ chế xác nhận và chuẩn hóa. 6.2.1. Cổ phần-token Thanh khoản. Nói chung là mong muốn có tổng số staking token càng nhiều càng tốt tham gia vào các hoạt động bảo trì mạng kể từ điều này liên kết trực tiếp an ninh mạng với “vốn hóa thị trường” tổng thể của staking token. Điều này có thể dễ dàng được khuyến khích thông qua việc lạm phát tiền tệ và trao số tiền thu được cho những người tham gia với tư cách validators. Tuy nhiên, làm như vậy sẽ có một vấn đề: nếu token bị khóa trong Hợp đồng đặt cược với hình phạt giảm bớt, làm sao một phần đáng kể có thể vẫn còn đủ thanh khoản để cho phép khám phá giá? Một câu trả lời cho vấn đề này là cho phép một hợp đồng phái sinh chuyển tiếp thẳng, đảm bảo token có thể thay thế được trên token đặt cược cơ bản. Điều này rất khó để sắp xếp một cách không tin cậy. Hơn nữa, các token phái sinh này không thể được đối xử bình đẳng vì cùng một lý do khiến các trái phiếu chính phủ khác nhau của các chính phủ Eurozone không thể thay thế được: ở đó là khả năng tài sản cơ bản thất bại và trở thành vô giá trị. Với các chính phủ khu vực đồng Euro, có thể có một mặc định. Với validator đặt cọc token, validator có thể hành động ác ý và bị trừng phạt. Tuân thủ các nguyên lý của mình, chúng tôi chọn giải pháp đơn giản nhất: không phải tất cả token đều được đặt cược. Điều này có nghĩa là một số tỷ lệ (có lẽ là 20%) trong số token sẽ buộc phải duy trì trạng thái thanh khoản. Mặc dù điều này không hoàn hảo xét từ góc độ bảo mật nhưng nó khó có thể tạo ra sự khác biệt cơ bản trong sự an toàn của mạng; 80% số tiền bồi thường có thể từ việc tịch thu trái phiếu vẫn có thể được thực hiện so với “trường hợp hoàn hảo” 100% staking. Tỷ lệ giữa số tiền đặt cọc và số tiền thanh khoản token có thể được nhắm mục tiêu khá đơn giản thông qua cơ chế đấu giá ngược. Về cơ bản, những người nắm giữ token quan tâm đến việc trở thành validator mỗi người sẽ đăng một lời đề nghị cho hợp đồng staking nêu rõ tỷ lệ thanh toán tối thiểu mà họ sẽ yêu cầu thực hiện một phần. Vào đầu mỗi buổi học (các buổi học sẽ xảy ra thường xuyên, có lẽ thường xuyên như một lần mỗi giờ) validator các vị trí sẽ được lấp đầy theo từng vị trí validator cổ phần và tỷ lệ xuất chi. Một thuật toán có thể vì điều này có nghĩa là sẽ nhận những người có giá chào hàng thấp nhất đại diện cho số cổ phần không cao hơn tổng số cổ phần được nhắm mục tiêu chia cho số lượng vị trí và không thấp hơn giới hạn dưới của một nửa số tiền đó. Nếu các khe không thể lấp đầy, giới hạn dưới có thể được giảm đi nhiều lần bởi một số yếu tố để thỏa mãn. 6.2.2. Đề cử. Có thể đề cử một cách đáng tin cậy những cái staking token thành validator đang hoạt động, mang lại cho chúng trách nhiệm về nhiệm vụ của validator. Đề cử tác phẩm thông qua hệ thống bỏ phiếu phê duyệt. Mỗi người đề cử tương lai có thể đăng hướng dẫn lên hợp đồng staking thể hiện một hoặc nhiều validator danh tính dưới quyền của ai trách nhiệm mà họ sẵn sàng giao phó mối quan hệ của mình. Mỗi phiên, trái phiếu của người đề cử được phân tán để được đại diện bởi một hoặc nhiều validators. Thuật toán phân tán tối ưu hóa cho tập hợp validator có tổng số tương đương trái phiếu. Trái phiếu của người đề cử trở thành trách nhiệm thực sự của validator avà thu được lãi suất hoặc phải gánh chịu một giảm nhẹ hình phạt cho phù hợp. 6.2.3. Tịch thu/đốt trái phiếu. Một số hành vi validator nhất định dẫn đến việc giảm bớt mối quan hệ ràng buộc của họ. Nếu trái phiếu bị giảm xuống dưới mức tối thiểu cho phép, phiên kết thúc sớm và một phiên khác bắt đầu. Danh sách không đầy đủ các hành vi sai trái validator có thể bị trừng phạt bao gồm: • Là thành viên của nhóm parachain không thể cung cấp sự đồng thuận về tính hợp lệ của khối parachain; • chủ động ký xác nhận tính hợp lệ của giấy tờ không hợp lệ khối parachain; • không có khả năng cung cấp tải trọng đầu ra trước đó được bình chọn là có sẵn; • không hoạt động trong quá trình đồng thuận; • xác nhận các khối chuỗi chuyển tiếp trên các nhánh cạnh tranh. Một số trường hợp hành vi sai trái đe dọa tính toàn vẹn của mạng (chẳng hạn như ký các khối parachain không hợp lệ và xác thực nhiều mặt của một fork) và do đó dẫn đến việc bị lưu đày hiệu quả thông qua việc giảm tổng số trái phiếu. trong các trường hợp khác ít nghiêm trọng hơn (ví dụ: không hoạt động trong thỏa thuận đồng thuận quy trình) hoặc những trường hợp trách nhiệm không được phân bổ một cách chính xác (là một phần của một nhóm kém hiệu quả), một phần nhỏ thay vào đó, trái phiếu có thể bị phạt. Trong trường hợp sau, điều này hoạt động tốt với việc rời bỏ nhóm phụ để đảm bảo rằng các nút chịu thiệt hại nhiều hơn đáng kể so với các nút nhân từ bị thiệt hại tài sản thế chấp. Trong một số trường hợp (ví dụ: xác thực nhiều nhánh và không hợp lệ ký khối phụ) validator bản thân họ không thể dễ dàng phát hiện hành vi sai trái của nhau do việc xác minh liên tục của mỗi khối parachain sẽ là một nhiệm vụ quá khó khăn. đây cần tranh thủ sự ủng hộ của các bên bên ngoài quá trình xác nhận để xác minh và báo cáo hành vi sai trái đó. Các bên nhận được phần thưởng khi báo cáo hoạt động đó; thuật ngữ của họ, “ngư dân” bắt nguồn từ sự khó có thể xảy ra về phần thưởng như vậy. Vì những trường hợp này thường rất nghiêm trọng nên chúng tôi hình dung rằng bất kỳ phần thưởng nào cũng có thể được thanh toán dễ dàng từ trái phiếu bị tịch thu. Nói chung, chúng tôi muốn cân bằng việc đốt cháy (tức là giảm xuống không có gì) bằng cách tái phân bổ, thay vì đang cố gắng tái phân bổ bán buôn. Điều này có tác dụng
POLKADOT: TẦM NHÌN VỀ KHUNG KHUNG ĐA CHUỖI KHÔNG ĐỒNG THỂ DỰ THẢO 1 11 tăng giá trị tổng thể của token, bù đắp cho mạng nói chung ở một mức độ nào đó hơn là cụ thể bên tham gia khám phá. Điều này chủ yếu là để đảm bảo an toàn cơ chế: số lượng lớn có liên quan có thể dẫn đến việc khuyến khích hành vi cực đoan và gay gắt ban cho một mục tiêu duy nhất. Nói chung, điều quan trọng là phần thưởng phải đủ lớn để khiến việc xác minh trở nên có giá trị đối với mạng, nhưng không quá lớn để bù đắp chi phí cho việc trả trước một tội phạm "cấp công nghiệp" được tài trợ tốt, được tổ chức tốt hack tấn công vào một số validator không may mắn để ép buộc hành vi sai trái. Bằng cách này, số tiền yêu cầu nói chung sẽ là không lớn hơn mối ràng buộc trực tiếp của người phạm tội validator, kẻo động cơ sai trái phát sinh từ hành vi sai trái và báo cáo bản thân để nhận tiền thưởng. Điều này có thể được giải quyết một cách rõ ràng thông qua yêu cầu trái phiếu trực tiếp tối thiểu để trở thành một validator hoặc ngầm giáo dục những người được đề cử rằng validator với ít trái phiếu được ký gửi sẽ không có động lực lớn để cư xử tốt. 6.3. Cơ quan đăng ký Parachain. Mỗi parachain được xác định trong sổ đăng ký này. Nó là một cấu trúc giống cơ sở dữ liệu tương đối đơn giản và chứa cả thông tin tĩnh và động trên mỗi chuỗi. Thông tin tĩnh bao gồm chỉ số chuỗi (một cách đơn giản số nguyên), cùng với nhận dạng giao thức xác nhận, một phương pháp phân biệt giữa các loại khác nhau của parachain để có thể có được thuật toán xác thực chính xác được điều hành bởi validators được giao nhiệm vụ đưa ra một ứng cử viên hợp lệ. Bằng chứng khái niệm ban đầu sẽ tập trung vào việc đặt các thuật toán xác thực mới vào chính các máy khách, đòi hỏi phải có một phân nhánh cứng của giao thức mỗi lần lớp chuỗi bổ sung đã được thêm vào. Tuy nhiên, cuối cùng, có thể chỉ định thuật toán xác nhận trong một cách vừa nghiêm ngặt vừa hiệu quả để khách hàng có thể có thể làm việc hiệu quả với các parachain mới mà không cần cái nĩa cứng. Một con đường khả thi cho việc này là chỉ định thuật toán xác thực parachain được thiết lập tốt, ngôn ngữ trung lập về nền tảng, được biên dịch nguyên bản như WebAssembly. Nghiên cứu bổ sung là cần thiết để xác định liệu điều này có thực sự khả thi hay không, tuy nhiên nếu vậy, nó có thể mang lại cùng với đó là lợi thế to lớn của việc loại bỏ hard fork mãi mãi. Thông tin động bao gồm các khía cạnh của hệ thống định tuyến giao dịch phải có sự thống nhất toàn cầu như như hàng đợi vào của parachain (được mô tả trong phần 6.6). Cơ quan đăng ký chỉ có thể thêm parachains thông qua bỏ phiếu trưng cầu dân ý đầy đủ; điều này có thể được quản lý nội bộ nhưng nhiều khả năng sẽ được đặt ở bên ngoài hợp đồng trưng cầu dân ý để tạo thuận lợi cho việc tái sử dụng theo các thành phần quản trị tổng quát hơn. Các thông số để yêu cầu bỏ phiếu (ví dụ: bất kỳ số đại biểu cần thiết, đa số bắt buộc) để đăng ký chuỗi bổ sung và các chuỗi khác, nâng cấp hệ thống ít chính thức hơn sẽ được đặt ra trong một “bản chính hiến pháp” nhưng có khả năng tuân theo một cách khá truyền thống con đường, ít nhất là ban đầu. Công thức chính xác không còn nữa phạm vi cho công việc hiện tại, nhưng ví dụ: hai phần ba đại đa số sẽ vượt qua với hơn một phần ba tổng số hệ thống bỏ phiếu tích cực có thể là điểm khởi đầu hợp lý. Các hoạt động bổ sung bao gồm việc đình chỉ và loại bỏ parachains. Việc đình chỉ hy vọng sẽ không bao giờ xảy ra, tuy nhiên nó được thiết kế để ít nhất là một biện pháp bảo vệ có một số vấn đề khó giải quyết trong hệ thống xác thực của parachain. Ví dụ rõ ràng nhất nơi nó có thể cần có sự khác biệt quan trọng về mặt đồng thuận giữa các cách triển khai khiến validator không thể đồng ý về tính hợp lệ hoặc khối. Người xác nhận sẽ được khuyến khích sử dụng triển khai nhiều ứng dụng khách để họ có thể để phát hiện vấn đề như vậy trước khi tịch thu trái phiếu. Vì đình chỉ là một biện pháp khẩn cấp nên nó sẽ dưới sự bảo trợ của validator-bỏ phiếu năng động hơn một cuộc trưng cầu dân ý. Có thể cài đặt lại cả hai từ validator hoặc một cuộc trưng cầu dân ý. Việc loại bỏ hoàn toàn parachain sẽ chỉ đến sau một cuộc trưng cầu dân ý và với điều đó sẽ được yêu cầu thời gian ân hạn đáng kể để cho phép chuyển đổi có trật tự sang hoặc là một chuỗi độc lập hoặc trở thành một phần của chuỗi khác hệ thống đồng thuận. Thời gian ân hạn có thể sẽ là thứ tự các tháng và có thể được đặt ra trên cơ sở perchain trong sổ đăng ký parachain theo thứ tự khác nhau parachains có thể tận hưởng thời gian ân hạn khác nhau tùy theo nhu cầu của họ. 6.4. Niêm phong khối chuyển tiếp. Về bản chất, niêm phong đề cập đến đến quá trình phong thánh hóa; tức là dữ liệu cơ bản biến đổi cái nàoánh xạ bản gốc thành một cái gì đó về cơ bản là duy nhất và có ý nghĩa. Trong chuỗi PoW, niêm phong thực sự là một từ đồng nghĩa với khai thác mỏ. Trong trường hợp của chúng tôi, nó liên quan đến việc thu thập các tuyên bố đã được ký từ validator về tính hợp lệ, tính sẵn có và tính chuẩn mực của một khối chuỗi chuyển tiếp cụ thể và các khối parachain nó đại diện. Cơ chế của thuật toán đồng thuận BFT cơ bản nằm ngoài phạm vi của công việc hiện tại. chúng tôi sẽ thay vào đó hãy mô tả nó bằng cách sử dụng một nguyên thủy giả định một máy trạng thái tạo ra sự đồng thuận. Cuối cùng chúng tôi mong đợi được truyền cảm hứng từ một số sự đồng thuận đầy hứa hẹn BFT các thuật toán trong lõi; Tangaora [9] (một biến thể BFT của Bè [16]), Tendermint [11] và HoneyBadgerBFT [14]. Thuật toán sẽ phải đạt được thỏa thuận song song trên nhiều parachain, do đó khác với thông thường blockchain cơ chế đồng thuận. Chúng tôi cho rằng một lần đạt được sự đồng thuận, chúng tôi có thể ghi lại sự đồng thuận bằng chứng không thể chối cãi có thể được cung cấp bởi bất kỳ ai trong số những người tham gia vào nó. Chúng tôi cũng cho rằng hành vi sai trái trong giao thức nói chung có thể được giảm xuống một lượng nhỏ nhóm chứa những người tham gia có hành vi sai trái để giảm thiểu thiệt hại tài sản thế chấp khi xử lý hình phạt.8 Bằng chứng, ở dạng tuyên bố đã ký của chúng tôi, được đặt cùng nhau trong tiêu đề của khối chuỗi chuyển tiếp với một số trường nhất định khác, nhất là gốc trạng thái và gốc tri giao dịch của chuỗi chuyển tiếp. các niêm phong quá trình mất địa điểm dưới một độc thân tạo sự đồng thuận cơ chế địa chỉ cả hai cái khối chuỗi chuyển tiếp và khối parachains tạo nên một phần nội dung của chuyển tiếp: parachains không được các nhóm phụ của chúng “cam kết” riêng biệt và sau đó được đối chiếu sau này. Điều này dẫn đến một quy trình phức tạp hơn cho chuỗi chuyển tiếp, nhưng cho phép chúng tôi hoàn thành sự đồng thuận của toàn bộ hệ thống trong một giai đoạn duy nhất, giảm thiểu độ trễ và cho phép đối với các yêu cầu về tính sẵn có của dữ liệu khá phức tạp, hữu ích cho quá trình định tuyến dưới đây. 8Các chương trình đồng thuận BFT dựa trên PoS hiện có như Tendermint BFT và Slasher ban đầu đáp ứng các xác nhận này.
POLKADOT: TẦM NHÌN VỀ KHUNG KHUNG ĐA CHUỖI KHÔNG ĐỒNG THỂ DỰ THẢO 1 12 Trạng thái của máy đồng thuận của mỗi người tham gia có thể được mô hình hóa dưới dạng bảng (2 chiều) đơn giản. Mỗi người tham gia (validator) có một tập hợp thông tin, ở dạng các tuyên bố đã ký (“phiếu bầu”) từ những người tham gia khác, liên quan đến từng ứng cử viên khối parachain cũng như ứng cử viên khối chuỗi chuyển tiếp. Tập hợp thông tin gồm hai phần của dữ liệu: Sẵn có: có cái này validator có đi ra thông tin bài đăng giao dịch từ khối này vì vậy họ có thể xác thực chính xác các ứng cử viên parachain trên khối sau không? Họ có thể bỏ phiếu 1 (đã biết) hoặc 0 (chưa biết). Một khi họ bỏ phiếu 1, họ cam kết bỏ phiếu tương tự cho phần còn lại của quá trình này. Phiếu bầu sau đó không tôn trọng điều này là căn cứ để trừng phạt. Hiệu lực: khối parachain có hợp lệ không và là tất cả dữ liệu được tham chiếu bên ngoài (ví dụ: giao dịch) có sẵn? Điều này chỉ liên quan đến validator được chỉ định cho parachain mà họ đang bỏ phiếu. Họ có thể bỏ phiếu 1 (hợp lệ), -1 (không hợp lệ) hoặc 0 (chưa biết). Một khi họ bỏ phiếu khác 0, họ cam kết bỏ phiếu theo cách này cho phần còn lại của quá trình này. Những phiếu bầu sau này không tôn trọng điều này là căn cứ để xử phạt. Tất cả validator phải gửi phiếu bầu; phiếu bầu có thể được gửi lại, đủ điều kiện theo các quy tắc trên. Sự tiến triển của sự đồng thuận có thể được mô hình hóa thành nhiều thuật toán đồng thuận BFT tiêu chuẩn trên mỗi parachain diễn ra song song. Vì những điều này có khả năng bị cản trở bởi một tương đối thiểu số nhỏ các tác nhân độc hại tập trung ở một nhóm parachain duy nhất, có sự đồng thuận chung thiết lập một điểm dừng, hạn chế trường hợp xấu nhất xảy ra bế tắc đối với chỉ một hoặc nhiều khối parachain trống (và một hình phạt dành cho những người có trách nhiệm). Các quy tắc cơ bản về tính hợp lệ của các khối riêng lẻ (cho phép toàn bộ tập hợp validator đạt tới sự đồng thuận về việc nó trở thành ứng cử viên parachain duy nhất được tham chiếu từ rơle chính tắc): • phải có ít nhất hai phần ba số validator bỏ phiếu tích cực và không có phiếu bầu tiêu cực; • phải có hơn một phần ba validator bỏ phiếu ủng hộ tính khả dụng của thông tin hàng đợi đi ra. Nếu có ít nhất một phiếu thuận và ít nhất một phiếu phản đối về tính hợp lệ thì một điều kiện ngoại lệ sẽ được tạo và toàn bộ validator phải bỏ phiếu để xác định nếu có các bên có ác ý hoặc nếu có sự cố tình cờ cái nĩa. Ngoài loại phiếu hợp lệ và không hợp lệ, còn có loại phiếu bầu thứ ba được phép, tương đương với việc bỏ phiếu cho cả hai, nghĩa là nút có những ý kiến trái ngược nhau. Điều này có thể là do chủ sở hữu của nút đang chạy nhiều triển khai không đồng ý, cho thấy có thể có sự mơ hồ trong giao thức. Sau khi tất cả phiếu bầu được tính từ bộ validator đầy đủ, nếu ý kiến thua cuộc ít nhất cũng có một tỷ lệ nhỏ nào đó (so với được tham số hóa; nhiều nhất là một nửa, có lẽ ít hơn đáng kể) số phiếu của ý kiến thắng cuộc thì được coi là là một sự phân nhánh parachain ngẫu nhiên và parachain đó sẽ tự động bị đình chỉ khỏi quá trình đồng thuận. Nếu không, chúng tôi cho rằng đó là hành động ác ý và trừng phạt thiểu số bỏ phiếu cho ý kiến bất đồng. Kết luận là một tập hợp các chữ ký chứng minh tính kinh điển. Khối chuỗi chuyển tiếp sau đó có thể được niêm phong và quá trình niêm phong khối tiếp theo bắt đầu. 6.5. Những cải tiến cho khối chuyển tiếp niêm phong. Trong khi phương pháp niêm phong này mang lại sự đảm bảo chắc chắn cho hoạt động của hệ thống, nhưng nó không mở rộng quy mô một cách đặc biệt vì thông tin chính của mỗi parachain phải có tính khả dụng được đảm bảo bởi hơn một phần ba tổng số validator. Điều này có nghĩa là dấu ấn trách nhiệm của mỗi validator phát triển khi có nhiều chuỗi được thêm vào. Mặc dù tính sẵn có của dữ liệu trong các mạng đồng thuận mở về cơ bản là một vấn đề chưa được giải quyết, có nhiều cách để giảm thiểu chi phí hoạt động trên các nút validator. Một điều đơn giản giải pháp là nhận ra rằng trong khi validator phải gánh vác trách nhiệm về tính sẵn có của dữ liệu, họ không thực sự cần phải lưu trữ, truyền đạt hoặc sao chép dữ liệu. Kho chứa dữ liệu thứ cấp, có thể liên quan đến (hoặc thậm chí chính tương tự) những người đối chiếu biên soạn dữ liệu này, có thể quản lý nhiệm vụ đảm bảo tính khả dụng với validator cung cấp một phần tiền lãi/thu nhập của họ để thanh toán. Tuy nhiên, mặc dù điều này có thể mang lại khả năng mở rộng trung gian nhưng nó vẫn không giúp giải quyết được vấn đề cơ bản; kể từ khi việc thêm nhiều chuỗi nói chung sẽ yêu cầu thêm validators, mức tiêu thụ tài nguyên mạng liên tục (đặc biệt là về băng thông) sẽ tăng theo bình phương của cáidây chuyền, một tài sản không thể bảo vệ được về lâu dài. Cuối cùng, chúng ta có xu hướng tiếp tục đập đầu mình chống lại giới hạn cơ bản nói rằng đối với một mạng lưới đồng thuận được coi là có sẵn an toàn, các yêu cầu về băng thông hiện tại có tổng số validators lần tổng thông tin đầu vào. Điều này là do mạng không đáng tin cậy không có khả năng phân phối hợp lý nhiệm vụ lưu trữ dữ liệu trên nhiều nút. ngoài nhiệm vụ xử lý được phân phối rõ ràng. 6.5.1. Giới thiệu độ trễ. Một phương tiện để làm dịu đi điều này quy tắc là để nới lỏng khái niệm về tính tức thời. Bằng cách yêu cầu 33%+1 validator bỏ phiếu cho tính khả dụng cuối cùng chứ không phải ngay lập tức, chúng tôi có thể tận dụng tốt hơn việc truyền dữ liệu theo cấp số nhân và thậm chí giúp đạt được mức cao nhất trong trao đổi dữ liệu. Một sự bình đẳng hợp lý (mặc dù chưa được chứng minh) có thể là: (1) độ trễ = người tham gia × chuỗi Theo mô hình hiện tại, quy mô của hệ thống với số lượng chuỗi để đảm bảo rằng quá trình xử lý được thực hiện phân phối; vì mỗi chuỗi sẽ yêu cầu ít nhất một validator và chúng tôi cố định chứng thực tính khả dụng thành một hằng số tỷ lệ validator giây thì số người tham gia sẽ tăng lên tương tự với số lượng chuỗi. Chúng tôi kết thúc với: (2) độ trễ = kích thước2 Có nghĩa là khi hệ thống phát triển, băng thông được yêu cầu và độ trễ cho đến khi biết được tính khả dụng trên toàn mạng. mạng, cũng có thể được mô tả là số của các khối trước khối cuối cùng, tăng theo bình phương của nó. Đây là một yếu tố tăng trưởng đáng kể và có thể trở thành vật cản đường đáng chú ý và buộc chúng ta đi vào các mô hình “không phẳng” chẳng hạn như soạn một số “Polkadotes” thành một hệ thống phân cấp để định tuyến các bài đăng đa cấp thông qua một cây chuỗi chuyển tiếp.
POLKADOT: TẦM NHÌN VỀ KHUNG KHUNG ĐA CHUỖI KHÔNG ĐỒNG THỂ DỰ THẢO 1 13 6.5.2. Sự tham gia của công chúng. Một hướng đi khả thi hơn là huy động sự tham gia của công chúng vào quá trình này thông qua một hệ thống khiếu nại vi mô. Tương tự như các ngư dân, có có thể là các bên bên ngoài để giám sát validator những người khiếu nại sự sẵn có. Nhiệm vụ của họ là tìm ra một người dường như không thể chứng minh được khả năng sẵn sàng đó. Khi làm như vậy họ có thể gửi khiếu nại vi mô tới validators khác. PoW hoặc một trái phiếu đặt cược có thể được sử dụng để giảm thiểu cuộc tấn công sybil điều này sẽ khiến hệ thống phần lớn trở nên vô dụng. 6.5.3. Người bảo lãnh sẵn có. Con đường cuối cùng sẽ là chỉ định một bộ validator ngoại quan thứ hai là “khả năng sẵn sàng người bảo lãnh”. Chúng sẽ được liên kết giống như validators bình thường và thậm chí có thể được lấy từ cùng một bộ (mặc dù nếu vậy, chúng sẽ được chọn trong thời gian dài, ít nhất là mỗi phiên). Không giống như validator thông thường, chúng sẽ không chuyển đổi giữa các parachain mà thay vào đó sẽ thành lập một nhóm duy nhất để chứng thực sự sẵn có của tất cả dữ liệu liên chuỗi quan trọng. Điều này có ưu điểm là nới lỏng sự tương đương giữa người tham gia và chuỗi. Về cơ bản, chuỗi có thể phát triển (cùng với chuỗi ban đầu validator được đặt), trong khi những người tham gia, và cụ thể là những người tham gia vào chứng thực tính sẵn có của dữ liệu, có thể duy trì ở mức độ tuyến tính ít nhất và có thể là hằng số. 6.5.4. Tùy chọn Collator. Một khía cạnh quan trọng của điều này Hệ thống là đảm bảo rằng có sự lựa chọn lành mạnh các người đối chiếu tạo các khối trong bất kỳ parachain cụ thể nào. Nếu một người đối chiếu duy nhất thống trị một parachain sau đó một số cuộc tấn công trở nên khả thi hơn vì khả năng thiếu sự sẵn có của dữ liệu bên ngoài sẽ ít rõ ràng hơn. Một lựa chọn là cân các khối parachain một cách giả tạo một cơ chế giả ngẫu nhiên để hỗ trợ nhiều loại đối chiếu. Trong trường hợp đầu tiên, chúng tôi sẽ yêu cầu như một phần của cơ chế đồng thuận mà validator ủng hộ Các ứng cử viên khối parachain được xác định là “nặng hơn”. Tương tự, chúng ta phải khuyến khích validator cố gắng đề xuất khối nặng nhất mà họ có thể tìm thấy—đây có thể là được thực hiện thông qua việc chia một phần phần thưởng tương ứng với trọng lượng của ứng cử viên của họ. Để đảm bảo rằng các nhà đối chiếu được hưởng sự công bằng hợp lý cơ hội ứng cử viên của họ được chọn là người chiến thắng ứng cử viên đồng thuận, chúng tôi đưa ra trọng số cụ thể của Ứng viên khối parachain xác định dựa trên một hàm ngẫu nhiên được kết nối với mỗi bộ đối chiếu. Ví dụ, lấy thước đo khoảng cách XOR giữa địa chỉ của đối chiếu và một số số giả ngẫu nhiên được bảo mật bằng mật mã được xác định gần với điểm của khối được tạo (một “vé trúng thưởng” mang tính khái niệm). Điều này mang lại hiệu quả cho mỗi người đối chiếu (hoặc cụ thể hơn là địa chỉ của mỗi người đối chiếu) a cơ hội ngẫu nhiên để khối ứng cử viên của họ “chiến thắng” tất cả những người khác. Để giảm thiểu cuộc tấn công sybil của một người đối chiếu duy nhất “khai thác” một địa chỉ gần với vé trúng thưởng và do đó mỗi khối được yêu thích, chúng tôi sẽ thêm một số quán tính vào địa chỉ của người đối chiếu. Điều này có thể đơn giản như việc yêu cầu họ để có số tiền cơ bản trong địa chỉ. Thêm nữa cách tiếp cận tao nhã sẽ là cân nhắc sự gần gũi với vé trúng thưởng với số tiền đậu tại địa chỉ trong câu hỏi. Trong khi việc lập mô hình vẫn chưa được thực hiện, rất có thể cơ chế này cho phép thậm chí rất các bên liên quan nhỏ đóng góp với tư cách là người đối chiếu. 6.5.5. Khối thừa cân. Nếu bộ validator bị xâm phạm, họ có thể tạo và đề xuất một khối, tuy nhiên hợp lệ, mất nhiều thời gian để thực hiện và xác thực. Đây là sự cố vì nhóm validator có thể hợp lý tạo thành một khối mà phải mất một thời gian rất dài để thực thi trừ khi một số thông tin cụ thể đã được biết cho phép cắt ngắn, ví dụ: bao thanh toán lớn nguyên tố. Nếu một người đối chiếu biết thông tin đó thì họ sẽ có lợi thế rõ ràng trong việc có được các ứng cử viên được chấp nhận miễn là những người khác đang bận xử lý khối cũ. Chúng tôi gọi những khối này là thừa cân. Việc bảo vệ chống lại việc validator gửi và xác thực các khối này phần lớn có cùng chiêu bài như đối với các khối không hợp lệ, mặc dù có một cảnh báo bổ sung: Vì thời gian thực hiện một khối (và do đó trạng thái của nó là thừa cân) mang tính chủ quan, kết quả cuối cùng của cuộc bỏ phiếu về hành vi sai trái về cơ bản sẽ rơi vào ba phe. một khả năng là khối đó chắc chắn không nặng— trong trường hợp này hơn hai phần ba tuyên bố rằng họ có thể thực thi khối trong một số giới hạn (ví dụ: 50% tổng thời gian được phép giữa các khối). Một điều nữa là khối là dchắc chắn là thừa cân—điều này sẽ xảy ra nếu nhiều hơn hai phần ba tuyên bố rằng họ không thể thực thi khối trong giới hạn nói trên. Một khả năng cuối cùng là khá bình đẳng sự chia rẽ quan điểm giữa validators. Trong trường hợp này, chúng ta có thể chọn thực hiện một số hình phạt tương xứng. Để đảm bảo validator có thể dự đoán khi nào họ có thể đề xuất một khối thừa cân, có thể hợp lý nếu yêu cầu họ công bố thông tin về hiệu suất của chính họ đối với từng khối. Trong một khoảng thời gian đủ dài, điều này sẽ cho phép họ lập hồ sơ tốc độ xử lý của mình so với những người ngang hàng sẽ đánh giá họ. 6.5.6. Bảo hiểm Collator. Vẫn còn một vấn đề đối với validators: không giống như mạng PoW, để kiểm tra khối để có hiệu lực, họ phải thực sự thực hiện các giao dịch trong đó. Những người đối chiếu độc hại có thể cung cấp các khối không hợp lệ hoặc thừa cân cho validator khiến họ đau buồn (lãng phí nguồn lực của họ) và đòi hỏi chi phí cơ hội tiềm tàng đáng kể. Để giảm thiểu điều này, chúng tôi đề xuất một chiến lược đơn giản về một phần của validators. Đầu tiên, các ứng cử viên khối parachain đã gửi tới validator phải được ký từ tài khoản chuỗi chuyển tiếp bằng tiền; nếu không thì validator sẽ bị loại bỏ nó ngay lập tức. Thứ hai, các ứng cử viên như vậy nên được sắp xếp thứ tự ưu tiên bằng cách kết hợp (ví dụ: phép nhân) của số tiền trong tài khoản lên đến một giới hạn nhất định, số khối trước đó mà đối chiếu đã đề xuất thành công trong quá khứ (chưa kể bất kỳ khối nào trước đó hình phạt), và yếu tố gần gũi với chiến thắng vé như đã thảo luận trước đó. Mũ phải giống nhau như số tiền bồi thường mang tính trừng phạt được trả cho validator trong vụ án trong số họ gửi một khối không hợp lệ. Để ngăn cản người cộng tác gửi các ứng cử viên bị chặn không hợp lệ hoặc thừa cân tới validator, bất kỳ validator nào cũng có thể đặt vào khối tiếp theo một giao dịch bao gồm khối vi phạm cáo buộc hành vi sai trái dẫn đến việc chuyển một phần hoặc toàn bộ số tiền vào tài khoản của người đối chiếu có hành vi sai trái. tài khoản cho người bị hại validator. Loại giao dịch này chạy trước bất kỳ giao dịch nào khác để đảm bảo người đối chiếu không thể rút tiền trước khi bị trừng phạt. Số lượng của tiền được chuyển dưới dạng thiệt hại là một tham số động
POLKADOT: TẦM NHÌN VỀ KHUNG KHUNG ĐA CHUỖI KHÔNG ĐỒNG THỂ DỰ THẢO 1 14 được mô hình hóa nhưng có thể sẽ là một phần của phần thưởng khối validator để phản ánh mức độ đau buồn gây ra. Đến ngăn chặn validator độc hại tự ý tịch thu quỹ của người cộng tác, người cộng tác có thể kháng cáo quyết định của validator với bồi thẩm đoàn gồm validator được chọn ngẫu nhiên để đổi lại để đặt một khoản tiền gửi nhỏ. Nếu họ có lợi cho validator, họ sẽ tiêu hết số tiền đặt cọc. Nếu không, tiền đặt cọc được trả lại và validator bị phạt (vì validator ở vị trí hình vòm hơn nhiều, mức phạt sẽ có thể là khá nặng). 6.6. liên chuỗi Giao dịch Định tuyến. liên chuỗi định tuyến giao dịch là một trong những công việc bảo trì thiết yếu nhiệm vụ của chuỗi chuyển tiếp và validator của nó. Đây là logic chi phối cách một giao dịch được đăng (thường được rút ngắn thành “đăng”) để trở thành đầu ra mong muốn từ một parachain nguồn trở thành đầu vào không thể thương lượng của một parachain đích khác mà không có bất kỳ sự tin tưởng nào yêu cầu. Chúng tôi chọn từ ngữ ở trên một cách cẩn thận; đáng chú ý là chúng tôi không yêu cầu phải có giao dịch trong nguồn parachain đã phê chuẩn rõ ràng bài đăng này. duy nhất những hạn chế mà chúng tôi đặt ra cho mô hình của mình là parachains phải cung cấp, đóng gói như một phần của khối tổng thể của họ xử lý đầu ra, các bài đăng là kết quả của việc thực thi khối. Những bài đăng này được cấu trúc như một số hàng đợi FIFO; cái số lượng danh sách được gọi là cơ sở định tuyến và có thể khoảng 16. Đáng chú ý, con số này thể hiện số lượng của parachains mà chúng ta có thể hỗ trợ mà không cần phải dùng đến định tuyến nhiều pha. Ban đầu, Polkadot sẽ hỗ trợ việc này loại định tuyến trực tiếp, tuy nhiên chúng tôi sẽ phác thảo một cách có thể quá trình định tuyến nhiều pha (“siêu định tuyến”) như một phương tiện mở rộng quy mô vượt xa nhóm parachain ban đầu. Chúng tôi giả sử đó tất cả người tham gia biết cái các nhóm con cho hai khối tiếp theo n, n + 1. Tóm lại, Hệ thống định tuyến trải qua các giai đoạn sau: • CollatorS: Liên hệ với các thành viên của V alidators[n][S] • Đối chiếu: CHO MỖI nhóm con: đảm bảo tại ít nhất 1 thành viên của V alidators[n][s] có liên hệ • Người hợp tác: ĐỐI VỚI MỖI nhóm con: giả sử egress[n −1][s][S] có sẵn (tất cả bài đăng đến dữ liệu đến 'S' từ khối cuối cùng) • Người hợp tác: Soạn đề cử khối b cho S: (b.header, b.ext, b.proof, b.receipt, b.egress) • Người hợp tác: Gửi bằng chứng thông tin proof[S] = (b.header, b.ext, b.proof, b.receipt) thành Trình xác thực V[n][S] • CollatorS: Đảm bảo dữ liệu giao dịch bên ngoài b.ext được cung cấp cho những người đối chiếu khác và validators • Người hợp tác: CHO MỖI nhóm con s: Gửi đi ra thông tin đi ra[n][S][s] = (b.header, b.receipt, b.egress[s]) để cái nhận được nhóm phụ thành viên của tiếp theo khối Trình xác thực V[n + 1][s] • V alidatorV : Kết nối trước tất cả các thành viên cùng tập hợp đối với khối tiếp theo: đặt N = Chuỗi[n + 1][V ]; kết nối tất cả validators v sao cho Chuỗi[n + 1][v] = N • V alidatorV : Đối chiếu tất cả dữ liệu nhập vào cho việc này khối: CHO MỖI nhóm con s: Truy xuất egress[n −1][s][Chain[n][V ]], lấy từ validators v khác sao cho Chain[n][v] = Chain[n][V ]. Có thể đi qua các validator khác được chọn ngẫu nhiên để làm bằng chứng cho nỗ lực. • V alidatorV : Chấp nhận bằng chứng ứng cử viên cho việc này bằng chứng khối[Chuỗi[n][V ]]. Hiệu lực của khối biểu quyết • V alidatorV : Chấp nhận dữ liệu đầu ra của ứng viên cho khối tiếp theo: CHO MỖI nhóm con, chấp nhận đi ra[n][s][N]. Tính khả dụng của khối bỏ phiếu đầu ra; xuất bản lại giữa những validators quan tâm sao cho Chuỗi[n + 1][v] = Chuỗi[n + 1][V ]. • V alidatorV : ĐẾN ĐẾN ĐỒNG Ý Trong đó: egress[n][from][to] là hàng đợi đi ra hiện tại thông tin cho các bài đăng từ parachain ‘from‘, đến parachain ‘to‘ trong số khối ‘n‘. CollatorS là một công cụ đối chiếu cho parachain S. V alidators[n][s] là tập hợp validators cho parachain s ở số khối n. Ngược lại, Chain[n][v] là parachain mà validator v được gán trên số khối n. block.egress[to] là lối ra hàng bài đăng từ một số khối khối parachain có đích đến là parachain. Vì người đối chiếu thu phí (giao dịch) dựa trên các khối của họ trở thành chuẩn, họ được khuyến khích đảm bảo rằng đối với mỗi đích đến của khối tiếp theo, nhóm con các thành viên được thông báo về hàng đợi đi ra từ hiện tại khối. Người xác thực chỉ được khuyến khích để hình thành sự đồng thuận về một khối (parachain), vì vậy họ ít quan tâm đến khối đối chiếu nào cuối cùng sẽ trở thành chuẩn. trong về nguyên tắc, validator có thể hình thành lòng trung thành với người đối chiếu và âm mưu làm giảm cơ hội của những người đối chiếu khác' các khối trở thành chuẩn, tuy nhiên điều này vừa khó khăn sắp xếp do chọn ngẫu nhiênhành động của validator giây cho parachains và có thể được bảo vệ bằng cách giảm phí phải trả cho các khối parachain tồn tại quá trình đồng thuận. 6.6.1. Tính sẵn có của dữ liệu bên ngoài. Đảm bảo parachain dữ liệu bên ngoài thực sự có sẵn là một vấn đề lâu năm với các hệ thống phi tập trung nhằm phân phối khối lượng công việc trên mạng lưới. Trọng tâm của vấn đề là sự sẵn có vấn đề nói rằng vì không thể tạo bằng chứng không tương tác về tính khả dụng cũng như bất kỳ loại nào bằng chứng về tính không khả dụng để hệ thống BFT hoạt động bình thường xác nhận bất kỳ quá trình chuyển đổi nào có tính chính xác phụ thuộc vào sự sẵn có của một số dữ liệu bên ngoài, số lượng tối đa của các nút Byzantine có thể chấp nhận được, cộng với một, của hệ thống phải chứng thực dữ liệu có sẵn. Để hệ thống có thể mở rộng quy mô đúng cách, như Polkadot, điều này gây ra sự cố: nếu tỷ lệ cố định validators phải chứng thực sự sẵn có của dữ liệu và giả sử validator thực sự muốn lưu trữ dữ liệu trước khi xác nhận rằng nó có sẵn, thì làm cách nào để chúng ta tránh được vấn đề về yêu cầu băng thông/lưu trữ ngày càng tăng theo kích thước hệ thống (và do đó là số validators)? Một câu trả lời có thể là có một bộ riêng trong số validators (người bảo đảm tính sẵn có), có đơn đặt hàng tăng lên tuyến tính với kích thước tổng thể là Polkadot. Đây là được mô tả trong 6.5.3. Chúng tôi cũng có một thủ thuật phụ. Với tư cách là một nhóm, những người đối chiếu có động lực nội tại để đảm bảo rằng tất cả dữ liệu đều được có sẵn cho parachain đã chọn của họ vì nếu không có nó thì họ không thể tạo thêm các khối để từ đó họ có thể thu phí giao dịch. Những người cộng tác cũng tạo thành một nhóm, thành viên trong đó rất đa dạng (do tính chất ngẫu nhiên của parachain validator nhóm) không tầm thường để tham gia và dễ dàng
POLKADOT: TẦM NHÌN VỀ KHUNG KHUNG ĐA CHUỖI KHÔNG ĐỒNG THỂ DỰ THẢO 1 15 để chứng minh. Do đó, các nhà đối chiếu gần đây (có lẽ trong số vài nghìn khối cuối cùng) được phép đưa ra các thách thức đối với sự sẵn có của dữ liệu bên ngoài cho một parachain cụ thể chặn tới validators để có một trái phiếu nhỏ. Người xác thực phải liên hệ với những người thuộc nhóm phụ validator có vẻ vi phạm đã làm chứng và thu thập cũng như trả lại dữ liệu cho người đối chiếu hoặc chuyển lên cấp trên vấn đề bằng cách chứng minh sự thiếu sẵn có (từ chối trực tiếp cung cấp dữ liệu được coi là hành vi phạm tội tịch thu trái phiếu, do đó hành vi sai trái validator có thể sẽ chỉ ngắt kết nối) và liên hệ với validators khác để chạy thử nghiệm tương tự. Trong trường hợp sau, trái phiếu thế chấp được trả lại. Khi đã đạt đến số đại biểu validator người có thể đưa ra những lời chứng thực không có sẵn như vậy, họ sẽ được giải phóng, nhóm phụ có hành vi sai trái sẽ bị trừng phạt và khối được hoàn nguyên. 6.6.2. Định tuyến bài viết. Mỗi tiêu đề parachain bao gồm một đi ra-trie-root; đây là gốc của một thử nghiệm có chứa các thùng cơ sở định tuyến, mỗi thùng là một danh sách được nối của bài viết đi ra. Bằng chứng Merkle có thể được cung cấp trên parachain validators để chứng minh rằng một parachain cụ thể khối có một hàng đợi đầu ra cụ thể cho một parachain đích cụ thể. Khi bắt đầu xử lý một khối parachain, mỗi khối hàng đợi đầu ra của parachain khác bị ràng buộc cho khối nói trên là đã được hợp nhất vào hàng đợi vào của khối của chúng tôi. Chúng tôi cho rằng mạnh mẽ, có lẽ là CSPR9, thứ tự khối phụ để đạt được một hoạt động xác định không mang lại sự thiên vị giữa bất kỳ ghép nối khối parachain. Collators tính toán hàng đợi mới và rút hết hàng đợi đi ra theo parachain logic. Nội dung của hàng đợi vào được viết rõ ràng vào khối parachain. Điều này có hai mục đích chính: đầu tiên, điều đó có nghĩa là parachain có thể được đồng bộ hóa một cách đáng tin cậy và tách biệt với các parachain khác. Thứ hai, nó đơn giản hóa việc hậu cần dữ liệu nên toàn bộ quá trình xâm nhập hàng đợi không thể được xử lý trong một khối duy nhất; validators và người đối chiếu có thể xử lý các khối sau mà không cần phải tìm nguồn dữ liệu đặc biệt của hàng đợi. Nếu hàng đợi vào của parachain vượt quá ngưỡng số tiền ở cuối quá trình xử lý khối, sau đó nó được đánh dấu đã bão hòa trên chuỗi chuyển tiếp và không có thông báo nào khác có thể được thực hiện được chuyển đến nó cho đến khi nó được thông quan. Bằng chứng Merkle là được sử dụng để chứng minh tính chính xác của hoạt động của bộ đối chiếu trong bằng chứng của khối parachain. 6.6.3. Phê bình. Một sai sót nhỏ liên quan đến cơ bản này cơ chế là cuộc tấn công sau bom. Đây là nơi tất cả parachains gửi số lượng bài viết tối đa có thể đến một parachain cụ thể. Trong khi điều này ràng buộc mục tiêu hàng đợi vào cùng một lúc, không có thiệt hại nào xảy ra nhiều lần một cuộc tấn công DoS giao dịch tiêu chuẩn. Hoạt động bình thường, với bộ thiết bị đồng bộ tốt và trình đối chiếu không độc hại và validators, dành cho N parachain, Tổng cộng N × M validator số bộ đối chiếu và L trên mỗi parachain, chúng tôi có thể chia nhỏ tổng đường dẫn dữ liệu trên mỗi khối thành: Trình xác thực: M −1+L+L: M −1 cho validators khác trong bộ parachain, L cho mỗi bộ đối chiếu cung cấp khối parachain ứng cử viên và L thứ hai cho mỗi bộ đối chiếu của khối tiếp theo yêu cầu tải trọng đầu ra của khối trước đó. (Cái sau thực sự giống trường hợp xấu nhất hoạt động vì có khả năng các nhà đối chiếu sẽ chia sẻ những điều đó dữ liệu.) Collator: M +kN: M để kết nối với từng liên quan khối parachain validator, kN để gieo tải trọng đầu ra vào một số tập hợp con của mỗi nhóm parachain validator cho khối tiếp theo (và có thể một số đối chiếu được ưa thích). Như vậy, các đường dẫn dữ liệu trên mỗi nút phát triển tuyến tính với độ phức tạp tổng thể của hệ thống. Trong khi đây là hợp lý, vì hệ thống có quy mô thành hàng trăm hoặc hàng nghìn parachain, một số độ trễ giao tiếp có thể được hấp thụ để đổi lấy tốc độ tăng trưởng phức tạp thấp hơn. Trong trường hợp này, thuật toán định tuyến nhiều pha có thể được sử dụng để giảm số lượng đường truyền tức thời với chi phí giới thiệu bộ đệm lưu trữ và độ trễ. 6.6.4. Định tuyến siêu khối. Định tuyến siêu khối là một cơ chế có thể được xây dựng chủ yếu như một phần mở rộng cho cơ chế định tuyến cơ bản được mô tả ở trên. Về cơ bản, thay vì phát triển khả năng kết nối nút bằng số lượng nút parachain và nút nhóm phụ, chúng tôi chỉ phát triển với logarit của parachains. Bài viết có thể chuyển tiếp giữa hàng đợi của một số parachains đang trên đường đến khâu giao hàng cuối cùng. Bản thân việc định tuyến là xác định và đơn giản. Chúng tôi bắt đầu bằng giới hạn số lượng thùng trong hàng đợi vào/ra; thay vì là tổng số parachain, chúng làcơ sở định tuyến (b) . Điều này sẽ được cố định là số thay đổi của parachain, với số mũ định tuyến (e) thay vào đó được nâng lên. Theo mô hình này, khối lượng tin nhắn của chúng tôi phát triển với O(be), với đường đi không đổi và độ trễ (hoặc số khối cần thiết để phân phối) với O(e). Mô hình định tuyến của chúng tôi là một siêu khối có kích thước e, với mỗi cạnh của khối lập phương có b vị trí có thể. Mỗi khối, chúng tôi định tuyến tin nhắn dọc theo một trục. Chúng tôi luân phiên trục theo kiểu vòng tròn, do đó đảm bảo thời gian giao hàng trong trường hợp xấu nhất của các khối e. Là một phần của quá trình xử lý parachain, liên kết nước ngoài các tin nhắn được tìm thấy trong hàng đợi đi vào sẽ được chuyển ngay đến thùng của hàng đợi đi ra thích hợp, với điều kiện là số khối hiện tại (và do đó kích thước định tuyến). Cái này quá trình yêu cầu truyền dữ liệu bổ sung cho mỗi bước nhảy trên đường giao hàng, tuy nhiên bản thân đây cũng là một vấn đề có thể được giảm thiểu bằng cách sử dụng một số phương tiện thay thế phân phối tải trọng dữ liệu và chỉ bao gồm một tài liệu tham khảo, thay vì toàn bộ tải trọng của bài đăng trong lần thử sau. Một ví dụ về định tuyến siêu khối cho hệ thống với 4 parachain, b = 2 và e = 2 có thể là: Giai đoạn 0, trên mỗi tin nhắn M: • sub0: nếu Mdest ∈{2, 3} thì sendTo(2) nếu không giữ nguyên • sub1: nếu Mdest ∈{2, 3} thì sendTo(3) nếu không giữ nguyên • sub2: nếu Mdest ∈{0, 1} thì sendTo(0) nếu không giữ nguyên • sub3: nếu Mdest ∈{0, 1} thì sendTo(1) nếu không giữ nguyên Giai đoạn 1, trên mỗi tin nhắn M: • sub0: nếu Mdest ∈{1, 3} thì sendTo(1) nếu không giữ nguyên • sub1: nếu Mdest ∈{0, 2} thì sendTo(0) nếu không giữ nguyên • sub2: nếu Mdest ∈{1, 3} thì sendTo(3) nếu không giữ nguyên • sub3: nếu Mdest ∈{0, 2} thì sendTo(2) nếu không giữ nguyên Hai chiều ở đây dễ dàng được coi là chiều đầu tiên hai bit của chỉ mục đích; đối với khối đầu tiên, chỉ bit bậc cao hơn được sử dụng. Giao dịch khối thứ hai với bit bậc thấp. Một khi cả hai xảy ra (tùy ý order) thì bài viết sẽ được định tuyến. 9 giả ngẫu nhiên an toàn bằng mật mã
POLKADOT: TẦM NHÌN VỀ KHUNG KHUNG ĐA CHUỖI KHÔNG ĐỒNG THỂ DỰ THẢO 1 16 6.6.5. Tối đa hóa sự may mắn. Một sự thay đổi cơ bản đề xuất sẽ có tổng số cố định là c2 −c validators, với c−1 validators trong mỗi nhóm phụ. Mỗi khối, thay vì đang có sự phân vùng lại không có cấu trúc của validators giữa các parachain, thay vào đó cho từng nhóm con parachain, mỗi validator sẽ được gán cho một địa chỉ duy nhất và khác nhau nhóm con parachain trên khối sau. Điều này sẽ dẫn đến bất biến giữa hai khối bất kỳ, đối với bất kỳ khối nào hai cặp parachain, tồn tại hai validators đã hoán đổi trách nhiệm của parachain. Mặc dù điều này không thể được sử dụng để đạt được sự đảm bảo tuyệt đối về tính khả dụng (một validator thỉnh thoảng sẽ ngừng hoạt động, ngay cả khi nhân từ), tuy nhiên nó có thể tối ưu hóa trường hợp chung. Cách tiếp cận này không phải là không có biến chứng. Việc bổ sung parachain cũng sẽ đòi hỏi phải tổ chức lại của bộ validator. Hơn nữa, số validator, được gắn với bình phương của số lượng parachain, ban đầu sẽ bắt đầu rất nhỏ và cuối cùng phát triển xa quá nhanh, trở nên không thể trụ được sau khoảng 50 parachain. Không có vấn đề nào trong số này là vấn đề cơ bản. Trong trường hợp đầu tiên, việc sắp xếp lại các bộ validator là điều cần phải làm dù sao cũng được thực hiện thường xuyên. Về kích thước của validator được đặt, khi quá nhỏ, nhiều validator có thể được chỉ định cho cùng một parachain, áp dụng hệ số nguyên cho tổng cộng là validator giây. Cơ chế định tuyến nhiều pha như Định tuyến Hypercube, được thảo luận trong phần 6.6.4 sẽ giảm bớt yêu cầu về số lượng lớn validators khi có một số lượng lớn các chuỗi. 6.7. Xác thực Parachain. Mục đích chính của validator là để chứng minh, với tư cách là một tác nhân có mối quan hệ tốt, rằng hoạt động của parachain khối là hợp lệ, bao gồm nhưng không giới hạn ở bất kỳ chuyển đổi trạng thái nào, bao gồm mọi giao dịch bên ngoài, việc thực hiện bất kỳ bài đăng đang chờ nào trong hàng đợi vào và trạng thái cuối cùng của hàng đợi đi ra. Quá trình này khá đơn giản. Khi validator đã niêm phong khối trước đó, chúng sẽ miễn phí bắt đầu làm việc để cung cấp khối parachain ứng viên ứng cử viên cho vòng đồng thuận tiếp theo. Ban đầu, validator tìm thấy ứng viên khối parachain thông qua bộ đối chiếu parachain (mô tả tiếp theo) hoặc một trong số đồngvalidator của nó. Dữ liệu ứng cử viên khối parachain bao gồm tiêu đề của khối, tiêu đề của khối trước đó, bất kỳ dữ liệu đầu vào bên ngoài nào được bao gồm (đối với Ethereum và Bitcoin, dữ liệu đó sẽ được gọi là giao dịch, tuy nhiên về nguyên tắc, chúng có thể bao gồm các cấu trúc dữ liệu tùy ý cho các mục đích tùy ý), dữ liệu hàng đợi đầu ra và dữ liệu nội bộ để chứng minh tính hợp lệ của quá trình chuyển đổi trạng thái (đối với Ethereum đây sẽ là các nút trie trạng thái/lưu trữ khác nhau cần thiết để thực hiện mỗi giao dịch). Bằng chứng thực nghiệm cho thấy tập dữ liệu đầy đủ này cho khối Ethereum gần đây nhiều nhất là vài trăm KiB. Đồng thời, nếu chưa thực hiện thì validator sẽ là cố gắng truy xuất thông tin liên quan đến quá trình chuyển đổi của khối trước đó, ban đầu từ khối trước đó validator giây trở đi từ tất cả validator ký kết sự sẵn có của dữ liệu. Khi validator đã nhận được khối ứng cử viên như vậy, sau đó họ xác nhận nó tại địa phương. Quá trình xác thực được chứa trong mô-đun validator của lớp parachain, một mô-đun phần mềm nhạy cảm với sự đồng thuận phải được viết đối với bất kỳ việc triển khai Polkadot nào (mặc dù về nguyên tắc một thư viện có C ABI có thể cho phép một thư viện duy nhất được chia sẻ giữa các lần thực hiện với giảm độ an toàn do chỉ thực hiện một “tài liệu tham khảo” duy nhất). Quá trình lấy tiêu đề của khối trước đó và xác minh danh tính của nó thông qua chuỗi chuyển tiếp đã được thống nhất gần đây khối trong đó hash của nó sẽ được ghi lại. Khi tính hợp lệ của tiêu đề gốc được xác định chắc chắn, parachain cụ thể chức năng xác nhận của lớp có thể được gọi. Đây là một hàm duy nhất chấp nhận một số trường dữ liệu (khoảng những cái đã cho trước đó) và trả về một giá trị Boolean đơn giản công bố tính hợp lệ của khối. Hầu hết các chức năng xác nhận như vậy trước tiên sẽ kiểm tra các trường tiêu đề có thể được lấy trực tiếp từ khối cha (ví dụ: cha hash, số). Đang theo dõi điều này, họ sẽ điền bất kỳ cấu trúc dữ liệu nội bộ nào dưới dạng cần thiết để xử lý các giao dịch và/hoặc bài viết. Đối với một chuỗi giống Ethereum, điều này tương đương với việc điền vào một thử cơ sở dữ liệu với các nút sẽ cần thiết cho thực hiện đầy đủ các giao dịch. Các loại chuỗi khác có thể có p kháccác cơ chế khắc phục. Sau khi hoàn tất, các bài đăng nhập và các giao dịch bên ngoài (hoặc bất kỳ dữ liệu bên ngoài nào thể hiện) sẽ được được ban hành, cân bằng theo đặc điểm kỹ thuật của chuỗi. (A mặc định hợp lý có thể là yêu cầu tất cả các bài viết xâm nhập phải được được xử lý trước khi các giao dịch bên ngoài được thực hiện, tuy nhiên điều này phải do logic của parachain quyết định.) Thông qua đạo luật này, một loạt các bài đăng đi ra sẽ được được tạo ra và nó sẽ được xác minh rằng những điều này thực sự phù hợp ứng cử viên của người đối chiếu. Cuối cùng, dân số hợp lý tiêu đề sẽ được kiểm tra dựa trên tiêu đề của ứng viên. Với khối ứng cử viên được xác thực đầy đủ, validator sau đó có thể bỏ phiếu cho hash của tiêu đề của nó và gửi tất cả thông tin xác thực cần thiết đến các co-validator trong nhóm con của nó. 6.7.1. Bộ sưu tập Parachain. Người đối chiếu Parachain là những người vận hành không liên kết, hoàn thành phần lớn nhiệm vụ của người khai thác trên các mạng blockchain ngày nay. Chúng cụ thể đến một parachain cụ thể. Để hoạt động họ phải duy trì cả chuỗi chuyển tiếp và đồng bộ hóa hoàn toàn parachain. Ý nghĩa chính xác của “được đồng bộ hóa hoàn toàn” sẽ phụ thuộc vào loại parachain, mặc dù sẽ luôn bao gồm trạng thái hiện tại của hàng đợi vào của parachain. Trong trường hợp của Ethereum, ít nhất nó cũng liên quan đến việc duy trì cơ sở dữ liệu cây Merkle của vài khối cuối cùng, nhưng có thể cũng bao gồm nhiều cấu trúc dữ liệu khác bao gồm Bloom bộ lọc để tồn tại tài khoản, thông tin gia đình, ghi nhật ký kết quả đầu ra và bảng tra cứu ngược cho số khối. Ngoài việc giữ cho hai chuỗi được đồng bộ hóa, nó cũng phải “câu” các giao dịch bằng cách duy trì hàng đợi giao dịch và chấp nhận các giao dịch được xác thực hợp lệ từ mạng công cộng. Với hàng đợi và chuỗi, nó là có thể tạo các khối ứng cử viên mới cho validator được chọn ở mỗi khối (có danh tính được biết do chuỗi chuyển tiếp được đồng bộ hóa) và gửi chúng cùng với thông tin phụ trợ khác nhau như bằng chứng về tính hợp lệ, thông qua mạng ngang hàng. Vì rắc rối của mình, nó thu tất cả các khoản phí liên quan đến các giao dịch mà nó bao gồm. Nhiều nền kinh tế khác nhau xoay quanh vấn đề này sắp xếp. Trong một thị trường cạnh tranh khốc liệt, nơi có là sự dư thừa của người đối chiếu, có thể giao dịch phí được chia sẻ với parachain validators để khuyến khích sự bao gồm của một khối đối chiếu cụ thể. Tương tự,
POLKADOT: TẦM NHÌN VỀ KHUNG KHUNG ĐA CHUỖI KHÔNG ĐỒNG THỂ DỰ THẢO 1 17 một số đối tác thậm chí có thể tăng các khoản phí cần thiết được trả tiền để làm cho khối này trở nên hấp dẫn hơn đối với validator giây. Trong trường hợp này, một thị trường tự nhiên sẽ hình thành với các giao dịch trả phí cao hơn, bỏ qua hàng đợi và tham gia vào chuỗi nhanh hơn. 6.8. Kết nối mạng. Kết nối mạng trên blockchains truyền thống như Ethereum và Bitcoin có những yêu cầu khá đơn giản. Tất cả các giao dịch và khối được phát đi trong một tin đồn đơn giản, không có định hướng. Đồng bộ hóa được tham gia nhiều hơn, đặc biệt là với Ethereum nhưng trên thực tế logic này được chứa trong chiến lược ngang hàng thay vì chính giao thức giải quyết xung quanh một số loại thông báo yêu cầu và trả lời. Trong khi Ethereum đã đạt được tiến bộ trong việc cung cấp giao thức hiện tại với giao thức devp2p, điều này cho phép nhiều các giao thức con được ghép kênh trên một kết nối ngang hàng duy nhất và do đó có cùng lớp phủ ngang hàng hỗ trợ nhiều p2p đồng thời, phần Ethereum của giao thức vẫn còn tương đối đơn giản và p2p giao thức trong một thời gian vẫn chưa được hoàn thành với những điều quan trọng thiếu chức năng như hỗ trợ QoS. Đáng buồn thay, mong muốn tạo ra một giao thức “web 3” phổ biến hơn phần lớn đã thất bại, với những dự án duy nhất sử dụng nó là những dự án rõ ràng được tài trợ từ đợt bán hàng cộng đồng Ethereum. Các yêu cầu đối với Polkadot khá quan trọng hơn. Thay vào đó là một mạng thống nhất hoàn toàn, Polkadot có nhiều loại người tham gia, mỗi loại có những yêu cầu khác nhau về thành phần ngang hàng của họ và một số mạng lưới “đại lộ” mà những người tham gia sẽ có xu hướng thảo luận về dữ liệu cụ thể. Điều này có nghĩa là lớp phủ mạng có cấu trúc chặt chẽ hơn—và một giao thức hỗ trợ điều đó— có thể sẽ cần thiết. Hơn nữa, khả năng mở rộng để tạo thuận lợi cho việc bổ sung trong tương lai chẳng hạn như các loại “chuỗi” mới có thể bản thân chúng đòi hỏi một cấu trúc lớp phủ mới. Trong khi thảo luận chuyên sâu về cách mạng giao thức có thể nằm ngoài phạm vi của tài liệu này, một số phân tích yêu cầu là hợp lý. Chúng tôi có thể chia nhỏ những người tham gia mạng lưới của chúng tôi thành hai nhóm (chuỗi chuyển tiếp, chuỗi parachain) mỗi tập hợp con trong số ba tập hợp con. Chúng tôi có thể cũng tuyên bố rằng mỗi người tham gia parachain chỉ quan tâm đến việc trò chuyện giữa họ chứ không phải người tham gia các parachain khác: • Những người tham gia chuỗi chuyển tiếp: • Trình xác nhận: P, chia thành các tập con P[s] cho mỗi tập parachain • Người bảo đảm tính khả dụng: A (điều này có thể được thể hiện bởi Người xác nhận ở dạng cơ bản của giao thức) • Máy khách chuỗi chuyển tiếp: M (lưu ý các thành viên của mỗi bộ parachain cũng sẽ có xu hướng là thành viên của M) • Người tham gia Parachain: • Bộ hợp tác Parachain: C[0], C[1], . . . • Ngư dân Parachain: F[0], F[1], . . . • Khách hàng Parachain: S[0], S[1], . . . • Các ứng dụng khách nhẹ của Parachain: L[0], L[1], . . . Nói chung, chúng tôi đặt tên cho các lớp giao tiếp cụ thể sẽ có xu hướng diễn ra giữa các thành viên của các tập hợp này: • P | A <-> P | Đáp: các đầy đủ đặt của validators/người bảo lãnh phải được kết nối tốt để đạt được sự đồng thuận. • P[s] <-> C[s] | P[s]: Mỗi validator với tư cách là thành viên của một nhóm parachain nhất định sẽ có xu hướng buôn chuyện với các thành viên khác cũng như các đối tác của parachain đó để khám phá và chia sẻ các ứng cử viên khối. • A <-> P[s] | C | A: Mỗi người bảo đảm tính sẵn có sẽ cần thu thập chuỗi chéo nhạy cảm với sự đồng thuận dữ liệu từ validator được gán cho nó; người đối chiếu cũng có thể tối ưu hóa cơ hội đồng thuận về chặn bằng cách quảng cáo nó cho những người bảo đảm tính sẵn có. Sau khi họ có nó, dữ liệu sẽ được chuyển tới người bảo lãnh khác để tạo thuận lợi cho sự đồng thuận. • P[s] <-> A | P[s']: Parachain validators sẽ cần thu thập dữ liệu đầu vào bổ sung từ tập validator trước đó hoặc những người bảo đảm tính khả dụng. • F[s] <-> P: Khi báo cáo, ngư dân có thể đặt một yêu cầu với bất kỳ người tham gia. • M <-> M | P | Đáp: Các khách hàng chuỗi chuyển tiếp chung giải ngân dữ liệu từ validator và người bảo lãnh. • S[s] <-> S[s] | P[s] | Trả lời: Khách hàng Parachain giải ngân dữ liệu từ validator/người bảo lãnh. • L[s] <-> L[s] | S[s]: Máy khách nhẹ Parachain giải ngân dữ liệu từ các khách hàng đầy đủ. Để đảm bảo một cơ chế vận chuyển hiệu quả, một “phẳng” mạng lớp phủ—như devp2p của Ethereum—trong đó mỗi mạng nút không (không tùy ý) phân biệt tính phù hợp của nó đồng nghiệp có thể sẽ không phù hợp. Có khả năng mở rộng hợp lý cơ chế lựa chọn và khám phá ngang hàng có thể sẽ cần được đưa vào trong giao thức cũng như tích cực lập kế hoạch nhìn về phía trước để đảm bảo chọn đúng loại đồng nghiệp là một cách tình cờct vào đúng thời điểm. Chiến lược chính xác của việc thành lập bạn bè sẽ khác nhau đối với mỗi lớp người tham gia: để có quy mô phù hợp đa chuỗi, các bộ đối chiếu sẽ cần phải liên tục kết nối lại với validator được bầu tương ứng, hoặc sẽ cần các thỏa thuận đang diễn ra với một tập hợp con validators để đảm bảo chúng không bị ngắt kết nối trong phần lớn thời gian chúng vô dụng đối với validator đó. Người hợp tác đương nhiên cũng sẽ cố gắng duy trì một hoặc kết nối ổn định hơn vào người bảo đảm sẵn có được thiết lập để đảm bảo truyền bá nhanh chóng các thông tin nhạy cảm với sự đồng thuận của họ dữ liệu. Những người bảo đảm tính sẵn sàng sẽ chủ yếu nhằm mục đích duy trì một kết nối ổn định với nhau và với validators (để có được sự đồng thuận và dữ liệu parachain quan trọng đồng thuận mà họ chứng thực), cũng như với một số đối tác (đối với parachain dữ liệu) và một số ngư dân và khách hàng đầy đủ (để phân tán thông tin). Người xác nhận sẽ có xu hướng tìm kiếm validator khác, đặc biệt là những người trong cùng một nhóm phụ và bất kỳ các đối tác có thể cung cấp cho họ các ứng viên khối parachain. Ngư dân, cũng như chuỗi chuyển tiếp và parachain nói chung khách hàng thường sẽ hướng tới mục tiêu duy trì kết nối mở cho một validator hoặc người bảo lãnh, nhưng có nhiều nút khác tương tự đối với chính họ bằng cách khác. Tương tự, các máy khách nhẹ của Parachain sẽ hướng tới mục tiêu được kết nối với một máy khách đầy đủ của parachain, nếu không chỉ các client ánh sáng parachain khác. 6.8.1. Vấn đề về sự rời bỏ ngang hàng. Trong đề xuất giao thức cơ bản, mỗi tập hợp con này liên tục thay đổi ngẫu nhiên theo từng khối dưới dạng validator được chỉ định để xác minh quá trình chuyển đổi parachain được chọn ngẫu nhiên. Điều này có thể là một vấn đề nên các nút khác nhau (không ngang hàng) cần phải truyền dữ liệu cho nhau. Người ta hoặc phải dựa vào một mạng ngang hàng được phân phối khá tốt và được kết nối tốt với
POLKADOT: TẦM NHÌN VỀ KHUNG KHUNG ĐA CHUỖI KHÔNG ĐỒNG THỂ DỰ THẢO 1 18 đảm bảo rằng khoảng cách hop (và do đó độ trễ trong trường hợp xấu nhất) chỉ tăng theo logarit của kích thước mạng (giao thức giống Kademlia [13] có thể hữu ích ở đây) hoặc người ta phải giới thiệu thời gian chặn dài hơn để cho phép diễn ra quá trình đàm phán kết nối cần thiết nhằm duy trì một tập hợp ngang hàng phản ánh nhu cầu liên lạc hiện tại của nút. Cả hai đều không phải là giải pháp tuyệt vời: thời gian chặn dài bị ép buộc vào mạng có thể khiến nó trở nên vô dụng đối với các ứng dụng và chuỗi cụ thể. Thậm chí là hoàn toàn công bằng và mạng được kết nối sẽ gây lãng phí đáng kể băng thông khi nó tăng quy mô do các nút không quan tâm có để chuyển tiếp dữ liệu vô dụng cho họ. Mặc dù cả hai hướng có thể tạo thành một phần của giải pháp, tối ưu hóa hợp lý để giúp giảm thiểu độ trễ sẽ nhằm hạn chế tính biến động của các parachain này validator các bộ, hoặc chỉ gán lại tư cách thành viên giữa các chuỗi khối (ví dụ: trong nhóm 15, với tốc độ 4 giây thời gian chặn có nghĩa là chỉ thay đổi kết nối một lần mỗi lần phút) hoặc bằng cách luân phiên thành viên theo kiểu tăng dần, ví dụ: thay đổi bởi một thành viên tại một thời điểm (ví dụ: nếu có là 15 validator được gán cho mỗi parachain, thì trung bình sẽ mất trọn một phút giữa các chuỗi hoàn toàn duy nhất bộ). Bằng cách hạn chế số lượng rời bỏ ngang hàng và đảm bảo rằng các kết nối ngang hàng thuận lợi được thực hiện tốt trong tiến lên nhờ khả năng dự đoán một phần của parachain các bộ, chúng tôi có thể giúp đảm bảo mỗi nút duy trì vĩnh viễn sự lựa chọn tình cờ của các đồng nghiệp. 6.8.2. Đường dẫn đến một giao thức mạng hiệu quả. Có khả năng nỗ lực phát triển hợp lý và hiệu quả nhất sẽ tập trung vào việc sử dụng giao thức có sẵn thay vì triển khai của riêng chúng tôi. Một số giao thức cơ sở ngang hàng tồn tại chúng tôi có thể sử dụng hoặc bổ sung thêm devp2p của chính Ethereum [22], libp2p [1] của IPFS và GNUnet [4] của GNU. Đánh giá đầy đủ về các giao thức này và sự liên quan của chúng đối với việc xây dựng một mạng ngang hàng mô-đun hỗ trợ các đảm bảo về cấu trúc nhất định, định hướng ngang hàng năng động và các giao thức phụ có thể mở rộng vượt xa phạm vi của tài liệu này nhưng sẽ là một bước quan trọng trong việc triển khai Polkadot. 7. Tính thực tiễn của Nghị định thư 7.1. Thanh toán giao dịch liên chuỗi. Trong khi tuyệt vời mức độ tự do và đơn giản đạt được thông qua việc loại bỏ nhu cầu về khung kế toán tài nguyên tính toán tổng thể như gas của Ethereum, điều này đặt ra một câu hỏi quan trọng: không có gas, làm thế nào một parachain tránh việc parachain khác buộc nó thực hiện tính toán? Mặc dù chúng ta có thể dựa vào hàng đợi nhập sau giao dịch bộ đệm để ngăn chặn một chuỗi gửi thư rác cho một chuỗi khác bằng dữ liệu giao dịch, không có cơ chế tương đương nào được cung cấp bởi giao thức để ngăn chặn việc gửi thư rác trong quá trình xử lý giao dịch. Đây là một vấn đề còn lại ở cấp độ cao hơn. Vì chuỗi được tự do đính kèm ngữ nghĩa tùy ý vào dữ liệu đến dữ liệu sau giao dịch, chúng tôi có thể đảm bảo rằng việc tính toán phải được thanh toán trước khi bắt đầu. Theo cách tương tự như người mẫu được tán thành bởi Ethereum Serenity, chúng ta có thể tưởng tượng một hợp đồng “đột nhập” trong parachain cho phép validator được đảm bảo thanh toán để đổi lấy cung cấp một khối lượng tài nguyên xử lý cụ thể. Những tài nguyên này có thể được đo bằng thứ gì đó như khí đốt, nhưng cũng có thể là một số mô hình hoàn toàn mới, chẳng hạn như thời gian thực hiện chủ quan hoặc mô hình phí cố định giống Bitcoin. Bản thân điều này không hữu ích lắm vì chúng ta không thể dễ dàng cho rằng người gọi ngoài chuỗi có sẵn cho họ bất kỳ cơ chế giá trị nào được nhận ra khi đột nhập hợp đồng. Tuy nhiên, chúng ta có thể tưởng tượng một hợp đồng “đột phá” thứ cấp trong chuỗi nguồn. Hai bản hợp đồng với nhau sẽ tạo thành cầu nối, nhận biết nhau và cung cấp giá trị tương đương. (Stake-tokens, có sẵn cho mỗi khoản, có thể được sử dụng để giải quyết cán cân thanh toán.) Gọi vào một chuỗi khác như vậy có nghĩa là ủy quyền thông qua cây cầu này, nó sẽ cung cấp phương tiện đàm phán về việc chuyển giao giá trị giữa các chuỗi để trả tiền cho các tài nguyên tính toán cần thiết trên parachain đích. 7.2. bổ sung Dây chuyền. Trong khi cái phép cộng của một parachain là một hoạt động tương đối rẻ và không miễn phí. Nhiều parachain hơn có nghĩa là ít validator trên mỗi parachain hơn và cuối cùng, số lượng validator lớn hơn, mỗi số có một trái phiếu trung bình giảm. Mặc dù vấn đề về chi phí ép buộc nhỏ hơn khi tấn công parachain được giảm thiểu thông qua ngư dân, bộ validator ngày càng tăng về cơ bản buộc phải độ trễ cao hơn do cơ chế đồng thuận cơ bản của tôithod. Hơn nữa, mỗi parachain mang theo nó khả năng gây đau buồn cho validator với một thuật toán xác nhận quá nặng nề. Như vậy sẽ có một số “giá” validators và/hoặc cộng đồng nắm giữ cổ phần sẽ khai thác để bổ sung một parachain mới. Thị trường dây chuyền này sẽ có thể thấy việc bổ sung một trong hai: • Các chuỗi có khả năng không đóng góp ròng (về mặt khóa hoặc đốt staking tokens) để trở thành một phần (ví dụ: chuỗi liên minh, Chuỗi Doge, chuỗi dành riêng cho ứng dụng); • chuỗi mang lại giá trị nội tại cho mạng thông qua việc thêm chức năng cụ thể khó khăn để đi nơi khác (ví dụ: tính bảo mật, khả năng mở rộng nội bộ, liên kết dịch vụ). Về cơ bản, cộng đồng các bên liên quan sẽ cần phải được khuyến khích thêm các chuỗi con—về mặt tài chính hoặc thông qua mong muốn bổ sung thêm các chuỗi tính năng vào rơle. Người ta hình dung rằng các chuỗi mới được thêm vào sẽ có tác dụng rất thời gian thông báo ngắn để loại bỏ, cho phép các chuỗi mới được thử nghiệm mà không có bất kỳ nguy cơ ảnh hưởng nào đề xuất giá trị trung hoặc dài hạn. 8. Kết luận Chúng tôi đã vạch ra một hướng đi mà người ta có thể thực hiện để viết một giao thức đa chuỗi không đồng nhất, có thể mở rộng, có khả năng tương thích ngược với một số giao thức nhất định đã tồn tại từ trước blockchain mạng. Theo một giao thức như vậy, những người tham gia làm việc vì lợi ích cá nhân rõ ràng để tạo ra một hệ thống tổng thể có thể được mở rộng theo cách đặc biệt miễn phí và không phải trả chi phí thông thường cho người dùng hiện tại đến từ thiết kế blockchain tiêu chuẩn. Chúng tôi đã đưa ra một phác thảo sơ bộ về kiến trúc cần bao gồm bản chất của những người tham gia, động cơ kinh tế của họ và các quá trình mà họ phải tham gia. Chúng tôi có xác định một thiết kế cơ bản và thảo luận về điểm mạnh và những hạn chế; theo đó chúng tôi có thêm hướng dẫn có thể giảm bớt những hạn chế đó và mang lại nền tảng vững chắc hơn cho giải pháp blockchain có thể mở rộng hoàn toàn.POLKADOT: TẦM NHÌN VỀ KHUNG KHUNG ĐA CHUỖI KHÔNG ĐỒNG THỂ DỰ THẢO 1 19 8.1. Thiếu tài liệu và câu hỏi mở. Việc phân nhánh mạng luôn có thể xảy ra do việc triển khai giao thức khác nhau. Sự phục hồi từ tình trạng như vậy tình trạng đặc biệt đã không được thảo luận. Do mạng nhất thiết phải có thời gian hoàn thiện khác 0, việc khôi phục sau quá trình phân nhánh chuỗi chuyển tiếp không phải là vấn đề lớn, tuy nhiên sẽ yêu cầu tích hợp cẩn thận vào giao thức đồng thuận. Việc tịch thu trái phiếu và ngược lại, cung cấp phần thưởng có chưa được tìm hiểu sâu. Hiện tại chúng tôi giả định phần thưởng được cung cấp theo nguyên tắc người thắng được tất cả: điều này có thể không đưa ra mô hình khuyến khích tốt nhất cho ngư dân. Một quá trình tiết lộ cam kết trong thời gian ngắn sẽ cho phép nhiều ngư dân để nhận giải thưởng và phân phối phần thưởng công bằng hơn, tuy nhiên quá trình này có thể dẫn đến độ trễ bổ sung trong việc phát hiện hành vi sai trái. 8.2. Lời cảm ơn. Rất cám ơn tất cả các những người đọc thử đã giúp giải quyết vấn đề này một cách mơ hồ hình dạng có thể trình bày. Đặc biệt, Peter Czaban, Bj¨orn Wagner, Ken Kappler, Robert Habermeier, Vitalik Buterin, Reto Trinkler và Jack Petersson. Cảm ơn tất cả những người đã đóng góp ý tưởng hoặc sự khởi đầu vì vậy, Marek Kotewicz và Aeron Buchanan xứng đáng được đề cập đặc biệt. Và cảm ơn mọi người vì sự giúp đỡ của họ trên đường đi. Tất cả các lỗi là của riêng tôi. Các phần của công việc này, bao gồm cả nghiên cứu ban đầu về thuật toán đồng thuận, được tài trợ một phần bởi người Anh Chính phủ theo chương trình Đổi mới của Vương quốc Anh.
Protocole en détail
Le protocole peut être grossièrement décomposé en trois parties : le mécanisme de consensus, l'interface parachain et le routage des transactions inter-chaînes. 6.1. Chaîne relais Opération. Le chaîne-relais va il s'agit probablement d'une chaîne globalement similaire à Ethereum dans la mesure où elle est basé sur l'état avec l'adresse de mappage d'état au compte informations, principalement les soldes et (pour éviter les rediffusions) un compteur de transactions. Placer les comptes ici répond à un seul objectif : rendre compte de ce que possède l’identité. quel montant de participation dans le système.7 Il y aura cependant des différences notables : • Les contrats ne peuvent pas être déployés via des transactions ; suite à la volonté d’éviter les fonctionnalités applicatives sur la chaîne relais, il ne sera pas accompagner le déploiement public des contrats. • L'utilisation des ressources de calcul (« gaz ») n'est pas comptabilisée ; puisque les seules fonctions disponibles pour un usage public sera corrigée, la justification de la comptabilisation du gaz ne tient plus. A ce titre, un tarif forfaitaire s'appliquera en tous les cas, permettant plus de performances dans tous les cas exécution de code dynamique qui peut être nécessaire et un format de transaction plus simple. • Une fonctionnalité spéciale est prise en charge pour les contrats répertoriés qui permet l'exécution automatique et la sortie de messages réseau. Dans le cas où la chaîne de relais possède une VM et que ce soit basé sur le EVM, il comporterait un certain nombre de modifications pour assurer une simplicité maximale. Ce serait probablement avoir un certain nombre de contrats intégrés (similaires à ceux de adresses 1 à 4 dans Ethereum) pour permettre des tâches à gérer, y compris un contrat consensuel, un Contrat validator et un contrat parachain. Si ce n’est pas le EVM, alors un backend WebAssembly [2] (wasm) est l’alternative la plus probable ; dans ce cas, l'ensemble la structure serait similaire, mais il ne serait pas nécessaire pour que les contrats intégrés avec Wasm soient une cible viable pour les langages à usage général plutôt que pour les langages immatures et langues limitées pour le EVM. D'autres écarts probables par rapport au protocole actuel Ethereum sont tout à fait possibles, par exemple une simplification du format de reçu de transaction permettant l'exécution parallèle de transactions non conflictuelles au sein d'un même bloc, comme proposé pour la série de changements Serenity. Il est possible, bien que peu probable, qu'un chaîne « pure » soit déployée comme chaîne-relais, permettant une contrat particulier pour gérer des choses comme le staking token équilibres plutôt que d’en faire un élément fondamental de le protocole de la chaîne. À l'heure actuelle, nous estimons qu'il est peu probable que cela offrera une simplification protocolaire suffisamment grande pour être cela vaut la complexité et l'incertitude supplémentaires impliquées en le développant. 7Afin de représenter le montant qu'un détenteur donné est responsable de la sécurité globale du système, ces comptes de participation seront codent inévitablement une certaine valeur économique. Toutefois, il convient de comprendre que, puisqu'il n'est pas prévu que de telles valeurs soient utilisées dans de quelque manière que ce soit dans le but d'échanger contre des biens et services du monde réel, il convient par conséquent de noter que les token ne doivent pas être assimilés à monnaie et à ce titre la chaîne-relais conserve sa philosophie nihiliste en matière d'applications.POLKADOT : VISION D'UN CADRE MULTI-CHAÎNES HÉTÉROGÈNE PROJET 1 10 Il existe un certain nombre de petites fonctionnalités requises pour administrer le mécanisme de consensus, l'ensemble validator, le mécanisme de validation et les parachains. Ces pourraient être mis en œuvre ensemble dans le cadre d’un protocole monolithique. Cependant, pour des raisons de modularité augure, nous les qualifions de « contrats » de la chaîne-relais. Cela devrait être interprété comme signifiant qu'ils sont des objets (au sens de programmation orientée objet) gérée par le mécanisme de consensus de la relaychain, mais pas nécessairement cela ils sont définis comme des programmes dans des opcodes de type EVM, ni même qu'ils soient adressables individuellement via le système de compte. 6.2. Contrat de jalonnement. Ce contrat maintient l'ensemble validator. Il gère : • quels comptes sont actuellement des validator ; • qui sont disponibles pour devenir validators en bref avis ; • quels comptes ont placé une participation en nominant à un validator ; • les propriétés de chacun, y compris le volume staking, les taux de paiement et adresses acceptables et les identités (session) à court terme. Il permet à un compte d'enregistrer une envie de devenir les validator liés (avec ses exigences), pour désigner une certaine identité, et pour les validator liés préexistants, d'enregistrer leur désir de quitter ce statut. C'est aussi comprend le mécanisme lui-même pour le mécanisme de validation et de canonisation. 6.2.1. Mise-token Liquidité. Il est généralement souhaitable de avoir autant que possible du total de staking token jalonné dans les opérations de maintenance du réseau depuis cela lie directement la sécurité du réseau à la « capitalisation boursière » globale du staking token. Cela peut facilement être encouragé en gonflant la monnaie et en distribuant les bénéfices à ceux qui participent en tant que validators. Cependant, cela pose un problème : si le token est bloqué dans le Contrat de Staking sous peine de réduction, comment une partie substantielle peut-elle rester suffisamment liquide afin de permettre la découverte des prix ? Une réponse à cela consiste à autoriser un contrat dérivé simple, garantissant des token fongibles sur un token sous-jacent jalonné. C’est difficile à organiser sans confiance. De plus, ces dérivés token ne peuvent pas être traités de la même manière pour la même raison que les différentes obligations d’État de la zone euro ne sont pas fongibles : il est une chance que l'actif sous-jacent échoue et devienne sans valeur. Avec les gouvernements de la zone euro, il pourrait y avoir un par défaut. Avec validator jalonnés de token, les validator peuvent agir de manière malveillante et être puni. Conformément à nos principes, nous optons pour la solution la plus simple : tous les token ne sont pas jalonnés. Cela voudrait dire que une certaine proportion (peut-être 20 %) des token resteront forcément liquides. Bien que cela soit imparfait du point de vue de la sécurité, il est peu probable que cela fasse une différence fondamentale en termes de sécurité. la sécurité du réseau ; 80 % des réparations possibles grâce aux confiscations de cautions pourraient encore être effectuées par rapport au « cas parfait » de 100 % staking. Le rapport entre les token mis en jeu et les token liquides peut être ciblé assez simplement grâce à un mécanisme d'enchères inversées. Essentiellement, les titulaires de token intéressés à devenir validator chacun publierait une offre pour le contrat staking indiquant le taux de paiement minimum dont ils auraient besoin pour prendre partie. Au début de chaque séance (les séances seraient se produisent régulièrement, peut-être aussi souvent qu'une fois par heure), le validator créneaux seraient pourvus en fonction de chaque candidat La mise et le taux de paiement de validator. Un algorithme possible car ce serait prendre ceux qui ont les offres les plus basses et qui représenter une mise ne dépassant pas la mise totale visée divisé par le nombre d'emplacements et ne doit pas être inférieur à une limite inférieure égale à la moitié de ce montant. Si les créneaux ne peuvent pas être pourvus, la limite inférieure pourrait être réduite à plusieurs reprises d'un certain facteur afin de satisfaire. 6.2.2. Nomination. Il est possible de nommer en toute confiance ceux staking tokens à un validator actif, leur donnant la responsabilité des fonctions de validator. Œuvres en nomination grâce à un système de vote d’approbation. Chaque proposant potentiel peut publier une instruction sur le contrat staking exprimant une ou plusieurs identités validator sous lesquelles responsabilité qu'ils sont prêts à confier à leur caution. À chaque séance, les liens des proposants sont dispersés pour être représenté par un ou plusieurs validator. L'algorithme de dispersion optimise pour un ensemble de validators de total équivalent obligations. Les cautions des proposants deviennent sous la responsabilité effective du validator aet susciter de l'intérêt ou subir un réduction de la peine en conséquence. 6.2.3. Confiscation/incendie des obligations. Certains comportements validator entraînent une réduction punitive de leur caution. Si la caution est réduite en dessous du minimum autorisé, le une session est terminée prématurément et une autre démarre. Une liste non exhaustive de comportements répréhensibles validator punissables comprend : • Faire partie d'un groupe parachain incapable de fournir consensus sur la validité d’un bloc parachain ; • signer activement pour la validité d'un invalide bloc de parachaine ; • incapacité à fournir des charges utiles de sortie auparavant voté comme disponible ; • inactivité pendant le processus de consensus ; • valider les blocs relais-chaînes sur les fourches concurrentes. Certains cas de mauvais comportement menacent l’intégrité du réseau (comme la signature de blocs de parachain invalides et la validation de plusieurs côtés d’un fork) et entraînent ainsi un exil effectif par la réduction totale de la liaison. Dans d'autres cas moins graves (par exemple inactivité dans le consensus processus) ou dans les cas où le blâme ne peut être attribué avec précision (faire partie d'un groupe inefficace), une petite partie de la caution peut en revanche être condamné à une amende. Dans ce dernier cas, cela fonctionne bien avec le désabonnement des sous-groupes pour garantir que les messages malveillants les nœuds subissent beaucoup plus de pertes que les nœuds bienveillants endommagés collatéralement. Dans certains cas (par exemple, validation multi-fork et invalide signature de sous-bloc) validators ne peuvent pas eux-mêmes détecter facilement le mauvais comportement de chacun car une vérification constante de chaque bloc de parachain serait une tâche trop ardue. Ici il est nécessaire d'obtenir le soutien de parties extérieures à le processus de validation pour vérifier et signaler un tel comportement inapproprié. Les parties reçoivent une récompense pour avoir signalé une telle activité ; leur terme, « pêcheurs », vient de l’improbabilité d'une telle récompense. Étant donné que ces cas sont généralement très graves, nous envisageons que toute récompense puisse facilement être payée à partir de la caution confisquée. En général, nous préférons équilibrer la combustion (c'est-à-dire réduction à néant) avec réaffectation, plutôt que tenter une réallocation globale. Cela a pour effet de
POLKADOT : VISION D'UN CADRE MULTI-CHAÎNES HÉTÉROGÈNE PROJET 1 11 augmentant la valeur globale du token, compensant le réseau en général dans une certaine mesure plutôt que le réseau spécifique partie impliquée dans la découverte. C'est principalement par mesure de sécurité mécanisme : les sommes importantes impliquées pourraient conduire à des incitations comportementales extrêmes et aiguës si elles étaient toutes accordé à une seule cible. En général, il est important que la récompense soit suffisamment importante pour que la vérification soit utile pour le réseau, mais pas au point de compenser les coûts liés à la mise en place d'un système de vérification. une criminalité « de niveau industriel » bien financée et bien orchestrée attaque de piratage informatique contre un validator malchanceux pour forcer un mauvais comportement. De cette façon, le montant réclamé ne devrait généralement pas être supérieur au lien direct du validator errant, de peur qu'un une incitation perverse survient à se comporter mal et à se dénoncer pour obtenir la prime. Cela peut être combattu soit explicitement grâce à une exigence minimale de cautionnement direct pour être un validator ou implicitement en informant les proposants que les validator avec peu d'obligations déposées ne sont pas très incitées de bien se comporter. 6.3. Registre Parachain. Chaque parachain est définie dans ce registre. Il s'agit d'une construction de type base de données relativement simple qui contient à la fois des informations statiques et dynamiques sur chaque chaîne. Les informations statiques incluent l'index de chaîne (un simple entier), ainsi que l'identité du protocole de validation, un moyen de distinguer les différentes classes de parachain afin que l'algorithme de validation correct puisse être dirigé par des validator chargés de présenter un candidat valable. Une première preuve de concept se concentrerait sur la mise en place les nouveaux algorithmes de validation dans les clients eux-mêmes, nécessitant effectivement un hard fork du protocole à chaque fois qu'un une classe supplémentaire de chaîne a été ajoutée. Mais en fin de compte, il peut être possible de spécifier l'algorithme de validation dans une manière à la fois rigoureuse et suffisamment efficace pour que les clients soient capable de travailler efficacement avec de nouvelles parachaines sans fourchette dure. Une piste possible pour y parvenir serait de préciser l'algorithme de validation de la parachain dans un système bien établi, langage compilé nativement et indépendant de la plate-forme, tel que WebAssembly. Des recherches supplémentaires sont nécessaires pour déterminer si cela est vraiment réalisable, mais si c'est le cas, cela pourrait apporter avec lui l'énorme avantage de bannir les hard-forks pour de bon. Les informations dynamiques incluent des aspects du système de routage des transactions qui doivent faire l'objet d'un accord global, tel que comme file d’attente d’entrée de la parachain (décrite dans la section 6.6). Le registre ne peut ajouter que des parachaines par un vote référendaire complet ; cela pourrait être géré en interne mais serait plus probablement placé dans un environnement externe contrat référendaire afin de faciliter la réutilisation dans le cadre des éléments de gouvernance plus généraux. Les paramètres à conditions de vote (par exemple, quorum requis, majorité requis) pour l'enregistrement de chaînes supplémentaires et autres, des mises à niveau moins formelles du système seront définies dans un « constitution » mais sont susceptibles de suivre un modèle assez traditionnel. chemin, du moins au début. La formulation précise est hors de portée du présent travail, mais par ex. une majorité qualifiée des deux tiers sera adoptée avec plus d'un tiers du système total Un vote positif peut être un point de départ judicieux. Les opérations supplémentaires incluent la suspension et la suppression des parachaines. Nous espérons que la suspension ne sera jamais se produire, mais il est conçu pour être une protection au moins il y a un problème insoluble dans le système de validation d’une parachain. Le cas le plus évident où cela pourrait Ce qui est nécessaire, c'est une différence critique par consensus entre les implémentations, ce qui conduit les validator à ne pas pouvoir s'entendre sur validité ou blocages. Les validateurs seraient encouragés à utiliser plusieurs implémentations client afin qu'ils puissent détecter un tel problème avant la confiscation de la caution. La suspension étant une mesure d'urgence, il serait sous les auspices de la dynamique validator-vote plutôt qu'un référendum. La réintégration serait possible à la fois des validators ou un référendum. La suppression totale des parachaines n’interviendrait que après un référendum et avec lequel serait exigé un période de grâce substantielle pour permettre une transition ordonnée vers soit une chaîne autonome, soit pour faire partie d'une autre système de consensus. Le délai de grâce serait probablement de l'ordre des mois et est susceptible d'être défini sur une base par chaîne dans le registre des parachaines afin que les différents les parachains peuvent bénéficier de différents délais de grâce selon leur besoin. 6.4. Scellement des blocs relais. Le scellement fait essentiellement référence à au processus de canonisation ; c'est-à-dire une donnée de base transformer quimappe l’original en quelque chose de fondamentalement singulier et significatif. Sous une chaîne PoW, l’étanchéité est en fait synonyme d’exploitation minière. Dans notre cas, cela implique la collecte de déclarations signées de validator sur la validité, la disponibilité et la canonique d'un bloc de chaîne de relais particulier et les blocs de parachain qui cela représente. La mécanique de l’algorithme de consensus BFT sous-jacent est hors de portée du présent travail. Nous allons décrivez-le plutôt en utilisant une primitive qui suppose un machine à états créatrice de consensus. En fin de compte, nous nous attendons s'inspirer d'un certain nombre de consensus BFT prometteurs algorithmes au cœur ; Tangaora [9] (une variante BFT de Raft [16]), Tendermint [11] et HoneyBadgerBFT [14]. L'algorithme devra parvenir à un accord sur plusieurs parachains en parallèle, différant ainsi de l'habituel blockchain mécanismes de consensus. Nous supposons qu'une fois le consensus est atteint, nous sommes en mesure d'enregistrer le consensus dans une preuve irréfutable qui peut être fournie par n'importe lequel des les participants à celui-ci. Nous supposons également qu'un mauvais comportement au sein du protocole peut être généralement réduit à un petit groupe contenant des participants qui se comportent mal pour minimiser les dommages collatéraux en infligeant une punition.8 La preuve, qui prend la forme de nos déclarations signées, est placée ensemble dans l’en-tête du bloc relais-chaîne. avec certains autres champs, notamment la racine statetrie de la chaîne relais et la racine transaction-trie. Le étanchéité processus prend endroit sous un célibataire générer un consensus mécanisme adressage les deux le le bloc de la chaîne relais et les blocs des parachains qui font une partie du contenu du relais : les parachains ne sont pas « engagées » séparément par leurs sous-groupes puis rassemblées plus tard. Cela se traduit par un processus plus complexe pour la chaîne de relais, mais nous permet de parvenir à un consensus sur l'ensemble du système en une seule étape, minimisant ainsi la latence et permettant pour des exigences de disponibilité de données assez complexes qui sont utile pour le processus de routage ci-dessous. 8Les systèmes de consensus existants basés sur PoS BFT tels que Tendermint BFT et le Slasher original répondent à ces affirmations.
POLKADOT : VISION D'UN CADRE MULTI-CHAÎNES HÉTÉROGÈNE PROJET 1 12 L’état de la machine à consensus de chaque participant peut être modélisé comme un simple tableau (2 dimensions). Chaque participant (validator) dispose d'un ensemble d'informations, sous la forme de déclarations signées (« votes ») des autres participants, concernant chaque candidat au bloc parachain ainsi que le candidat au bloc relaychain. L'ensemble des informations est composé de deux éléments de données : Disponibilité : oui ceci validator avoir sortie informations de publication de transaction de ce bloc afin sont-ils capables de valider correctement les candidats parachain sur le bloc suivant ? Ils peuvent voter soit 1 (connu) ou 0 (pas encore connu). Une fois qu'ils vote 1, ils s'engagent à voter de la même manière pour le reste de ce processus. Votes ultérieurs qui ne le font pas respectez, ce sont des motifs de punition. Validité : le bloc parachain est-il valide et c'est tout données référencées en externe (par ex. opérations) disponible ? Ceci ne concerne que les validator attribués à la parachain sur laquelle ils votent. Ils peuvent voter soit 1 (valide), -1 (invalide) ou 0 (pas encore connu). Une fois qu'ils votent non zéro, ils nous nous engageons à voter de cette façon pour le reste de le processus. Des votes ultérieurs qui ne respectent pas cela sont des motifs de punition. Tous les validator doivent soumettre des votes ; les votes peuvent être soumis à nouveau, qualifiés par les règles ci-dessus. La progression de le consensus peut être modélisé comme plusieurs algorithmes de consensus standard BFT sur chaque parachain se produisant en parallèle. Puisque ceux-ci sont potentiellement contrecarrés par un petite minorité d’acteurs malveillants concentrés dans un seul groupe de parachain, le consensus global existe pour établir un filet de sécurité, limitant le pire des cas impasse à simplement un ou plusieurs blocs de parachain vides (et une série de sanctions pour les responsables). Les règles de base pour la validité des blocs individuels (qui permettent à l'ensemble total de validator dans son ensemble d'arriver à consensus sur le fait qu'il devienne le candidat unique de la parachain à référencer depuis le relais canonique) : • doit avoir au moins les deux tiers de ses validator votant positivement et aucun votant négativement ; • doit avoir plus d'un tiers de validator votant positivement sur la disponibilité des informations sur la file d'attente de sortie. S'il y a au moins un vote positif et au moins un vote négatif sur la validité, une condition exceptionnelle est créée et l'ensemble des validator doivent voter pour déterminer s'il y a des parties malveillantes ou s'il y a un accident fourchette. Outre les votes valides et invalides, un troisième type de votes sont autorisés, ce qui équivaut à voter pour les deux, ce qui signifie que le nœud a des opinions contradictoires. Cela pourrait être dû au le propriétaire du nœud exécutant plusieurs implémentations qui le font pas d’accord, ce qui indique une possible ambiguïté dans le protocole. Une fois que tous les votes ont été comptés à partir de l'ensemble complet validator, si l'opinion perdante a au moins une petite proportion (à être paramétré ; au plus la moitié, peut-être beaucoup moins) des votes de l'opinion gagnante, alors il est supposé être un fork accidentel de parachain et la parachain est automatiquement suspendue du processus de consensus. Dans le cas contraire, nous considérerons qu'il s'agit d'un acte malveillant et punirons le minorité qui votait pour l’opinion dissidente. La conclusion est un ensemble de signatures démontrant canonicité. Le bloc relais-chaîne peut alors être scellé et le processus de scellement du bloc suivant a commencé. 6.5. Améliorations de l'étanchéité des blocs relais. Tandis que cette méthode de scellement donne de fortes garanties sur le fonctionnement du système, elle n’est pas particulièrement évolutive puisque les informations clés de chaque parachain doivent avoir leur disponibilité garantie par plus d'un tiers de tous les validator. Cela signifie que l’empreinte de responsabilité de chaque validator grandit à mesure que d’autres chaînes sont ajoutées. Alors que la disponibilité des données au sein de réseaux de consensus ouverts est essentiellement un problème non résolu, il existe des moyens d'atténuer la surcharge imposée aux nœuds validator. Un simple La solution est de réaliser que même si les validator doivent assumer étant responsables de la disponibilité des données, ils n’ont pas besoin de stocker, de communiquer ou de répliquer eux-mêmes les données. Des silos de données secondaires, éventuellement liés (voire au tout même) les assembleurs qui compilent ces données, peuvent gérer les tâche de garantir la disponibilité, les validator fournissant une partie de leurs intérêts/revenus en paiement. Cependant, même si cela permet d’acquérir une certaine évolutivité intermédiaire, cela ne résout toujours pas le problème sous-jacent ; depuis l'ajout de chaînes supplémentaires nécessitera en général des validator supplémentaires, la consommation continue des ressources du réseau (notamment en termes de bande passante) augmente avec le carré de lechaînes, une propriété intenable à long terme. En fin de compte, nous continuerons probablement à nous cogner la tête contre la limitation fondamentale qui stipule que pour un réseau de consensus pour être considéré comme disponible en toute sécurité, le les besoins continus en bande passante sont de l’ordre du total validators fois le total des informations saisies. Ceci est dû à l'incapacité d'un réseau non fiable à répartir correctement la tâche de stockage des données sur de nombreux nœuds, ce qui en dehors de la tâche de traitement éminemment distribuable. 6.5.1. Présentation de la latence. Un moyen d'atténuer cela La règle est d’assouplir la notion d’immédiateté. En exigeant que 33 % + 1 validator votent pour la disponibilité seulement à terme, et non immédiatement, nous pouvons mieux utiliser la propagation exponentielle des données et aider à égaliser les pics d'échange de données. Une égalité raisonnable (bien que non prouvée) peut-être : (1) latence = participants × chaînes Dans le modèle actuel, la taille du système évolue avec le nombre de chaînes pour garantir que le traitement est distribué; puisque chaque chaîne nécessitera au moins un validator et que nous fixons l'attestation de disponibilité à une constante proportion de validators, alors les participants augmentent de la même manière avec le nombre de chaînes. On se retrouve avec : (2) latence = taille2 Cela signifie qu'à mesure que le système se développe, la bande passante requise et la latence jusqu'à la disponibilité sont connues sur l'ensemble du réseau. réseau, qui pourrait également être caractérisé comme le nombre de blocs avant la finalité, augmente avec son carré. C'est un facteur de croissance substantiel et pourrait s’avérer être un obstacle notable et nous contraindre à des paradigmes « non plats » comme composer plusieurs « Polkadotes » dans une hiérarchie pour le routage à plusieurs niveaux des publications à travers une arborescence de chaînes de relais.
POLKADOT : VISION D'UN CADRE MULTI-CHAÎNES HÉTÉROGÈNE PROJET 1 13 6.5.2. Participation publique. Une autre direction possible est d'obtenir la participation du public au processus à travers un système de micro-réclamations. Comme les pêcheurs, il y a pourraient être des parties externes pour contrôler les validator qui prétendent disponibilité. Leur tâche est de trouver quelqu'un qui semble incapable de démontrer une telle disponibilité. Ce faisant, ils peut déposer une micro-réclamation auprès d'autres validator. PoW ou une obligation mise en jeu peut être utilisée pour atténuer l'attaque sybil ce qui rendrait le système largement inutile. 6.5.3. Garants de disponibilité. Une dernière voie serait de désigner un deuxième ensemble de validator liés comme « disponibilité » garants ». Ceux-ci seraient liés comme avec les validator normaux, et pourraient même provenir du même ensemble. (mais si tel est le cas, ils seraient choisis sur une période à long terme, au moins par session). Contrairement aux validator normaux, ils ne basculerait pas entre les parachains mais plutôt former un seul groupe pour attester de la disponibilité de toutes les données interchaînes importantes. Cela présente l’avantage d’assouplir l’équivalence entre participants et chaînes. Essentiellement, les chaînes peuvent grandir (avec l'ensemble de chaîne d'origine validator), alors que les participants, et particulièrement ceux qui participent au testament de disponibilité des données, peuvent rester pour le moins sous-linéaires et très probablement constant. 6.5.4. Préférences de l'assembleur. Un aspect important de cela système est de garantir qu’il existe une sélection saine de les assembleurs créant les blocs dans une parachain donnée. Si un un seul assembleur a dominé une parachain puis quelques attaques devenir plus réalisable puisque la probabilité de l'absence de la disponibilité de données externes serait moins évidente. Une option consiste à pondérer artificiellement les blocs de parachaine dans un mécanisme pseudo-aléatoire afin de favoriser une grande variété de assembleurs. Dans le premier cas, nous aurions besoin dans le cadre du mécanisme de consensus favorisé par validator Les candidats au bloc parachain ont été déterminés comme étant « plus lourds ». De même, nous devons inciter les validator à tenter de suggérer le bloc le plus lourd qu'ils peuvent trouver - cela pourrait être cela en rendant une partie de leur récompense proportionnelle au poids de leur candidat. Pour garantir que les assembleurs reçoivent une rémunération équitable et raisonnable chance que leur candidat soit choisi comme gagnant candidat en consensus, nous faisons le poids spécifique d'un Le candidat au bloc parachain est déterminé sur une fonction aléatoire connectée à chaque assembleur. Par exemple, en prenant la mesure de distance XOR entre l’adresse de l’assembleur et un numéro pseudo-aléatoire cryptographiquement sécurisé déterminé à proximité du point de création du bloc (un « ticket gagnant » fictif). Cela donne effectivement à chacun assembleur (ou, plus spécifiquement, l’adresse de chaque assembleur) chance aléatoire que leur bloc candidat « gagne » tous les autres. Pour atténuer l'attaque sybil d'un seul assembleur « extrayant » une adresse proche du ticket gagnant et étant ainsi un favori pour chaque bloc, nous ajouterions une certaine inertie à l'adresse d'un assembleur. Cela peut être aussi simple que de les exiger avoir un montant de base de fonds à l'adresse. Un plus une approche élégante serait de pondérer la proximité du billet gagnant avec le montant des fonds garés au adresse en question. Même si la modélisation reste à faire, il est fort possible que ce mécanisme permette même à des les petites parties prenantes à contribuer en tant que rassembleur. 6.5.5. Blocs en surpoids. Si un ensemble validator est compromis, ils peuvent créer et proposer un bloc qui, bien que valide, prend un temps excessif à exécuter et valider. C'est un problème puisqu'un groupe validator pourrait former raisonnablement un bloc qui prend beaucoup de temps à exécuter à moins qu'une information particulière soit déjà connue permettant un raccourci, par ex. en prenant en compte un grand premier. Si un seul assembleur connaissait cette information, alors ils auraient un net avantage à obtenir le leur les candidats acceptaient tant que les autres étaient occupés à traiter l'ancien bloc. Nous appelons ces blocs en surpoids. La protection contre les validator soumettant et validant ces blocs relève en grande partie du même couvert que pour blocs invalides, mais avec une mise en garde supplémentaire : puisque le temps nécessaire à l'exécution d'un bloc (et donc son statut de surpoids) est subjectif, le résultat final d’un vote sur la mauvaise conduite se divise essentiellement en trois camps. Un Il est possible que le bloc ne soit définitivement pas en surpoids. dans ce cas, plus des deux tiers déclarent qu'ils pourraient exécuter le bloc dans une certaine limite (par exemple 50 % du temps total autorisé entre les blocs). Une autre est que le le bloc est ddéfinitivement en surpoids - ce serait le cas si plus de les deux tiers déclarent qu'ils n'ont pas pu exécuter le blocage dans ladite limite. Une dernière possibilité est une divergence d’opinion entre les validator. Dans ce cas, nous pouvons choisir d'infliger une punition proportionnée. Pour garantir que les validator peuvent prédire quand ils pourraient être proposant un bloc en surpondération, il peut être judicieux de leur demander de publier des informations sur leurs propres performances pour chaque bloc. Sur une période de temps suffisante, cela devrait leur permettre de profiler leur vitesse de traitement par rapport aux pairs qui les jugeraient. 6.5.6. Assurance assembleur. Un problème demeure pour les validator : contrairement aux réseaux PoW, pour vérifier les informations d'un assembleur bloc pour la validité, ils doivent réellement y exécuter les transactions. Des assembleurs malveillants peuvent fournir des blocs invalides ou en surpoids aux validator, ce qui leur cause des problèmes (gaspillage leurs ressources) et exigeant un coût d’opportunité potentiellement substantiel. Pour atténuer cela, nous proposons une stratégie simple sur le fait partie des validators. Premièrement, les candidats au bloc parachain envoyés aux validators doivent être signés depuis un compte de chaîne de relais avec des fonds ; si ce n'est pas le cas, alors le validator devrait tomber immédiatement. Deuxièmement, ces candidats doivent être classés en priorité par une combinaison (par exemple multiplication) de le montant des fonds sur le compte jusqu'à un certain plafond, le nombre de blocs précédents que l'assembleur a proposés avec succès dans le passé (sans parler des blocs précédents punitions), et le facteur de proximité avec le gagnant billet comme indiqué précédemment. La casquette devrait être la même comme les dommages punitifs payés au validator dans le cas d'entre eux envoyant un bloc invalide. Pour dissuader les assembleurs d'envoyer des candidats de bloc invalides ou en surpoids aux validator, tout validator peut placer dans le bloc suivant une transaction incluant le bloc incriminé alléguant un mauvais comportement avec pour effet de transférer tout ou partie des fonds dans le compte de l'assembleur qui se comporte mal compte au validator lésé. Ce type de transaction précède tous les autres pour garantir que l'assembleur ne puisse pas retirer les fonds avant la punition. Le montant de les fonds transférés à titre de dommages et intérêts sont encore un paramètre dynamique
POLKADOT : VISION D'UN CADRE MULTI-CHAÎNES HÉTÉROGÈNE PROJET 1 14 à modéliser, mais représentera probablement une proportion de la récompense globale validator pour refléter le niveau de chagrin causé. À empêcher que des validator malveillants confisquent arbitrairement les fonds des collectionneurs, ce dernier peut faire appel de la décision du validator auprès d'un jury composé de validator choisis au hasard en échange. pour effectuer un petit dépôt. S’ils trouvent en faveur du validator, le dépôt est consommé par celui-ci. Sinon, le la caution est restituée et le validator est sanctionné (puisque le validator est dans une position beaucoup plus voûtée, l'amende sera probablement plutôt lourd). 6.6. Interchaîne Transaction Routage. Interchaîne le routage des transactions est l'un des éléments de maintenance essentiels tâches de la chaîne-relais et de ses validator. C'est le logique qui régit la façon dont une transaction publiée (souvent abrégée simplement en « post ») devient un résultat souhaité d'une parachain source à être une entrée non négociable d'une autre parachain de destination sans aucune confiance exigences. Nous choisissons soigneusement la formulation ci-dessus ; notamment nous ne nécessite pas qu'il y ait eu une transaction dans la source parachain d'avoir explicitement sanctionné ce post. Le seul Les contraintes que nous imposons à notre modèle sont que les parachaines doivent fournir, emballés dans le cadre de leur bloc global sortie du traitement, les postes qui sont le résultat du l’exécution du bloc. Ces publications sont structurées en plusieurs files d'attente FIFO ; le Le nombre de listes est appelé base de routage et peut être autour de 16. Ce nombre représente notamment la quantité de parachains que nous pouvons prendre en charge sans avoir à recourir à routage multiphase. Dans un premier temps, Polkadot prendra en charge cela type de routage direct, mais nous allons en décrire un possible processus de routage multiphase (« hyper-routage ») comme moyen d’évoluer bien au-delà de l’ensemble initial de parachains. Nous supposer que tout participants sais le sous-groupes pour les deux blocs suivants n, n + 1. En résumé, le Le système de routage suit ces étapes : • CollatorS : contacter les membres des V alidators[n][S] • Assembleurs : POUR CHAQUE sous-groupes : s'assurer au moins 1 membre des Validateurs[n][s] en contact • Assembleurs : POUR CHAQUE sous-groupes : supposer egress[n −1][s][S] est disponible (tous les messages entrants données vers 'S' du dernier bloc) • Assembleurs : Composez le bloc candidat b pour S : (b.header, b.ext, b.proof, b.receipt, b.egress) • Assembleurs : Envoyer preuve informations proof[S] = (b.header, b.ext, b.proof, b.receipt) à V alidateurs[n][S] • CollatorS : garantir que les données de transaction externes sont b.ext est mis à la disposition des autres assembleurs et validators • Assembleurs : POUR CHACUN sous-groupe s : Envoyer sortie informations sortie[n][S][s] = (b.header, b.receipt, b.egress[s]) à le recevoir sous-groupes membres de suivant bloquer V alidateurs[n + 1][s] • V alidatorV : pré-connecter tous les membres du même ensemble pour le bloc suivant : soit N = Chain[n + 1][V ]; connecter tous les validators v tels que Chain[n + 1][v] = N • V alidateurV : Rassemblez toutes les entrées de données pour cela bloquer : POUR CHACUN sous-groupe s : Récupérer egress[n −1][s][Chain[n][V ]], récupère d'autres validators v tels que Chain[n][v] = Chain[n][V ]. Peut-être en passant par d'autres validator sélectionnés au hasard pour une preuve de tentative. • V alidateurV : Acceptez les épreuves de candidat pour cela preuve de bloc[Chain[n][V ]]. Validité du blocage des votes • V alidateurV : Accepter les données de sortie des candidats pour bloc suivant : POUR CHAQUE sous-groupes, accepter sortie[n][s][N]. Disponibilité de sortie du bloc de vote ; republier parmi les validators intéressés v de telle sorte que Chaîne[n + 1][v] = Chaîne[n + 1][V ]. • V alidateurV : JUSQU'À CONSENSUS Où : egress[n][from][to] est la file d'attente de sortie actuelle informations pour les publications allant de la parachain « de » à parachain 'à' dans le bloc numéro 'n'. CollatorS est un assembleur pour les parachaines S. V alidators[n][s] est l'ensemble des validators pour les parachaines au numéro de bloc n. A l'inverse, Chain[n][v] est la parachain à laquelle validator v est attribué sur le bloc numéro n. block.egress[to] est la sortie file d'attente de messages provenant d'un bloc de bloc parachain dont la parachain de destination est à destination. Étant donné que les assembleurs perçoivent des frais (de transaction) basés sur leurs blocs deviennent canoniques, ils sont incités à le faire assurez-vous que pour chaque destination du bloc suivant, le sous-groupe les membres sont informés de la file d'attente de sortie du présent bloquer. Les validateurs sont incités uniquement à former un consensus sur un bloc (parachain), en tant que tels, ils se soucient peu de quel bloc de l’assembleur devient finalement canonique. Dans principe, un validator pourrait former une alliance avec un assembleur et conspirer pour réduire les chances que d’autres assembleurs les blocs deviennent canoniques, mais cela est à la fois difficile à organiser en raison de la sélection aléatoirection de validators pour parachains et pourrait être défendu avec une réduction des frais payables pour les blocs de parachain qui résistent le processus de consensus. 6.6.1. Disponibilité des données externes. Assurer une parachain les données externes sont réellement disponibles est un problème récurrent avec systèmes décentralisés visant à répartir la charge de travail entre le réseau. Au cœur du problème se trouve la disponibilité problème qui stipule que puisqu'il n'est ni possible de faire une preuve de disponibilité non interactive ni aucune sorte de preuve d'indisponibilité, pour qu'un système BFT fonctionne correctement valider toute transition dont l'exactitude dépend de la disponibilité de certaines données externes, le nombre maximum de nœuds byzantins acceptables, plus un, du système doit attester de la disponibilité des données. Pour qu'un système puisse évoluer correctement, comme Polkadot, ceci pose un problème : si une proportion constante de validators doit attester de la disponibilité des données, et en supposant que les validator voudront réellement stocker les données avant d'affirmer qu'elles sont disponibles, alors comment pouvons-nous éviter le problème des besoins en bande passante/stockage augmentant avec la taille du système (et donc le nombre de validator) ? Une réponse possible serait d'avoir un ensemble séparé de validators (garants de disponibilité), dont la commande s'accroît de manière sublinéaire avec la taille de Polkadot dans son ensemble. C'est décrit en 6.5.3. Nous avons également une astuce secondaire. En tant que groupe, les assembleurs sont intrinsèquement incités à garantir que toutes les données sont disponible pour la parachain de leur choix puisque sans elle, ils sont incapables de créer d'autres blocs à partir desquels ils peuvent percevoir les frais de transaction. Les assembleurs forment également un groupe dont la composition est variée (en raison du caractère aléatoire des groupes parachain validator) non trivial à saisir et facile
POLKADOT : VISION D'UN CADRE MULTI-CHAÎNES HÉTÉROGÈNE PROJET 1 15 à prouver. Les assembleurs récents (peut-être les derniers milliers de blocs) sont donc autorisés à lancer des défis à la disponibilité de données externes pour une parachain particulière bloquez sur validators pour une petite caution. Les validateurs doivent contacter ceux du sous-groupe validator apparemment incriminé qui ont témoigné et soit acquérir et restituer les données à l'assembleur, soit faire remonter le problème. en témoignant du manque de disponibilité (le refus direct de fournir les données compte comme un délit de confiscation de caution, donc le mauvais comportement de validator sera probablement simplement interrompre la connexion) et contacter des validator supplémentaires pour exécuter le même test. Dans ce dernier cas, la caution du collecteur est retourné. Une fois atteint le quorum de validator pouvant faire de tels témoignages d'indisponibilité, ils sont libérés, le Le sous-groupe qui se comporte mal est puni et le blocage est annulé. 6.6.2. Routage des publications. Chaque en-tête de parachain comprend un sortie-trie-root ; c'est la racine d'un trie contenant le bacs de base de routage, chaque bac étant une liste concaténée des postes de sortie. Les preuves Merkle peuvent être fournies partout parachain validators pour prouver qu'une parachain particulière le bloc avait une file d’attente de sortie particulière pour une parachain de destination particulière. Au début du traitement d'un bloc de parachain, chaque la file d'attente de sortie d'une autre parachain à destination dudit bloc est fusionné dans la file d’attente d’entrée de notre bloc. Nous supposons fort, probablement CSPR9, sous-bloc ordonnant de réaliser une opération déterministe qui n'offre aucun favoritisme entre aucun appariement de blocs de parachain. Les assembleurs calculent la nouvelle file d'attente et vidanger les files d'attente de sortie selon les paramètres de la parachain logique. Le contenu de la file d'attente d'entrée est écrit explicitement dans le bloc parachain. Cela a deux objectifs principaux : Premièrement, cela signifie que la parachain peut être synchronisée en toute confiance, indépendamment des autres parachains. Deuxièmement, cela simplifie la logistique des données en cas d'entrée complète la file d'attente ne peut pas être traitée en un seul bloc ; Les validator et les assembleurs sont capables de traiter les blocs suivants sans avoir à rechercher spécialement les données de la file d’attente. Si la file d'attente d'entrée de la parachain est supérieure à un seuil montant à la fin du traitement du bloc, il est alors marqué saturé sur la chaîne relais et aucun autre message ne peut lui être livré jusqu'à ce qu'il soit dégagé. Les preuves Merkle sont utilisé pour démontrer la fidélité du fonctionnement de l’assembleuse dans la preuve du bloc parachain. 6.6.3. Critique. Un défaut mineur relatif à cette base Le mécanisme est l’attentat post-bombe. C'est là que tout les parachains envoient le maximum de messages possible à une parachain particulière. Bien que cela bloque la cible file d'attente d'entrée en même temps, aucun dommage n'est causé au-delà une attaque DoS de transaction standard. Fonctionnant normalement, avec un ensemble de fonctions bien synchronisées et assembleurs non malveillants et validators, pour N parachains, N × M total validators et L assembleurs par parachain, nous peut décomposer le total des chemins de données par bloc pour : Validateur : M −1+L+L : M −1 pour les autres validators dans l'ensemble de parachain, L pour chaque assembleur fournissant un bloc de parachain candidat et un deuxième L pour chaque assembleur du bloc suivant nécessitant les charges utiles de sortie du bloc précédent. (Ce dernier cas ressemble en fait plutôt au pire des cas opération puisqu’il est probable que les assembleurs partageront ces données.) Collator : M +kN : M pour une connexion à chaque élément pertinent bloc parachain validator, kN pour amorcer les charges utiles de sortie vers un sous-ensemble de chaque groupe parachain validator pour le bloc suivant (et éventuellement certains assembleurs préférés). En tant que tel, les chemins de données par nœud augmentent de manière linéaire avec la complexité globale du système. Alors que c'est raisonnable, à mesure que le système évolue en centaines ou en milliers de parachains, une certaine latence de communication peut être absorbée en échange d’un taux de croissance de complexité plus faible. Dans ce cas, un algorithme de routage multiphase peut être utilisé afin de réduire le nombre de parcours instantanés au prix de l'introduction de tampons de stockage et de latence. 6.6.4. Routage hyper-cube. Le routage hyper-cube est un mécanisme qui peut principalement être construit comme une extension du mécanisme de routage de base décrit ci-dessus. Essentiellement, plutôt que d'augmenter la connectivité des nœuds avec le nombre de parachains et de nœuds de sous-groupes, nous grandissons uniquement avec le logarithme des parachaines. Les messages peuvent transiter entre plusieurs files d’attente de parachaines en route vers la livraison finale. Le routage lui-même est déterministe et simple. Nous commençons par limiter le nombre de casiers dans les files d'attente d'entrée/sortie ; plutôt que d'être le nombre total de parachains, ils sont lesbase de routage (b) . Celui-ci sera fixé comme le nombre des parachains changent, l'exposant de routage (e) étant plutôt augmenté. Sous ce modèle, notre volume de messages grandit avec O(be), les voies restant constantes et la latence (ou nombre de blocs requis pour la livraison) avec O(e). Notre modèle de routage est un hypercube de e dimensions, chaque côté du cube ayant b emplacements possibles. À chaque bloc, nous acheminons les messages le long d'un seul axe. Nous alternez les axes de manière circulaire, garantissant ainsi le délai de livraison des blocs électroniques dans le pire des cas. Dans le cadre du traitement de la parachain, à destination de l'étranger Les messages trouvés dans la file d'attente d'entrée sont immédiatement acheminés vers le bac de la file d'attente de sortie approprié, compte tenu de la numéro de bloc actuel (et donc dimension de routage). Ceci le processus nécessite un transfert de données supplémentaire pour chaque saut sur l'itinéraire de livraison, mais c'est un problème en soi qui peut être atténué en utilisant des moyens alternatifs de livraison de données utiles et comprenant uniquement une référence, plutôt que la charge utile complète du message dans le post-trie. Un exemple d'un tel routage hyper-cube pour un système avec 4 parachaines, b = 2 et e = 2 pourraient être : Phase 0, sur chaque message M : • sub0 : si Mdest ∈{2, 3} alors sendTo(2) sinon garder • sub1 : si Mdest ∈{2, 3} alors sendTo(3) sinon garder • sub2 : si Mdest ∈{0, 1} alors sendTo(0) sinon garder • sub3 : si Mdest ∈{0, 1} alors sendTo(1) sinon garder Phase 1, sur chaque message M : • sub0 : si Mdest ∈{1, 3} alors sendTo(1) sinon garder • sub1 : si Mdest ∈{0, 2} alors sendTo(0) sinon garder • sub2 : si Mdest ∈{1, 3} alors sendTo(3) sinon garder • sub3 : si Mdest ∈{0, 2} alors sendTo(2) sinon garder Les deux dimensions ici sont faciles à considérer comme la première deux bits de l'index de destination ; pour le premier bloc, le seul le bit d’ordre supérieur est utilisé. Le deuxième bloc traite avec le bit de poids faible. Une fois que les deux se produisent (de manière arbitraire commande) alors le courrier sera acheminé. 9cryptographiquement sécurisé pseudo-aléatoire
POLKADOT : VISION D'UN CADRE MULTI-CHAÎNES HÉTÉROGÈNE PROJET 1 16 6.6.5. Maximiser le hasard. Une modification de la base la proposition verrait un total fixe de c2 −c validators, avec c−1 validators dans chaque sous-groupe. Chaque bloc, plutôt que il y a une répartition non structurée des validators parmi les parachaines, au lieu de cela pour chaque sous-groupe de parachaines, chaque validator serait attribué à un utilisateur unique et différent. sous-groupe parachain sur le bloc suivant. Ce serait conduire à l'invariant qu'entre deux blocs quelconques, pour tout deux paires de parachain, il existe deux validator qui ont échangé les responsabilités de la parachain. Bien que cela ne puisse pas être utilisé pour obtenir des garanties absolues sur la disponibilité (un seul validator tombera occasionnellement hors ligne, même si bienveillant), il peut néanmoins optimiser le cas général. Cette approche n'est pas sans complications. L'ajout d'une parachain nécessiterait également une réorganisation de l'ensemble validator. De plus le nombre de validators, étant lié au carré du nombre de parachains, commencerait très petit au début et finirait par grandir loin trop rapide, devenant intenable après environ 50 parachains. Aucun de ces problèmes ne constitue un problème fondamental. Dans le premier cas, la réorganisation des ensembles validator est quelque chose qui doit être fait régulièrement de toute façon. Concernant la taille du validator défini, lorsqu'il est trop petit, plusieurs validator peuvent être attribués à la même parachain, en appliquant un facteur entier au total global de validators. Un mécanisme de routage multiphase tel que le routage Hypercube, discuté en 6.6.4 alléger l'exigence d'un grand nombre de validator lorsqu'il y a un grand nombre de chaînes. 6.7. Validation de la parachaine. L'objectif principal d'un validator est de témoigner, en tant qu’acteur soudé, que le le bloc est valide, y compris, mais sans s'y limiter, toute transition d'état, toutes transactions externes incluses, l'exécution de tous les messages en attente dans la file d'attente d'entrée et l'état final de la file d’attente de sortie. Le processus lui-même est assez simple. Une fois que le validator a scellé le bloc précédent, il est libre commencer à travailler pour fournir un bloc de parachain candidat candidat au prochain tour de consensus. Initialement, le validator trouve un candidat de bloc de parachain via un assembleur de parachain (décrit ci-dessous) ou un de ses co-validators. Les données candidates au bloc parachain inclut l’en-tête du bloc, l’en-tête du bloc précédent, toutes les données d'entrée externes incluses (pour Ethereum et Bitcoin, ces données seraient appelées transactions, mais en principe elles peuvent inclure des structures de données arbitraires à des fins arbitraires), des données de file d'attente de sortie et des données internes pour prouver la validité de la transition d'état (pour Ethereum il s'agirait des différents nœuds d'état/de stockage requis pour exécuter chaque transaction). Des preuves expérimentales montrent cet ensemble de données complet pour un bloc Ethereum récent être au maximum de quelques centaines de KiB. Simultanément, si ce n'est pas encore fait, le validator sera tenter de récupérer des informations relatives à la transition du bloc précédent, initialement à partir du bloc précédent validators et plus tard de tous les validators signant pour le disponibilité des données. Une fois que le validator a reçu un tel bloc candidat, ils le valident ensuite localement. Le processus de validation est contenu dans le module validator de la classe parachain, un module logiciel sensible au consensus qui doit être écrit pour toute implémentation de Polkadot (bien qu'en principe une bibliothèque avec un C ABI pourrait permettre à une seule bibliothèque de être partagé entre les implémentations avec les réduction de la sécurité due au fait de n’avoir qu’une seule implémentation « de référence »). Le processus prend l'en-tête du bloc précédent et vérifie son identité via la chaîne de relais récemment convenue. bloc dans lequel son hash doit être enregistré. Une fois la validité de l'en-tête parent vérifiée, la parachain spécifique La fonction de validation de la classe peut être appelée. Il s'agit d'une fonction unique acceptant un certain nombre de champs de données (environ ceux donnés précédemment) et renvoyant un simple booléen proclamant la validité du blocage. La plupart de ces fonctions de validation vérifieront d'abord des champs d'en-tête qui peuvent être dérivés directement de le bloc parent (par exemple parent hash, numéro). Suite cela, ils rempliront toutes les structures de données internes comme nécessaires au traitement des transactions et/ou des publications. Pour une chaîne de type Ethereum, cela revient à remplir un trie base de données avec les nœuds qui seront nécessaires pour le exécution complète des transactions. D'autres types de chaînes peuvent avoir autre pmécanismes de réparation. Une fois cela fait, les publications d'entrée et les transactions externes (ou tout ce que représentent les données externes) seront édictés, équilibrés selon les spécifications de la chaîne. (Un Une valeur par défaut raisonnable pourrait être d'exiger que toutes les publications entrantes soient traitées avant que les transactions externes ne soient traitées, mais cela devrait appartenir à la logique de la parachain de décider.) Grâce à ce texte, une série de postes de sortie seront créés et il sera vérifié que ceux-ci correspondent bien le candidat du assembleur. Enfin, le formulaire correctement renseigné l’en-tête sera vérifié par rapport à l’en-tête du candidat. Avec un bloc candidat entièrement validé, le validator peut alors voter pour le hash de son en-tête et envoyer toutes les informations de validation requises aux co-validator de son sous-groupe. 6.7.1. Collateurs Parachain. Les assembleurs de parachain sont des opérateurs non cautionnés qui remplissent une grande partie de la tâche des mineurs sur les réseaux blockchain actuels. Ils sont spécifiques à une parachain particulière. Pour fonctionner, ils doivent maintenir à la fois la chaîne de relais et le système entièrement synchronisé parachaine. La signification précise de « entièrement synchronisé » dépendra de la classe de la parachain, mais inclura toujours l'état actuel de la file d'attente d'entrée de la parachain. Dans le cas de Ethereum, cela implique également au moins de maintenir une base de données Merkle-tree des derniers blocs, mais pourrait incluent également diverses autres structures de données, notamment Bloom filtres pour l'existence du compte, les informations familiales, la journalisation sorties et tables de recherche inversée pour le numéro de bloc. En plus de maintenir les deux chaînes synchronisées, il doit également « pêcher » les transactions en maintenant une file d’attente des transactions et en acceptant les transactions correctement validées du réseau public. Avec la file d'attente et la chaîne, c'est capable de créer de nouveaux blocs candidats pour les validator choisis à chaque bloc (dont l'identité est connue puisque la chaîne de relais est synchronisée) et de les soumettre, avec les diverses informations annexes telles que la preuve de validité, via le réseau de pairs. Pour sa peine, il perçoit tous les frais relatifs aux transactions qu'il inclut. Diverses théories économiques flottent autour de cela arrangement. Dans un marché fortement concurrentiel où il existe s'il y a un surplus de collecteurs, il est possible que la transaction les frais seront partagés avec les parachain validators pour inciter l’inclusion d’un bloc d’assemblage particulier. De la même manière,
POLKADOT : VISION D'UN CADRE MULTI-CHAÎNES HÉTÉROGÈNE PROJET 1 17 certains assembleurs peuvent même augmenter les frais requis à payer afin de rendre le bloc plus attractif pour validators. Dans ce cas, un marché naturel devrait se former avec des transactions payant des frais plus élevés, évitant la file d'attente et avoir une inclusion plus rapide dans la chaîne. 6.8. Réseautage. Réseautage sur les blockchain traditionnels comme Ethereum et Bitcoin a des exigences plutôt simples. Toutes les transactions et tous les blocages sont diffusés dans de simples potins non dirigés. La synchronisation est plus complexe, notamment avec Ethereum mais en réalité cette logique était contenue dans la stratégie des pairs plutôt que le protocole lui-même qui se résolvait autour de quelques types de messages de requête et de réponse. Alors que Ethereum a progressé sur les offres de protocoles actuelles avec le protocole devp2p, qui a permis de nombreuses les sous-protocoles doivent être multiplexés sur une seule connexion homologue et avoir ainsi la même superposition homologue prenant en charge de nombreux protocoles p2p simultanément, la partie Ethereum de le protocole restait encore relativement simple et le p2p le protocole reste pour l’instant inachevé avec d’importants fonctionnalités manquantes telles que la prise en charge de la QoS. Malheureusement, le désir de créer un protocole « Web 3 » plus omniprésent a échoué, les seuls projets qui l'utilisent étant ceux explicitement financé par la vente participative Ethereum. Les exigences pour Polkadot sont un peu plus substantielles. Plutôt qu'un réseau totalement uniforme, Polkadot compte plusieurs types de participants, chacun ayant des exigences différentes quant à la composition de leurs pairs et plusieurs réseaux. des « pistes » dont les participants auront tendance à discuter données particulières. Cela signifie une superposition de réseau beaucoup plus structurée – et un protocole prenant en charge cela – sera probablement nécessaire. En outre, l'extensibilité pour faciliter les ajouts futurs tels que de nouveaux types de « chaînes » peut eux-mêmes nécessitent une nouvelle structure de superposition. Lors d'une discussion approfondie sur la façon dont le réseautage Si le protocole peut paraître hors du champ d'application de ce document, certaines analyses des exigences sont raisonnables. Nous pouvons diviser grossièrement les participants de notre réseau en deux ensembles (chaîne relais, parachains) chacun des trois sous-ensembles. Nous pouvons indiquent également que chacun des participants à la parachain n'est que intéressés à converser entre eux plutôt que participants à d'autres parachains : • Acteurs de la chaîne relais : • Validateurs : P, divisé en sous-ensembles P[s] pour chacun parachaine • Garants de disponibilité : A (cela peut être représenté par des validateurs dans la forme de base du protocole) • Clients relais-chaîne : M (notez les membres de chaque l'ensemble de parachain aura également tendance à être membre de M) • Participants à la Parachain : • Collateurs Parachain : C[0], C[1], . . . • Pêcheurs Parachain : F[0], F[1], . . . • Clients Parachain : S[0], S[1], . . . • Clients légers Parachain : L[0], L[1], . . . En général, nous nommons des classes particulières de communication aura tendance à avoir lieu entre les membres de ces ensembles : • P | Un <-> P | R : Le plein ensemble de validators/garants doit être bien connecté à parvenir à un consensus. • P[s] <-> C[s] | P[s] : Chaque validator en tant que membre d'un groupe de parachain donné aura tendance à bavarder avec d'autres membres ainsi qu'avec les assembleurs de cette parachain pour découvrir et partager des candidats de bloc. • Un <-> P[s] | C | R : Chaque garant de disponibilité devra collecter des données inter-chaînes sensibles au consensus les données des validator qui lui sont attribués ; assembleurs peut également optimiser les chances de consensus sur leur bloquer en l'annonçant aux garants de disponibilité. Une fois qu'ils les auront, les données seront versées à autre garant pour faciliter le consensus. • P[s] <-> A | P[s'] : les Parachain validators seront Vous devez collecter des données d'entrée supplémentaires à partir de l'ensemble précédent de validator ou des garants de disponibilité. • F[s] <-> P : Lors de la déclaration, les pêcheurs peuvent placer une réclamation auprès de tout participant. • M <-> M | P | R : Les clients généraux de la chaîne de relais décaissent les données des validator et des garants. • S[s] <-> S[s] | P[s] | R : Les clients Parachain décaissent les données des validator/garants. • L[s] <-> L[s] | S[s] : clients légers Parachain décaisser les données des clients complets. Pour assurer un mécanisme de transport efficace, un « plat » réseau superposé, comme le devp2p de Ethereum, où chaque le nœud ne différencie pas (de manière non arbitraire) l’aptitude de ses Il est peu probable que les pairs conviennent. Un raisonnablement extensible le mécanisme de sélection et de découverte par les pairs nécessitera probablement à inclure dans le protocole ainsi que agressif planifier une analyse prospective pour garantir le bon type de pairs sont « par hasard » connecté au bon moment. La stratégie précise de composition par les pairs sera différente pour chaque classe de participants : pour une multi-chaînes, les assembleuses devront soit être continuellement se reconnecter aux validator élus en conséquence, ou besoin d'accords continus avec un sous-ensemble des validator pour s'assurer qu'ils ne sont pas déconnectés pendant la grande majorité du temps où ils sont inutiles pour ce validator. Les assembleurs tenteront aussi naturellement de maintenir un ou des connexions plus stables au garant de disponibilité mis en place pour assurer une propagation rapide de leurs messages sensibles au consensus données. Les garants de disponibilité viseront principalement à maintenir un connexion stable entre eux et avec les validator (pour le consensus et les données parachain critiques au consensus auxquelles ils l'attestent), ainsi qu'à certains assembleurs (pour la parachain données) et certains pêcheurs et clients à part entière (pour disperser informations). Les validateurs auront tendance à rechercher d'autres validator, en particulier ceux du même sous-groupe et tout autre validator. des assembleurs qui peuvent leur fournir des candidats au bloc parachain. Les pêcheurs, ainsi que les relais généralistes et parachaines les clients viseront généralement à maintenir une connexion ouverte à un validator ou garant, mais plein d'autres nœuds similaires à eux-mêmes autrement. Les clients légers de la Parachain viseront de la même manière à être connectés à un client complet de la parachain, sinon seulement d’autres clients légers parachain. 6.8.1. Le problème du désabonnement des pairs. Dans la proposition de protocole de base, chacun de ces sous-ensembles change constamment de manière aléatoire avec chaque bloc en tant que validators assignés pour vérifier les transitions de parachain sont élues au hasard. Cela peut être un problème si des nœuds disparates (non homologues) doivent transmettre des données entre eux. Il faut soit s'appuyer sur un réseau de pairs équitablement réparti et bien connecté pour
POLKADOT : VISION D'UN CADRE MULTI-CHAÎNES HÉTÉROGÈNE PROJET 1 18 garantir que la distance de saut (et donc la latence dans le pire des cas) n'augmente qu'avec le logarithme de la taille du réseau (un protocole de type Kademlia [13] peut aider ici), ou il faut introduire des temps de blocage plus longs pour permettre la négociation de connexion nécessaire afin de conserver un ensemble d'homologues qui reflète les besoins de communication actuels du nœud. Aucune de ces solutions n’est excellente : de longs temps de blocage être imposé au réseau peut le rendre inutile pour applications et chaînes particulières. Même un parfaitement juste et le réseau connecté entraînera un gaspillage important de bande passante à mesure qu'elle évolue en raison des nœuds non intéressés ayant pour leur transmettre des données inutiles. Même si les deux directions peuvent faire partie de la solution, une optimisation raisonnable pour aider à minimiser la latence serait être de restreindre la volatilité de ces parachain validator ensembles, soit en réaffectant l'appartenance uniquement entre des séries de blocs (par exemple, en groupes de 15, qui à 4 secondes le temps de blocage signifierait modifier les connexions une seule fois par minute) ou en faisant tourner les membres de manière progressive, par ex. changeant par un membre à la fois (par exemple s'il y a y a-t-il 15 validator attribués à chaque parachain, alors en moyenne, cela prendrait une minute complète entre des ensembles). En limitant le taux de désabonnement des pairs et en garantissant que les connexions entre pairs avantageuses sont établies correctement dans avancer grâce à la prévisibilité partielle de la parachain ensembles, nous pouvons contribuer à garantir que chaque nœud conserve en permanence un sélection fortuite de pairs. 6.8.2. Chemin vers un protocole réseau efficace. Probablement le L'effort de développement le plus efficace et le plus raisonnable se concentrera sur l'utilisation d'un protocole préexistant plutôt que sur un protocole continu. le nôtre. Il existe plusieurs protocoles de base peer-to-peer qui nous pouvons utiliser ou augmenter, y compris le propre devp2p de Ethereum [22], libp2p [1] d'IPFS et GNUnet [4] de GNU. Un examen complet de ces protocoles et de leur pertinence pour construire un réseau de pairs modulaire prenant en charge certaines garanties structurelles, un pilotage dynamique par les pairs et des sous-protocoles extensibles dépasse largement la portée de ce document mais constituera un étape importante dans la mise en œuvre de Polkadot. 7. Aspects pratiques du Protocole 7.1. Paiement des transactions interchaînes. Alors qu'un grand Une certaine quantité de liberté et de simplicité est obtenue en supprimant le besoin d'un cadre de comptabilité holistique des ressources de calcul comme le gaz de Ethereum, cela soulève une question importante : sans gaz, comment peut-on parachain éviter qu'une autre parachain la force à faire du calcul ? Bien que nous puissions compter sur la file d'attente d'entrée après la transaction tampons pour empêcher une chaîne de spammer une autre avec données de transaction, il n'existe aucun mécanisme équivalent fourni par le protocole pour empêcher le spam du traitement des transactions. C'est un problème laissé au niveau supérieur. Depuis les chaînes sont libres d'attacher une sémantique arbitraire aux éléments entrants données post-transaction, nous pouvons garantir que le calcul doit être payé avant de commencer. Dans la même veine que le modèle épousé par Ethereum Serenity, nous pouvons imaginer un contrat de « rodage » au sein d’une parachain qui permet un validator pour garantir le paiement en échange du mise à disposition d'un volume particulier de ressources de traitement. Ces ressources peuvent être mesurées en quelque chose comme le gaz, mais il pourrait également s'agir d'un modèle entièrement nouveau tel qu'un délai d'exécution subjectif ou un modèle forfaitaire de type Bitcoin. En soi, cela n'est pas très utile car nous ne pouvons pas facilement supposer que l'appelant hors chaîne dispose de quel que soit le mécanisme de valeur reconnu par le cambriolage contrat. Cependant, on peut imaginer un contrat secondaire « en petits groupes » dans la chaîne d’approvisionnement. Les deux contrats ensemble formeraient un pont, se reconnaissant et fournissant une équivalence de valeur. (Jalonnement-tokens, disponible pour chacun, pourrait être utilisé pour régler la balance des paiements.) Faire appel à une autre chaîne de ce type signifierait utiliser un proxy par ce pont, qui fournirait les moyens de négocier le transfert de valeur entre les chaînes afin de payer les ressources de calcul requises sur la parachain de destination. 7.2. Supplémentaire Chaînes. Tandis que le ajout de un la parachain est une opération relativement bon marché, elle n’est pas gratuite. Plus de parachaines signifie moins de validators par parachaine et, éventuellement, un plus grand nombre de validator chacun avec un obligation moyenne réduite. Alors que le problème d'un coût de coercition moindre pour attaquer une parachain est atténué grâce à pêcheurs, l’ensemble croissant de validator force essentiellement un degré de latence plus élevé en raison de la mécanique du consensus sous-jacentthod. De plus, chaque parachain apporte avec lui le potentiel de chagriner les validator avec un algorithme de validation trop lourd. En tant que tel, il y aura un « prix » qui validators et/ou la communauté des parties prenantes extraira pour le ajout d'une nouvelle parachaine. Ce marché des chaînes va voir éventuellement l'ajout de soit : • Les chaînes qui n'ont probablement aucune contribution nette à payer (en termes de verrouillage ou de brûlage de staking token) à en faire partie (par exemple, les chaînes de consortium, Doge-chains, chaînes spécifiques à une application) ; • des chaînes qui apportent une valeur intrinsèque au réseau en ajoutant des fonctionnalités particulières difficiles pour aller ailleurs (par exemple, confidentialité, évolutivité interne, liens de service). Essentiellement, la communauté des parties prenantes devra être incité à ajouter des chaînes enfants – que ce soit financièrement ou par la volonté d'ajouter des chaînes fonctionnelles au relais. Il est prévu que les nouvelles chaînes ajoutées auront un effet très délai de préavis court pour le retrait, permettant aux nouvelles chaînes de être expérimenté sans aucun risque de compromis la proposition de valeur à moyen ou long terme. 8. Conclusion Nous avons décrit une direction que l'on peut prendre pour rédiger un protocole multi-chaînes évolutif et hétérogène avec le potentiel d'être rétrocompatible avec certains protocoles préexistants Réseaux blockchain. Dans le cadre d'un tel protocole, les participants travailler dans un intérêt personnel éclairé pour créer un système global qui peut être étendu d'une manière exceptionnellement libre et sans le coût typique pour les utilisateurs existants qui provient d'une conception standard blockchain. Nous avons donné un aperçu de l'architecture qu'il faudrait, y compris la nature des participants, leurs incitations économiques et les processus dans lesquels ils doivent s'engager. Nous avons identifié une conception de base et discuté de ses points forts et limites; en conséquence, nous avons d'autres instructions qui peut atténuer ces limitations et céder du terrain vers une solution blockchain entièrement évolutive.POLKADOT : VISION D'UN CADRE MULTI-CHAÎNES HÉTÉROGÈNE PROJET 1 19 8.1. Matériel manquant et questions ouvertes. La bifurcation du réseau est toujours une possibilité en raison d'implémentations divergentes du protocole. La guérison d'un tel la condition exceptionnelle n’a pas été discutée. Étant donné que le réseau aura nécessairement une période de finalisation non nulle, la récupération après la bifurcation de la chaîne de relais ne devrait pas poser de problème majeur, mais cela nécessitera une intégration minutieuse dans le protocole de consensus. La disposition relative à la confiscation des cautions et, à l'inverse, à la récompense a été n’a pas été exploré en profondeur. À l'heure actuelle, nous supposons des récompenses sont fournis selon le principe du gagnant qui remporte tout : cela peut ne pas offrir le meilleur modèle d’incitation aux pêcheurs. Un processus d'engagement-révélation de courte durée permettrait à de nombreux pêcheurs réclamer le prix en donnant une répartition plus équitable des récompenses, cependant, le processus pourrait entraîner une latence supplémentaire dans le découverte d'une mauvaise conduite. 8.2. Remerciements. Un grand merci à tous les les correcteurs qui ont aidé à mettre cela dans une vague forme présentable. En particulier, Peter Czaban, Bjorn Wagner, Ken Kappler, Robert Habermeier, Vitalik Buterin, Reto Trinkler et Jack Petersson. Merci à tous les personnes qui ont apporté des idées ou les débuts parmi eux, Marek Kotewicz et Aeron Buchanan méritent une mention particulière. Et merci à tous les autres pour leur aide en cours de route. Toutes les erreurs sont les miennes. Certaines parties de ce travail, y compris la recherche initiale sur algorithmes de consensus, a été financé en partie par les Britanniques Gouvernement dans le cadre du programme Innovate UK.