Polkadot: رؤية لإطار متعدد السلاسل غير متجانس

Par Gavin Wood · 2016

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

خلاصة

بولكادوت: رؤية لإطار عمل متعدد السلاسل غير متجانس المسودة 1 د. جافين وود مؤسس الإيثيريوم والتكافؤ جافين@PARITY.IO مجردة. تعاني جميع بنيات blockchain الحالية من عدد من المشكلات ليس أقلها الوسائل العملية لقابلية التوسعة وقابلية التوسع. ونعتقد أن هذا ينبع من ربط جزأين مهمين للغاية في بنية الإجماع، وهما الشرعية والصلاحية، قريبان جدًا من بعضهما البعض. تقدم هذه الورقة بنية، السلاسل المتعددة غير المتجانسة، الذي يميز بين الاثنين بشكل أساسي. في تقسيم هذين الجزأين، ومن خلال الحفاظ على الوظائف العامة المقدمة إلى الحد الأدنى المطلق فيما يتعلق بالأمن والنقل، فإننا نقدم وسائل عملية للتوسعة الأساسية في الموقع. تتم معالجة قابلية التوسع من خلال نهج فرق تسد في هاتين الوظيفتين، والخروج من جوهره المستعبد من خلال تحفيز العقد العامة غير الموثوق بها. إن الطبيعة غير المتجانسة لهذه البنية تمكن العديد من الأنواع المتباينة للغاية من أنظمة الإجماع التي تتفاعل في "اتحاد" غير موثوق به ولامركزي بالكامل، مما يسمح للشبكات المفتوحة والمغلقة بالوصول دون ثقة إلى بعضها البعض. لقد طرحنا وسيلة لتوفير التوافق العكسي مع واحدة أو أكثر من الشبكات الموجودة مسبقًا مثل Ethereum. ونحن نعتقد أن مثل هذا النظام يوفر مكونًا مفيدًا على المستوى الأساسي في البحث الشامل عن عملية نظام قابل للتنفيذ قادر على تحقيق مستويات التجارة العالمية من قابلية التوسع والخصوصية. 1. المقدمة يهدف هذا إلى أن يكون ملخص "رؤية" فنية لاتجاه واحد محتمل يمكن اتخاذه في مواصلة تطوير نموذج blockchain مع بعض الأسباب المنطقية لسبب كون هذا الاتجاه معقولًا. انها تضع في أكبر قدر ممكن من التفاصيل في هذه المرحلة من التطوير النظام الذي قد يعطي تحسنا ملموسا على أ عدد جوانب تقنية blockchain. وليس المقصود أن تكون مواصفات رسمية أو غير ذلك. وليس المقصود أن تكون شاملة ولا أن تكون التصميم النهائي. وليس المقصود منه تغطية الجوانب غير الأساسية للإطار مثل واجهات برمجة التطبيقات والارتباطات واللغات و الاستخدام. هذا تجريبي بشكل خاص. حيث المعلمات محددة، فمن المرجح أن تتغير. الآليات سوف تتم إضافتها وصقلها وإزالتها استجابة للمجتمع الأفكار والانتقادات. من المحتمل أن تكون أجزاء كبيرة من هذه الورقة يمكن تنقيحها كأدلة تجريبية ونماذج أولية لنا معلومات حول ما سيعمل وما لا. تتضمن هذه الوثيقة وصفًا أساسيًا للبروتوكول بالإضافة إلى أفكار حول التوجيهات التي يمكن اتخاذها لتحسين الجوانب المختلفة. ومن المتصور أن الأساسية سيتم استخدام الوصف كنقطة بداية للبداية سلسلة من البراهين على المفهوم. سيكون "الإصدار 1.0" النهائي استنادًا إلى هذا البروتوكول المكرر جنبًا إلى جنب مع الأفكار الإضافية التي تم إثباتها وعقد العزم على تحقيقها اللازمة حتى يصل المشروع إلى أهدافه. 1.1. تاريخ. • 10/09/2016: 0.1.0-proof1 • 20/10/2016: 0.1.0-proof2 • 11/01/2016: 0.1.0-proof3 • 10/11/2016: 0.1.0 2. مقدمة لقد أظهرت Blockchains وعدًا كبيرًا بالفائدة في العديد من المجالات بما في ذلك "إنترنت الأشياء" (إنترنت الأشياء)، والتمويل، والحوكمة، وإدارة الهوية، ولامركزية الويب، وتتبع الأصول. ومع ذلك، على الرغم من الوعد التكنولوجي والحديث الكبير، لم نر بعد نشر كبير في العالم الحقيقي للتكنولوجيا الحالية. ونحن نعتقد أن هذا يرجع إلى خمسة إخفاقات رئيسية في الوقت الحاضر مكدسات التكنولوجيا: قابلية التوسع: مقدار الموارد التي يتم إنفاقها على مستوى العالم حول المعالجة وعرض النطاق الترددي والتخزين للنظام لمعالجة معاملة واحدة وكم عددها يمكن معالجة المعاملات بشكل معقول بموجب ظروف الذروة؟ قابلية العزلة: يمكن أن تكون الاحتياجات المتباينة متعددة هل تتم معالجة الأطراف والطلبات بدرجة قريبة من المستوى الأمثل ضمن نفس الإطار؟ قابلية التطوير: ما مدى جودة عمل الأدوات؟ افعل هل تلبي واجهات برمجة التطبيقات احتياجات المطورين؟ هل المواد التعليمية متوفرة؟ هل التكامل الصحيح موجود؟ الحوكمة: هل يمكن أن تظل الشبكة مرنة؟ تتطور وتتكيف مع مرور الوقت؟ هل يمكن أن تكون القرارات مصنوعة بالشمولية والشرعية الكافية الشفافية لتوفير القيادة الفعالة ل النظام اللامركزي؟ قابلية التطبيق: هل تعالج التكنولوجيا بالفعل حاجة ملحة من تلقاء نفسها؟ هل هناك حاجة إلى "برامج وسيطة" أخرى من أجل سد الفجوة التطبيقات الفعلية؟ في العمل الحالي، ونحن نهدف إلى معالجة الأولين القضايا: قابلية التوسع والعزلة. وقيل: نحن نؤمن يمكن لإطار عمل Polkadot أن يوفر تحسينات ذات معنى في كل فئة من هذه الفئات من المشاكل. تطبيقات blockchain الحديثة والفعالة مثل يمكن لعميل التكافؤ Ethereum [17] إجراء العمليةيس ما يزيد على 3000 معاملة في الثانية عند التشغيل على أجهزة استهلاكية عالية الأداء. ومع ذلك، العالم الحقيقي الحالي تقتصر شبكات blockchain عمليًا على حوالي 30 شبكة المعاملات في الثانية الواحدة. ينشأ هذا القيد أساسًا من حقيقة أن آليات الإجماع المتزامن الحالية تتطلب هوامش توقيت واسعة من الأمان وقت المعالجة المتوقع، والذي يتفاقم بسبب 1

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.

مقدمة

لقد أظهرت Blockchains وعدًا كبيرًا بالفائدة في العديد من المجالات بما في ذلك "إنترنت الأشياء" (إنترنت الأشياء)، والتمويل، والحوكمة، وإدارة الهوية، ولامركزية الويب، وتتبع الأصول. ومع ذلك، على الرغم من الوعد التكنولوجي والحديث الكبير، لم نر بعد نشر كبير في العالم الحقيقي للتكنولوجيا الحالية. ونحن نعتقد أن هذا يرجع إلى خمسة إخفاقات رئيسية في الوقت الحاضر مكدسات التكنولوجيا: قابلية التوسع: مقدار الموارد التي يتم إنفاقها على مستوى العالم حول المعالجة وعرض النطاق الترددي والتخزين للنظام لمعالجة معاملة واحدة وكم عددها يمكن معالجة المعاملات بشكل معقول بموجب ظروف الذروة؟ قابلية العزلة: يمكن أن تكون الاحتياجات المتباينة متعددة هل تتم معالجة الأطراف والطلبات بدرجة قريبة من المستوى الأمثل ضمن نفس الإطار؟ قابلية التطوير: ما مدى جودة عمل الأدوات؟ افعل هل تلبي واجهات برمجة التطبيقات احتياجات المطورين؟ هل المواد التعليمية متوفرة؟ هل التكامل الصحيح موجود؟ الحوكمة: هل يمكن أن تظل الشبكة مرنة؟ تتطور وتتكيف مع مرور الوقت؟ هل يمكن أن تكون القرارات مصنوعة بالشمولية والشرعية الكافية الشفافية لتوفير القيادة الفعالة ل النظام اللامركزي؟ قابلية التطبيق: هل تعالج التكنولوجيا بالفعل حاجة ملحة من تلقاء نفسها؟ هل هناك حاجة إلى "برامج وسيطة" أخرى من أجل سد الفجوة التطبيقات الفعلية؟ في العمل الحالي، ونحن نهدف إلى معالجة الأولين القضايا: قابلية التوسع والعزلة. وقيل: نحن نؤمن يمكن لإطار عمل Polkadot أن يوفر تحسينات ذات معنى في كل فئة من هذه الفئات من المشاكل. تطبيقات blockchain الحديثة والفعالة مثل يمكن لعميل التماثل Ethereum [17] معالجة ما يزيد عن 3000 معاملة في الثانية عند التشغيل على أجهزة استهلاكية عالية الأداء. ومع ذلك، العالم الحقيقي الحالي تقتصر شبكات blockchain عمليًا على حوالي 30 شبكة المعاملات في الثانية الواحدة. ينشأ هذا القيد أساسًا من حقيقة أن آليات الإجماع المتزامن الحالية تتطلب هوامش توقيت واسعة من الأمان وقت المعالجة المتوقع، والذي يتفاقم بسبببولكادوت: رؤية لإطار عمل متعدد السلاسل غير متجانس المسودة 1 2 الرغبة في دعم عمليات التنفيذ الأبطأ. هذا يرجع إلى بنية التوافق الأساسية: آلية انتقال الدولة، أو الوسائل التي يتم من خلالها تجميع الأحزاب وتنفيذ المعاملات، له منطق مرتبط بشكل أساسي في آلية "التحديد الأساسي" المتفق عليها، أو الوسائل التي تتفق الأطراف من خلالها على واحد من عدد من ممكن، صحيح، التواريخ. ينطبق هذا بالتساوي على كل من أنظمة proof-of-work (PoW) مثل Bitcoin [15] و Ethereum [5,23] وأنظمة إثبات الحصة (PoS) مثل NXT [8] وBitshares [12]: جميعهم يعانون في النهاية من نفس الإعاقة. إنها بسيطة الإستراتيجية التي ساعدت في إنجاح blockchains. ومع ذلك، عن طريق ربط هاتين الآليتين بإحكام في وحدة واحدة من البروتوكول، نقوم أيضًا بتجميع العديد من العناصر المختلفة معًا الجهات الفاعلة والتطبيقات ذات ملفات تعريف المخاطر المختلفة ومتطلبات قابلية التوسع المختلفة واحتياجات الخصوصية المختلفة. حجم واحد لا يناسب الجميع. في كثير من الأحيان يكون الأمر كذلك في أ الرغبة في الحصول على جاذبية واسعة، تتبنى الشبكة درجة من المحافظة مما يؤدي إلى القاسم المشترك الأدنى يخدم القليل على النحو الأمثل ويؤدي في النهاية إلى الفشل في القدرة على الابتكار والأداء والتكيف، في بعض الأحيان بشكل كبير جدا. بعض الأنظمة مثل على سبيل المثال. Factom [21] أسقط آلية انتقال الحالة تمامًا. ومع ذلك، فإن الكثير من المنفعة التي نرغب فيها تتطلب القدرة على الانتقال إلى الحالة وفقا لآلة الدولة المشتركة. إسقاطه يحل مشكلة بديلة؛ ولا يوفر بديلاً الحل. لذلك يبدو من الواضح أن هناك اتجاهًا واحدًا معقولًا للاستكشاف كطريق إلى حوسبة لامركزية قابلة للتطوير النظام الأساسي هو فصل بنية الإجماع عن آلية انتقال الدولة وربما ليس من المستغرب أن هذه هي الإستراتيجية التي يتبناها Polkadot كحل لقابلية التوسع. 2.1. البروتوكول والتنفيذ والشبكة. مثل Bitcoin و Ethereum، Polkadot يشير في الوقت نفسه إلى بروتوكول الشبكة والبروتوكول الأساسي (المفترض حتى الآن) الشبكة العامة التي تقوم بتشغيل هذا البروتوكول. Polkadot يهدف إلى أن يكون مشروعًا حرًا ومفتوحًا، حيث تكون مواصفات البروتوكول خاضعة لترخيص المشاع الإبداعي و يتم وضع الكود تحت ترخيص FLOSS. المشروع هو تم تطويره بطريقة مفتوحة ويقبل المساهمات أينما كانت مفيدة. نظام RFCs، لا يختلف ستسمح مقترحات تحسين بايثون بوسيلة لـ التعاون علنًا في تغييرات البروتوكول وترقياته. تنفيذنا الأولي لبروتوكول Polkadot سيعرف باسم منصة التكافؤ Polkadot وسوف تضمين تنفيذ بروتوكول كامل مع واجهة برمجة التطبيقات (API). الارتباطات. مثل تطبيقات Parity blockchain الأخرى، تم تصميم PPP لتكون مجموعة تقنية blockchain ذات أغراض عامة، وليست مخصصة بشكل فريد لشبكة عامة ولا لـ عملية خاصة/كونسورتيوم. تطوره هكذا تم تمويل Far من قبل عدة أطراف بما في ذلك من خلال منحة من الحكومة البريطانية. مع ذلك، تصف هذه الورقة Polkadot ضمن سياق الشبكة العامة. الوظائف التي نتصورها في الشبكة العامة هي مجموعة شاملة من تلك المطلوبة في إعدادات بديلة (مثل القطاع الخاص و/أو الاتحاد). علاوة على ذلك، في هذا السياق، يمكن للنطاق الكامل لـ Polkadot أن يتم وصفها ومناقشتها بشكل أكثر وضوحًا. هذا يعني يجب أن يدرك القارئ أن بعض الآليات قد تفعل ذلك سيتم وصفها (على سبيل المثال، التشغيل البيني مع الشبكات العامة الأخرى) والتي لا تتعلق بشكل مباشر بـ Polkadot عند نشرها في مواقف غير عامة ("مسموح بها"). 2.2. العمل السابق. لقد تم اقتراح فصل الإجماع الأساسي عن عملية انتقال الدولة بشكل غير رسمي على انفراد لمدة عامين على الأقل - كان ماكس كاي من أنصار مثل هذه الإستراتيجية خلال الأيام الأولى من الثورة Ethereum. حل أكثر تعقيدًا وقابل للتطوير يُعرف باسم Chain ألياف، يعود تاريخه إلى يونيو 2014 وتم نشره لأول مرة لاحقًا في ذلك العام 1، قدمت الحجة لسلسلة ترحيل واحدة وسلاسل متعددة متجانسة توفر آلية تنفيذ شفافة بين السلاسل. تم دفع ثمن فك الترابط من خلال زمن استجابة المعاملة - المعاملات التي تتطلب تنسيق أجزاء متباينة من النظام سوف يستغرق وقتا أطول للمعالجة. Polkadot يأخذ الكثير من بنيته من ذلك ومن محادثات المتابعة معه مختلف الناس، على الرغم من أنها تختلف بشكل كبير في الكثير من تصميمها وأحكامها. في حين لا توجد أنظمة مماثلة لـ Polkadot في الواقع في الإنتاج، عدة أنظمة ذات أهمية معينة تم اقتراحها، على الرغم من قلة عددها في أي مستوى كبير من التفاصيل. هذه المقترحات يمكن أن تكونمقسمة إلى أنظمة مما يسقط أو يقلل من فكرة التماسك العالمي آلة الدولة، تلك التي تحاول توفير عالميًا آلة مفردة متماسكة من خلال شظايا متجانسة وتلك التي تستهدف عدم التجانس فقط. 2.2.1. أنظمة بدون دولة عالمية. Factom [21] هو نظام يوضح القانون الأساسي دون المطابقة الصلاحية، مما يسمح بشكل فعال بتأريخ البيانات. بسبب تجنب الدولة العالمية والصعوبات ومع التوسع الذي يجلبه هذا، يمكن اعتباره حلاً قابلاً للتطوير. ومع ذلك، كما ذكرنا سابقًا، المجموعة من المشاكل التي يحلها أصغر بشكل صارم وجوهري. يعد Tangle [18] أسلوبًا جديدًا لأنظمة الإجماع. فبدلاً من ترتيب المعاملات في كتل وتشكيل إجماع حول قائمة مرتبطة بشكل صارم لإعطاء ترتيب عالمي عالمي لتغييرات الحالة، فإنه يتخلى إلى حد كبير عن فكرة الترتيب شديد التنظيم وبدلاً من ذلك يدفع للحصول على رسم بياني حلقي موجه للمعاملات التابعة مع العناصر اللاحقة مما يساعد في تحديد العناصر السابقة من خلال الإشارة الصريحة. لإجراء تغييرات تعسفية في الحالة، هذا الرسم البياني للتبعية سيصبح سريعًا مستعصيًا على الحل، ولكن بالنسبة للطراز UTXO model2 الأبسط بكثير، يصبح هذا الأمر معقول جدا. لأن النظام متماسك بشكل فضفاض فقط والمعاملات مستقلة بشكل عام عن كل منها أخرى، يصبح قدر كبير من التوازي العالمي تماما طبيعي. إن استخدام النموذج UTXO له التأثير قصر Tangle على "عملة" نقل القيمة البحتة النظام بدلا من أي شيء أكثر عمومية أو قابلة للتوسيع. علاوة على ذلك، من دون التماسك العالمي الصعب، فإن التفاعل مع الأنظمة الأخرى - والذي يميل إلى الحاجة إلى المطلق درجة المعرفة بحالة النظام - تصبح غير عملية. 1https://github.com/ethereum/wiki/wiki/Chain-Fibers-Redux 2مخرجات المعاملات غير المنفقة، النموذج الذي يستخدمه Bitcoin حيث تكون الحالة بشكل فعال مجموعة العناوين المرتبطة ببعض القيمة؛ تقوم المعاملات بجمع هذه العناوين وإصلاحها في مجموعة جديدة من العناوين التي يكون مجموعها مكافئًا

بولكادوت: رؤية لإطار عمل متعدد السلاسل غير متجانس المسودة 1 3 2.2.2. أنظمة السلسلة غير المتجانسة. السلاسل الجانبية [3] هي أ الإضافة المقترحة إلى بروتوكول Bitcoin والتي من شأنها أن تسمح بالتفاعل غير الموثوق به بين سلسلة Bitcoin الرئيسية وسلاسل جانبية إضافية. لا يوجد أي شرط لأي درجة التفاعل "الغني" بين السلاسل الجانبية: سيقتصر التفاعل على السماح بوجود السلاسل الجانبية أوصياء على أصول بعضهم البعض، ويؤثرون على المستوى المحلي المصطلحات - ربط ثنائي الاتجاه 3. الرؤية النهائية هي لإطار يمكن من خلاله توفير عملة Bitcoin وظائف إضافية، إذا كانت طرفية، من خلال ربطها إلى بعض السلاسل الأخرى التي تتمتع بانتقال حالة أكثر غرابة الأنظمة التي يسمح بها بروتوكول Bitcoin. وبهذا المعنى، تتناول السلاسل الجانبية قابلية التوسعة بدلاً من قابلية التوسع. في الواقع، لا يوجد أي نص أساسي على صحة السلاسل الجانبية؛ tokens من سلسلة واحدة (على سبيل المثال Bitcoin) يتم الاحتفاظ بها نيابة عن سلسلة جانبية ويتم تأمينها فقط من خلال قدرة السلسلة الجانبية على تحفيز القائمين بالتعدين على تحديد المعايير الأساسية التحولات صالحة. أمان شبكة Bitcoin لا يمكن بسهولة أن تنتقل للعمل نيابة عن الآخرين blockchains. علاوة على ذلك، بروتوكول لضمان Bitcoin يقوم القائمون بالتعدين بدمج منجمي (أي تكرار قوة تحديد المعايير الخاصة بهم على تلك الخاصة بالسلسلة الجانبية)، والأهم من ذلك، التحقق من صحة انتقالات السلسلة الجانبية خارج نطاق نطاق هذا الاقتراح. Cosmos [10] هو نظام متعدد السلاسل مقترح في على نفس المنوال مثل السلاسل الجانبية، مبادلة ناكاموتو PoW طريقة الإجماع لخوارزمية Tendermint لـ Jae Kwon. بشكل أساسي، فهو يصف سلاسل متعددة (تعمل في المناطق) تستخدم كل منها مثيلات فردية من Tendermint، جنبًا إلى جنب مع وسيلة للاتصال الخالي من الثقة عبر a سلسلة المحور الرئيسي. يقتصر هذا الاتصال بين السلاسل على نقل الأصول الرقمية ("على وجه التحديد حول tokens") بدلاً من المعلومات التعسفية، ومع ذلك فإن هذا الاتصال بين السلاسل لديه مسار عودة للبيانات، على سبيل المثال لإبلاغ المرسل بحالة النقل. مجموعات المدقق للسلاسل المخصصة، وعلى وجه الخصوص وسائل تحفيزهم، مثل السلاسل الجانبية، لم تعد موجودة باعتبارها مشكلة لم يتم حلها. الافتراض العام هو ذلك ستحتوي كل سلسلة مخصصة بحد ذاتها على token من القيمة التي يستخدم تضخمها لدفع ثمن validators. لا تزال في المراحل المبكرة فيما يتعلق بالتصميم، يفتقر الاقتراح في الوقت الحالي إلى تفاصيل شاملة حول الوسائل الاقتصادية لتحقيق ما هو قابل للتطوير اليقين بشأن الصلاحية العالمية. ومع ذلك، فإن التماسك الفضفاض المطلوب بين المناطق والمحور سوف يسمح بذلك لمزيد من المرونة على المعلمات المخصصة للمنطقة سلاسل مقارنة بنظام فرض أقوى التماسك. 2.2.3. كاسبر. حتى الآن لا توجد مراجعة شاملة أو مقارنة جانبية بين Casper [6] وPolkadot تم إجراؤها، على الرغم من أنه يمكن للمرء أن يقوم بعملية كاسحة إلى حد ما (وبالتالي غير دقيق) توصيف الاثنين. يعد Casper بمثابة إعادة تصور لكيفية خوارزمية إجماع PoS يمكن أن يعتمد على مراهنة المشاركين على أي شوكة سيصبح في النهاية قانونيًا. وقد تم إيلاء اهتمام كبير لضمان أن تكون قوية للتواصل الشوكات، حتى عندما تطول، وتتمتع بدرجة إضافية من قابلية التوسع أعلى النموذج الأساسي Ethereum. كما على هذا النحو، يميل كاسبر حتى الآن إلى أن يكون أكثر بكثير بروتوكول معقد من Polkadot وأسلافه، و أ انحراف كبير عن تنسيق blockchain الأساسي. ذلك لا يزال غير واضح بشأن كيفية تكرار كاسبر في المستقبل وكيف سيبدو إذا تم نشره أخيرًا. بينما يمثل كل من Casper و Polkadot بروتوكولات جديدة مثيرة للاهتمام، وإلى حد ما، تعزيزات لـ Ethereum، هناك اختلافات جوهرية بينهما الأهداف النهائية ومسارات النشر. كاسبر هو Ethereum تم تصميم المشروع الذي يتمحور حول المؤسسة في الأصل أن يكون تغييرًا في إثبات الحصة (PoS) للبروتوكول دون الرغبة في ذلك إنشاء blockchain قابل للتطوير بشكل أساسي. إنه أمر حاسم تم تصميمه ليكون بمثابة شوكة صلبة، بدلاً من أي شيء أكثر توسعية، وبالتالي سيكون جميع عملاء ومستخدمي Ethereum مطلوب للترقية أو البقاء على مفترق اعتماد غير مؤكد. على هذا النحو، يصبح النشر أكثر صعوبة إلى حد كبير كما هو متأصل في المشروع اللامركزي حيث يكون ضيقًا التنسيق ضروري. Polkadot يختلف بعدة طرق؛ أولا وقبل كل شيء، تم تصميم Polkadot ليكون قابلاً للتوسيع والتوسع بشكل كامل blockchain اختبار التطوير والنشر والتفاعل سرير. لقد تم تصميمه ليكون بمثابة حزام مقاوم للمستقبل إلى حد كبير استيعاب blockchain الجديدالتكنولوجيا عندما تصبح متاحة دون التنسيق اللامركزي المعقد أو الشوكات الصلبة. نحن نتصور بالفعل العديد من حالات الاستخدام مثل كسلاسل الكونسورتيوم المشفرة والسلاسل عالية التردد مع أوقات حظر منخفضة للغاية ومن غير الواقعي القيام بها أي إصدار مستقبلي من Ethereum متصور حاليًا. وأخيرًا، فإن الاقتران بينه وبين Ethereum كبير للغاية فضفاضة؛ ليس من الضروري اتخاذ أي إجراء من جانب Ethereum تمكين إعادة توجيه المعاملات غير الموثوقة بين الاثنين الشبكات. باختصار، بينما Casper/Ethereum 2.0 وPolkadot نشارك بعض أوجه التشابه العابرة التي نعتقد أنها هدفها النهائي مختلفة إلى حد كبير، وذلك بدلا من التنافس، من المرجح أن يتعايش البروتوكولان في النهاية تحت عنوان علاقة منفعة متبادلة في المستقبل المنظور.

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.

ملخص

Polkadot عبارة عن سلسلة متعددة غير متجانسة وقابلة للتطوير. هذا يعني أنه على عكس تطبيقات blockchain السابقة التي ركزت على توفير سلسلة واحدة متفاوتة درجات العمومية على التطبيقات المحتملة، Polkadot تم تصميمه في حد ذاته بحيث لا يوفر أي وظيفة تطبيق متأصلة على الإطلاق. بل إن Polkadot يوفر الأساس المتين "سلسلة الترحيل" التي يعتمد عليها عدد كبير من التحقق من الصحة، يمكن استضافة هياكل البيانات الديناميكية المتماسكة عالميًا جنبا إلى جنب. نحن نطلق على هياكل البيانات هذه اسم "المتوازية" السلاسل أو المظلات، على الرغم من عدم وجود حاجة محددة لها أن تكون blockchain بطبيعتها. بمعنى آخر، يمكن اعتبار Polkadot مكافئًا لمجموعة من السلاسل المستقلة (على سبيل المثال، المجموعة التي تحتوي على Ethereum، Ethereum Classic، Namecoin و Bitcoin) باستثناء نقطتين مهمتين للغاية: • الأمن المجمع. • إمكانية التعامل بين السلاسل دون ثقة. هذه النقاط هي سبب اعتبارنا Polkadot "قابلة للتطوير". من حيث المبدأ، قد تكون المشكلة التي سيتم نشرها على Polkadot متوازية إلى حد كبير - أو متدرجة - على مدى عدد كبير من المظلات. وبما أن جميع جوانب كل منهما يمكن إجراء سلسلة المظلة بالتوازي بواسطة جزء مختلف من شبكة Polkadot، يتمتع النظام ببعض القدرة على نطاق واسع. Polkadot يوفر قطعة مجردة إلى حد ما 3 على عكس الربط أحادي الاتجاه والذي هو في الأساس عملية تدمير tokens في سلسلة واحدة لإنشاء tokens في سلسلة أخرى بدون آلية لإجراء العكس من أجل استعادة tokens الأصليةبولكادوت: رؤية لإطار عمل متعدد السلاسل غير متجانس المسودة 1 4 البنية التحتية تترك الكثير من التعقيد ليتم معالجتها على مستوى البرمجيات الوسيطة. وهذا قرار واعي يهدف إلى الحد من مخاطر التنمية، وتمكين البرامج المطلوبة التي سيتم تطويرها خلال فترة زمنية قصيرة ومع مستوى جيد من الثقة في أمنها و المتانة. 3.1. فلسفة Polkadot. Polkadot ينبغي توفير أساس متين مطلق يمكن القيام به قم ببناء الموجة التالية من أنظمة الإجماع، حتى النهاية طيف المخاطر من التصاميم الناضجة القادرة على الإنتاج إلى الأفكار الناشئة. من خلال توفير ضمانات قوية بشأن الأمان والعزل والتواصل، يمكن أن يسمح Polkadot بذلك المظلات للاختيار من بين مجموعة من الخصائص بأنفسهم. في الواقع، نتوقع أن تقوم العديد من التجارب التجريبية بدفع خصائص ما يمكن اعتباره معقولًا اليوم. نرى المحافظين سلاسل ذات قيمة عالية مماثلة ل Bitcoin أو Z-cash [20] تتواجد جنبًا إلى جنب مع القيمة الأقل "سلاسل المواضيع" (مثل هذا التسويق، ممتع جدًا) وشبكات الاختبار مع رسوم صفر أو قريبة من الصفر. نرى مشفرة بالكامل، سلاسل الكونسورتيوم "المظلمة" تعمل جنبًا إلى جنب - وحتى تقديم الخدمات لسلاسل مفتوحة وفعالة للغاية مثل تلك مثل Ethereum. نرى تجريبية جديدة السلاسل المستندة إلى VM مثل الـWasm المشحون بالوقت يتم استخدام السلسلة كوسيلة لالاستعانة بمصادر خارجية لمشاكل الحوسبة الصعبة من سلسلة أكثر نضجًا تشبه Ethereum أو سلسلة تشبه Bitcoin أكثر تقييدًا. لإدارة ترقيات السلسلة، سيتم Polkadot بطبيعته دعم نوع ما من هيكل الإدارة، على الأرجح على الأنظمة السياسية المستقرة القائمة ولها جانب من مجلسين مماثل لمجلس الورقة الصفراء [24]. كما السلطة النهائية، سيكون لأصحاب token الأساسيين سيطرة "الاستفتاء". لتعكس المستخدمين الحاجة إلى التطوير ولكن حاجة المطورين إلى الشرعية، نتوقع أن يكون هناك اتجاه معقول للتشكيل الغرفتين من لجنة "المستخدمين" (المكونة من المستعبدين validators) وتشكيل لجنة "فنية". من مطوري العملاء الرئيسيين واللاعبين في النظام البيئي. ال ستحافظ هيئة حاملي token على الشرعية النهائية وتشكل أغلبية ساحقة لزيادة هذا الهيكل أو إعادة قياسه أو استبداله أو حله، وهو أمر نحن لا تشك في الحاجة النهائية إلى: على حد تعبير توين "يجب تغيير الحفاضات والحفاضات بشكل متكرر، ومن أجل ذلك نفس السبب". في حين أن إعادة تحديد المعايير عادة ما تكون تافهة للترتيب ضمن آلية إجماع أكبر، فإن المزيد من التغييرات النوعية مثل الاستبدال والزيادة من شأنها أن تكون مفيدة. من المحتمل أن تكون إما "مراسيم ناعمة" غير آلية (على سبيل المثال. من خلال تحديد رقم الكتلة و hash لوثيقة تحدد البروتوكول الجديد رسميًا) أو تستلزم آلية الإجماع الأساسية أن تحتوي على أ لغة غنية بما فيه الكفاية لوصف أي جانب من جوانب نفسها والتي قد تحتاج إلى التغيير. والأخير هو هدف نهائي، ومع ذلك، فمن المرجح أن يتم اختيار الأول من أجل ذلك تسهيل جدول زمني معقول للتنمية. مبادئ Polkadot الأساسية والقواعد التي يتم من خلالها نقوم بتقييم جميع قرارات التصميم هي: الحد الأدنى: Polkadot يجب أن يتمتع بأقل قدر ممكن من الوظائف. بسيط: لا ينبغي أن يكون هناك أي تعقيد إضافي في البروتوكول الأساسي مما يمكن أن يكون بشكل معقول تم تفريغها في البرامج الوسيطة، وضعت من خلال أ parachain أو تم تقديمه في تحسين لاحق. عام: لا يوجد شرط غير ضروري، القيد أو ينبغي وضع قيود على المظلات؛ يجب أن يكون Polkadot بمثابة اختبار لتطوير نظام الإجماع الذي يمكن تحسينه من خلاله جعل النموذج الذي تتناسب معه الامتدادات مجردًا قدر الإمكان. قوية: Polkadot يجب أن توفر بشكل أساسي طبقة أساسية مستقرة. وبالإضافة إلى السلامة الاقتصادية، فإن هذا يعني أيضًا تقليل المركزية ناقلات للهجمات ذات المكافأة العالية.

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.

المشاركة في Polkadot

هناك أربعة أدوار أساسية في صيانة Polkadot الشبكة: المتعاون والصياد والمرشح وvalidator. في أحد التطبيقات المحتملة لـ Polkadot، الدور الأخير يمكن تقسيمها فعليًا إلى دورين: validator الأساسي وضامن التوفر؛ تمت مناقشة هذا في القسم 6.5.3. جامع صياد المدققون (هذه المجموعة) المدققون (مجموعات أخرى) يوافق يصبح المراقبين التقارير سيئة السلوك ل يوفر كتلة المرشحين ل المرشح الشكل 1. التفاعل بين أربعة أدوار Polkadot. 4.1. المدققون. validator هو أعلى شحن و يساعد في إغلاق الكتل الجديدة على شبكة Polkadot. يتوقف دور validator على وجود رابطة عالية بما فيه الكفاية يتم إيداعها، على الرغم من أننا نسمح للأطراف المستعبدة الأخرى بذلك قم بترشيح واحد أو أكثر من validator لتمثيلهم وبصفتهم قد لا يكون هذا الجزء من سند validator مملوكًا بالضرورة لـ validator نفسه ولكن بالأحرى من قبل هؤلاء الترشيحات. يجب أن يقوم validator بتشغيل تطبيق عميل سلسلة الترحيل مع توفر عالي وعرض النطاق الترددي. عند كل كتلة يجب أن تكون العقدة جاهزة لقبول دور التصديق كتلة جديدة على المظلة المرشحة. هذه العملية يتضمن تلقي المرشح والتحقق من صحته وإعادة نشره كتل. إن الترشيح أمر حتمي ولكن لا يمكن التنبؤ به تقريبًا مقدمًا. نظرًا لأن validator لا يمكن ذلك ومن المتوقع بشكل معقول للحفاظ على متزامنة بالكامل قاعدة بيانات لجميع المظلات، من المتوقع أن يرشح validator مهمة ابتكار قاعدة بيانات جديدة مقترحة كتلة المظلة لطرف ثالث، والمعروفة باسم المجمع. بمجرد التصديق على جميع كتل المظلات الجديدة بشكل صحيح من خلال مجموعاتها الفرعية validator، validators يجب بعد ذلك التصديق على كتلة سلسلة التتابع نفسها. هذا ينطوي على تحديث حالة قوائم انتظار المعاملات (بشكل أساسي نقل البيانات من قائمة انتظار إخراج سلسلة Parachain إلى أخرى قائمة انتظار إدخال Parachain)، ومعالجة المعاملات مجموعة معاملات سلسلة الترحيل المعتمدة والتصديق على الكتلة النهائية، بما في ذلك تغييرات الباراشين النهائية.بولكادوت: رؤية لإطار عمل متعدد السلاسل غير متجانس المسودة 1 5 validator لا يقومون بواجبهم في التوصل إلى توافق في الآراء بموجب قواعد خوارزمية الإجماع التي اخترناها يعاقب. بالنسبة لحالات الفشل الأولية غير المقصودة، يتم ذلك حجز مكافأة validator. يؤدي الفشل المتكرر إلى تقليل سندات الضمان الخاصة بهم (من خلال الحرق). من المحتمل أن تكون الإجراءات الضارة مثل التوقيع المزدوج أو التآمر لتقديم كتلة غير صالحة يؤدي إلى خسارة السند بأكمله (الذي يتم حرقه جزئيًا ولكن يتم تقديمه في الغالب إلى المخبرين والفاعلين الصادقين). إلى حد ما، validators تشبه مجمعات التعدين من إثبات العمل الحالي blockchains. 4.2. الترشيحات. المرشح هو طرف صاحب مصلحة الذي يساهم في السند الضماني لـ validator. هم ليس لها دور إضافي سوى وضع رأس المال المخاطر وكما للإشارة إلى أنهم يثقون في validator معين (أو مجموعة منها) للتصرف بمسؤولية في صيانتها شبكة. ويحصلون على زيادة أو تخفيض تناسبي في ودائعهم وفقا لنمو السند الذي يساهمون. جنبا إلى جنب مع المتعاونين، التالي، المرشحون في بعض يشبه عمال المناجم في شبكات إثبات العمل (PoW) الحالية. 4.3. المقارنات. جامعو المعاملات (جامعو المعاملات باختصار) هي الأطراف التي تساعد validators في إنتاج صالحة كتل المظلة. إنهم يحافظون على "عقدة كاملة" لسلسلة باراشين معينة؛ وهذا يعني أنهم يحتفظون بكل ما هو ضروري المعلومات لتكون قادرة على تأليف كتل جديدة وتنفيذها المعاملات بنفس الطريقة التي يقوم بها القائمون بالتعدين على إثبات العمل (PoW) blockchains الحالي. في الظروف العادية هم سوف نقوم بجمع وتنفيذ المعاملات لإنشاء ملف مفتوح كتلة، وتوفيرها، جنبا إلى جنب مع المعرفة الصفرية إثبات، إلى واحد أو أكثر من validator المسؤولين حاليًا عن اقتراح كتلة المظلة. من المرجح أن تتغير الطبيعة الدقيقة للعلاقة بين المتعاونين والمرشحين وvalidators بمرور الوقت الوقت. في البداية، نتوقع أن يعمل المترجمون بشكل وثيق جدًا مع validators، نظرًا لأنه لن يكون هناك سوى عدد قليل (ربما سلسلة (سلاسل) واحدة فقط ذات حجم معاملات صغير. ال سيتضمن التنفيذ الأولي للعميل RPCs للسماح بـ عقدة ربط سلسلة Parachain لتزويد عقدة (سلسلة ترحيل) validator بشكل غير مشروط بسلسلة Parachain صالحة بشكل مثبت كتلة. كتكلفة الحفاظ على نسخة متزامنة من كل هذه المظلات تتزايد، ونتوقع أن نرى المزيد البنية التحتية الموجودة والتي ستساعد في فصل واجبات الأطراف المستقلة ذات الدوافع الاقتصادية. في نهاية المطاف، نتوقع أن نرى مجموعات من المتعاونين الذين يتنافسون عليها جمع معظم رسوم المعاملات. قد يتم التعاقد مع هؤلاء المجمعين لخدمة validator معينة على مدى فترة زمنية مقابل حصة مستمرة في عائدات المكافأة. وبدلاً من ذلك، يمكن للمجمعين "المستقلين" ببساطة إنشاء ملف يقدم السوق كتل باراشين صالحة مقابل حصة تنافسية من المكافأة تدفع على الفور. وبالمثل، فإن مجمعات الترشيح اللامركزية ستسمح بالتعددية المشاركون المستعبدين للتنسيق وتقاسم واجب أ validator. تضمن هذه القدرة على التجميع المشاركة المفتوحة مما يؤدي إلى نظام أكثر لامركزية. 4.4. الصيادين. على عكس الحزبين النشطين الآخرين، لا يرتبط الصيادون مباشرة بتأليف الكتلة عملية. بل هم "صائدو جوائز" مستقلون بدافع من مكافأة كبيرة. على وجه التحديد بسبب بوجود الصيادين، نتوقع أن حوادث سوء السلوك نادرًا ما تحدث، وعندما تحدث فقط بسبب كون الطرف المستعبد مهملاً بأمن المفتاح السري، وليس من خلال النوايا الخبيثة. يأتي الاسم من التكرار المتوقع للمكافأة، والحد الأدنى من متطلبات المشاركة وحجم المكافأة النهائية. يحصل الصيادون على أجرهم من خلال إثبات ذلك في الوقت المناسب تصرف طرف مستعبد واحد على الأقل بشكل غير قانوني. أعمال غير قانونية تتضمن التوقيع على كتلتين مع نفس الوالد المعتمد، أو، في حالة المظلات، المساعدة في التصديق على غير صالح كتلة. لمنع الإفراط في المكافأة أو التسوية و الاستخدام غير المشروع للمفتاح السري للجلسة، المكافأة الأساسية مقابل تقديم رسالة واحدة موقعة بشكل غير قانوني من validator هو الحد الأدنى. وتزداد هذه المكافأة بشكل مقارب أكثر يتم إثبات التوقيعات غير القانونية من validators الأخرى بشرط أن يكون ذلك بمثابة هجوم حقيقي. تم تعيين الخط المقارب بنسبة 66% بعد تأكيدنا الأمني الأساسي على الأقل ثلثا validators يتصرفون بشكل خيري. يشبه الصيادون إلى حد ما "العقد الكاملة" في أنظمة blockchain الحالية التي تحتاج إلى الموارد صغيرة نسبيًا والالتزام بوقت تشغيل مستقر وعرض النطاق الترددي ليس ضروريا. ويختلف الصيادون في ذلك بقدر ما يجب عليهم نشر سند صغير.يمنع هذا السند هجمات sybil من إضاعة وقت وحساب validators الموارد. يمكن سحبه على الفور، ربما لا أكثر من ما يعادل بضعة دولارات وربما يؤدي لجني مكافأة ضخمة من اكتشاف سوء التصرف validator.

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.

نظرة عامة على التصميم

يهدف هذا القسم إلى تقديم لمحة موجزة عن النظام ككل. استكشاف أكثر شمولا لل النظام موجود في القسم الذي يليه 5.1. إجماع. على سلسلة التتابع، Polkadot يحقق توافق منخفض المستوى حول مجموعة صالحة متفق عليها بشكل متبادل الكتل من خلال خوارزمية التسامح مع الأخطاء البيزنطية غير المتزامنة (BFT). سيتم إلهام الخوارزمية بواسطة Tendermint البسيط [11] وأكثر من ذلك بكثير المعنية HoneyBadgerBFT [14]. هذا الأخير يوفر إجماع فعال ومتسامح مع الأخطاء على نحو تعسفي بنية تحتية معيبة للشبكة، نظرًا لمجموعة من السلطات الحميدة في الغالب أو validators. بالنسبة لشبكة نمط إثبات السلطة (PoA)، هذا وحده سيكون كافيًا، ولكن من المفترض أن يكون Polkadot كذلك كما يمكن نشرها كشبكة مفتوحة بالكامل وعامة الوضع دون أي منظمة معينة أو موثوق بها السلطة اللازمة للحفاظ عليه. وعلى هذا النحو نحن بحاجة إلى وسائل تحديد مجموعة من validator والتحفيز لهم أن يكونوا صادقين. ولهذا نستخدم الاختيار القائم على إثبات الحصة (PoS). المعايير. 5.2. إثبات الحصة. نحن نفترض أن الشبكة سيكون لديه بعض الوسائل لقياس مقدار "الحصة" أي حساب معين لديه. لسهولة المقارنة الأنظمة الموجودة مسبقًا، سوف نسميها وحدة القياس "tokens". لسوء الحظ فإن المصطلح أقل من مثالي لـ أ لعدد من الأسباب، ليس أقلها كونها مجرد عددية القيمة المرتبطة بالحساب، لا توجد فكرة عنها الفردية. نحن نتخيل أن يتم انتخاب validator، بشكل غير متكرر (على الأكثر مرة واحدة يوميًا ولكن ربما نادرًا مثل مرة واحدة كل ربع سنة)، من خلال نظام إثبات الحصة المرشح (NPoS). يمكن أن يحدث التحفيز من خلال التخصيص التناسبي لـبولكادوت: رؤية لإطار عمل متعدد السلاسل غير متجانس المسودة 1 6 تتابع سلسلة سرب المدقق (كل لون حسب لونه المظلة المعينة) الصفقة (مقدم من ممثل خارجي) باراشين جسر المظلة الافتراضية (على سبيل المثال Ethereum) باراشين باراشين قوائم الانتظار والإدخال/الإخراج المعاملات المنتشرة منع تقديم المرشح الترتيب الثاني سلسلة التتابع مجتمع باراشين الحساب المعاملة الواردة المعاملة الصادرة المعاملات بين السلاسل (تتم إدارته بواسطة validators) جامع كتلة منتشرة صياد الشكل 2. ملخص تخطيطي لنظام Polkadot. يُظهر هذا أن المتعاونين يقومون بجمع ونشر معاملات المستخدم، بالإضافة إلى نشر مرشحي الكتلة للصيادين وvalidators. إنه أيضًا يوضح كيف يمكن للحساب نشر معاملة يتم تنفيذها من سلسلة Parachain الخاصة به، عبر سلسلة الترحيل ثم إلى سلسلة باراشين أخرى حيث يمكن تفسيرها على أنها معاملة لحساب هناك. الأموال القادمة من توسيع القاعدة token (حتى 100% سنويًا، على الرغم من أنه من المرجح أن يصل إلى حوالي 10٪) مع أي رسوم المعاملات التي تم جمعها. في حين أن توسع القاعدة النقدية يؤدي عادة إلى التضخم، حيث أن جميع مالكي token سيكون لديهم فرصة عادلة للمشاركة، فلن يحتاج أي مالك token إلى أن يعاني من انخفاض في قيمة أسهمه المقتنيات بمرور الوقت بشرط أن يكونوا سعداء بالحصول على دور في آلية التوافق. نسبة معينة من tokens سيتم استهدافها لعملية staking؛ ال سيتم تعديل توسيع القاعدة الفعال token من خلال آلية قائمة على السوق للوصول إلى هذا الهدف. يتم ربط المدققين بشكل كبير بحصصهم؛ الخروج تظل سندات validators سارية لفترة طويلة بعد توقف واجبات validators (ربما حوالي 3 أشهر). هذا طويل تسمح فترة تصفية السندات بحدوث سوء سلوك في المستقبل يعاقب حتى التفتيش الدوري للسلسلة. يؤدي سوء السلوك إلى العقوبة، مثل تقليل مكافأة أو، في الحالات التي تضر عمدا سلامة الشبكة، حيث يفقد validator بعضًا أو كلًا منها حصة validators أو المخبرين أو أصحاب المصلحة الآخرين ككل (من خلال الحرق). على سبيل المثال، validator الذي يحاول التصديق على فرعي الشوكة (أحيانًا المعروف باسم هجوم "قصير المدى") يمكن تحديده و يعاقب بالطريقة الأخيرة. يتم التحايل على هجمات "لا شيء على المحك" بعيدة المدى4 من خلال مزلاج "نقطة تفتيش" بسيط يمنع إعادة تنظيم سلسلة خطيرة لأكثر من عمق سلسلة معينة. لضمان مزامنة العملاء حديثًا لا يمكن أن ينخدعوا بالسلسلة الخاطئة، العادية سيحدث "الهارد فورك" (في نفس الفترة على الأكثر). تصفية سندات validators) التي تقوم بحظر نقطة تفتيش حديثة ذات كود ثابت hashes في العملاء. يلعب هذا بشكل جيد مع مقياس إضافي لتقليل البصمة وهو "طول السلسلة المحدودة" أو إعادة ضبط دورية لكتلة التكوين. 5.3. المظلات والمجمعات. يحصل كل مظلة معايير أمنية مماثلة لسلسلة الترحيل: ال يتم إغلاق رؤوس المظلات داخل كتلة سلسلة التتابع ضمان عدم إمكانية إعادة التنظيم أو "الإنفاق المزدوج" بعد التأكيد. يعد هذا ضمانًا أمنيًا مشابهًا لذلك الذي توفره السلاسل الجانبية والدمج لـ Bitcoin. ومع ذلك، فإن Polkadot يوفر أيضًا ضمانات قوية بأن انتقالات حالة المظلات صالحة. هذا يحدث من خلال مجموعة validators التي يتم تقسيمها بشكل عشوائي إلى مجموعات فرعية؛ مجموعة فرعية واحدة لكل Parachain، من المحتمل أن تختلف المجموعات الفرعية لكل كتلة. هذا يشير الإعداد عمومًا إلى أن أوقات حظر سلاسل المظلات ستفعل ذلك تكون على الأقل بنفس طول سلسلة التتابع. المحدد وسائل تحديد التقسيم خارج النطاق 4مثل هذا الهجوم هو حيث يقوم الخصم بصياغة سلسلة جديدة تمامًا من التاريخ بدءًا من كتلة التكوين وما بعده. من خلال التحكم أ حصة ضئيلة نسبيًا من الحصة في المقابل، فإنهم قادرون على زيادة حصتهم من الحصة بشكل تدريجي مقارنة بجميع الحصص الأخرى أصحاب المصلحة لأنهم المشاركون النشطون الوحيدون في تاريخهم البديل. نظرًا لعدم وجود قيود مادية جوهرية على الخلق من الكتل (على عكس إثبات العمل (PoW) حيث يجب إنفاق طاقة حسابية حقيقية تمامًا)، فإنهم قادرون على صياغة سلسلة أطول من السلسلة الحقيقية في فترة زمنية قصيرة نسبيًا وربما تجعلها الأطول والأفضل، وتتولى الحالة الأساسية للشبكة.بولكادوت: رؤية لإطار عمل متعدد السلاسل غير متجانس المسودة 1 7 من هذه الوثيقة ولكن من المرجح أن تستند إما حولها إطار عمل كشف الالتزام مشابه لـ RanDAO [19] أو استخدم البيانات المجمعة من الكتل السابقة لكل سلسلة باراشين تحت hash آمن تشفيريًا. هذه المجموعات الفرعية من validators مطلوبة لتوفير أ مرشح كتلة الباراشين الذي يضمن صلاحيته (on ألم مصادرة السندات). الصلاحية تدور حول اثنين نقاط مهمة؛ أولاً أنه صحيح جوهريًا – ذلك تم تنفيذ جميع التحولات في الدولة بأمانة وهذا كل شيء البيانات الخارجية المشار إليها (أي المعاملات) صالحة للتضمين. ثانياً: أن أي بيانات خارجية عنه المرشح، مثل تلك المعاملات الخارجية، يتمتع بتوافر عالٍ بدرجة كافية حتى يتمكن المشاركون من ذلك قم بتنزيله وتنفيذ الكتلة يدويًا.5 قد يقدم المدققون كتلة "خالية" فقط لا تحتوي على بيانات "معاملات" خارجية، ولكنهم قد يتعرضون لخطر الحصول على مكافأة مخفضة إذا فعلوا ذلك. إنهم يعملون جنبا إلى جنب بروتوكول ثرثرة باراشين مع المتعاونين - الأفراد الذي يجمع المعاملات في كتل ويقدم دليلاً غير تفاعلي وصفر المعرفة على أن الكتلة تشكل فرعًا صالحًا لوالدها (ويأخذ أي معاملة رسوم على متاعبهم). يُترك الأمر لبروتوكولات Parachain لتحديد البروتوكولات الخاصة بها وسائل منع البريد العشوائي: لا توجد فكرة أساسية عن "قياس موارد الكمبيوتر" أو "رسوم المعاملات" التي تفرضها سلسلة التتابع. لا يوجد أيضًا تطبيق مباشر لهذا الأمر من خلال بروتوكول سلسلة الترحيل (على الرغم من أنه ومن غير المرجح أن يختار أصحاب المصلحة اعتمادها المظلة التي لم توفر آلية لائقة). هذه إشارة صريحة إلى إمكانية وجود سلاسل مختلفة Ethereum، على سبيل المثال. سلسلة تشبه Bitcoin ولها نموذج رسوم أبسط بكثير أو نموذج آخر لمنع البريد العشوائي لم يتم اقتراحه بعد. من المحتمل أن تكون سلسلة الترحيل الخاصة بـ Polkadot نفسها موجودة كـ Ethereum-حسابات شبيهة وسلسلة الحالة، من المحتمل أن تكون EVMمشتقة. نظرًا لأن عقد سلسلة التتابع ستكون مطلوبة القيام بمعالجة كبيرة أخرى، وإنتاجية المعاملات سيتم تقليلها جزئيًا من خلال رسوم المعاملات الكبيرة وإذا كانت نماذجنا البحثية تتطلب حدًا لحجم الكتلة. 5.4. الاتصالات بين السلاسل. العنصر الأخير الحاسم في Polkadot هو التواصل بين السلاسل. منذ يمكن أن تحتوي المظلات على نوع من قناة المعلومات فيما بينها، ونحن نسمح لأنفسنا بالنظر في Polkadot أ متعددة السلاسل قابلة للتطوير. في حالة Polkadot، يكون الاتصال بسيطًا قدر الإمكان: يتم تنفيذ المعاملات في المظلة (وفقًا لمنطق تلك السلسلة) قادرة على ذلك يؤثر على إرسال المعاملة إلى سلسلة Parachain ثانية أو ربما سلسلة التتابع. مثل المعاملات الخارجية في الإنتاج blockchains، فهي غير متزامنة تمامًا وليس هناك قدرة جوهرية لهم على العودة أي نوع من المعلومات يعود إلى أصله. الوجهة: يحصل البيانات من السابقة الكتلة validators. يتلقى الحساب منشورًا: تمت إزالة الإدخال من دخول Merkle tree يرسل الحساب منشورًا: تم وضع الإدخال في الخروج Merkle tree للوجهة المظلة الخروج المصدر: أسهم البيانات مع الكتلة التالية validators إثبات البريد المخزن في خروج المظلة ميركل شجرة تم وضع المرجع الموجه في باراتشين الوجهة دخول Merkle tree دخول الشكل 3. عرض تخطيطي أساسي الأجزاء الرئيسية من التوجيه لنشرها المعاملات ("المشاركات"). لضمان الحد الأدنى من تعقيد التنفيذ، الحد الأدنى خطر و الحد الأدنى سترات مستقيمة من المستقبل أبنية Parachain، هذه المعاملات بين السلاسل هي لا يمكن تمييزها بشكل فعال عن المعاملات القياسية الموقعة خارجيا. تحتوي المعاملة على جزء أصل، مما يوفر القدرة على تحديد سلسلة Parachain، و عنوان قد يكون ذو حجم تعسفي. على عكس الأنظمة الحالية الشائعة مثل Bitcoin وEthereum، لا تأتي المعاملات بين السلاسل مع أي نوع من "الدفع" للرسوم المرتبطة بها؛ ويجب إدارة أي دفع من هذا القبيل من خلال منطق التفاوض على سلاسل المصدر والوجهة. نظام مثل ذلك المقترح ل سيكون إصدار Serenity الخاص بـ Ethereum [7] وسيلة بسيطة لإدارة مثل هذا الدفع للموارد عبر السلسلة نحن نفترض أن الآخرين قد يبرزون إلى الواجهة في الوقت المناسب. يتم حل المعاملات Interchain باستخدام بسيطة آلية الانتظار تعتمد على Merkle tree لضمان ذلك الإخلاص. إنها مهمة مشرفي سلسلة التتابع نقل المعاملات في قائمة انتظار الإخراج لسلسلة باراشين واحدة في قائمة انتظار الإدخال لسلسلة المظلة الوجهة. ال تتم الإشارة إلى المعاملات التي تم تمريرها في سلسلة الترحيل، ولكنها ليست ذات صلةمعاملات ay-chain نفسها. لمنع سلسلة مظلة من إرسال رسائل غير مرغوب فيها إلى سلسلة مظلة أخرى المعاملات، ليتم إرسال المعاملة، هو مطلوب أن قائمة انتظار إدخال الوجهة ليست كبيرة جدًا وقت نهاية الكتلة السابقة. إذا كان الإدخال قائمة الانتظار كبيرة جدًا بعد معالجة الكتلة، وبالتالي تعتبر "مشبعة" ولا يمكن توجيه أي معاملات إليها ضمن الكتل اللاحقة حتى يتم تخفيضها مرة أخرى إلى ما دون الحد. تتم إدارة قوائم الانتظار هذه على سلسلة الترحيل السماح للمظلات بتحديد تشبع بعضها البعض الحالة؛ بهذه الطريقة محاولة فاشلة لنشر المعاملة إلى وجهة متوقفة قد يتم الإبلاغ عنها بشكل متزامن. (على الرغم من عدم وجود مسار إرجاع، إذا فشلت معاملة ثانوية لهذا السبب، فلا يمكن الإبلاغ عنها مرة أخرى للمتصل الأصلي وبعض وسائل الاسترداد الأخرى يجب أن يحدث.) 5.5. Polkadot و Ethereum. نظرًا لاكتمال تورينج Ethereum، نتوقع أن تكون هناك فرصة كبيرة لـ Polkadot وEthereum للتشغيل المتبادل مع بعضها البعض، على الأقل ضمن بعض الحدود الأمنية التي يمكن استنتاجها بسهولة. باختصار، نحن نتصور أن المعاملات من يمكن توقيع Polkadot بواسطة validators ثم إدخاله في 5قد تتم مشاركة مثل هذه المهمة بين validators أو يمكن أن تصبح المهمة المعينة لمجموعة من validators المرتبطة بشكل كبير والمعروفة باسم ضمانات التوفر.

بولكادوت: رؤية لإطار عمل متعدد السلاسل غير متجانس المسودة 1 8 Ethereum حيث يمكن تفسيرها وسنها عقد إعادة توجيه المعاملة. وفي الاتجاه الآخر، نتوقع استخدام السجلات (الأحداث) المنسقة خصيصًا القادمة من "عقد الاختراق" للسماح بالتحقق السريع من ضرورة إعادة توجيه رسالة معينة. 5.5.1. Polkadot إلى Ethereum. من خلال اختيار أ BFT آلية الإجماع مع validators المكونة من أ مجموعة من أصحاب المصلحة يتم تحديدهم من خلال التصويت بالموافقة آلية، نحن قادرون على الحصول على إجماع آمن مع عدد قليل ومتواضع من validators. في نظام يحتوي على إجمالي 144 validators، فإن وقت الكتلة يبلغ 4 ثوانٍ ونهاية 900 كتلة (مما يسمح بالبرامج الضارة سيتم الإبلاغ عن السلوكيات مثل الأصوات المزدوجة ومعاقبتها وإصلاحها)، يمكن أن تكون صلاحية الكتلة معقولة تعتبر مثبتة من خلال ما لا يقل عن 97 توقيعًا (ثلثي 144 زائد واحد) وفترة تحقق تالية مدتها 60 دقيقة حيث لا يتم إيداع أي اعتراضات. Ethereum قادر على استضافة "عقد اقتحام" والذي ويمكن الحفاظ على الموقعين الـ 144 والسيطرة عليهم لهم. نظرًا لأن استرداد التوقيع الرقمي للمنحنى الإهليلجي (ECDSA) لا يتطلب سوى 3000 غاز تحت EVM، ومنذ ذلك الحين من المحتمل أننا نريد فقط أن يتم التحقق من الصحة على الأغلبية العظمى من validators (بدلاً من الإجماع الكامل)، التكلفة الأساسية لـ Ethereum لتأكيد تلك التعليمات تم التحقق من صحتها بشكل صحيح حيث أن القادمة من شبكة Polkadot لن تزيد عن 300000 غاز - أي 6% فقط من الحد الإجمالي للغاز عند 5.5 م. زيادة عدد validators (كما هو ضروري للتعامل معها العشرات من السلاسل) يزيد حتما من هذه التكلفة من المتوقع على نطاق واسع أن ينمو النطاق الترددي لمعاملات Ethereum بمرور الوقت مع نضوج التكنولوجيا و تتحسن البنية التحتية. جنبا إلى جنب مع حقيقة أن لا يجب مشاركة جميع validators (على سبيل المثال، الأعلى فقط قد يتم استدعاء validators المثبت لمثل هذه المهمة). وتمتد حدود هذه الآلية بشكل جيد إلى حد معقول. بافتراض التناوب اليومي لمثل هذه validators (وهو متحفظ إلى حد ما - أسبوعيًا أو حتى شهريًا قد يكون مقبولاً)، ثم التكلفة التي تتحملها الشبكة للصيانة سيكون هذا الجسر Ethereum-إعادة التوجيه حوالي 540.000 الغاز يوميًا أو، بأسعار الغاز الحالية، 45 دولارًا سنويًا. ستتكلف المعاملة الأساسية التي يتم إرسالها بمفردها عبر الجسر حوالي 0.11 دولار؛ سيكلف حساب العقد الإضافي أكثر، بطبيعة الحال. عن طريق التخزين المؤقت وتجميع المعاملات معا، يمكن بسهولة أن تكون تكاليف ترخيص الاقتحام المشتركة، مما يقلل تكلفة المعاملة بشكل كبير؛ إذا كانت هناك حاجة إلى 20 معاملة قبل إعادة التوجيه، إذن ستنخفض تكلفة إعادة توجيه المعاملة الأساسية إلى حوالي 0.01 دولار. أحد البدائل المثيرة للاهتمام والأرخص لنموذج العقد متعدد التوقيع هو استخدام توقيعات العتبة من أجل تحقيق دلالات الملكية متعددة الأطراف. بينما مخططات توقيع العتبة لـ ECDSA باهظة الثمن من الناحية الحسابية، كتلك الخاصة بالمخططات الأخرى مثل توقيعات شنور معقولة جدًا. Ethereum تخطط لإدخال البدائيين التي من شأنها أن تفعل ذلك مخططات رخيصة للاستخدام في شوكة متروبوليس الصلبة القادمة. إذا كان من الممكن استخدام مثل هذه الوسيلة، فستكون تكلفة الغاز لإعادة توجيه معاملة Polkadot إلى Ethereum سيتم تخفيض الشبكة بشكل كبير إلى ما يقرب من الصفر النفقات العامة بالإضافة إلى التكاليف الأساسية للتحقق من صحة التوقيع وتنفيذ المعاملة الأساسية. في هذا النموذج، سيكون لعقد Polkadot validator لفعل القليل بخلاف توقيع الرسائل. لتوجيه المعاملات فعليًا إلى شبكة Ethereum، نحن افترض أن أيًا من validators نفسها ستتواجد أيضًا شبكة Ethereum أو على الأرجح تلك المكافآت الصغيرة يتم عرضه على الممثل الأول الذي يقوم بإعادة توجيه الرسالة إلى الشبكة (يمكن دفع المكافأة بشكل تافه إلى منشئ المعاملة). 5.5.2. Ethereum إلى Polkadot. الحصول على المعاملات لتكون تستخدم إعادة التوجيه من Ethereum إلى Polkadot المفهوم البسيط للسجلات. عندما يرغب عقد Ethereum في إرسال معاملة إلى سلسلة معينة من Polkadot، إنها تحتاج ببساطة إلى إبرام "عقد انفصال" خاص. سيتطلب عقد الاختراق أي دفعة قد تكون تكون مطلوبة وإصدار تعليمات التسجيل بحيث يمكن إثبات وجودها من خلال إثبات Merkle والتأكيد على أن رأس الكتلة المقابلة صالح و الكنسي. ومن بين الشرطين الأخيرين، ربما تكون الصلاحية هي الأكثر وضوحا لإثبات. من حيث المبدأ، فإن الشرط الوحيد هولكل عقدة Polkadot تحتاج إلى الإثبات (أي العقد validator المعينة) لتشغيل نسخة متزامنة بالكامل من عقدة Ethereum القياسية. لسوء الحظ، هذا في حد ذاته تبعية ثقيلة إلى حد ما. أكثر ستكون الطريقة خفيفة الوزن هي استخدام دليل بسيط على أن تم تقييم الرأس بشكل صحيح من خلال توفير فقط يلزم تنفيذ جزء من محاولة حالة Ethereum بشكل صحيح المعاملات في الكتلة والتحقق من صحة السجلات (الواردة في إيصال الكتلة). مثل هذه "الشبيهة بـ SPV"6 قد تتطلب البراهين قدرًا كبيرًا من المعلومات؛ بشكل ملائم، لن تكون هناك حاجة إليها عادةً الكل: نظام السندات داخل Polkadot سيسمح بالارتباط أطراف ثالثة لتقديم رؤوس مع خطر فقدانها يجب أن يقدم طرف ثالث آخر (مثل "الصياد"، انظر 6.2.3) دليلاً على أن الرأس غير صالح (على وجه التحديد أن جذر الحالة أو جذور الاستلام كانوا محتالين). على شبكة إثبات العمل (PoW) غير النهائية مثل Ethereum، فإن من المستحيل إثبات الشرعية بشكل قاطع. ولمعالجة ذلك، يجب على التطبيقات التي تحاول الاعتماد على أي نوع من السبب المعتمد على السلسلة انتظر عددًا من "التأكيدات"، أو حتى تصل المعاملة التابعة إلى مرحلة ما. عمق خاص داخل السلسلة. على Ethereum، هذا يتراوح العمق من كتلة واحدة للمعاملات الأقل قيمة مع عدم وجود مشكلات معروفة في الشبكة إلى 1200 كتلة كما كان القضية أثناء إصدار Frontier الأولي للتبادلات. على شبكة "Homestead" المستقرة، يقع هذا الرقم عند 120 قطعة لمعظم البورصات، ومن المحتمل أن نتقبلها معلمة مماثلة. هكذا نحن يمكن تخيل لدينا Polkadot-الجانب Ethereumواجهة تحتوي على بعض الوظائف البسيطة: لتكون قادرًا على ذلك قبول رأس جديد من شبكة Ethereum والتحقق من صحة إثبات العمل، لتتمكن من قبول بعض الأدلة على أن تم إصدار سجل معين بواسطة عقد الاختراق من الجانب Ethereum لرأس ذو عمق كافٍ (وإلى الأمام الرسالة المقابلة داخل Polkadot) وأخيرًا لتكون قادرة على قبول البراهين التي سبق قبولها ولكن يحتوي الرأس الذي لم يتم تفعيله بعد على جذر إيصال غير صالح. للحصول فعليًا على بيانات الرأس Ethereum نفسها (و أي أدلة SPV أو تفنيد الصلاحية/القانونية) إلى شبكة Polkadot، تحفيز لإعادة التوجيه يشير 6SPV إلى التحقق المبسط من الدفع في Bitcoin ويصف طريقة للعملاء للتحقق من المعاملات مع الاحتفاظ فقط نسخة من جميع رؤوس الكتل لأطول سلسلة إثبات العمل (PoW).بولكادوت: رؤية لإطار عمل متعدد السلاسل غير متجانس المسودة 1 9 هناك حاجة إلى البيانات. يمكن أن يكون هذا بسيطًا مثل الدفع (ممولة من الرسوم المحصلة من جهة Ethereum) المدفوعة لأي شخص قادر على إعادة توجيه كتلة مفيدة رأسها صالح. وسيُطلب من المدققين الاحتفاظ بالمعلومات المتعلقة بالآلاف القليلة الأخيرة من الكتل من أجل تكون قادرًا على إدارة الانقسامات، إما من خلال بعض الوسائل الجوهرية للبروتوكول أو من خلال عقد يتم الاحتفاظ به على سلسلة التتابع. 5.6. Polkadot و Bitcoin. Bitcoin التشغيل البيني يمثل تحديًا مثيرًا للاهتمام لـ Polkadot: ما يسمى ومن شأن "الربط المتبادل" أن يشكل جزءاً مفيداً من البنية الأساسية ليكون على جانب كلا الشبكتين. ومع ذلك، بسبب قيود Bitcoin، مع توفير مثل هذا الربط بشكل آمن مشروع غير تافه. تسليم المعاملة من يمكن من حيث المبدأ إجراء Bitcoin إلى Polkadot بعملية مشابهة لتلك الخاصة بـ Ethereum؛ "عنوان الانفصال" يمكن التحكم فيه بطريقة ما بواسطة Polkadot validators تلقي tokens المنقولة (والبيانات المرسلة بجانبها). يمكن تقديم أدلة SPV عن طريق oracles و، جنبًا إلى جنب مع فترة التأكيد، والمكافأة الممنوحة مقابل ذلك تحديد الكتل غير القانونية التي تنطوي على المعاملة لقد تم "الإنفاق المزدوج". أي tokens مملوكة بعد ذلك في سيتم بعد ذلك، من حيث المبدأ، التحكم في "عنوان الاختراق" بواسطة نفس validator لتوزيعه لاحقًا. لكن المشكلة تكمن في كيفية التحكم بشكل آمن في الودائع من خلال مجموعة دوارة validator. على عكس Ethereum والتي يمكنها اتخاذ قرارات تعسفية بناء على ذلك بناء على مجموعات من التوقيعات، Bitcoin هو إلى حد كبير أكثر محدودية، حيث يقبل معظم العملاء فقط المعاملات متعددة التوقيع بحد أقصى 3 أطراف. وتوسيع هذا العدد إلى 36، أو في الواقع الآلاف كما هو مطلوب في نهاية المطاف، أمر مستحيل بموجب البروتوكول الحالي. أحد الخيارات هو تغيير بروتوكول Bitcoin للتمكين مثل هذه الوظيفة، ولكن ما يسمى بـ "الهارد فورك" في Bitcoin من الصعب ترتيب العالم بناءً على المحاولات الأخيرة. أحد الاحتمالات هو استخدام توقيعات العتبة، مخططات التشفير للسماح لجمهور محدد الهوية المفتاح ليتم التحكم فيه بشكل فعال من خلال "أجزاء" سرية متعددة، يجب استخدام بعضها أو جميعها لإنشاء توقيع صالح. لسوء الحظ، عتبة التوقيعات متوافقة مع Bitcoin's ECDSA باهظة الثمن من الناحية الحسابية إنشاء والتعقيد متعدد الحدود. مخططات أخرى من هذا القبيل توفر توقيعات شنور تكاليف أقل بكثير، إلا أن الجدول الزمني الذي يمكن تقديمهم فيه إلى Bitcoin البروتوكول غير مؤكد. منذ الأمن النهائي للودائع تقع على عاتق عدد من validators المستعبدين، هناك خيار آخر هو تقليل حاملي المفاتيح متعددي التوقيعات إلى عدد كبير فقط مجموعة فرعية مستعبدة من إجمالي validators مثل تلك العتبة تصبح التوقيعات ممكنة (أو، في أسوأ الأحوال، موطن Bitcoin الأصلي التوقيع المتعدد ممكن). وهذا بالطبع يقلل من المبلغ الإجمالي للسندات التي يمكن خصمها كتعويضات في حالة تصرف validator بشكل غير قانوني، ولكن هذا هو تدهور رشيق، ببساطة وضع حد أعلى ل مقدار الأموال التي يمكن تشغيلها بشكل آمن بين شبكتان (أو في الواقع، على نسبة الخسائر في حالة حدوث هجوم من validators تنجح). على هذا النحو، نعتقد أنه ليس من غير الواقعي وضع Bitcoin قابلية التشغيل البيني "سلسلة مظلات افتراضية" آمنة بشكل معقول بين الشبكتين، على الرغم من أنه جهد كبير بجدول زمني غير مؤكد، ومن المحتمل جدًا مما يتطلب تعاون الجهات المعنية في ذلك شبكة.

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.

البروتوكول بالتفصيل

يمكن تقسيم البروتوكول تقريبًا إلى ثلاثة الأجزاء: آلية التوافق، واجهة الباراشين وتوجيه المعاملات بين السلاسل. 6.1. سلسلة التتابع العملية. ال سلسلة التتابع سوف من المحتمل أن تكون سلسلة مشابهة إلى حد كبير لـ Ethereum من حيث أنها يعتمد على الحالة مع عنوان تعيين الحالة للحساب المعلومات، وبشكل رئيسي الأرصدة و(لمنع الإعادة) أ عداد المعاملات. إن وضع الحسابات هنا يحقق غرضًا واحدًا: توفير المحاسبة التي تمتلكها الهوية ما هو حجم الحصة في النظام.7 ومع ذلك، ستكون هناك اختلافات ملحوظة: • لا يمكن نشر العقود من خلال المعاملات. بناءً على الرغبة في تجنب وظائف التطبيق على سلسلة الترحيل، فلن يحدث ذلك دعم النشر العام للعقود. • حساب استخدام الموارد ("الغاز") لا يتم احتسابه؛ منذ الوظائف الوحيدة المتاحة للاستخدام العام سيتم إصلاح الأساس المنطقي وراء حساب الغاز لم يعد يحمل. وعلى هذا النحو، سيتم تطبيق رسوم ثابتة جميع الحالات، مما يسمح بمزيد من الأداء من أي تنفيذ التعليمات البرمجية الديناميكية التي قد يلزم القيام بها وتنسيق معاملة أبسط. • يتم دعم وظيفة خاصة للعقود المدرجة التي تسمح بالتنفيذ التلقائي ومخرجات رسائل الشبكة. في حالة أن سلسلة التتابع تحتوي على جهاز افتراضي ويكون كذلك استنادًا إلى EVM، سيكون لها عدد من التعديلات لضمان أقصى قدر من البساطة. من المحتمل لديك عدد من العقود المضمنة (على غرار تلك الموجودة في العناوين 1-4 في Ethereum) للسماح بالنظام الأساسي المحدد الواجبات التي يجب إدارتها بما في ذلك عقد الإجماع، أ validator العقد وعقد الباراشين. إذا لم يكن EVM، فإن الواجهة الخلفية WebAssembly [2] (wasm) هي البديل الأكثر احتمالاً؛ في هذه الحالة عموما سيكون الهيكل مماثلا، ولكن لن تكون هناك حاجة لكون العقود المضمنة مع Wasm هدفًا قابلاً للتطبيق للغات الأغراض العامة بدلا من اللغات غير الناضجة ولغات محدودة لـ EVM. الانحرافات المحتملة الأخرى عن بروتوكول Ethereum الحالي ممكنة تمامًا، على سبيل المثال تبسيط البروتوكول تنسيق إيصال المعاملة الذي يسمح بالتنفيذ المتوازي للمعاملات غير المتعارضة داخل نفس الكتلة، كما هو مقترح لسلسلة تغييرات Serenity. من الممكن، على الرغم من أنه من غير المحتمل، أن يكون مثل الصفاء يتم نشر السلسلة "النقية" كسلسلة ترحيل، مما يسمح بـ عقد خاص لإدارة أشياء مثل staking token أرصدة بدلا من جعل ذلك جزءا أساسيا من بروتوكول السلسلة. في الوقت الحاضر، نشعر أنه من غير المرجح أن يحدث هذا سيوفر تبسيطًا رائعًا للبروتوكول بشكل كافٍ يستحق التعقيد الإضافي وعدم اليقين الذي ينطوي عليه الأمر في تطويره. 7 كوسيلة لتمثيل المبلغ الذي يكون حامل معين مسؤولاً عن الأمن العام للنظام، فإن حسابات الحصص هذه ستكون كذلك حتما ترميز بعض القيمة الاقتصادية. ومع ذلك، ينبغي أن يكون مفهوما أنه نظرا لعدم وجود نية لاستخدام هذه القيم في بأي طريقة بغرض التبادل بسلع وخدمات في العالم الحقيقي، تجدر الإشارة وفقًا لذلك إلى أنه لا يمكن تشبيه tokens بـ العملة وعلى هذا النحو تحتفظ سلسلة الترحيل بفلسفتها العدمية فيما يتعلق بالتطبيقات.بولكادوت: رؤية لإطار عمل متعدد السلاسل غير متجانس المسودة 1 10 هناك عدد من الأجزاء الصغيرة من الوظائف المطلوبة لإدارة آلية الإجماع، ومجموعة validator، وآلية التحقق من الصحة، والمظلات. هذه يمكن تنفيذها معًا بموجب بروتوكول متجانس. ومع ذلك، ولأسباب تتعلق بالنموذجية، فإننا نصفها بأنها "عقود" لسلسلة الترحيل. ينبغي لهذا يجب أن تؤخذ على أنها أشياء (بمعنى برمجة موجهة للكائنات) تتم إدارتها بواسطة آلية الإجماع الخاصة بسلسلة الترحيل، ولكن ليس ذلك بالضرورة يتم تعريفها كبرامج في أكواد التشغيل التي تشبه EVM، ولا حتى أنها يمكن معالجتها بشكل فردي من خلال نظام الحساب. 6.2. عقد التوقيع المساحي. يحافظ هذا العقد على مجموعة validator. يدير: • ما هي الحسابات حاليًا validators؛ • والتي هي متاحة لتصبح validators باختصار إشعار؛ • الحسابات التي وضعت حصة الترشيح لها أ validator؛ • خصائص كل منها بما في ذلك staking الحجم ومعدلات الدفع المقبولة والعناوين وهويات (الجلسة) قصيرة المدى. يسمح للحساب بتسجيل الرغبة في أن يصبح المستعبدين validator (مع متطلباته)، للترشيح لبعض الهوية، وللمستعبدين الموجودين مسبقًا validators لتسجيل رغبتهم في الخروج من هذه الحالة. إنه أيضًا يتضمن الآلية نفسها لآلية التحقق من الصحة وتحديد المعايير الأساسية. 6.2.1. الحصة-token السيولة. ومن المرغوب فيه عموما أن الحصول على أكبر قدر ممكن من إجمالي staking tokens وتشارك ضمن عمليات صيانة الشبكة منذ ذلك الحين وهذا يربط بشكل مباشر أمان الشبكة بـ "القيمة السوقية" الإجمالية لـ staking token. هذا يمكن بسهولة سيتم تحفيزك من خلال تضخيم العملة وتسليم العائدات لأولئك الذين يشاركون باسم validators. ومع ذلك، فإن القيام بذلك يمثل مشكلة: إذا كان token مقفل في عقد التوقيع المساحي تحت عقوبة التخفيض، فكيف يمكن أن يظل جزء كبير كافيًا السائل من أجل السماح باكتشاف الأسعار؟ إحدى الإجابات على ذلك هي السماح بعقد مشتق مباشر، وتأمين tokens القابلة للاستبدال على token المرهونة الأساسية. ومن الصعب ترتيب ذلك بطريقة خالية من الثقة. علاوة على ذلك، لا يمكن معاملة هذه المشتقات token على قدم المساواة لنفس السبب الذي يجعل سندات حكومات منطقة اليورو المختلفة غير قابلة للاستبدال: هناك هي فرصة لفشل الأصول الأساسية وتصبح لا قيمة لها. مع حكومات منطقة اليورو، يمكن أن يكون هناك default. مع validator-s tokens، يجوز validator التصرف بشكل ضار ويعاقب. تمشيًا مع مبادئنا، اخترنا الحل الأبسط: ألا يتم الرهان على جميع token. وهذا يعني ذلك ستبقى نسبة معينة (ربما 20%) من tokens سائلة بالقوة. وعلى الرغم من أن هذا غير مثالي من منظور أمني، فمن غير المرجح أن يحدث فرقًا جوهريًا أمن الشبكة؛ وسيظل من الممكن تقديم 80% من التعويضات الممكنة نتيجة لمصادرة السندات مقارنة بـ "الحالة المثالية" بنسبة 100% staking. يمكن استهداف النسبة بين tokens المرهونة والسائلة بكل بساطة من خلال آلية المزاد العكسي. بشكل أساسي، أصحاب token مهتمون بأن يكونوا validator سينشر كل منهم عرضًا لعقد staking ينص على ذلك الحد الأدنى لمعدل الدفع الذي سيطلبون الحصول عليه جزء. في بداية كل جلسة (ستكون الجلسات يحدث بانتظام، ربما مرة واحدة في الساعة). سيتم ملء الخانات validator وفقًا لكل مرشح محتمل حصة validator ومعدل العائد. خوارزمية واحدة محتملة لأن هذا سيكون بمثابة قبول أولئك الذين لديهم أقل العروض تمثل حصة لا تزيد عن إجمالي الحصة المستهدفة مقسومًا على عدد الفتحات وما لا يقل عن الحد الأدنى لنصف هذا المبلغ. إذا لم يكن من الممكن ملء الفتحات، يمكن تخفيض الحد الأدنى بشكل متكرر بعامل ما من أجل الإرضاء. 6.2.2. ترشيح. من الممكن الترشيح دون ثقة منها staking tokens إلى validator نشط، مما يمنحهم مسؤولية واجبات validators. أعمال الترشيح من خلال نظام التصويت بالموافقة. يستطيع كل مرشح محتمل نشر تعليمات لعقد staking التعبير عن هوية واحدة أو أكثر validator تحت من المسؤولية وهم على استعداد لتكليف سنداتهم. في كل جلسة، يتم توزيع سندات المرشحين على أن تكون ممثلة بواحد أو أكثر من validators. تعمل خوارزمية التشتيت على تحسين مجموعة من validators من الإجمالي المكافئ السندات. تصبح سندات الترشيح تحت المسؤولية الفعلية لـ validator أوكسب الفائدة أو المعاناة أ تخفيف العقوبة وفقا لذلك. 6.2.3. مصادرة/حرق السندات. يؤدي سلوك validator المعين إلى تخفيض عقابي لسنداتهم. إذا يتم تخفيض السند إلى أقل من الحد الأدنى المسموح به، و انتهت الجلسة قبل الأوان وبدأت جلسة أخرى. تتضمن القائمة غير الشاملة لسوء السلوك الذي يعاقب عليه validator ما يلي: • أن تكون جزءًا من مجموعة غير قادرة على تقديم الدعم الإجماع على صحة كتلة المظلة؛ • التوقيع الفعال على صلاحية التوقيع كتلة المظلة • عدم القدرة على توريد حمولات الخروج سابقاً تم التصويت عليه حسب المتاح؛ • عدم النشاط أثناء عملية الإجماع. • التحقق من صحة كتل سلسلة الترحيل على الشوكات المتنافسة. تهدد بعض حالات سوء السلوك سلامة الشبكة (مثل التوقيع على كتل سلسلة غير صالحة والتحقق من صحة جوانب متعددة من الشوكة) وبالتالي تؤدي إلى نفي فعال من خلال التخفيض الكلي للسند. في حالات أخرى أقل خطورة (مثل عدم النشاط في الإجماع العملية) أو الحالات التي لا يمكن فيها تخصيص اللوم بدقة (كونك جزءًا من مجموعة غير فعالة)، جزء صغير يجوز بدلاً من ذلك تغريم السند. وفي الحالة الأخيرة هذا يعمل بشكل جيد مع زبد المجموعة الفرعية للتأكد من أن البرامج الضارة تعاني العقد من خسارة أكبر بكثير من العقد الخيرية المتضررة بشكل جانبي. في بعض الحالات (على سبيل المثال، التحقق من صحة الشوكة المتعددة وغير الصالح توقيع الكتلة الفرعية) لا يستطيع validators اكتشاف سوء سلوك بعضهم البعض بسهولة منذ التحقق المستمر ستكون مهمة كل كتلة باراشين مهمة شاقة للغاية. هنا من الضروري حشد دعم الأطراف الخارجية عملية التحقق للتحقق من سوء السلوك والإبلاغ عنه. يحصل الطرفان على مكافأة مقابل الإبلاغ عن مثل هذا النشاط؛ مصطلحهم "الصيادون" ينبع من عدم الاحتمال من مثل هذه المكافأة. وبما أن هذه الحالات عادة ما تكون خطيرة للغاية، فإننا نتصور أنه يمكن بسهولة دفع أي مكافآت من السند المصادر. بشكل عام نحن نفضل تحقيق التوازن في الحرق (أي التخفيض إلى لا شيء) مع إعادة التخصيص، بدلاً من محاولة إعادة التخصيص بالجملة. وهذا له تأثير

بولكادوت: رؤية لإطار عمل متعدد السلاسل غير متجانس المسودة 1 11 زيادة القيمة الإجمالية لـ token، وتعويض الشبكة بشكل عام إلى حد ما وليس على وجه التحديد الطرف المشارك في الاكتشاف. هذا هو في المقام الأول بمثابة السلامة الآلية: يمكن أن تؤدي الكميات الكبيرة المعنية إلى تحفيز السلوك المتطرف والحاد إذا كانت جميعها منح لهدف واحد. بشكل عام، من المهم أن تكون المكافأة كبيرة بما يكفي لجعل عملية التحقق جديرة بالاهتمام بالنسبة للشبكة، ولكن ليست كبيرة بحيث تعوض تكاليف مواجهة مشكلة ما. مجرم "على المستوى الصناعي" ممول بشكل جيد وجيد التنظيم هجوم قرصنة على بعض الأشخاص غير المحظوظين validator لإجبارهم على سوء السلوك. بهذه الطريقة، يجب أن يكون المبلغ المطالب به بشكل عام لا أكبر من الرابطة المباشرة للمخطئ validator، لئلا أ ينشأ الحافز الضار من سوء التصرف والإبلاغ عن المكافأة. ويمكن مكافحة هذا إما بشكل صريح من خلال الحد الأدنى من متطلبات السندات المباشرة لكونها validator أو ضمنيًا من خلال تثقيف المرشحين بأن validator الذين لديهم سندات قليلة مودعة ليس لديهم حافز كبير أن تتصرف بشكل جيد. 6.3. سجل الباراشين. يتم تعريف كل مظلة في هذا التسجيل. إنها بنية بسيطة نسبيًا تشبه قاعدة البيانات وتحتوي على معلومات ثابتة وديناميكية كل سلسلة. تتضمن المعلومات الثابتة فهرس السلسلة (ملف بسيط عدد صحيح)، إلى جانب هوية بروتوكول التحقق من الصحة، أ وسائل التمييز بين الفئات المختلفة Parachain بحيث يمكن أن تكون خوارزمية التحقق الصحيحة يتم تشغيله بواسطة validators المخصص لتقديم مرشح صالح. سيركز إثبات المفهوم الأولي على الوضع خوارزميات التحقق الجديدة في العملاء أنفسهم، مما يتطلب بشكل فعال شوكة صلبة للبروتوكول في كل مرة تمت إضافة فئة إضافية من السلسلة. في نهاية المطاف، على أية حال، قد يكون من الممكن تحديد خوارزمية التحقق من الصحة في طريقة صارمة وفعالة بما يكفي للعملاء قادرة على العمل بفعالية مع المظلات الجديدة دون شوكة صلبة. أحد السبل الممكنة لذلك هو التحديد خوارزمية التحقق من صحة Parachain في راسخة، لغة مجمعة محليًا ومحايدة للنظام الأساسي مثل WebAssembly. من الضروري إجراء بحث إضافي لتحديد إذا كان هذا ممكنا حقا، ولكن إذا كان الأمر كذلك، فإنه يمكن أن يحقق معها الميزة الهائلة المتمثلة في استبعاد الشوكات الصلبة من أجل الخير. تتضمن المعلومات الديناميكية جوانب من نظام توجيه المعاملات التي يجب أن تحظى باتفاقية عالمية كقائمة انتظار دخول المظلة (الموصوفة في القسم 6.6). السجل قادر على إضافة المظلات فقط من خلال التصويت في الاستفتاء الكامل؛ يمكن إدارة هذا داخليًا ولكن من المرجح أن يتم وضعها في الخارج عقد الاستفتاء من أجل تسهيل إعادة الاستخدام بموجب المزيد من مكونات الحوكمة العامة. المعلمات ل متطلبات التصويت (على سبيل المثال، أي نصاب قانوني مطلوب، الأغلبية مطلوب) لتسجيل سلاسل إضافية وغيرها، سيتم تحديد ترقيات النظام الأقل رسمية في ملف "master الدستور" ولكن من المرجح أن يتبعوا دستورًا تقليديًا إلى حد ما المسار، على الأقل في البداية. الصياغة الدقيقة خارج نطاق العمل الحالي، ولكن على سبيل المثال. أغلبية الثلثين لتمرير أكثر من ثلث إجمالي النظام قد يكون التصويت على الحصة بشكل إيجابي نقطة انطلاق معقولة. وتشمل العمليات الإضافية تعليق وإزالة المظلات. ونأمل أن التعليق أبدا يحدث ذلك، إلا أنه مصمم ليكون أقل ضمانًا هناك بعض المشاكل المستعصية في نظام التحقق من صحة سلسلة الباراتشين. المثال الأكثر وضوحا حيث قد يكون ذلك ما يلزم هو وجود اختلاف حاسم بالإجماع بين التطبيقات التي تؤدي إلى عدم قدرة validators على الاتفاق عليها صلاحية أو كتل. سيتم تشجيع المصادقين على استخدامها تطبيقات العميل المتعددة حتى يتمكنوا من ذلك لاكتشاف مثل هذه المشكلة قبل مصادرة السندات. وبما أن التعليق هو إجراء طارئ، فإنه سيكون كذلك تحت رعاية الديناميكية validator- التصويت بالأحرى من الاستفتاء. إعادة التثبيت ستكون ممكنة على حد سواء من validators أو الاستفتاء. إن إزالة المظلات تمامًا لن تأتي إلا بعد الاستفتاء والذي سيكون مطلوبا أ فترة سماح كبيرة للسماح بالانتقال المنظم إلى إما سلسلة مستقلة أو أن تصبح جزءًا من سلسلة أخرى نظام الإجماع. من المحتمل أن تكون فترة السماح من ترتيب الأشهر ومن المرجح أن يتم تحديده على أساس كل سلسلة في سجل الباراشين من أجل أن تكون مختلفة يمكن أن تتمتع سلاسل المظلات بفترات سماح مختلفة وفقًا لـ حاجتهم. 6.4. ختم كتل التتابع. يشير الختم، في جوهره، إلى عملية تحديد المعايير القانونية؛ وهذا هو، البيانات الأساسية تحويل الذييرسم الأصل إلى شيء فريد وذو معنى بشكل أساسي. تحت سلسلة PoW، الختم هو بشكل فعال مرادف للتعدين. في حالتنا، يتضمن جمع البيانات الموقعة من validators حول صحة وتوافر وقانونية ملف كتلة سلسلة تتابع معينة وكتل المظلة ذلك إنه يمثل. إن آليات خوارزمية الإجماع BFT الأساسية خارج نطاق العمل الحالي. سوف نقوم بذلك بدلاً من ذلك وصفها باستخدام بدائية والتي تفترض أ آلة الدولة التي تخلق الإجماع. في النهاية نتوقع للاستلهام من عدد من الإجماع الواعد BFT الخوارزميات في القلب؛ Tangaora [9] (أ BFT متغير من الطوافة [16])، النعناع [11] وعسل الغريرBFT [14]. سيتعين على الخوارزمية التوصل إلى اتفاق بشأن سلاسل مظلات متعددة بالتوازي، وبالتالي تختلف عن المعتاد blockchain آليات الإجماع. نحن نفترض ذلك مرة واحدة وبعد التوصل إلى الإجماع، أصبحنا قادرين على تسجيل الإجماع في دليل قاطع يمكن أن يقدمه أي من المشاركين إليها. ونحن نفترض أيضا أن سوء السلوك ضمن البروتوكول يمكن عموما تخفيضها إلى صغيرة مجموعة تحتوي على مشاركين يسيئون التصرف لتقليلها 8. الأضرار الجانبية عند تطبيق العقوبة يتم وضع الدليل، الذي يأخذ شكل بياناتنا الموقعة، في رأس كتلة سلسلة التتابع معًا مع بعض المجالات الأخرى، ليس أقلها جذر Statetrie لسلسلة الترحيل وجذر محاولة المعاملة. ال الختم عملية يأخذ مكان تحت أ واحد توليد الإجماع آلية معالجة على حد سواء ال كتلة سلسلة التتابع وكتل المظلات التي تصنعها جزء من محتوى التتابع: لا يتم "ارتكاب" المظلات بشكل منفصل من قبل مجموعاتها الفرعية ثم يتم تجميعها في وقت لاحق. يؤدي هذا إلى عملية أكثر تعقيدًا لسلسلة الترحيل، ولكنه يسمح لنا بإكمال إجماع النظام بأكمله في مرحلة واحدة، مما يقلل من زمن الوصول ويسمح لمتطلبات توافر البيانات المعقدة للغاية والتي مفيدة لعملية التوجيه أدناه. 8إن مخططات الإجماع القائمة على إثبات الحصة (PoS) BFT مثل Tendermint BFT وSlasher الأصلي تفي بهذه التأكيدات.

بولكادوت: رؤية لإطار عمل متعدد السلاسل غير متجانس المسودة 1 12 قد تكون حالة آلة الإجماع الخاصة بكل مشارك يمكن تصميمه على شكل جدول بسيط (ثنائي الأبعاد). كل مشارك (validator) لديه مجموعة من المعلومات في النموذج من البيانات الموقعة ("الأصوات") من المشاركين الآخرين، فيما يتعلق بكل مرشح كتلة سلسلة المظلات وكذلك مرشح كتلة سلسلة التتابع. مجموعة المعلومات مكونة من قطعتين من البيانات: التوفر: هل هذا validator لديك الخروج معلومات ما بعد المعاملة من هذه الكتلة لذلك هل هم قادرون على التحقق بشكل صحيح من صحة مرشحي الباراشين في الكتلة التالية؟ يمكنهم التصويت إما 1 (معروف) أو 0 (غير معروف بعد). مرة واحدة التصويت 1، وهم ملتزمون بالتصويت بالمثل بقية هذه العملية. الأصوات في وقت لاحق التي لا تفعل ذلك احترام هذا هو سبب للعقاب. الصلاحية: هل الكتلة المظلية صالحة وهي كلها البيانات المرجعية خارجيًا (على سبيل المثال. المعاملات) متاح؟ هذا ينطبق فقط على validator المعينين لسلسلة الباراشين التي يصوتون عليها. يمكنهم التصويت إما بـ 1 (صالح)، أو -1 (غير صالح) أو 0 (لم يعرف بعد). بمجرد أن يصوتوا بغير الصفر، فإنهم ملتزمون بالتصويت بهذه الطريقة لبقية هذه العملية. الأصوات اللاحقة التي لا تحترم هذا هي أسباب للعقاب. يجب على جميع validators تقديم الأصوات؛ ويجوز إعادة تقديم الأصوات، المؤهلة بموجب القواعد المذكورة أعلاه. تطور يمكن صياغة الإجماع على أنه خوارزميات إجماع قياسية متعددة BFT على كل سلسلة باراشين تحدث بالتوازي. نظرًا لأنه من المحتمل أن يتم إحباطها نسبيًا أقلية صغيرة من الجهات الفاعلة الخبيثة تتركز فيها مجموعة باراشين واحدة، يوجد إجماع عام على ذلك إنشاء مساندة، مما يحد من السيناريو الأسوأ طريق مسدود إلى واحد أو أكثر من كتل المظلة الفارغة (و جولة عقابية للمسؤولين). القواعد الأساسية لصحة الكتل الفردية (التي تسمح بوصول إجمالي مجموعة validators ككل الإجماع على أن يصبح المرشح الفريد من نوعه ليتم الرجوع إليها من التتابع الكنسي): • يجب أن يكون تصويت ثلثي validators على الأقل إيجابيًا وعدم تصويت أي منهم سلبيًا؛ • يجب أن يحصل أكثر من ثلث validator على تصويت إيجابي على توفر معلومات قائمة انتظار الخروج. إذا كان هناك صوت إيجابي واحد على الأقل وصوت سلبي واحد على الأقل بشأن الصلاحية، يتم إنشاء حالة استثنائية ويجب على مجموعة validators بأكملها التصويت لتحديد ذلك إذا كانت هناك أطراف كيدية أو إذا كان هناك حادث عرضي شوكة. فإلى جانب الصحيح والباطل، هناك نوع ثالث من الأصوات مسموح بها، أي ما يعادل التصويت لكليهما، وهذا يعني ذلك العقدة لديها آراء متضاربة. قد يكون هذا بسبب يقوم مالك العقدة بتشغيل تطبيقات متعددة والتي تقوم بذلك لا أتفق، مما يشير إلى الغموض المحتمل في البروتوكول. بعد احتساب جميع الأصوات من مجموعة validator الكاملة، إذا الرأي الخاسر له على الأقل نسبة صغيرة (إلى تكون ذات معلمات؛ على الأكثر النصف، وربما أقل بكثير) من أصوات الرأي الفائز، فيفترض ذلك يكون شوكة المظلة عرضية ويتم تعليق المظلة تلقائيًا من عملية الإجماع. وإلا فإننا نفترض أنه عمل خبيث ونعاقب عليه الأقلية الذين صوتوا للرأي المخالف. والختام عبارة عن مجموعة من التوقيعات الدالة الكنسية. قد يتم بعد ذلك إغلاق كتلة سلسلة الترحيل وبدأت عملية إغلاق الكتلة التالية. 6.5. تحسينات لختم كتل التتابع. بينما تعطي طريقة الختم هذه ضمانات قوية على تشغيل النظام، ولا تتوسع بشكل جيد نظرًا لأن المعلومات الأساسية لكل سلسلة باراشين يجب أن تحتوي على معلوماتها الخاصة التوفر مضمون بأكثر من ثلث جميع validators. وهذا يعني أن كل validator له بصمة المسؤولية ينمو مع إضافة المزيد من السلاسل. بينما توفر البيانات ضمن شبكات الإجماع المفتوحة هي في الأساس مشكلة لم يتم حلها، وهناك طرق لتخفيف الحمل الموضوع على العقد validator. واحدة بسيطة الحل هو إدراك أنه بينما يجب على validators تحمله يتحملون مسؤولية توفر البيانات، فهم لا يحتاجون فعليًا إلى تخزين البيانات أو توصيلها أو تكرارها بأنفسهم. صوامع البيانات الثانوية، ربما تتعلق بـ (أو حتى ذات الصلة). نفسه) يمكن للمجمعين الذين يقومون بتجميع هذه البيانات إدارة مهمة ضمان التوفر مع validators الذين يقدمون جزءًا من فوائدهم/دخلهم في الدفع. ومع ذلك، في حين أن هذا قد يشتري بعض قابلية التوسع المتوسطة، إلا أنه لا يزال لا يساعد في حل المشكلة الأساسية؛ منذ ذلك الحين ستتطلب إضافة المزيد من السلاسل بشكل عام validators إضافية، وينمو استهلاك موارد الشبكة المستمر (خاصة فيما يتعلق بعرض النطاق الترددي) مع مربع الالسلاسل، خاصية لا يمكن الدفاع عنها على المدى الطويل. في نهاية المطاف، من المرجح أن نستمر في ضرب رؤوسنا ضد القيد الأساسي الذي ينص على ذلك شبكة توافقية تعتبر آمنة ومتاحة متطلبات النطاق الترددي المستمر هي في حدود الإجمالي validators مرات إجمالي معلومات الإدخال. هذا يرجع إلى عدم قدرة شبكة غير موثوقة على توزيع مهمة تخزين البيانات بشكل صحيح عبر العديد من العقد، والتي تقع بصرف النظر عن مهمة المعالجة القابلة للتوزيع بشكل بارز. 6.5.1. تقديم الكمون. إحدى وسائل تخفيف هذا القاعدة هي تخفيف فكرة الفورية. من خلال المطالبة بنسبة 33%+1 validators للتصويت على التوفر فقط في نهاية المطاف، وليس على الفور، يمكننا الاستفادة بشكل أفضل من نشر البيانات الأسية والمساعدة في تجاوز الذروة في تبادل البيانات. مساواة معقولة (على الرغم من عدم إثباتها) قد يكون: (1) الكمون = المشاركين × السلاسل في ظل النموذج الحالي، يتم تغيير حجم النظام مع عدد السلاسل للتأكد من أن المعالجة موزعة؛ نظرًا لأن كل سلسلة ستتطلب validator واحدًا على الأقل ونصلح شهادة التوفر إلى ثابت نسبة validators، ثم ينمو المشاركون بالمثل مع عدد السلاسل ننتهي بـ: (2) الكمون = الحجم 2 وهذا يعني أنه مع نمو النظام، يصبح النطاق الترددي المطلوب وزمن الوصول حتى التوفر معروفًا عبر الشبكة الشبكة، والتي يمكن أيضًا وصفها بالرقم من الكتل قبل النهاية، يزيد مع مربعها. هذا هو عامل نمو كبير وقد يتحول إلى عائق ملحوظ ويجبرنا على اتباع نماذج "غير مسطحة" مثل إنشاء عدة "Polkadotes" في تسلسل هرمي لتوجيه المشاركات متعدد المستويات من خلال شجرة من سلاسل التتابع.

بولكادوت: رؤية لإطار عمل متعدد السلاسل غير متجانس المسودة 1 13 6.5.2. المشاركة العامة. اتجاه آخر ممكن هو تجنيد المشاركة العامة في العملية من خلال أ نظام الشكاوى الصغيرة. على غرار الصيادين، هناك يمكن أن تكون أطرافًا خارجية لضبط validators الذين يطالبون التوفر. وتتمثل مهمتهم في العثور على شخص يبدو غير قادر على إثبات هذا التوافر. في القيام بذلك هم يمكنه تقديم شكوى صغيرة إلى validators الآخرين. إثبات العمل أو يمكن استخدام السندات المرصعة للتخفيف من هجوم سيبيل الأمر الذي من شأنه أن يجعل النظام عديم الفائدة إلى حد كبير. 6.5.3. ضمانات التوفر. سيكون الطريق النهائي هو قم بترشيح مجموعة ثانية من validators المستعبدة كـ "مدى التوفر الضامنين”. سيتم ربطها تمامًا كما هو الحال مع validators العادية، وقد يتم أخذها من نفس المجموعة (على الرغم من أنه إذا كان الأمر كذلك، فسيتم اختيارهم على مدى فترة طويلة، على الأقل لكل جلسة). على عكس validators العادية، فهي لن يقوم بالتبديل بين المظلات بل سيفعل ذلك قم بتشكيل مجموعة واحدة للتأكيد على توفر جميع البيانات المهمة بين السلاسل. وهذا له ميزة تخفيف التكافؤ بين المشاركين والسلاسل. في الأساس، يمكن للسلاسل Grow (مع مجموعة السلسلة الأصلية validator)، بينما يمكن للمشاركين، وعلى وجه التحديد أولئك الذين يشاركون في اختبار توافر البيانات، أن يظلوا على الأقل خطيًا فرعيًا وربما ثابت. 6.5.4. تفضيلات المنسق. جانب واحد مهم من هذا النظام هو التأكد من وجود اختيار صحي لل يقوم المجمعون بإنشاء الكتل في أي سلسلة معينة. إذا أ سيطر المنسق الفردي على المظلة ثم بعض الهجمات تصبح أكثر جدوى نظرا لاحتمال عدم وجود سيكون توافر البيانات الخارجية أقل وضوحًا. أحد الخيارات هو وزن كتل المظلات بشكل اصطناعي آلية شبه عشوائية من أجل تفضيل مجموعة واسعة من المجمعات. في الحالة الأولى، سوف نطلب كجزء من آلية الإجماع التي يفضلها validator تم تحديد مرشحي كتلة المظلة على أنهم "أثقل". وبالمثل، يجب علينا تحفيز validators لمحاولة القيام بذلك يقترحون الكتلة الأثقل التي يمكنهم العثور عليها، وقد تكون هذه هي الكتلة يتم ذلك من خلال جعل جزء من مكافأتهم يتناسب مع وزن مرشحهم. لضمان حصول المحصلين على عادلة معقولة فرصة اختيار مرشحهم على أنه الفائز المرشح بالإجماع، فإننا نحدد الوزن المحدد لـ أ يتم تحديد مرشح كتلة المظلة على وظيفة عشوائية متصلة بكل أداة تجميع. على سبيل المثال، أخذ قياس مسافة XOR بين عنوان المُجمِّع وبعض الأرقام العشوائية الزائفة الآمنة تشفيرًا يتم تحديدها بالقرب من نقطة الكتلة التي يتم إنشاؤها ("التذكرة الفائزة" الافتراضية). وهذا يعطي كل منهما بشكل فعال المُجمِّع (أو، بشكل أكثر تحديدًا، عنوان كل مُجمِّع) أ فرصة عشوائية لفوز كتلة مرشحيهم جميع الآخرين. للتخفيف من هجوم سيبيل الذي يقوم به مُجمِّع واحد "ينقب" عن عنوان قريب من التذكرة الفائزة، وبالتالي مفضلًا لكل كتلة، سنضيف بعض القصور الذاتي إلى عنوان المجمّع. قد يكون هذا بسيطًا مثل طلبهم للحصول على مبلغ أساسي من الأموال في العنوان. أكثر سيكون النهج الأنيق هو وزن القرب من التذكرة الفائزة بمبلغ الأموال المتوقفة في العنوان المعني. في حين لم يتم بعد النمذجة، فمن الممكن تماما أن هذه الآلية تمكن حتى جدا أصحاب المصلحة الصغار للمساهمة كمجمع. 6.5.5. كتل الوزن الزائد. إذا تم اختراق مجموعة validator، فيمكنهم إنشاء واقتراح كتلة بالرغم من ذلك صالحة، وتستغرق قدرا هائلا من الوقت للتنفيذ و التحقق من صحة. هذه مشكلة نظرًا لأن مجموعة validator يمكنها ذلك تشكيل كتلة بشكل معقول والتي تستغرق وقتًا طويلاً جدًا التنفيذ ما لم تكن بعض المعلومات المعينة معروفة بالفعل مما يسمح بالاختصار، على سبيل المثال. التخصيم كبير رئيس الوزراء. إذا كان أحد المتعاونين يعرف هذه المعلومات، إذن سيكون لديهم ميزة واضحة في الحصول على ميزة خاصة بهم تم قبول المرشحين طالما كان الآخرون مشغولين بمعالجة الكتلة القديمة. نحن نسمي هذه الكتل الوزن الزائد. الحماية ضد validator التي تقوم بإرسال هذه الكتل والتحقق من صحتها تقع إلى حد كبير تحت نفس المظهر كما في كتل غير صالحة، ولكن مع تحذير إضافي: منذ ذلك الحين الوقت المستغرق لتنفيذ الكتلة (وبالتالي حالتها الوزن الزائد) أمر شخصي، النتيجة النهائية للتصويت على سوف ينقسم سوء السلوك إلى ثلاثة معسكرات أساسية. واحد الاحتمال هو أن الكتلة بالتأكيد ليست زائدة الوزن - وفي هذه الحالة يعلن أكثر من الثلثين أنهم قادرون على ذلك تنفيذ الكتلة ضمن حد معين (على سبيل المثال، 50% من إجمالي الوقت المسموح به بين الكتل). آخر هو أن الكتلة هي دزيادة الوزن بالتأكيد - سيكون هذا إذا كان أكثر من يعلن الثلثان أنهم لا يستطيعون تنفيذ الكتلة ضمن الحد المذكور. هناك احتمال أخير وهو متساوٍ إلى حد ما انقسام في الرأي بين validators. في هذه الحالة يجوز لنا اختيار القيام ببعض العقوبة المتناسبة. للتأكد من أن validators يمكنها التنبؤ بموعد حدوثها باقتراح كتلة ذات وزن زائد، قد يكون من المعقول أن نطلب منهم نشر معلومات عن أدائهم لكل كتلة. وعلى مدى فترة زمنية كافية، وهذا من شأنه أن يسمح لهم بتحديد سرعة المعالجة الخاصة بهم مقارنة بأقرانهم الذين سيحكمون عليهم. 6.5.6. التأمين المجمع. تبقى مشكلة واحدة لـ validators: على عكس شبكات إثبات العمل (PoW)، للتحقق من المجمّع من أجل الصلاحية، يجب عليهم تنفيذ المعاملات فيه فعليًا. يمكن للمجمعين الضارين تغذية كتل غير صالحة أو زائدة الوزن إلى validators مما يسبب لهم الحزن (إهدار مواردهم) وفرض تكلفة فرصة كبيرة محتملة. للتخفيف من هذا، نقترح استراتيجية بسيطة على جزء من validators. أولاً، تم إرسال مرشحي كتلة الباراشين يجب التوقيع على validators من حساب سلسلة الترحيل بالأموال إذا لم تكن كذلك، فيجب أن ينخفض validator ذلك على الفور. ثانيًا، ينبغي ترتيب هؤلاء المرشحين حسب الأولوية من خلال مجموعة (مثل الضرب) من مبلغ الأموال في الحساب يصل إلى بعض الحد الأقصى، و عدد الكتل السابقة التي اقترحها المُجمِّع بنجاح في الماضي (ناهيك عن أي كتل سابقة العقوبات)، وعامل القرب من الفوز تذكرة كما نوقش سابقا. يجب أن يكون الغطاء هو نفسه مثل التعويضات الجزائية المدفوعة إلى validator في هذه القضية منهم إرسال كتلة غير صالحة. لتثبيط المتعاونين من إرسال مرشحي الكتلة غير الصالحين أو ذوي الوزن الزائد إلى validators، يجوز لأي validator ضع في الكتلة التالية معاملة تتضمن الكتلة المخالفة التي تدعي سوء التصرف مع تأثير تحويل بعض أو كل الأموال الموجودة في المتعاقد الذي يسيء التصرف حساب للمتضرر validator. يقوم هذا النوع من المعاملات بتشغيل أي معاملات أخرى للتأكد من عدم قدرة المُجمِّع على ذلك إزالة الأموال قبل العقوبة. كمية الأموال المحولة كتعويضات هي معلمة ديناميكية حتى الآن

بولكادوت: رؤية لإطار عمل متعدد السلاسل غير متجانس المسودة 1 14 ليتم تصميمها ولكن من المحتمل أن تكون نسبة من مكافأة الكتلة validator لتعكس مستوى الحزن الناتج. ل منع validators الخبيثة من مصادرة أموال المتعاونين بشكل تعسفي، يجوز للمنسق استئناف قرار validator أمام هيئة محلفين مكونة من validators تم اختيارها عشوائيًا في المقابل لوضع وديعة صغيرة. إذا وجدوا في صالح validator، فسيتم استهلاك الوديعة من قبلهم. إذا لم يكن الأمر كذلك، فإن يتم إرجاع الوديعة ويتم تغريم validator (منذ validator في وضع مقبب أكثر بكثير، الإرادة الجميلة من المرجح أن تكون ضخمة إلى حد ما). 6.6. إنترشين الصفقة التوجيه. إنترشين يعد توجيه المعاملات أحد أعمال الصيانة الأساسية مهام سلسلة التتابع وvalidators. هذا هو المنطق الذي يحكم كيفية تحول المعاملة المنشورة (التي غالبًا ما يتم اختصارها إلى "نشر") إلى ناتج مرغوب من سلسلة باراتشين مصدر واحد إلى مدخلات غير قابلة للتفاوض لسلسلة باراتشين وجهة أخرى دون أي ثقة المتطلبات. نختار الصياغة أعلاه بعناية؛ ولا سيما نحن لا تتطلب أن تكون هناك معاملة في المصدر Parachain قد وافق صراحة على هذا المنصب. الوحيد القيود التي نضعها على نموذجنا هي تلك المظلات يجب توفيرها وتعبئتها كجزء من الكتلة الشاملة الخاصة بها معالجة الإخراج، والمشاركات التي هي نتيجة تنفيذ الكتلة. تم تنظيم هذه المنشورات على هيئة عدة قوائم انتظار FIFO؛ ال يُعرف عدد القوائم بقاعدة التوجيه وقد يكون كذلك حوالي 16. والجدير بالذكر أن هذا الرقم يمثل الكمية من المظلات التي يمكننا دعمها دون الحاجة إلى اللجوء إليها التوجيه متعدد المراحل. في البداية، Polkadot سيدعم هذا نوع من التوجيه المباشر، ولكننا سنحدد واحدًا ممكنًا عملية توجيه متعددة المراحل ("التوجيه الفائق") كوسيلة من التوسع إلى ما هو أبعد من المجموعة الأولية من المظلات. نحن نفترض ذلك الكل المشاركين أعرف ال مجموعات فرعية للكتلتين التاليتين n، n + 1. باختصار، يتبع نظام التوجيه هذه المراحل: • CollatorS: اتصل بأعضاء V alidators[n][S] • المتعاونون: لكل مجموعة فرعية: تأكد من ذلك عضو واحد على الأقل من V alidators[n][s] على اتصال • المقارنات: لكل مجموعة فرعية: نفترض الخروج [n −1] [s] [S] متاح (جميع المشاركات الواردة البيانات إلى 'S' من الكتلة الأخيرة) • المقارنات: إنشاء مرشح الكتلة b لـ S: (b.header، b.ext، b.proof، b.receipt، b.egress) • المقارنات: أرسل دليل معلومات إثبات [S] = (b.header، b.ext، b.proof، b.receipt) إلى أدوات تعديل V [ن] [S] • CollatorS: ضمان بيانات المعاملات الخارجية b.ext أصبح متاحًا للمجمعين وvalidators الآخرين • المقارنات: ل لكل منهما مجموعة فرعية الصورة: أرسل الخروج معلومات الخروج [ن] [S] [ق] = (b.header، b.receipt، b.egress[s]) ل ال تلقي المجموعة الفرعية أعضاء من التالي كتلة أدوات تعديل V[n + 1][s] • V alidatorV: قم بتوصيل جميع أعضاء المجموعة نفسها مسبقًا للكتلة التالية: Let N = Chain[n + 1][V ]; الاتصال جميع validators v بحيث تكون السلسلة[n + 1][v] = N • الإضافة الخامسة : جمع كافة إدخال البيانات لهذا الغرض كتلة: ل لكل منهما مجموعة فرعية الصورة: استرداد egress[n −1][s][Chain[n][V ]]، احصل عليه من validators v الأخرى بحيث Chain[n][v] = Chain[n][V ]. من المحتمل أن يتم المرور عبر validators أخرى تم اختيارها عشوائيًا لإثبات المحاولة. • الإضافة الخامسة : قبول البراهين المرشحة لهذا إثبات الكتلة [سلسلة [ن] [V ]]. صلاحية كتلة التصويت • الإضافة الخامسة : قبول بيانات خروج المرشح ل الكتلة التالية: بالنسبة لكل مجموعة فرعية، اقبل الخروج [ن] [ق] [ن]. توفر مخرج كتلة التصويت؛ إعادة النشر بين المهتمين validators v هكذا السلسلة[n + 1][v] = السلسلة[n + 1][V ]. • المصادقة الخامسة: حتى يتم الإجماع حيث: الخروج [ن] [من] [إلى] هو قائمة انتظار الخروج الحالية معلومات للمشاركات التي تنتقل من Parachain "من"، إلى المظلة "إلى" في الكتلة رقم "ن". CollatorS عبارة عن أداة تجميع لـ parachain S. V alidators[n][s] هي مجموعة validators لـ parachain s عند الكتلة رقم n. على العكس من ذلك، Chain[n][v] هي المظلة التي تم تعيين validator v لها على الكتلة رقم n. block.egress[to] هو الخروج قائمة انتظار المشاركات من بعض كتلة المظلة التي الوجهة باراشين هو. نظرًا لأن المجامعين يجمعون رسوم (المعاملة) بناءً على ذلك تصبح كتلهم أساسية ويتم تحفيزهم عليها تأكد من أنه بالنسبة لكل وجهة للكتلة التالية، فإن المجموعة الفرعية يتم إبلاغ الأعضاء بقائمة انتظار الخروج من الحاضر كتلة. يتم تحفيز المصادقين فقط لتشكيل إجماع على كتلة (المظلة)، وبالتالي فإنهم لا يهتمون بها كثيرًا والتي تصبح كتلة المترجم في النهاية أساسية. في من حيث المبدأ، يمكن لـ validator أن يشكل ولاءً مع أحد المتعاونين ويتآمر لتقليل فرص المتعاونين الآخرين تصبح الكتل أساسية، ولكن هذا أمر صعب للترتيب بسبب الاختيار العشوائيإجراء validators لـ ويمكن الدفاع ضد سلاسل المظلات من خلال تخفيض الرسوم المستحقة على كتل المظلات التي تصمد عملية الإجماع. 6.6.1. توفر البيانات الخارجية. ضمان المظلة تعتبر البيانات الخارجية المتوفرة بالفعل مشكلة دائمة الأنظمة اللامركزية التي تهدف إلى توزيع عبء العمل عبر الشبكة. في قلب المشكلة هو التوفر المشكلة التي تنص على أنه لأنه ليس من الممكن تقديم دليل غير تفاعلي على التوفر ولا من أي نوع دليل على عدم التوفر، لنظام BFT للعمل بشكل صحيح التحقق من صحة أي انتقال تعتمد صحته على توافر بعض البيانات الخارجية، والحد الأقصى لعددها من العقد البيزنطية المقبولة، بالإضافة إلى واحدة، من النظام يجب أن تشهد على البيانات المتاحة. لكي يتم توسيع نطاق النظام بشكل صحيح، مثل Polkadot، هذا يدعو إلى مشكلة: إذا كانت نسبة ثابتة من validators يجب أن يشهد على توافر البيانات، وعلى افتراض أن validators سيرغب في تخزين البيانات فعليًا قبل التأكد من توفرها، فكيف نتجنب مشكلة زيادة عرض النطاق الترددي/متطلبات التخزين مع حجم النظام (وبالتالي عدد validators)؟ إحدى الإجابات المحتملة هي أن يكون لديك مجموعة منفصلة من validators (ضامني التوفر)، الذين ينمو طلبهم خط فرعي بحجم Polkadot ككل. هذا هو الموصوفة في 6.5.3. لدينا أيضًا خدعة ثانوية. كمجموعة، لدى المجمعين حافز جوهري للتأكد من أن جميع البيانات صحيحة متاح للمظلة التي اختاروها لأنه بدونها غير قادرين على تأليف المزيد من الكتل التي يمكنهم منها جمع رسوم المعاملات. يشكل المتعاونون أيضًا مجموعة تتنوع عضويتها (بسبب الطبيعة العشوائية). Parachain validator مجموعات) غير تافهة للدخول وسهلة

بولكادوت: رؤية لإطار عمل متعدد السلاسل غير متجانس المسودة 1 15 لإثبات. لذلك يُسمح للمجمعين الجدد (ربما من الآلاف القليلة الأخيرة من الكتل) بإصدار تحديات توافر البيانات الخارجية لسلسلة معينة كتلة إلى validators لسندات صغيرة. يجب على المصادقين الاتصال بأولئك الذين ينتمون إلى المجموعة الفرعية validator التي أدلت بشهادتها على ما يبدو، وإما الحصول على البيانات وإعادتها إلى المتعاون أو تصعيد الأمر الأمر من خلال الشهادة على عدم التوفر (الرفض المباشر لتقديم البيانات يعتبر جريمة تستلزم مصادرة السندات، وبالتالي فإن سوء التصرف validator من المرجح أن يكون مجرد قم بإسقاط الاتصال) والاتصال بـ validators الإضافيين لإجراء نفس الاختبار. وفي الحالة الأخيرة، سند المجمع يتم إرجاعها. بمجرد اكتمال النصاب القانوني المكون من validator الذين يمكنهم تقديم شهادات عدم التوفر هذه، يتم إطلاق سراحهم، تتم معاقبة المجموعة الفرعية التي تسيء التصرف، ويتم إرجاع الحظر. 6.6.2. توجيه المشاركات. يتضمن كل رأس باراشين خروج-جذر-جذر؛ هذا هو جذر المحاولة التي تحتوي على ملف صناديق قاعدة التوجيه، كل حاوية عبارة عن قائمة متسلسلة من مراكز الخروج. قد يتم توفير أدلة ميركل عبر Parachain validators لإثبات أن Parachain معينة تحتوي الكتلة على قائمة انتظار خروج معينة لسلسلة Parachain لوجهة معينة. في بداية تجهيز كتلة المظلة لكل منها قائمة انتظار الخروج الخاصة بـ Parachain الأخرى المرتبطة بالكتلة المذكورة هي تم دمجها في قائمة انتظار الدخول الخاصة بالكتلة الخاصة بنا. نحن نفترض قوية، ربما CSPR9، ترتيب الكتلة الفرعية لتحقيق عملية حتمية لا تقدم أي محاباة بين أي الاقتران كتلة المظلة. يقوم Collators بحساب قائمة الانتظار الجديدة وتصريف طوابير الخروج حسب المظلة المنطق. تتم كتابة محتويات قائمة انتظار الدخول بشكل صريح في كتلة المظلة. وهذا له غرضين رئيسيين: أولاً، هذا يعني أنه يمكن مزامنة المظلات بشكل موثوق بمعزل عن المظلات الأخرى. ثانيا، إنه يبسط لوجستيات البيانات في حالة الدخول بالكامل لا يمكن معالجة قائمة الانتظار في كتلة واحدة؛ validators والمجمعون قادرون على معالجة الكتل التالية دون الحاجة إلى مصدر بيانات قائمة الانتظار بشكل خاص. إذا كانت قائمة انتظار دخول الباراشين أعلى من العتبة المبلغ في نهاية معالجة الكتلة، ثم يتم وضع علامة عليه مشبعة على سلسلة التتابع ولا يجوز إرسال رسائل أخرى تسليمه إليها حتى يتم تطهيرها. البراهين ميركل هي تستخدم لإثبات دقة عملية المجمع في دليل كتلة المظلة. 6.6.3. نقد. عيب بسيط يتعلق بهذا الأساسي الآلية هي هجوم ما بعد القنبلة. هذا هو المكان الذي كل شيء ترسل سلاسل المظلات أكبر عدد ممكن من المشاركات إلى باراشين معين. في حين أن هذا يربط الهدف قائمة انتظار الدخول مرة واحدة، ولا يحدث أي ضرر أكثر من ذلك هجوم DoS القياسي للمعاملات. تعمل بشكل طبيعي، مع مجموعة من متزامنة بشكل جيد و أدوات تجميع غير ضارة وvalidators، لسلاسل N parachains، إجمالي N × M validators وL لكل مظلة، نحن يمكن تقسيم إجمالي مسارات البيانات لكل كتلة إلى: المدقق: M −1+L+L: M −1 للـ validators الأخرى في مجموعة المظلة، L لكل مُجمِّع يوفر كتلة باراشين مرشحة وL ثاني لكل مُجمِّع من الكتلة التالية التي تتطلب حمولات الخروج من الكتلة السابقة. (الأخير هو في الواقع أشبه بأسوأ الحالات العملية لأنه من المحتمل أن يشاركها المجمعون البيانات.) Collator: M +kN: M للاتصال بكل ذي صلة كتلة المظلة validator، كيلو نيوتن لبذر حمولات الخروج إلى مجموعة فرعية من كل مجموعة المظلة validator لـ الكتلة التالية (وربما بعض المجمّعات المفضلة). على هذا النحو، تنمو طرق مسار البيانات لكل عقدة بشكل خطي مع التعقيد العام للنظام. بينما هذا معقول، مع توسع النظام إلى مئات أو آلاف المظلات، قد يكون هناك بعض الكمون في الاتصالات استيعابها في مقابل معدل نمو أقل تعقيدا. في هذه الحالة، يمكن استخدام خوارزمية توجيه متعددة المراحل من أجل تقليل عدد المسارات اللحظية على حساب إدخال مخازن التخزين المؤقتة وزمن الوصول. 6.6.4. توجيه المكعب الفائق. توجيه المكعب الفائق عبارة عن آلية يمكن إنشاؤها في الغالب كامتداد لـ آلية التوجيه الأساسية الموضحة أعلاه. في الأساس، بدلاً من زيادة اتصال العقدة بعدد المظلات وعقد المجموعة الفرعية، فإننا ننمو فقط باستخدام لوغاريتم المظلات. قد تنتقل المشاركات بين العديد من طوابير المظلات في طريقهم إلى التسليم النهائي. التوجيه في حد ذاته أمر حتمي وبسيط. نبدأ بها الحد من عدد الصناديق في طوابير الدخول/الخروج؛ بدلاً من أن تكون العدد الإجمالي للمظلات، فهي هيقاعدة التوجيه (ب). سيتم تثبيت هذا كرقم من التغييرات في المظلات، مع رفع أس التوجيه (e) بدلاً من ذلك. وفي ظل هذا النموذج، حجم رسالتنا ينمو مع O(be)، مع بقاء المسارات ثابتة والكمون (أو عدد الكتل المطلوبة للتسليم) مع يا (ه). نموذج التوجيه الخاص بنا هو عبارة عن مكعب زائد ذو أبعاد e، مع وجود كل جانب من جوانب المكعب ب مواقع محتملة. في كل كتلة، نقوم بتوجيه الرسائل على طول محور واحد. نحن قم بتبديل المحور بطريقة دائرية، وبالتالي ضمان وقت تسليم الكتل الإلكترونية في أسوأ الحالات. كجزء من تجهيز الباراشين، متجهة إلى الخارج يتم توجيه الرسائل الموجودة في قائمة انتظار الدخول على الفور إلى حاوية قائمة انتظار الخروج المناسبة، نظرًا لـ رقم الكتلة الحالي (وبالتالي بُعد التوجيه). هذا تتطلب العملية نقل بيانات إضافية لكل قفزة على طريق التسليم، ولكن هذه مشكلة في حد ذاتها والتي يمكن تخفيفها باستخدام بعض الوسائل البديلة تسليم حمولة البيانات بما في ذلك مرجع فقط، بدلاً من الحمولة الكاملة للمنشور في مرحلة ما بعد المحاولة. مثال على توجيه المكعب الفائق لنظام ما مع 4 سلاسل، b = 2 و e = 2 يمكن أن تكون: المرحلة 0، في كل رسالة M: • sub0: إذا كان Mdest ∈{2, 3} ثم أرسل إلى(2) وإلا احتفظ به • sub1: إذا كان Mdest ∈{2, 3} ثم أرسل إلى(3) وإلا احتفظ به • sub2: إذا كان Mdest ∈{0, 1} ثم أرسل إلى(0) وإلا احتفظ به • sub3: إذا كان Mdest ∈{0, 1} ثم أرسل إلى(1) وإلا احتفظ به المرحلة 1، في كل رسالة م: • sub0: إذا كان Mdest ∈{1, 3} ثم أرسل إلى(1) وإلا احتفظ به • sub1: إذا كان Mdest ∈{0, 2} ثم أرسل إلى(0) وإلا احتفظ به • sub2: إذا كان Mdest ∈{1, 3} ثم أرسل إلى(3) وإلا احتفظ به • sub3: إذا كان Mdest ∈{0, 2} ثم أرسل إلى(2) وإلا احتفظ به من السهل رؤية البعدين هنا باعتبارهما البعد الأول قطعتين من فهرس الوجهة؛ للكتلة الأولى، ويتم استخدام البت ذو الترتيب الأعلى وحده. صفقات الكتلة الثانية مع البت ذو الترتيب المنخفض. بمجرد حدوث كلاهما (بشكل تعسفي الطلب) ثم سيتم توجيه المنشور. 9. آمن بشكل عشوائي زائف

بولكادوت: رؤية لإطار عمل متعدد السلاسل غير متجانس المسودة 1 16 6.6.5. تعظيم الصدفة. تعديل واحد من الأساسي سيشهد الاقتراح إجماليًا ثابتًا قدره c2 -c validators، مع c−1 validators في كل مجموعة فرعية. كل كتلة، بدلا من هناك إعادة تقسيم غير منظمة لـ validators بين المظلات، بدلاً من ذلك لكل مجموعة فرعية من المظلات، سيتم تعيين كل validator إلى فريد ومختلف المجموعة الفرعية المظلية على الكتلة التالية. هذا من شأنه يؤدي إلى الثابت الذي بين أي كتلتين، لأي اثنين من أزواج المظلة، يوجد اثنان من validators لقد تبادلنا مسؤوليات الباراشين. في حين لا يمكن استخدام هذا للحصول على ضمانات مطلقة بشأن التوفر (سوف ينقطع اتصال validator واحد أحيانًا، حتى لو كان خيرية)، ومع ذلك يمكنها تحسين الحالة العامة. وهذا النهج لا يخلو من التعقيدات. إن إضافة المظلة ستتطلب أيضًا إعادة التنظيم من المجموعة validator. علاوة على ذلك، فإن عدد validators، مرتبط بمربع عدد المظلات، سيبدأ في البداية صغيرًا جدًا وينمو في النهاية بعيدًا سريع جدًا، وأصبح لا يمكن الدفاع عنه بعد حوالي 50 مظلة. ولا تعتبر أي من هذه المشاكل أساسية. في الحالة الأولى، إعادة تنظيم مجموعات validator أمر لا بد منه القيام به بانتظام على أي حال. فيما يتعلق بحجم validator المحددة، عندما تكون صغيرة جدًا، قد يتم تعيين عدة validators إلى نفس المظلة، مع تطبيق عامل عدد صحيح على الإجمالي الإجمالي validators. آلية التوجيه متعددة المراحل مثل Hypercube Routing، التي تمت مناقشتها في 6.6.4 ستكون كذلك تخفيف متطلبات عدد كبير من validators عندما يكون هناك عدد كبير من السلاسل. 6.7. التحقق من صحة الباراشين. الغرض الرئيسي لـ validator هو أن يشهد، كممثل جيد الارتباط، أن باراشين الكتلة صالحة، بما في ذلك على سبيل المثال لا الحصر، أي انتقال للحالة، وأي معاملات خارجية متضمنة، وتنفيذ أي مشاركات انتظار في قائمة انتظار الدخول والحالة النهائية من صف الخروج. العملية نفسها بسيطة إلى حد ما. بمجرد إغلاق validator للكتلة السابقة، يصبحون أحرارًا لبدء العمل على توفير كتلة المظلة المرشحة مرشح للجولة القادمة من الإجماع. في البداية، يجد validator مرشحًا لكتلة باراشين من خلال مُجمِّع باراشين (الموصوف لاحقًا) أو واحد من validators المشتركة. بيانات المرشح كتلة Parachain يتضمن رأس الكتلة، ورأس الكتلة السابقة، تم تضمين أي بيانات إدخال خارجية (بالنسبة لـ Ethereum وBitcoin، ستتم الإشارة إلى هذه البيانات على أنها معاملات، ولكن من حيث المبدأ قد تتضمن هياكل بيانات عشوائية لأغراض عشوائية)، وبيانات قائمة انتظار الخروج والبيانات الداخلية لإثبات صحة انتقال الحالة (لـ Ethereum سيكون هذا هو عقد محاولة الحالة/التخزين المختلفة المطلوبة لتنفيذ كل معاملة). تُظهر الأدلة التجريبية مجموعة البيانات الكاملة هذه لكتلة Ethereum حديثة أن تكون على الأكثر بضع مئات من الكي بايت. في الوقت نفسه، إذا لم يتم ذلك بعد، فسيكون validator محاولة استرجاع المعلومات المتعلقة بانتقال الكتلة السابقة، مبدئيًا من الكتلة السابقة validators والإصدارات الأحدث من جميع validators الموقعة على توافر البيانات. بمجرد أن يتلقى validator كتلة المرشح هذه، ثم يقومون بالتحقق من صحتها محليًا. تم تضمين عملية التحقق من الصحة ضمن وحدة validator الخاصة بفئة الباراشين، أ وحدة برمجية حساسة للإجماع والتي يجب كتابتها لأي تنفيذ لـ Polkadot (على الرغم من أنه من حيث المبدأ يمكن للمكتبة التي تحتوي على C ABI تمكين مكتبة واحدة من ذلك أن تكون مشتركة بين التطبيقات مع المناسب انخفاض في السلامة يأتي من وجود تطبيق "مرجعي" واحد فقط). تأخذ العملية رأس الكتلة السابقة وتتحقق من هويتها من خلال سلسلة الترحيل المتفق عليها مؤخرًا الكتلة التي يجب تسجيل hash بها. بمجرد التأكد من صحة الرأس الأصلي، يتم استخدام سلسلة الباراشين المحددة يمكن استدعاء وظيفة التحقق من صحة الفصل. هذه وظيفة واحدة تقبل عددًا من حقول البيانات (تقريبًا تلك المقدمة سابقًا) وإرجاع قيمة منطقية بسيطة إعلان صلاحية الكتلة. ستقوم معظم وظائف التحقق هذه أولاً بالتحقق من حقول الرأس التي يمكن استخلاصها مباشرة من الكتلة الأصلية (على سبيل المثال الأصل hash، الرقم). متابعة هذا، وسوف يقومون بملء أي هياكل البيانات الداخلية كما ضرورية لمعالجة المعاملات و/أو المشاركات. بالنسبة لسلسلة تشبه Ethereum، فإن هذا يصل إلى ملء ملف حاول قاعدة البيانات مع العقد التي ستكون مطلوبة لـ التنفيذ الكامل للمعاملات. قد يكون هناك أنواع أخرى من السلسلة أخرى صآليات تعويضية. بمجرد الانتهاء من ذلك، ستكون منشورات الدخول والمعاملات الخارجية (أو ما تمثله البيانات الخارجية). سنت ومتوازنة وفقا لمواصفات السلسلة. (أ قد يكون الافتراضي المعقول هو المطالبة بجميع مشاركات الدخول تتم معالجتها قبل خدمة المعاملات الخارجية، ولكن هذا يجب أن يقرره منطق سلسلة المفاتيح.) من خلال هذا التشريع، سيتم إنشاء سلسلة من نقاط الخروج تم إنشاؤها وسيتم التحقق من تطابقها بالفعل مرشح المجمع. وأخيرا، المأهولة بالسكان بشكل صحيح سيتم فحص الرأس مقابل رأس المرشح. مع كتلة مرشح تم التحقق من صحتها بالكامل، validator يمكنه بعد ذلك التصويت لصالح hash لرأسه وإرسال كافة معلومات التحقق المطلوبة إلى المشاركين في validators في مجموعته الفرعية. 6.7.1. كولاتور باراشين. مُجمعو Parachain هم مشغلون غير مقيدين يقومون بمعظم مهام عمال المناجم على شبكات blockchain الحالية. فهي محددة إلى باراشين معين. لكي تعمل يجب عليهم الحفاظ على كل من سلسلة التتابع والمزامنة الكاملة المظلة. سيعتمد المعنى الدقيق لعبارة "متزامن بالكامل" على فئة سلسلة Parachain، على الرغم من أنه سيتضمن دائمًا الحالة الحالية لقائمة انتظار دخول سلسلة Parachain. في حالة Ethereum، يتضمن الأمر أيضًا الصيانة على الأقل قاعدة بيانات Merkle-tree للكتل القليلة الأخيرة، ولكن ربما تشمل أيضًا العديد من هياكل البيانات الأخرى بما في ذلك Bloom مرشحات لوجود الحساب والمعلومات العائلية والتسجيل المخرجات وجداول البحث العكسي لرقم الكتلة. بالإضافة إلى الحفاظ على تزامن السلسلتين، فإنه يجب أيضًا "البحث" عن المعاملات عن طريق الاحتفاظ بقائمة انتظار المعاملات وقبول المعاملات التي تم التحقق من صحتها بشكل صحيح من الشبكة العامة. مع قائمة الانتظار والسلسلة، هو عليه قادر على إنشاء كتل مرشحة جديدة لـ validators المختارة في كل كتلة (التي تعرف هويتها منذ مزامنة سلسلة التتابع) وإرسالها مع المعلومات المساعدة المختلفة مثل إثبات الصلاحية، عبر شبكة الأقران. ولمشكلتها، فإنها تقوم بجمع كافة الرسوم المتعلقة بالمعاملات التي تتضمنها. وتدور اقتصاديات مختلفة حول هذا الأمر الترتيب. في سوق تنافسية للغاية حيث هناك هو فائض من المجمعين، فمن الممكن أن الصفقة تتم مشاركة الرسوم مع سلسلة Parachain validators للتحفيز إدراج كتلة مجمعة معينة. بصورة مماثلة،

بولكادوت: رؤية لإطار عمل متعدد السلاسل غير متجانس المسودة 1 17 قد يقوم بعض المجمعين برفع الرسوم المطلوبة التي تحتاجها ليتم دفعها من أجل جعل الكتلة أكثر جاذبية ل validators. وفي هذه الحالة، يجب أن يتشكل سوق طبيعي مع المعاملات التي تدفع رسومًا أعلى تتخطى قائمة الانتظار وإدراجها بشكل أسرع في السلسلة. 6.8. الشبكات. التواصل على blockchains التقليدية مثل Ethereum وBitcoin لها متطلبات بسيطة إلى حد ما. يتم بث جميع المعاملات والكتل في ثرثرة بسيطة غير موجهة. التزامن أكثر مشاركة، على وجه الخصوص مع Ethereum ولكن في الواقع تم تضمين هذا المنطق في استراتيجية النظير بدلاً من البروتوكول نفسه الذي يتم حله حول عدد قليل من أنواع رسائل الطلب والإجابة. بينما أحرز Ethereum تقدمًا في عروض البروتوكول الحالية باستخدام بروتوكول devp2p، والذي سمح للكثيرين يتم مضاعفة البروتوكولات الفرعية عبر اتصال نظير واحد وبالتالي يكون لها نفس تراكب النظير الذي يدعم العديد من البروتوكولات الفرعية بروتوكولات p2p في وقت واحد، الجزء Ethereum من لا يزال البروتوكول بسيطًا نسبيًا ولا يزال بروتوكول p2p بروتوكول لفترة من الوقت لا يزال غير مكتمل مع المهم وظائف مفقودة مثل دعم جودة الخدمة. للأسف، هناك رغبة في إنشاء بروتوكول "ويب 3" أكثر انتشارًا إلى حد كبير فشل، والمشاريع الوحيدة التي تستخدمه هي تلك صراحة تم تمويله من عملية البيع الجماعي Ethereum. تعتبر متطلبات Polkadot أكثر أهمية. بدلاً من ذلك شبكة موحدة تمامًا، Polkadot لديه عدة أنواع من المشاركين لكل منهم متطلبات مختلفة فيما يتعلق بتركيبة أقرانهم والعديد من الشبكات "الطرق" التي يميل المشاركون إلى التحدث عنها بيانات معينة. وهذا يعني تراكب شبكة أكثر تنظيماً إلى حد كبير - وبروتوكول يدعم ذلك - من المرجح أن يكون ضروريا. علاوة على ذلك، قد تكون قابلية التوسعة لتسهيل الإضافات المستقبلية مثل الأنواع الجديدة من "السلسلة". تتطلب نفسها بنية تراكب جديدة. في حين مناقشة متعمقة لكيفية التواصل قد يبدو البروتوكول خارج نطاق هذه الوثيقة، إلا أن تحليل بعض المتطلبات معقول. نستطيع قم بتقسيم المشاركين في شبكتنا تقريبًا إلى مجموعتين (سلسلة التتابع، المظلات) كل من ثلاث مجموعات فرعية. نستطيع أذكر أيضًا أن كل من المشاركين في الباراشين هم فقط مهتمون بالتحدث فيما بينهم بدلاً من المشاركون في المظلات الأخرى: • المشاركون في سلسلة التتابع: • المصادقون: P، مقسمة إلى مجموعات فرعية P[s] لكل منها المظلة • الجهات الضامنة للتوفر: أ (قد يتم تمثيلها بواسطة جهات المصادقة في الشكل الأساسي للبروتوكول) • عملاء سلسلة الترحيل: م (ملاحظة أعضاء كل مجموعة المظلة سوف تميل أيضًا إلى أن تكون أعضاء M) • المشاركون في الباراشين: • مُجمّعات المظلات: C[0], C[1], . . . • صيادو المظلات: F[0], F[1], . . . • عملاء Parachain: S[0], S[1], . . . • عملاء المظلة الخفيفة: L[0]، L[1]، . . . بشكل عام، نقوم بتسمية فئات معينة من الاتصالات تميل إلى أن تتم بين أعضاء هذه المجموعات: • ف | أ <-> ف | ج: ال كامل مجموعة من validators/الضامنون يجب يكون على اتصال جيد ل تحقيق الإجماع. • P[s] <-> C[s] | P[s]: كل validator كعضو في مجموعة باراشين معينة سوف يميل إلى النميمة مع غيرهم من الأعضاء وكذلك المتعاونين من تلك المظلة لاكتشاف ومشاركة مرشحي الكتلة. • أ <-> P[s] | ج | ج: كل ضامن للتوافر سوف تحتاج إلى جمع سلسلة عبر سلسلة حساسة للإجماع البيانات من validators المخصصة لها؛ المجامع قد يؤدي أيضًا إلى تحسين فرصة التوصل إلى توافق في الآراء بشأنها قم بالحظر عن طريق الإعلان عنه أمام الجهات الضامنة للتوافر. بمجرد حصولهم عليها، سيتم صرف البيانات إلى ضامنون آخرون لتسهيل التوصل إلى توافق في الآراء. • P[s] <-> A | P[s']: المظلة validators سوف تحتاج إلى جمع بيانات إدخال إضافية من المجموعة السابقة من validators أو الجهات الضامنة للتوفر. • F[s] <-> P: عند الإبلاغ، يجوز للصيادين أن يضعوا مكانهم مطالبة مع أي مشارك. • م <-> م | ف | ج: يقوم عملاء سلسلة الترحيل العامة بتوزيع البيانات من validators والجهات الضامنة. • S[s] <-> S[s] | ص[ق] | ج: يقوم عملاء Parachain بتوزيع البيانات من validator/الضامنين. • L[s] <-> L[s] | S[s]: عملاء ضوء المظلة صرف البيانات من العملاء الكاملين. لضمان آلية نقل فعالة، "مسطحة" شبكة التراكب - مثل devp2p الخاص بـ Ethereum - حيث كل منها العقدة لا (بشكل غير تعسفي) تفرق بين صلاحيتها من غير المرجح أن يكون الأقران مناسبين. قابلة للتوسعة بشكل معقول من المحتمل أن تحتاج آلية اختيار الأقران واكتشافهم ليتم تضمينها في البروتوكول وكذلك العدوانية التخطيط للمستقبل لضمان النوع المناسب من الأقران هي "بالصدفة" conneCT في الوقت المناسب. ستكون الإستراتيجية الدقيقة لتكوين الأقران مختلفة لكل فئة من المشاركين: من أجل توسيع نطاقها بشكل صحيح متعددة السلاسل، سوف تحتاج المجمعات إما إلى أن تكون بشكل مستمر إعادة الاتصال بـ validators المنتخب وفقًا لذلك، أو سوف بحاجة إلى اتفاقيات مستمرة مع مجموعة فرعية من validators للتأكد من عدم فصلها خلال الغالبية العظمى من الوقت بحيث تكون غير مجدية لذلك validator. ومن الطبيعي أيضًا أن يحاول المُجمِّعون الحفاظ على واحدة أو اتصالات أكثر استقرارًا في ضامن التوفر تم تعيينها لضمان النشر السريع لتوافقها الحساس data. يهدف ضامنو التوفر في الغالب إلى الحفاظ على اتصال مستقر ببعضها البعض وبـ validators (للإجماع وبيانات الباراشين الحاسمة للإجماع التي يشهدون)، وكذلك لبعض المتعاونين (للباراشين البيانات) وبعض الصيادين والعملاء الكاملين (للتفريق المعلومات). سوف يميل المدققون إلى البحث عن validators أخرى، وخاصة تلك الموجودة في نفس المجموعة الفرعية وأي منها المقارنات التي يمكنها تزويدهم بمرشحات كتلة المظلات. الصيادين، فضلا عن سلسلة التتابع العامة والمظلة سيهدف العملاء عمومًا إلى إبقاء الاتصال مفتوحًا لـ validator أو الضامن، ولكن هناك الكثير من العقد الأخرى المشابهة لأنفسهم غير ذلك. سيهدف عملاء Parachain Light بالمثل إلى أن يكونوا متصلين بالعميل الكامل لـ Parachain، إن لم يكن فقط عملاء ضوء المظلة الآخرين. 6.8.1. مشكلة عنف الأقران. في مقترح البروتوكول الأساسي، تتغير كل مجموعة من هذه المجموعات الفرعية باستمرار بشكل عشوائي مع كل كتلة حيث تم تعيين validators للتحقق يتم اختيار التحولات المظلية بشكل عشوائي. هذا يمكن تكون مشكلة يجب أن تحتاج إليها العقد المتباينة (غير النظيرة). تمرير البيانات بين بعضها البعض. يجب على المرء إما الاعتماد على شبكة نظير موزعة إلى حد ما ومتصلة بشكل جيد

بولكادوت: رؤية لإطار عمل متعدد السلاسل غير متجانس المسودة 1 18 تأكد من أن مسافة القفزة (وبالتالي زمن الوصول في أسوأ الحالات) تنمو فقط مع لوغاريتم حجم الشبكة (قد يساعد البروتوكول المشابه لـ Kademlia [13] هنا)، أو لا بد من ذلك تقديم أوقات حظر أطول للسماح بإجراء مفاوضات الاتصال اللازمة للحفاظ على مجموعة نظير يعكس احتياجات الاتصال الحالية للعقدة. لا يعد أي من هذين الحلين رائعًا: أوقات الحظر الطويلة قد يؤدي فرضها على الشبكة إلى جعلها عديمة الفائدة تطبيقات وسلاسل معينة. حتى عادلة تماما والشبكة المتصلة ستؤدي إلى هدر كبير من عرض النطاق الترددي لأنه يتوسع بسبب وجود العقد غير المهتمة لإعادة توجيه البيانات غير المفيدة لهم. وفي حين أن كلا الاتجاهين قد يشكلان جزءاً من الحل، سيكون التحسين المعقول للمساعدة في تقليل زمن الوصول يكون لتقييد تقلبات هذه المظلات validator مجموعات، إما إعادة تعيين العضوية فقط بين سلسلة من الكتل (على سبيل المثال، في مجموعات مكونة من 15 شخصًا، والتي في 4 ثوانٍ وقت الحظر يعني تغيير الاتصالات مرة واحدة فقط في كل مرة دقيقة) أو عن طريق تناوب العضوية بطريقة تدريجية، على سبيل المثال. يتغير بواسطة عضو واحد في كل مرة (على سبيل المثال، إذا كان هناك تم تخصيص 15 validators لكل مظلة، ففي المتوسط ستكون دقيقة كاملة بين فريدة تمامًا مجموعات). من خلال الحد من مقدار تقلب الأقران، والتأكد من إجراء اتصالات مفيدة مع الأقران بشكل جيد التقدم من خلال القدرة على التنبؤ الجزئي للباراشين مجموعات، يمكننا المساعدة في ضمان احتفاظ كل عقدة بشكل دائم اختيار الصدفة من أقرانهم. 6.8.2. المسار إلى بروتوكول الشبكة الفعال. من المحتمل أن ستركز جهود التطوير الأكثر فعالية ومعقولة على استخدام بروتوكول موجود مسبقًا بدلاً من التدوير منطقتنا. توجد العديد من البروتوكولات الأساسية من نظير إلى نظير يجوز لنا استخدام أو تعزيز ما يتضمنه Ethereum من أدوات تطوير devp2p [22]، libp2p الخاص بـ IPFS [1] وGNUnet الخاص بـ GNU [4]. مراجعة كاملة لهذه البروتوكولات وأهميتها لبناء أ شبكة نظيرة معيارية تدعم ضمانات هيكلية معينة وتوجيه ديناميكي نظير وبروتوكولات فرعية قابلة للتوسيع يتجاوز نطاق هذه الوثيقة بكثير ولكنه سيكون بمثابة خطوة مهمة في تنفيذ Polkadot. 7. الجوانب العملية للبروتوكول 7.1. دفع المعاملات Interchain. بينما عظيم يتم اكتساب قدر من الحرية والبساطة من خلال إسقاط الحاجة إلى إطار شامل لمحاسبة الموارد الحسابية مثل غاز Ethereum، وهذا يثير سؤالًا مهمًا: بدون غاز، كيف يمكن لسلسلة واحدة أن تعمل تجنب Parachain آخر من إجبارها على القيام بالحساب؟ بينما يمكننا الاعتماد على قائمة انتظار الدخول بعد المعاملة المخازن المؤقتة لمنع إحدى السلاسل من إرسال بريد عشوائي إلى أخرى بيانات المعاملات، لا توجد آلية مكافئة يوفرها البروتوكول لمنع إرسال البريد العشوائي أثناء معالجة المعاملات. هذه مشكلة متروكة للمستوى الأعلى. منذ السلاسل لهم الحرية في إرفاق دلالات تعسفية بالوارد بيانات ما بعد المعاملة، يمكننا التأكد من أن الحساب يجب أن يتم دفع ثمنها قبل البدء. وعلى نفس المنوال النموذج الذي يتبناه Ethereum الصفاء، يمكننا أن نتخيله عقد "اقتحام" ضمن سلسلة Parachain يسمح بـ validator لضمان الدفع مقابل توفير حجم معين من موارد المعالجة. ويمكن قياس هذه الموارد بشيء مثل الغاز، ولكن يمكن أيضًا أن يكون نموذجًا جديدًا تمامًا مثل وقت التنفيذ الشخصي أو نموذج الرسوم الثابتة الذي يشبه Bitcoin. هذا في حد ذاته ليس مفيدًا جدًا لأننا لا نستطيع أن نفترض بسهولة أن المتصل خارج السلسلة متاح لهم مهما كانت آلية القيمة التي يتم التعرف عليها من خلال الاقتحام العقد. ومع ذلك، يمكننا أن نتخيل عقد "اختراق" ثانوي في سلسلة المصدر. سيشكل العقدان معًا جسرًا، يعترف كل منهما بالآخر توفير معادلة القيمة. (التكديس-tokens، متاح لـ يمكن استخدام كل منها لتسوية ميزان المدفوعات.) إن الاتصال بسلسلة أخرى من هذا القبيل يعني التوكيل من خلال هذا الجسر الذي من شأنه أن يوفر وسائل التفاوض على نقل القيمة بين السلاسل من أجل ادفع مقابل موارد الحساب المطلوبة في سلسلة Parachain الوجهة. 7.2. إضافية سلاسل. بينما ال إضافة من أ تعتبر عملية الباراشين عملية رخيصة نسبيًا، وليست مجانية. المزيد من المظلات يعني عددًا أقل من validators لكل مظلة وفي النهاية، عدد أكبر من validators لكل منها علامة انخفاض متوسط السندات. في حين يتم تخفيف مسألة تكلفة الإكراه الأصغر لمهاجمة سلسلة المظلة الصيادين، مجموعة validator المتنامية تجبر بشكل أساسي على أ درجة أعلى من الكمون بسبب آليات الإجماع الأساسيthod. علاوة على ذلك كل مظلة يجلب معه احتمالية الحزن validators بـ خوارزمية التحقق المرهقة. على هذا النحو، سيكون هناك بعض "السعر" الذي validators و/أو سيقوم مجتمع أصحاب المصلحة بالاستخراج من أجل إضافة مظلة جديدة. هذا السوق للسلاسل سوف ربما نرى إضافة إما: • السلاسل التي من المحتمل أن يكون صافي المساهمة فيها صفرًا (من حيث الحبس أو الحرق staking tokens) التي سيتم جعلها جزءًا (على سبيل المثال، سلاسل الكونسورتيوم، سلاسل دوجي، سلاسل خاصة بالتطبيق)؛ • السلاسل التي تقدم قيمة جوهرية للشبكة من خلال إضافة وظائف معينة صعبة للوصول إلى مكان آخر (على سبيل المثال، السرية، وقابلية التوسع الداخلي، وارتباطات الخدمة). في الأساس، سيحتاج مجتمع أصحاب المصلحة إلى ذلك سيتم تحفيزهم لإضافة سلاسل فرعية - إما ماليًا أو من خلال الرغبة في إضافة سلاسل مميزة إلى التتابع. ومن المتصور أن السلاسل الجديدة المضافة سيكون لها جدا فترة إشعار قصيرة للإزالة، مما يسمح بسلاسل جديدة يتم تجربتها دون أي خطر للمساومة عرض القيمة المتوسطة أو الطويلة الأجل. 8. الاستنتاج لقد حددنا الاتجاه الذي يمكن للمرء أن يتخذه للمؤلف أ بروتوكول متعدد السلاسل قابل للتطوير وغير متجانس مع إمكانية أن يكون متوافقًا مع الإصدارات السابقة لبعض البروتوكولات الموجودة مسبقًا blockchain الشبكات. وبموجب هذا البروتوكول، المشاركين العمل من أجل المصلحة الذاتية المستنيرة لإنشاء نظام شامل يمكن توسيعه بطريقة مجانية بشكل استثنائي ودون تكلفة نموذجية للمستخدمين الحاليين يأتي من تصميم قياسي blockchain. لقد قدمنا مخطط تقريبي للهندسة المعمارية التي ستستغرقها بما في ذلك طبيعة المشاركين وحوافزهم الاقتصادية والعمليات التي يجب أن يشاركوا فيها. لدينا حددت التصميم الأساسي وناقشت نقاط قوته و القيود؛ وفقا لذلك لدينا المزيد من التوجيهات التي قد يخفف هذه القيود ويؤدي إلى مزيد من التقدم نحو حل blockchain قابل للتطوير بالكامل.بولكادوت: رؤية لإطار عمل متعدد السلاسل غير متجانس المسودة 1 19 8.1. المواد المفقودة والأسئلة المفتوحة. يعد تفرع الشبكة دائمًا احتمالًا من خلال التطبيقات المتباينة للبروتوكول. التعافي من مثل هذا لم تتم مناقشة حالة استثنائية. نظرًا لأن الشبكة سيكون لها بالضرورة فترة غير صفرية من الانتهاء، لا ينبغي أن يكون التعافي من تشعب سلسلة الترحيل مشكلة كبيرة، ولكنه سيتطلب دمجًا دقيقًا فيها بروتوكول الإجماع. وقد تم توفير مصادرة السندات والمكافأة على العكس من ذلك لم يتم استكشافها بعمق. في الوقت الحاضر نحن نفترض المكافآت يتم توفيرها على أساس أن الفائز يأخذ كل شيء: وهذا قد لا يكون كذلك تقديم أفضل نموذج تحفيزي للصيادين. ومن شأن عملية الكشف عن الالتزام قصيرة المدة أن تسمح للعديد من الصيادين للمطالبة بالجائزة مع توزيع أكثر عدالة للمكافآت، ومع ذلك، قد تؤدي هذه العملية إلى زمن انتقال إضافي في اكتشاف سوء السلوك. 8.2. شكر وتقدير. الشكر الجزيل لجميع المراجعين الذين ساعدوا في الحصول على هذا بشكل غامض شكل جيد. وعلى وجه الخصوص، بيتر تشابان، بيورن فاغنر، وكين كابلر، وروبرت هابرماير، وفيتاليك بوتيرين، وريتو ترينكلر، وجاك بيترسون. شكرا للجميع الأشخاص الذين ساهموا بالأفكار أو البدايات ولذلك يستحق ماريك كوتيويتز وإيرون بوكانان إشارة خاصة. والشكر للجميع على مساعدتهم على طول الطريق. كل الأخطاء هي بلدي. أجزاء من هذا العمل، بما في ذلك البحث الأولي في تم تمويل خوارزميات الإجماع جزئيًا من قبل البريطانيين الحكومة في إطار برنامج Innovate UK.