Polkadot: 異種マルチチェーン フレームワークのビジョン

Von Gavin Wood · 2016

Zusammenfassung

POLKADOT: VISION FÜR EIN HETEROGENES MULTI-CHAIN-RAHMEN ENTWURF 1 DR. GAVIN WOOD GRÜNDER, ETHEREUM & PARITÄT [email protected] Zusammenfassung. Heutige blockchain-Architekturen leiden alle unter einer Reihe von Problemen, nicht zuletzt hinsichtlich praktischer Möglichkeiten der Erweiterbarkeit und Skalierbarkeit. Wir glauben, dass dies auf die Verknüpfung zweier sehr wichtiger Teile der Konsensarchitektur zurückzuführen ist, nämlich Kanonizität und Gültigkeit liegen zu eng beieinander. In diesem Artikel wird eine Architektur vorgestellt, die eine heterogene Mehrkette darstellt. was die beiden grundlegend unterscheidet. Durch die Unterteilung dieser beiden Teile und durch die Beschränkung der Gesamtfunktionalität auf ein absolutes Minimum Im Hinblick auf Sicherheit und Transport führen wir praktische Mittel zur Kernerweiterbarkeit vor Ort ein. Die Skalierbarkeit wird durch adressiert ein „Teile-und-Herrsche“-Ansatz für diese beiden Funktionen, der aus seinem verbundenen Kern heraus durch Anreize erweitert wird nicht vertrauenswürdige öffentliche Knoten. Die heterogene Natur dieser Architektur ermöglicht die Zusammenarbeit vieler sehr unterschiedlicher Arten von Konsenssystemen in einer vertrauenslosen, vollständig dezentralisierten „Föderation“, die offenen und geschlossenen Netzwerken einen vertrauensfreien Zugriff ermöglicht einander. Wir schlagen ein Mittel zur Bereitstellung von Abwärtskompatibilität mit einem oder mehreren bereits vorhandenen Netzwerken vor, z Ethereum. Wir glauben, dass ein solches System eine nützliche Basiskomponente bei der allgemeinen Suche nach einer praktischen Lösung darstellt ein umsetzbares System, das in der Lage ist, Skalierbarkeits- und Datenschutzniveaus im globalen Handel zu erreichen. 1. Vorwort Dies soll eine technische „Vision“-Zusammenfassung sein einer möglichen Richtung, die bei der Weiterentwicklung des blockchain-Paradigmas eingeschlagen werden könnte, zusammen mit einer Begründung, warum diese Richtung sinnvoll ist. Es liegt in so detailliert wie möglich in dieser Entwicklungsphase ein System, das zu einer konkreten Verbesserung führen kann Anzahl der Aspekte der blockchain-Technologie. Es ist nicht als Spezifikation gedacht, weder formal noch anderweitig. Es erhebt keinen Anspruch auf Vollständigkeit und stellt auch keinen Anspruch darauf dar Endgültiges Design. Es ist nicht beabsichtigt, Aspekte abzudecken, die nicht zum Kerngeschäft gehören des Frameworks wie APIs, Bindungen, Sprachen usw Nutzung. Dies ist besonders experimentell; wo Parameter festgelegt sind, können sie sich wahrscheinlich ändern. Mechanismen werden als Reaktion auf die Community hinzugefügt, verfeinert und entfernt werden Ideen und Kritiken. Große Teile dieses Papiers werden wahrscheinlich überarbeitet werden, sobald experimentelle Beweise und Prototyping vorliegen uns Informationen darüber, was funktionieren wird und was nicht. Dieses Dokument enthält eine Kernbeschreibung des Protokolls sowie Vorschläge für mögliche Vorgehensweisen verschiedene Aspekte zu verbessern. Es ist vorgesehen, dass der Kern Die Beschreibung dient als Ausgangspunkt für eine Initiale Reihe von Proof-of-Concept. Eine endgültige „Version 1.0“ wäre Basierend auf diesem verfeinerten Protokoll zusammen mit den zusätzlichen Ideen, die sich bewährt haben und entschlossen sind erforderlich sein, damit das Projekt seine Ziele erreichen kann. 1.1. Geschichte. • 10.09.2016: 0.1.0-proof1 • 20.10.2016: 0.1.0-proof2 • 11.01.2016: 0.1.0-proof3 • 11.10.2016: 0.1.0 2. Einführung Blockchains haben sich in mehreren Bereichen als vielversprechend erwiesen, darunter auch im „Internet der Dinge“. (IoT), Finanzen, Governance, Identitätsmanagement, Webdezentralisierung und Asset-Tracking. Trotz der Das technologische Versprechen und die großen Worte müssen wir noch sehen bedeutender realer Einsatz der gegenwärtigen Technologie. Wir glauben, dass dies auf fünf wesentliche Versäumnisse der Gegenwart zurückzuführen ist Technologie-Stacks: Skalierbarkeit: Wie viele Ressourcen weltweit ausgegeben werden über Verarbeitung, Bandbreite und Speicher, damit das System eine einzelne Transaktion verarbeiten kann und wie viele Transaktionen können angemessen abgewickelt werden Spitzenbedingungen? Isolierbarkeit: Kann den unterschiedlichen Bedürfnissen mehrerer Personen gerecht werden Parteien und Anträge im gleichen Rahmen nahezu optimal angesprochen werden? Entwickelbarkeit: Wie gut funktionieren die Tools? Tun Sie es die APIs erfüllen die Bedürfnisse der Entwickler? Sind Lehrmaterialien verfügbar? Sind die richtigen Integrationen vorhanden? Governance: Kann das Netzwerk flexibel bleiben? sich im Laufe der Zeit weiterentwickeln und anpassen? Können Entscheidungen sein mit ausreichender Inklusivität, Legitimität und gemacht Transparenz zur Gewährleistung einer effektiven Führung eines dezentrales System? Anwendbarkeit: Befriedigt die Technologie tatsächlich allein ein dringendes Bedürfnis? Ist weitere „Middleware“ erforderlich, um die Lücke zu schließen? tatsächliche Anwendungen? In der vorliegenden Arbeit wollen wir uns mit den ersten beiden befassen Probleme: Skalierbarkeit und Isolierbarkeit. Das heißt, wir glauben Das Polkadot-Framework kann bei jeder dieser Problemklassen sinnvolle Verbesserungen bewirken. Moderne, effiziente blockchain-Implementierungen wie z Der Paritäts-Client Ethereum [17] kann process mehr als 3.000 Transaktionen pro Sekunde bei Ausführung auf leistungsstarker Consumer-Hardware. Allerdings aktuelle reale Welt blockchain Netzwerke sind praktisch auf etwa 30 begrenzt Transaktionen pro Sekunde. Diese Einschränkung ist hauptsächlich auf die Tatsache zurückzuführen, dass die aktuellen synchronen Konsensmechanismen große zeitliche Sicherheitsmargen erfordern die voraussichtliche Bearbeitungszeit, die durch die noch verschärft wird 1

概要

POLKADOT: 異種マルチチェーン フレームワークのビジョン ドラフト 1 DR.ギャビン・ウッド 創設者、イーサリアム、パリティ ギャビン@PARITY.IO 抽象的。現在の blockchain アーキテクチャはすべて、拡張性とスケーラビリティの実際的な手段をはじめとする多くの問題を抱えています。私たちは、これはコンセンサス アーキテクチャの 2 つの非常に重要な部分を結び付けることに起因すると考えています。 正規性と有効性が近すぎる。この論文では、異種マルチチェーンというアーキテクチャを紹介します。 これが根本的にこの 2 つを区別します。 これら 2 つの部分を区分けし、提供される全体的な機能を最小限に抑えることで、 セキュリティとトランスポートの観点から、現場でのコア拡張性の実用的な手段を導入します。スケーラビリティには次のような方法があります。 これら 2 つの機能に対する分割統治アプローチであり、 信頼できないパブリックノード。 このアーキテクチャの異質な性質により、多くの非常に多様なタイプのコンセンサス システムがトラストレスで完全に分散された「フェデレーション」で相互運用できるようになり、オープン ネットワークとクローズド ネットワークがトラストフリーでアクセスできるようになります。 お互いに。 私たちは、次のような 1 つ以上の既存のネットワークとの下位互換性を提供する手段を提案します。 Ethereum。私たちは、このようなシステムが、実用的なシステムの全体的な探索において有用な基本レベルのコンポーネントを提供すると信じています。 グローバルコマースレベルのスケーラビリティとプライバシーを実現できる実装可能なシステム。 1. はじめに これは技術的な「ビジョン」の概要を目的としています。 blockchain パラダイムをさらに発展させる際に取られる可能性のある 1 つの方向性と、この方向性が合理的である理由についての理論的根拠を示します。にレイアウトされます 開発のこの段階で可能な限り詳細を 具体的な改善をもたらす可能性のあるシステム blockchain テクノロジーのさまざまな側面。 これは、形式的であるかどうかにかかわらず、仕様を意図したものではありません。包括的であることや、 最終デザイン。コア以外の側面をカバーすることを目的としたものではありません API、バインディング、言語などのフレームワークの 使用法。 これは特に実験的なものです。ここでパラメータ 指定されていますが、変更される可能性があります。メカニズムは、 コミュニティに応じて追加、改良、削除される アイデアと批評。この文書の大部分は、おそらく 実験的証拠やプロトタイピングによって得られるものとして改訂される 何が機能し、何が機能しないのかについての情報を提供します。 この文書には、プロトコルの核となる説明と、取るべき方向性のアイデアが含まれています。 さまざまな面を改善するために。コアとなると想定されるのは、 説明は最初の作業の開始点として使用されます。 一連の概念実証。最終的な「バージョン 1.0」は次のようになります。 この洗練されたプロトコルと、実証され決定された追加のアイデアをベースにしています。 プロジェクトが目標を達成するために必要です。 1.1.歴史。 • 2016 年 9 月 10 日: 0.1.0 耐性 1 • 2016/10/20: 0.1.0-proof2 • 2016 年 11 月 1 日: 0.1.0-proof3 • 2016 年 10 月 11 日: 0.1.0 2. はじめに ブロックチェーンは、「モノのインターネット」を含むいくつかの分野で有用性が大いに期待できることが証明されています。 (IoT)、財務、ガバナンス、アイデンティティ管理、ウェブ分散化、資産追跡。しかし、にもかかわらず、 技術的な約束と壮大な話はまだわかりません 現在のテクノロジーの重要な現実世界への展開。 私たちは、これは現在の 5 つの主要な失敗に起因すると考えています。 テクノロジースタック: スケーラビリティ: 世界中でどれだけのリソースが費やされているか システムが単一のトランザクションを処理するための処理、帯域幅、およびストレージ、およびそのトランザクション数 トランザクションは以下に基づいて合理的に処理できます ピークコンディション? 分離性: 複数の異なるニーズに対応できるか 関係者とアプリケーションは、同じフレームワークの下で最適に近い程度まで対処できるでしょうか? 開発性: ツールはどの程度うまく機能しますか?する API は開発者のニーズに対応しているでしょうか?教育用の教材はありますか?適切な統合は行われていますか? ガバナンス: ネットワークは柔軟性を維持できるか 時間の経過とともに進化して適応しますか? 決定は可能ですか 十分な包括性、正当性、そして 効果的なリーダーシップを発揮するための透明性 分散型システム? 適用可能性: そのテクノロジーは実際にそれ自体で切実なニーズに対応しているのでしょうか?ギャップを埋めるには他の「ミドルウェア」が必要ですか? 実際のアプリケーションは? 現在の作業では、最初の 2 つに対処することを目指しています。 問題: スケーラビリティと分離性。そうは言っても、私たちは信じています Polkadot フレームワークは、これらの問題のそれぞれのクラスにおいて有意義な改善を提供できます。 最新の効率的な blockchain 実装 パリティ Ethereum クライアント [17] は proc できます超過 高性能のコンシューマ ハードウェアで実行すると、1 秒あたり 3,000 トランザクション。 しかし、現在の現実世界では、 blockchain ネットワークは実質的に約 30 に制限されています 1秒あたりのトランザクション数。 この制限は主に、現在の同期コンセンサス メカニズムが広いタイミング安全マージンを必要とするという事実に起因しています。 予想される処理時間は、 1

Einführung

Blockchains haben sich in mehreren Bereichen als vielversprechend erwiesen, darunter auch im „Internet der Dinge“. (IoT), Finanzen, Governance, Identitätsmanagement, Webdezentralisierung und Asset-Tracking. Trotz der Das technologische Versprechen und die großen Worte müssen wir noch sehen bedeutender realer Einsatz der gegenwärtigen Technologie. Wir glauben, dass dies auf fünf wesentliche Versäumnisse der Gegenwart zurückzuführen ist Technologie-Stacks: Skalierbarkeit: Wie viele Ressourcen weltweit ausgegeben werden über Verarbeitung, Bandbreite und Speicher, damit das System eine einzelne Transaktion verarbeiten kann und wie viele Transaktionen können angemessen abgewickelt werden Spitzenbedingungen? Isolierbarkeit: Kann den unterschiedlichen Bedürfnissen mehrerer Personen gerecht werden Parteien und Anträge im gleichen Rahmen nahezu optimal angesprochen werden? Entwickelbarkeit: Wie gut funktionieren die Tools? Tun Sie es die APIs erfüllen die Bedürfnisse der Entwickler? Sind Lehrmaterialien verfügbar? Sind die richtigen Integrationen vorhanden? Governance: Kann das Netzwerk flexibel bleiben? sich im Laufe der Zeit weiterentwickeln und anpassen? Können Entscheidungen sein mit ausreichender Inklusivität, Legitimität und gemacht Transparenz zur Gewährleistung einer effektiven Führung eines dezentrales System? Anwendbarkeit: Befriedigt die Technologie tatsächlich allein ein dringendes Bedürfnis? Ist weitere „Middleware“ erforderlich, um die Lücke zu schließen? tatsächliche Anwendungen? In der vorliegenden Arbeit wollen wir uns mit den ersten beiden befassen Probleme: Skalierbarkeit und Isolierbarkeit. Das heißt, wir glauben Das Polkadot-Framework kann bei jeder dieser Problemklassen sinnvolle Verbesserungen bewirken. Moderne, effiziente blockchain-Implementierungen wie Der Paritäts-Client Ethereum [17] kann mehr verarbeiten 3.000 Transaktionen pro Sekunde bei Ausführung auf leistungsstarker Consumer-Hardware. Allerdings aktuelle reale Welt blockchain Netzwerke sind praktisch auf etwa 30 begrenzt Transaktionen pro Sekunde. Diese Einschränkung ist hauptsächlich auf die Tatsache zurückzuführen, dass die aktuellen synchronen Konsensmechanismen große zeitliche Sicherheitsmargen erfordern die voraussichtliche Bearbeitungszeit, die durch die noch verschärft wirdPOLKADOT: VISION FÜR EIN HETEROGENES MULTI-CHAIN-RAHMEN ENTWURF 1 2 Wunsch, langsamere Implementierungen zu unterstützen. Das liegt daran die zugrunde liegende Konsensarchitektur: der staatliche Übergangsmechanismus oder die Mittel, mit denen die Parteien zusammenarbeiten und die Ausführung von Transaktionen ist grundsätzlich logisch in den Konsens-„Kanonisierungs“-Mechanismus oder den Mittel, mit denen sich die Parteien auf eine von mehreren einigen einigen mögliche, gültige Geschichten. Dies gilt gleichermaßen für proof-of-work (PoW)-Systeme wie Bitcoin [15] und Ethereum [5,23] und Proof-of-Stake (PoS)-Systeme wie NXT [8] und Bitshares [12]: alle leiden letztlich unter der gleichen Behinderung. Es ist einfach Strategie, die zum Erfolg von blockchains beigetragen hat. Allerdings durch die enge Verbindung dieser beiden Mechanismen zu einer einzigen Einheit des Protokolls bündeln wir auch mehrere verschiedene Akteure und Anwendungen mit unterschiedlichen Risikoprofilen, unterschiedlichen Skalierbarkeitsanforderungen und unterschiedlichen Datenschutzanforderungen. Eine Einheitsgröße passt nicht für alle. Zu oft kommt es vor, dass in einem Im Streben nach breiter Anziehungskraft nimmt ein Netzwerk einen Grad an Konservatismus an, der zu einem kleinsten gemeinsamen Nenner führt nur wenigen optimal zu dienen und letztendlich zum Scheitern zu führen manchmal in der Fähigkeit zur Innovation, Leistung und Anpassung dramatisch. Einige Systeme wie z.B. Tatsache ist, dass [21] den Zustandsübergangsmechanismus vollständig fallen lässt. Allerdings ist ein Großteil davon Der von uns gewünschte Nutzen erfordert die Fähigkeit zum Übergangszustand gemäß einer gemeinsamen Zustandsmaschine. Das Ablegen löst das Problem ein alternatives Problem; es bietet keine Alternative Lösung. Es scheint daher klar, dass es eine vernünftige Richtung gibt als Weg zu einem skalierbaren dezentralen Computer zu erkunden Die Plattform besteht darin, die Konsensarchitektur von zu entkoppeln der Zustandsübergangsmechanismus. Und es überrascht vielleicht nicht, dass dies die Strategie ist, die Polkadot als Lösung für die Skalierbarkeit verfolgt. 2.1. Protokoll, Implementierung und Netzwerk. Wie Bitcoin und Ethereum, Polkadot beziehen sich sowohl auf ein Netzwerkprotokoll als auch auf das (bisher vorausgesetzte) Primäre öffentliches Netzwerk, das dieses Protokoll ausführt. Polkadot soll ein kostenloses und offenes Projekt sein, dessen Protokollspezifikation unter einer Creative Commons-Lizenz steht und die Code, der unter eine FLOSS-Lizenz gestellt wird. Das Projekt ist wird offen entwickelt und nimmt Beiträge entgegen wo immer sie nützlich sind. Ein System von RFCs, nicht unähnlich Die Python Enhancement Proposals ermöglichen eine Möglichkeit öffentliche Zusammenarbeit bei Protokolländerungen und -aktualisierungen. Unsere erste Implementierung des Polkadot-Protokolls wird als Parity Polkadot-Plattform bekannt sein und wird umfassen eine vollständige Protokollimplementierung zusammen mit der API Bindungen. Wie andere Parity blockchain-Implementierungen PPP ist als allgemeiner blockchain Technologie-Stack konzipiert, weder speziell für ein öffentliches Netzwerk noch für Privat-/Konsortialbetrieb. Die Entwicklung davon also Bisher wurde es von mehreren Parteien finanziert, unter anderem durch ein Zuschuss der britischen Regierung. Dieses Papier beschreibt jedoch Polkadot unter dem Kontext eines öffentlichen Netzwerks. Die Funktionalität, die wir uns in einem öffentlichen Netzwerk vorstellen, ist eine Obermenge dessen, was in erforderlich ist alternative (z. B. private und/oder konsortiale) Einstellungen. Darüber hinaus kann in diesem Zusammenhang der volle Umfang von Polkadot genutzt werden klarer beschrieben und besprochen werden. Das bedeutet Der Leser sollte sich darüber im Klaren sein, dass es bestimmte Mechanismen geben kann beschrieben werden (z. B. Zusammenarbeit mit anderen öffentlichen Netzwerken), die für Polkadot nicht direkt relevant sind wenn es in nichtöffentlichen („erlaubten“) Situationen eingesetzt wird. 2.2. Vorherige Arbeit. Es wurde informell vorgeschlagen, den zugrunde liegenden Konsens vom Staatsübergang zu entkoppeln mindestens zwei Jahre lang privat – Max Kaye war in den frühen Tagen von ein Befürworter einer solchen Strategie Ethereum. Eine komplexere skalierbare Lösung, bekannt als Chain Fasern, die auf Juni 2014 zurückgehen und später erstmals veröffentlicht wurden In diesem Jahr plädierte1 für eine einzelne Relay-Chain und mehrere homogene Chains, die einen transparenten Interchain-Ausführungsmechanismus bieten. Dekohärenz wurde bezahlt durch Transaktionslatenz – Transaktionen, die das erfordern Koordination unterschiedlicher Teile des Systems würde die Bearbeitung dauert länger. Polkadot übernimmt einen Großteil seiner Architektur daraus und aus den Folgegesprächen mit Es wird von verschiedenen Menschen genutzt, auch wenn es sich in seiner Gestaltung und Ausstattung stark unterscheidet. Es gibt zwar keine mit Polkadot vergleichbaren Systeme Tatsächlich in Produktion, mehrere Systeme von einiger Relevanz wurden vorgeschlagen, wenn auch nur wenige in nennenswertem Umfang Detail. Diese Vorschläge können seinin Systeme zerlegt die die Vorstellung einer global kohärenten Situation aufgeben oder reduzieren Zustandsautomaten, also solche, die versuchen, einen globalen Zustand bereitzustellen kohärente Singleton-Maschine durch homogene Shards und diejenigen, die nur auf Heterogenität abzielen. 2.2.1. Systeme ohne globalen Staat. Factom [21] ist ein System, das Kanonizität ohne entsprechendes demonstriert Gültigkeit, wodurch die Chronik der Daten effektiv ermöglicht wird. Wegen der Vermeidung des globalen Zustands und der Schwierigkeiten Mit der damit verbundenen Skalierung kann es als skalierbare Lösung betrachtet werden. Allerdings ist, wie bereits erwähnt, das Set Die Anzahl der Probleme, die es löst, ist grundsätzlich und wesentlich kleiner. Tangle [18] ist ein neuartiger Ansatz für Konsenssysteme. Anstatt Transaktionen in Blöcken anzuordnen und einen Konsens über eine streng verknüpfte Liste zu bilden, um eine global kanonische Ordnung von Zustandsänderungen zu erreichen, wird die Idee einer stark strukturierten Ordnung weitgehend aufgegeben und stattdessen drängt auf einen gerichteten azyklischen Graphen abhängiger Transaktionen mit späteren Elementen, die dabei helfen, frühere Elemente zu kanonisieren durch explizite Referenzierung. Für beliebige Zustandsänderungen gilt: dieser Abhängigkeitsgraph würde schnell unlösbar werden, Für das viel einfachere Modell UTXO2 gilt dies jedoch durchaus vernünftig. Weil das System nur lose kohärent ist und die Transaktionen im Allgemeinen voneinander unabhängig sind Andererseits wird ein großer Teil der globalen Parallelität ziemlich groß natürlich. Die Verwendung des Modells UTXO hat tatsächlich den Effekt Tangle auf eine reine Werttransfer-„Währung“ zu beschränken System und nicht etwas Allgemeineres oder Erweiterbares. Darüber hinaus ohne die harte globale Kohärenz, die Interaktion mit anderen Systemen – die tendenziell eines Absoluten bedürfen Grad des Wissens über den Systemzustand wird unpraktisch. 1https://github.com/ethereum/wiki/wiki/Chain-Fibers-Redux 2nicht ausgegebene Transaktionsausgabe, das Modell, das Bitcoin verwendet, wobei der Status effektiv der Satz von Adressen ist, die einem Wert zugeordnet sind; Transaktionen sammeln solche Adressen und formen sie in einen neuen Satz von Adressen um, deren Gesamtsumme äquivalent ist

POLKADOT: VISION FÜR EIN HETEROGENES MULTI-CHAIN-RAHMEN ENTWURF 1 3 2.2.2. Heterogene Kettensysteme. Seitenketten [3] ist ein vorgeschlagene Ergänzung des Bitcoin-Protokolls, die eine vertrauenslose Interaktion zwischen der Hauptkette Bitcoin ermöglichen würde und zusätzliche Seitenketten. Für welche ist keine vorgesehen Grad der „reichen“ Wechselwirkung zwischen Seitenketten: Die Wechselwirkung wäre darauf beschränkt, die Seitenketten zuzulassen Verwalter des gegenseitigen Vermögens, mit Wirkung – vor Ort Jargon – eine zweiseitige Bindung 3. Die Endvision ist ein Rahmen, mit dem die Währung Bitcoin bereitgestellt werden könnte zusätzliche, wenn auch periphere Funktionalität durch Papping auf einige andere Ketten mit exotischeren Zustandsübergängen Systeme, als das Protokoll Bitcoin zulässt. In diesem Sinne, Bei Sidechains geht es eher um Erweiterbarkeit als um Skalierbarkeit. Tatsächlich ist die Gültigkeit von Seitenketten grundsätzlich nicht geregelt; tokens aus einer Kette (z. B. Bitcoin) im Namen einer Seitenkette gehalten werden, werden nur durch die gesichert Die Fähigkeit der Seitenkette, Bergleute zur Kanonisierung zu motivieren gültige Übergänge. Die Sicherheit des Netzwerks Bitcoin kann nicht einfach in die Arbeit für andere überführt werden blockchains. Darüber hinaus ein Protokoll zur Sicherstellung von Bitcoin Bergleute führen Merge-Mine durch (d. h. duplizieren ihre Kanonisierungskraft auf die der Seitenkette) und, was noch wichtiger ist, sie validieren, dass die Übergänge der Seitenkette außerhalb der Seitenkette liegen Umfang dieses Vorschlags. Cosmos [10] ist ein vorgeschlagenes Mehrkettensystem im Gleiche Ader wie die Seitenketten, Austausch des Nakamoto PoW Konsensmethode für den Tendermint-Algorithmus von Jae Kwon. Im Wesentlichen beschreibt es mehrere Ketten (die in arbeiten). Zonen), die jeweils einzelne Instanzen von Tendermint verwenden, zusammen mit einem Mittel zur vertrauensfreien Kommunikation über a Hauptnabenkette. Diese Kommunikation zwischen den Ketten beschränkt sich auf die Übertragung digitaler Vermögenswerte („insbesondere über tokens“) und nicht auf willkürliche Informationen. Eine solche Kommunikation zwischen den Ketten verfügt jedoch über einen Rückweg für Daten. z.B. um dem Absender den Status der Übertragung mitzuteilen. Validator-Sets für die Zonenketten und insbesondere Die Mittel, Anreize zu schaffen, bleiben wie Seitenketten übrig als ungelöstes Problem. Die allgemeine Annahme ist das Jede Zonenkette wird selbst einen Wert von token halten, dessen Inflation zur Bezahlung von validators verwendet wird. Noch im Anfangsstadium Hinsichtlich des Designs mangelt es dem Vorschlag derzeit an umfassenden Details zu den wirtschaftlichen Mitteln zur Erreichung der Skalierbarkeit Gewissheit über globale Gültigkeit. Die erforderliche lockere Kohärenz zwischen den Zonen und dem Hub wird dies jedoch ermöglichen für zusätzliche Flexibilität hinsichtlich der Parameter der Zone Ketten im Vergleich zu einem System, das stärker durchsetzt Kohärenz. 2.2.3. Casper. Bisher gibt es noch keine umfassende Rezension oder einen direkten Vergleich zwischen Casper [6] und Polkadot wurden gemacht, obwohl man ein ziemlich umfassendes Bild machen kann (und dementsprechend ungenaue) Charakterisierung der beiden. Casper ist eine Neuinterpretation eines PoS-Konsensalgorithmus könnte darauf basieren, dass die Teilnehmer auf welche Gabel wetten würde letztendlich kanonisch werden. Es wurde viel Wert darauf gelegt, sicherzustellen, dass es netzwerkfähig ist Forks, auch wenn sie verlängert sind, und verfügen zusätzlich zum Basismodell Ethereum über ein gewisses Maß an Skalierbarkeit. Als So war Casper bisher tendenziell wesentlich mehr komplexeres Protokoll als Polkadot und seine Vorfahren, und a erhebliche Abweichung vom Grundformat blockchain. Es Es bleibt unklar, wie Casper in Zukunft iterieren wird und wie es aussehen wird, wenn es endlich eingesetzt wird. Während Casper und Polkadot beide interessante neue Protokolle und in gewissem Sinne Erweiterungen davon darstellen Ethereum, es gibt erhebliche Unterschiede zwischen ihnen ultimative Ziele und Wege zum Einsatz. Casper ist ein Ethereum Stiftungszentriertes Projekt, ursprünglich entworfen eine PoS-Änderung des Protokolls sein, ohne dass dies gewünscht wird Erstellen Sie ein grundsätzlich skalierbares blockchain. Entscheidend ist, dass es so ist Entwickelt als Hard-Fork und nicht als etwas Expansiveres, und daher wären es alle Ethereum-Clients und -Benutzer erforderlich, um ein Upgrade durchzuführen oder auf einer Abzweigung mit ungewisser Akzeptanz zu bleiben. Dadurch wird die Bereitstellung erheblich erschwert, wie es bei einem dezentralen Projekt mit Engpässen üblich ist Koordination ist notwendig. Polkadot unterscheidet sich in mehrfacher Hinsicht; in erster Linie, Polkadot ist vollständig erweiterbar und skalierbar blockchain Entwicklungs-, Bereitstellungs- und Interaktionstest Bett. Es ist so gebaut, dass es ein weitgehend zukunftssicheres Geschirr ist Neues assimilieren blockchainTechnologie, sobald sie verfügbar ist, ohne übermäßig komplizierte dezentrale Koordination oder harte Gabeln. Wir stellen uns bereits mehrere Anwendungsfälle vor, z als verschlüsselte Konsortialketten und Hochfrequenzketten mit sehr niedrigen Blockzeiten, die unrealistisch sind jede derzeit geplante zukünftige Version von Ethereum. Schließlich ist die Kopplung zwischen ihm und Ethereum extrem locker; Es ist keine Aktion seitens Ethereum erforderlich ermöglichen eine vertrauenswürdige Transaktionsweiterleitung zwischen den beiden Netzwerke. Kurz gesagt, während Casper/Ethereum 2.0 und Polkadot Wir haben einige flüchtige Gemeinsamkeiten, von denen wir glauben, dass sie ihr Endziel sind ist wesentlich unterschiedlich und das anstatt zu konkurrieren, Die beiden Protokolle werden wahrscheinlich letztendlich unter einem koexistieren eine für beide Seiten vorteilhafte Beziehung auf absehbare Zeit.

導入

ブロックチェーンは、「モノのインターネット」を含むいくつかの分野で有用性が大いに期待できることが証明されています。 (IoT)、財務、ガバナンス、アイデンティティ管理、ウェブ分散化、資産追跡。しかし、にもかかわらず、 技術的な約束と壮大な話はまだわかりません 現在のテクノロジーの重要な現実世界への展開。 私たちは、これは現在の 5 つの主要な失敗に起因すると考えています。 テクノロジースタック: スケーラビリティ: 世界中でどれだけのリソースが費やされているか システムが単一のトランザクションを処理するための処理、帯域幅、およびストレージ、およびそのトランザクション数 トランザクションは以下に基づいて合理的に処理できます ピークコンディション? 分離性: 複数の異なるニーズに対応できるか 関係者とアプリケーションは、同じフレームワークの下で最適に近い程度まで対処できるでしょうか? 開発性: ツールはどの程度うまく機能しますか?する API は開発者のニーズに対応しているでしょうか?教育用の教材はありますか?適切な統合は行われていますか? ガバナンス: ネットワークは柔軟性を維持できるか 時間の経過とともに進化して適応しますか? 決定は可能ですか 十分な包括性、正当性、そして 効果的なリーダーシップを発揮するための透明性 分散型システム? 適用可能性: そのテクノロジーは実際にそれ自体で切実なニーズに対応しているのでしょうか?ギャップを埋めるには他の「ミドルウェア」が必要ですか? 実際のアプリケーションは? 現在の作業では、最初の 2 つに対処することを目指しています。 問題: スケーラビリティと分離性。そうは言っても、私たちは信じています Polkadot フレームワークは、これらの問題のそれぞれのクラスにおいて有意義な改善を提供できます。 最新の効率的な blockchain 実装 パリティ Ethereum クライアント [17] は、 高性能のコンシューマ ハードウェアで実行すると、1 秒あたり 3,000 トランザクション。 しかし、現在の現実世界では、 blockchain ネットワークは実質的に約 30 に制限されています 1秒あたりのトランザクション数。 この制限は主に、現在の同期コンセンサス メカニズムが広いタイミング安全マージンを必要とするという事実に起因しています。 予想される処理時間は、POLKADOT: 異種マルチチェーン フレームワークのビジョン ドラフト 1 2 遅い実装をサポートしたいと考えています。これは次の理由によるものです 基礎となるコンセンサスアーキテクチャ: 状態遷移メカニズム、または当事者が照合する手段 トランザクションを実行し、そのロジックは基本的に結合されています コンセンサス「正規化」メカニズム、または 当事者がいくつかの事項のうちの 1 つに同意する手段 可能性のある、有効な、履歴。 これは、Bitcoin [15] や Ethereum [5,23] などの proof-of-work (PoW) システムと、NXT [8] や Bitshares [12] などのプルーフオブステーク (PoS) システムの両方に同様に当てはまります。 最終的には全員が同じハンディキャップを負うことになります。シンプルです blockchain の成功に貢献した戦略。ただし、 これら 2 つの機構を 1 つのユニットに緊密に結合することにより、 プロトコルの複数の異なるプロトコルもバンドルします さまざまなリスク プロファイル、さまざまなスケーラビリティ要件、さまざまなプライバシー ニーズを持つアクターとアプリケーション。 1 つのサイズがすべてに適合するわけではありません。次のようなケースが非常に頻繁にあります。 広くアピールしたいという願望があるため、ネットワークはある程度の保守主義を採用し、その結果最小公倍数が低くなります 少数の人々に最適にサービスを提供し、最終的には失敗につながる 時には、革新し、実行し、適応する能力において 劇的にそうです。 いくつかのシステム、例えばFactom [21] は状態遷移メカニズムを完全に削除します。ただし、その多くは、 私たちが望む実用性には状態を遷移する能力が必要です 共有ステートマシンに従って。落とせば解決する 別の問題。代替手段は提供されません 解決策。 したがって、合理的な方向性の 1 つは明らかであるように思われます。 スケーラブルな分散コンピューティングへのルートとして探索する プラットフォームはコンセンサスアーキテクチャを分離することを目的としています。 状態遷移メカニズム。そして、おそらく驚くことではないでしょうが、これは Polkadot がスケーラビリティの解決策として採用している戦略です。 2.1.プロトコル、実装、およびネットワーク。いいね Bitcoin および Ethereum、Polkadot は、ネットワーク プロトコルと (これまで想定されていた) プライマリを同時に指します このプロトコルを実行するパブリック ネットワーク。 Polkadot は無料でオープンなプロジェクトであることを目的としており、プロトコル仕様はクリエイティブ コモンズ ライセンスに基づいており、 コードは FLOSS ライセンスの下に配置されます。プロジェクトは オープンな方法で開発され、貢献を受け入れます 役に立つ場所ならどこでも。 RFC のシステムと似ています Python 拡張提案により、次の手段が可能になります。 プロトコルの変更とアップグレードに関して公的に協力しています。 Polkadot プロトコルの初期実装 はパリティ Polkadot プラットフォームとして知られ、 API とともに完全なプロトコル実装を含める バインディング。他のパリティ blockchain 実装と同様に、 PPP は、パブリック ネットワークやネットワークに固有のものではなく、汎用の blockchain テクノロジー スタックとして設計されています。 民間/コンソーシアム運営。こうして発展したのが、 これまで、以下を含むいくつかの団体から資金提供を受けてきました。 英国政府からの補助金。 それにも関わらず、この文書では Polkadot について次のように説明しています。 パブリックネットワークのコンテキスト。私たちがパブリック ネットワークで想定している機能は、ネットワークで必要とされる機能のスーパーセットです。 代替設定(プライベートおよび/またはコンソーシアムなど)。さらに、この文脈では、Polkadot の全範囲は次のようになります。 より明確に説明され、議論されるべきです。これはつまり、 読者は、特定のメカニズムが Polkadot に直接関係のない説明 (他のパブリック ネットワークとの相互運用など) 非公開(「許可」)状況で展開される場合。 2.2.以前の作品。基礎となるコンセンサスを状態遷移から切り離すことが非公式に提案されている 少なくとも 2 年間はプライベートで活動していた――マックス・ケイは、社会の非常に初期の頃、そのような戦略の支持者であった。 Ethereum。 チェーンとして知られる、より複雑でスケーラブルなソリューション ファイバーは 2014 年 6 月に遡り、その後初めて公開されました 同年1、透過的なチェーン間実行メカニズムを提供する単一のリレーチェーンと複数の同種チェーンの主張を行いました。 デコヒーレンスには代償が支払われた トランザクション レイテンシによる - トランザクションを必要とする システムの異なる部分を調整することで、 処理に時間がかかります。 Polkadot は、そのアーキテクチャの多くを、それとその後の会話から取り入れています。 ただし、その設計と規定の多くは大きく異なります。 Polkadot に匹敵するシステムはありませんが、 実際に実稼働中であり、何らかの関連性を持ついくつかのシステム 提案されているが、実質的なレベルではほとんどない 詳細。これらの提案は、システムに分解される グローバルに一貫性のある概念を削除または削減します。 ステート マシン、グローバルに提供しようとするもの 均質なシャードによるコヒーレントなシングルトン マシン 異質性のみを対象とするものもあります。 2.2.1.グローバル状態のないシステム。 Factom [21] は、対応するものなしで正規性を実証するシステムです。 有効性を高め、データの記録を効果的に可能にします。グローバルな状態と困難を回避するため これによってもたらされるスケーリングを考慮すると、スケーラブルなソリューションと考えることができます。ただし、前述したように、このセットは それによって解決される問題の割合は厳密かつ実質的に小さくなります。 Tangle [18] は、コンセンサス システムへの新しいアプローチです。 トランザクションをブロックに配置し、厳密にリンクされたリストに基づいて合意を形成して、状態変化の世界的に標準的な順序付けを行うのではなく、高度に構造化された順序付けの概念を大幅に放棄し、代わりに 初期の項目を正規化するのに役立つ、後の項目を持つ依存トランザクションの有向非巡回グラフを推進します。 明示的な参照を通じて。任意の状態変化の場合、 この依存関係グラフはすぐに手に負えなくなるでしょう。 ただし、より単純な UTXO モデル 2 の場合、これは次のようになります。 かなり合理的です。システムの一貫性は緩やかであり、トランザクションは通常、それぞれから独立しているためです。 その他、大量のグローバル並列処理が非常に多くなります。 自然な。 UTXO モデルを使用すると効果があります タングルを純粋に価値移転「通貨」に限定すること より一般的または拡張可能なものではなく、システムです。 さらに、厳密なグローバル一貫性がなければ、他のシステムとの相互作用は、絶対的なシステムを必要とする傾向があります。 システム状態に関するある程度の知識は非現実的になります。 1https://github.com/ethereum/wiki/wiki/Chain-Fibers-Redux 2 未使用のトランザクション出力。Bitcoin が使用するモデル。これにより、状態は事実上、ある値に関連付けられたアドレスのセットになります。 トランザクションはそのようなアドレスを照合し、合計が等しい新しいアドレスのセットに再構成します。

POLKADOT: 異種マルチチェーン フレームワークのビジョン ドラフト 1 3 2.2.2.異種チェーン システム。サイドチェーン [3] は メインの Bitcoin チェーン間のトラストレスな対話を可能にする Bitcoin プロトコルへの追加を提案 そして追加のサイドチェーン。何の規定もありません 側鎖間の「豊富な」相互作用の程度: 相互作用は、側鎖の相互作用を可能にするものに限定されます。 お互いの資産を管理し、地域内で影響を与える 専門用語—双方向ペッグ 3. 最終的なビジョンは、Bitcoin 通貨を提供できるフレームワークです。 ペギングによる追加機能 (周辺機能である場合) よりエキゾチックな状態遷移を伴う他のチェーンへ Bitcoin プロトコルで許可されているシステムを超えています。この意味で、 サイドチェーンは、スケーラビリティではなく拡張性に対処します。 実際、サイドチェーンの有効性に関する規定は基本的にありません。 1 つのチェーンからの token 個 (例: Bitcoin) サイドチェーンに代わって保持されるのは、 マイナーに正規化を促すサイドチェーンの機能 有効な遷移。 Bitcoin ネットワークのセキュリティ 他の人に代わって仕事に簡単に移行できない blockchain秒。さらに、Bitcoin を保証するためのプロトコル マイナーはマージマイニング (つまり、正規化権限をサイドチェーンの権限に複製します) し、さらに重要なことに、サイドチェーンの遷移が外部にあることを検証します。 この提案の範囲。 Cosmos [10] は、 サイドチェーンと同じ流れで、ナカモトのPoWを交換します Jae Kwon の Tendermint アルゴリズムのコンセンサス手法。 基本的に、それは複数のチェーン(で動作する)を記述します。 ゾーン) それぞれが Tendermint の個別のインスタンスを使用し、 マスターハブチェーン。このチェーン間通信は、任意の情報ではなく、デジタル資産 (「具体的には tokens について」) の転送に限定されていますが、このようなチェーン間通信にはデータのリターン パスがあり、 例:転送のステータスを送信者に報告するため。 ゾーンチェーンのバリデーターセット、特に 彼らを奨励する手段は、サイドチェーンと同様に、左にあります。 未解決の問題として。一般的な仮定は次のとおりです 各ゾーンチェーン自体は、validator の支払いに使用される値の token を保持します。まだ初期段階にある 設計の点で、現時点ではこの提案には、スケーラブルな設計を達成するための経済的手段に関する包括的な詳細が欠けています。 グローバルな妥当性に対する確実性。ただし、ゾーンとハブの間に必要な緩やかな一貫性により、 ゾーンのパラメータに対する柔軟性をさらに高めるため より強力なチェーンを適用するシステムのチェーンと比較して、 一貫性。 2.2.3.キャスパー。 Casper [6] と Polkadot の包括的なレビューや比較はまだ行われていません かなり広範囲に作成することもできますが、 (したがって不正確な) 2 つの特徴付け。 Casper は、PoS コンセンサス アルゴリズムの仕組みを再考したものです 参加者がどのフォークに賭けるかに基づいている可能性があります 最終的には正規化されるでしょう。ネットワークに対する堅牢性を確保するために十分な考慮が払われました 延長された場合でもフォークを使用し、基本的な Ethereum モデルに加えてある程度の追加のスケーラビリティを備えています。として このように、Casper はこれまでのところ、実質的に Polkadot やその前身よりも複雑なプロトコル、 基本的な blockchain 形式から大幅に逸脱しています。それ Casper が将来どのように反復するかはまだわかりません そして、それが最終的に展開された場合にどのようになるか。 Casper と Polkadot はどちらも興味深い新しいプロトコルであり、ある意味では、 Ethereum、両者の間には大きな違いがあります。 最終的な目標と導入までの道筋。 キャスパーは、 Ethereum 当初設計された財団中心のプロジェクト 意図せずにプロトコルの PoS 変更を行うこと 基本的にスケーラブルな blockchain を作成します。重要なことは、それは、 これ以上拡張的なものではなく、ハードフォークとして設計されているため、すべての Ethereum クライアントとユーザーは アップグレードするか、採用が不確実な分岐点に留まる必要があります。そのため、緊密な分散プロジェクトに特有のこととして、デプロイメントは大幅に困難になります。 調整が必要です。 Polkadot はいくつかの点で異なります。何よりもまず、 Polkadot は、完全に拡張可能でスケーラブルになるように設計されています。 blockchain 開発、展開、および対話テスト ベッド。これは、ほぼ将来性のあるハーネスとして構築されており、 新しいblockchainを同化する過度に複雑な分散型調整なしで利用できるテクノロジー またはハードフォーク。私たちはすでに次のようないくつかのユースケースを想定しています 暗号化されたコンソーシアムチェーンおよび高周波チェーンとして ブロック時間が非常に短いため、実行するのは非現実的です。 現在想定されている Ethereum の将来のバージョン。最後に、それと Ethereum との結合は非常に強力です。 緩い; Ethereum 側でのアクションは必要ありません。 2 つの間のトラストレスなトランザクション転送を有効にする ネットワーク。 つまり、Casper/Ethereum 2.0 および Polkadot いくつかのつかの間の類似点を共有しますが、私たちは彼らの最終目標を信じています 実質的に異なっており、競合するのではなく、 2 つのプロトコルは最終的には共存する可能性があります。 予見可能な将来にわたって相互に有益な関係を維持します。

Zusammenfassung

Polkadot ist eine skalierbare heterogene Multikette. Dies bedeutet, dass im Gegensatz zu früheren blockchain-Implementierungen die sich auf die Bereitstellung einer einzigen Kette unterschiedlicher Produkte konzentriert haben Grad der Allgemeinheit über potenzielle Anwendungen, Polkadot selbst ist so konzipiert, dass es überhaupt keine inhärente Anwendungsfunktionalität bietet. Vielmehr liefert Polkadot das Fundament „Relaiskette“, auf der eine große Anzahl validierbarer, Es können global kohärente dynamische Datenstrukturen gehostet werden Seite an Seite. Wir nennen diese Datenstrukturen „parallelisiert“. Ketten oder Parachains, obwohl kein besonderer Bedarf dafür besteht sie sollen blockchain in der Natur sein. Mit anderen Worten, Polkadot kann als äquivalent zu einer Menge unabhängiger Ketten angesehen werden (z. B. der Menge, die enthält Ethereum, Ethereum Classic, Namecoin und Bitcoin) bis auf zwei sehr wichtige Punkte: • Gebündelte Sicherheit; • Vertrauensfreie Interchain-Transaktionsfähigkeit. Aufgrund dieser Punkte halten wir Polkadot für „skalierbar“. Im Prinzip kann ein Problem, das auf Polkadot bereitgestellt werden soll, im Wesentlichen parallelisiert – skaliert – werden eine große Anzahl von Parachains. Da alle Aspekte von jedem Parachain kann parallel von einem anderen Segment des Polkadot-Netzwerks ausgeführt werden, das System verfügt über einige Fähigkeiten zu skalieren. Polkadot bietet ein eher schlichtes Stück davon 3im Gegensatz zu einer Einwegbindung, bei der im Wesentlichen tokens in einer Kette zerstört werden, um tokens in einer anderen ohne das zu erstellen Mechanismus, um das Gegenteil zu tun und die ursprünglichen tokens wiederherzustellenPOLKADOT: VISION FÜR EIN HETEROGENES MULTI-CHAIN-RAHMEN ENTWURF 1 4 Infrastruktur, so dass ein Großteil der Komplexität auf der Middleware-Ebene angegangen werden muss. Dies ist eine bewusste Entscheidung, die darauf abzielt, das Entwicklungsrisiko zu verringern und dies zu ermöglichen erforderliche Software innerhalb kurzer Zeit zu entwickeln und mit einem guten Maß an Vertrauen in seine Sicherheit und Robustheit. 3.1. Die Philosophie von Polkadot. Polkadot sollte bieten eine absolut grundsolide Grundlage Bauen Sie die nächste Welle von Konsenssystemen auf das Risikospektrum produktionsfähiger ausgereifter Konstruktionen zu aufkeimenden Ideen. Durch die Bereitstellung starker Garantien für Sicherheit, Isolation und Kommunikation kann Polkadot dies ermöglichen Parachains können selbst aus einer Reihe von Eigenschaften auswählen. Tatsächlich gehen wir davon aus, dass verschiedene experimentelle blockchains die Eigenschaften dessen, was als sinnvoll angesehen werden könnte, vorantreiben heute. Wir sehen konservativ, hochwertige Ketten ähnlich Bitcoin oder Z-Cash [20], die neben niedrigeren Werten koexistieren „Themenketten“ (so ein Marketing, so lustig) und Testnetze mit null oder nahezu null Gebühren. Wir sehen vollständig verschlüsselt, „dunkle“, Konsortiumsketten, die daneben operieren – und sogar Bereitstellung von Dienstleistungen für hochfunktionale und offene Ketten wie solche wie Ethereum. Wir sehen experimentelles Neues VM-basierte Ketten wie ein subjektiv zeitbelasteter Wasm Die Kette wird als Mittel zur Auslagerung schwieriger Rechenprobleme aus einer ausgereifteren Ethereum-ähnlichen Kette verwendet oder eine eingeschränktere Bitcoin-ähnliche Kette. Um Ketten-Upgrades zu verwalten, wird Polkadot von Natur aus verwendet Unterstützen Sie wahrscheinlich eine Art Governance-Struktur auf bestehenden stabilen politischen Systemen und hat einen Zweikammeraspekt, ähnlich dem Yellow Paper Council [24]. Als Die ultimative Autorität, die zugrunde liegenden steckbaren token-Inhaber, hätte die „Referendums“-Kontrolle. Um die Benutzerfreundlichkeit widerzuspiegeln Angesichts des Entwicklungsbedarfs, aber des Legitimitätsbedarfs der Entwickler gehen wir davon aus, dass sich eine vernünftige Richtung herausbilden würde Die beiden Kammern bestehen aus einem „Benutzer“-Ausschuss (bestehend aus gebunden validators) und ein „technischer“ Ausschuss gebildet großer Kundenentwickler und Ökosystemteilnehmer. Die Die Gruppe der token-Inhaber würde die ultimative Legitimität behalten und eine Supermehrheit bilden, um diese Struktur zu erweitern, neu zu parametrisieren, zu ersetzen oder aufzulösen, was wir tun Zweifeln Sie nicht an der eventuellen Notwendigkeit: in den Worten von Twain „Regierungen und Windeln müssen oft und für immer gewechselt werden aus dem gleichen Grund“. Während eine Neuparametrisierung in der Regel trivial innerhalb eines größeren Konsensmechanismus zu arrangieren ist, wären eher qualitative Änderungen wie Ersatz und Erweiterung erforderlich Wahrscheinlich muss es sich entweder um nicht automatisierte „Soft-Dekrete“ handeln (z. B. durch die Kanonisierung einer Blocknummer und der hash eines Dokuments, das das neue Protokoll offiziell spezifiziert) oder es erforderlich machen, dass der Kernkonsensmechanismus Folgendes enthält: eine ausreichend reichhaltige Sprache, um jeden Aspekt ihrer selbst zu beschreiben was möglicherweise geändert werden muss. Letzteres ist ein mögliches Ziel, Ersteres wird jedoch eher gewählt, um dies zu tun einen angemessenen Entwicklungszeitplan ermöglichen. Die wichtigsten Grundsätze von Polkadot und die darin enthaltenen Regeln Wir bewerten alle Designentscheidungen: Minimal: Polkadot sollte möglichst wenig Funktionalität haben. Einfach: Es sollte keine zusätzliche Komplexität vorhanden sein im Basisprotokoll enthalten, als vernünftigerweise möglich ist in Middleware geladen, durch a gelegt parachain oder in einer späteren Optimierung eingeführt. Allgemein: keine unnötige Anforderung, Einschränkung oder Parachains sollten eingeschränkt werden; Polkadot sollte ein Prüfstand für die Entwicklung eines Konsenssystems sein, das dadurch optimiert werden kann Das Modell, in das Erweiterungen passen, so abstrakt wie möglich gestalten. Robust: Polkadot sollte eine grundsätzliche Bereitstellung bieten Stabile Basisschicht. Neben der wirtschaftlichen Solidität bedeutet dies auch eine Dezentralisierung zur Minimierung die Vektoren für hochlohnende Angriffe.

まとめ

Polkadot は、スケーラブルな異種マルチチェーンです。これ 以前の blockchain 実装とは異なることを意味します さまざまなチェーンを単一チェーンで提供することに重点を置いています。 潜在的なアプリケーションに対する一般性の度合い、Polkadot それ自体は、アプリケーション固有の機能をまったく提供しないように設計されています。 むしろ、Polkadot が基盤を提供します 多数の検証可能な「リレーチェーン」、 グローバルに一貫性のある動的データ構造をホストできる 並んで。これらのデータ構造を「並列化」と呼びます。 チェーンまたはパラチェーン。ただし、特に必要なわけではありません。 それらは本質的にblockchainであると考えられます。 言い換えれば、Polkadot は独立したチェーンのセット (例: Ethereum、Ethereum Classic、Namecoin、および Bitcoin)、2 つの非常に重要な点を除きます。 • プールされたセキュリティ。 • トラストフリーのチェーン間取引可能性。 これらの点が、Polkadot が「スケーラブル」であると考える理由です。原則として、Polkadot にデプロイされる問題は、実質的に並列化、スケールアウトすることができます。 多数のパラチェーン。それぞれのあらゆる側面から、 パラチェーンは Polkadot ネットワークの異なるセグメントによって並行して実行される可能性があり、システムには何らかの機能があります スケールするために。 Polkadot は、かなり必要最低限の部分を提供します。 3一方向ペグとは対照的に、基本的に 1 つのチェーン内の token を破棄して、別のチェーンに token を作成します。 元の token を回復するために逆の処理を行うメカニズムPOLKADOT: 異種マルチチェーン フレームワークのビジョン ドラフト 1 4 インフラストラクチャの複雑さの多くはミドルウェア レベルで解決される必要があります。これは開発リスクを軽減することを目的とした意識的な決定であり、 必要なソフトウェアを短期間で開発する必要がある そしてそのセキュリティには十分な自信があり、 堅牢性。 3.1. Polkadot の哲学。 Polkadot すべきです 絶対的な強固な基盤を提供します。 コンセンサス システムの次の波を即座に構築する 生産可能な成熟した設計からのリスクスペクトル 初期のアイデアに。 Polkadot は、セキュリティ、分離、通信に対する強力な保証を提供することで、 パラチェーン自体をさまざまなプロパティから選択します。 実際、私たちは、賢明であると考えられるものの特性を押し上げるさまざまな実験的な blockchain を予見しています。 今日。 私たちは保守的だと考えていますが、 ~に似た高価値チェーン Bitcoin または Z-cash [20] が低額と共存 「テーマチェーン」(このようなマーケティング、非常に楽しい)とテストネット 手数料はゼロ、またはほぼゼロです。 完全に暗号化されていることがわかります。 「ダーク」、コンソーシアム チェーンが並行して運営され、さらには 高機能でオープンなチェーンへのサービスの提供 Ethereum など。実験的な新しいものを見る 主観的な時間課金型の Wasm などの VM ベースのチェーン チェーンは、より成熟したEthereumのようなチェーンから難しい計算問題をアウトソーシングする手段として使用されています または、より制限された Bitcoin のようなチェーン。 チェーン アップグレードを管理するために、Polkadot は本質的に 何らかのガバナンス構造をサポートしている可能性が高い 既存の安定した政治制度と、イエローペーパー評議会[24]と同様の二院制の側面を持っています。として 最終的な権威である、根底にあるステーカブルtoken保有者が「国民投票」のコントロールを有することになる。ユーザーの意見を反映するため 開発の必要性はあるが、開発者の正当性の必要性も考慮すると、合理的な方向性は、 両院の「ユーザー」委員会(以下で構成) validators) と「技術」委員会が設立されました 主要なクライアント開発者とエコシステムプレーヤーの数。 の token 保有者の集団は究極の正当性を維持し、この構造を強化、再パラメータ化、置き換え、または解体する超多数派を形成するでしょう。 トウェインの言葉を借りれば、最終的には次のことが必要になることを疑ってはなりません。 「おむつもおむつも頻繁に交換しなければなりませんし、 同じ理由です。」 通常、再パラメータ化は大規模なコンセンサスメカニズム内で調整するのは簡単ですが、置き換えや増強などのより質的な変更は、 おそらく、自動化されていない「軟令」(例: ブロック番号の正規化と 新しいプロトコルを正式に指定する文書の hash) あるいは、核となるコンセンサスメカニズムに、 それ自体のあらゆる側面を説明するのに十分な豊かな言語 変更する必要があるかもしれません。後者は最終的な目標ですが、 ただし、次の目的では前者が選択される可能性が高くなります。 合理的な開発スケジュールを促進します。 Polkadot の主な信条とその中のルール 私たちはすべての設計上の決定事項を次のように評価します。 最小限: Polkadot にはできる限り機能を少なくする必要があります。 シンプル: 追加の複雑さは存在すべきではありません 基本プロトコルでは合理的に考えられる以上の ミドルウェアにオフロードされ、 を通して置かれる パラチェーン、または後の最適化で導入されました。 一般: 不必要な要件や制約はありません またはパラチェーンに制限を設ける必要があります。 Polkadot は、次の方法で最適化できるコンセンサス システム開発のテスト ベッドである必要があります。 拡張機能が適合するモデルを可能な限り抽象化します。 堅牢: Polkadot は基本的に 安定したベースレイヤー。これは、経済の健全性に加えて、最小限に抑えるための分散化も意味します。 高額な報酬をもたらす攻撃のベクトル。

Teilnahme an Polkadot

Es gibt vier grundlegende Rollen bei der Wartung eines Polkadot Netzwerk: Collator, Fisherman, Nominator und validator. In eine mögliche Implementierung von Polkadot, der letztgenannten Rolle kann tatsächlich in zwei Rollen unterteilt werden: grundlegende validator und Verfügbarkeitsgarantie; Dies wird im Abschnitt besprochen 6.5.3. Collator Fischer Validatoren (diese Gruppe) Validatoren (andere Gruppen) stimmt zu wird Monitore Berichte schlecht Verhalten zu bietet Block Kandidaten für Nominator Abbildung 1. Die Interaktion zwischen vier Rollen von Polkadot. 4.1. Validatoren. Ein validator ist die höchste Gebühr und hilft dabei, neue Blöcke im Polkadot-Netzwerk abzudichten. Voraussetzung für die Rolle des validator ist eine ausreichend hohe Bindung hinterlegt werden, obwohl wir dies auch anderen gebundenen Parteien gestatten Nominieren Sie einen oder mehrere validators, die für sie und als handeln Ein solcher Teil der Anleihe des validator gehört möglicherweise nicht unbedingt dem validator selbst, sondern diesen Nominatoren. Ein validator muss eine Relay-Chain-Client-Implementierung mit hoher Verfügbarkeit und Bandbreite ausführen. An jedem Block Der Knoten muss bereit sein, die Rolle des Ratifizierenden zu übernehmen ein neuer Block auf einer nominierten Parachain. Dieser Prozess beinhaltet den Empfang, die Validierung und die erneute Veröffentlichung des Kandidaten Blöcke. Die Nominierung ist deterministisch, aber praktisch unvorhersehbar. Da der validator nicht möglich ist Es ist vernünftigerweise zu erwarten, dass eine vollständige Synchronisierung gewährleistet ist Datenbank aller Parachains, es wird erwartet, dass der validator die Aufgabe benennen wird, einen Vorschlag für ein neues zu entwickeln Parachain-Block an einen Dritten, einen sogenannten Collator, weiter. Sobald alle neuen Parachain-Blöcke ordnungsgemäß von ihren ernannten validator-Untergruppen, validators, ratifiziert wurden muss dann den Relay-Chain-Block selbst ratifizieren. Dies beinhaltet Aktualisieren des Status der Transaktionswarteschlangen (im Wesentlichen Verschieben von Daten aus der Ausgabewarteschlange einer Parachain in eine andere Eingabewarteschlange von Parachain), Verarbeitung der Transaktionen von der ratifizierte Relay-Chain-Transaktionssatz und die Ratifizierung des Endblock, einschließlich der letzten Parachain-Änderungen.POLKADOT: VISION FÜR EIN HETEROGENES MULTI-CHAIN-RAHMEN ENTWURF 1 5 Ein validator kommt seiner Pflicht, einen Konsens zu finden, nicht nach nach den Regeln unseres gewählten Konsensalgorithmus wird bestraft. Bei anfänglichen, unbeabsichtigten Ausfällen gilt dies als durch die Belohnung von validator einbehalten. Wiederholte Ausfälle führen zu einer Verringerung ihrer Sicherheitsbindung (durch Brennen). Nachweislich böswillige Aktionen wie Doppelsignierung oder Die Verschwörung zur Bereitstellung eines ungültigen Blocks führt zum Verlust von die gesamte Bindung (die teilweise verbrannt, aber größtenteils gegeben ist). an den Informanten und die ehrlichen Akteure). In gewisser Weise ähneln validators den Mining-Pools der aktuellen PoW blockchains. 4.2. Nominatoren. Ein Nominator ist eine Beteiligungspartei Wer trägt zur Sicherheitsleistung eines validator bei? Sie haben keine zusätzliche Rolle außer der Platzierung von Risikokapital und dergleichen So signalisieren sie, dass sie einem bestimmten validator vertrauen (oder Satz davon), verantwortungsbewusst bei der Aufrechterhaltung der zu handeln Netzwerk. Sie erhalten eine anteilige Erhöhung oder Kürzung in ihrer Einlage entsprechend dem Wachstum der Anleihe sie tragen dazu bei. Zusammen mit den Collatoren sind es in einigen Fällen auch die Nominatoren Sinn ähnlich wie die Miner der heutigen PoW-Netzwerke. 4.3. Collatoren. Transaktions-Collators (kurz Collators) sind Parteien, die validators bei der Erstellung gültiger Dokumente unterstützen Parachain-Blöcke. Sie pflegen einen „vollständigen Knoten“ für eine bestimmte Parachain; Das bedeutet, dass sie alles Notwendige behalten Informationen, um neue Blöcke erstellen und ausführen zu können Transaktionen auf die gleiche Weise wie Miner auf aktuellen PoW blockchains. Unter normalen Umständen sind sie sammelt Transaktionen und führt sie aus, um eine unversiegelte Transaktion zu erstellen blockieren und zusammen mit einem Zero-Wissen bereitstellen Beweis, an einen oder mehrere validators, für die derzeit verantwortlich ist schlägt einen Parachain-Block vor. Die genaue Art der Beziehung zwischen Collators, Nominators und validators wird sich wahrscheinlich ändern Zeit. Zunächst erwarten wir, dass die Zusammensteller sehr eng zusammenarbeiten mit validators, da es nur wenige geben wird (vielleicht nur eine) Parachain(s) mit geringem Transaktionsvolumen. Die Die anfängliche Client-Implementierung umfasst RPCs, um a zu ermöglichen Parachain-Collator-Knoten, um einen (Relaychain-) validator-Knoten bedingungslos mit einer nachweislich gültigen Parachain zu versorgen blockieren. Da die Kosten für die Aufrechterhaltung einer synchronisierten Version von Alle diese Parachains nehmen zu, wir gehen davon aus, dass es noch mehr geben wird Infrastruktur vorhanden, die dabei hilft, die zu trennen Pflichten gegenüber unabhängigen, wirtschaftlich motivierten Parteien. Wir gehen davon aus, dass es irgendwann Zusammentragspools geben wird, die darum wetteifern erheben die meisten Transaktionsgebühren. Solche Kollektoren können beauftragt werden, bestimmte validators über einen bestimmten Zeitraum zu bedienen und einen fortlaufenden Anteil am Prämienerlös zu erhalten. Alternativ können „freiberufliche“ Zusammensteller einfach eine erstellen Markt, der gültige Parachain-Blöcke als Gegenleistung für einen wettbewerbsfähigen Anteil der sofort zahlbaren Belohnung anbietet. Ebenso würden dezentrale Nominator-Pools mehrere ermöglichen gebundene Teilnehmer koordinieren und teilen die Pflicht eines validator. Diese Bündelungsfähigkeit gewährleistet eine offene Beteiligung Dies führt zu einem dezentraleren System. 4.4. Fischer. Im Gegensatz zu den anderen beiden aktiven Parteien Fischer stehen in keinem direkten Zusammenhang mit der Blockerstellung Prozess. Sie sind vielmehr unabhängige „Kopfgeldjäger“. motiviert durch eine große einmalige Belohnung. Genau wegen Aufgrund der Existenz von Fischern gehen wir davon aus, dass Fehlverhalten selten vorkommt und wenn, dann nur aufgrund von die gebundene Partei ist bei der Sicherheit geheimer Schlüssel nachlässig, und nicht aus böswilliger Absicht. Der Name kommt aus der erwarteten Häufigkeit der Belohnung, den Mindestvoraussetzungen für die Teilnahme und der letztendlichen Belohnungsgröße. Fischer erhalten ihre Belohnung durch einen rechtzeitigen Nachweis mindestens eine gebundene Partei hat rechtswidrig gehandelt. Illegale Handlungen Dazu gehört die Unterzeichnung von jeweils zwei Blöcken mit demselben ratifizierten übergeordneten Element oder, im Fall von Fallschirmen, die Unterstützung bei der Ratifizierung eines ungültigen Elements blockieren. Um eine Überbelohnung oder den Kompromiss zu verhindern und unerlaubte Verwendung des geheimen Schlüssels einer Sitzung, der Basisbelohnung dafür Die Bereitstellung einer einzelnen illegal signierten Nachricht von validator ist minimal. Diese Belohnung nimmt asymptotisch zu, je mehr Dies bestätigen illegale Signaturen von anderen validators vorausgesetzt, es handelt sich um einen echten Angriff. Die Asymptote ist eingestellt bei 66 %, was unserer grundlegenden Sicherheitsaussage entspricht Zwei Drittel der validators handeln wohlwollend. Fischer ähneln in gewisser Weise „vollständigen Knoten“ in heutigen blockchain Systemen die benötigten Ressourcen sind relativ klein und erfordern eine stabile Betriebszeit und Bandbreite ist nicht erforderlich. Fischer unterscheiden sich darin so wie sie eine kleine Kaution hinterlegen müssen.Diese Bindung verhindert Sybil-Angriffe verschwenden die Zeit und Rechenleistung von validators Ressourcen. Es ist sofort ausziehbar, wahrscheinlich nein mehr als den Gegenwert von ein paar Dollar und kann führen eine saftige Belohnung dafür zu ernten, dass man ein Fehlverhalten entdeckt validator.

Polkadot への参加

Polkadot の維持には 4 つの基本的な役割があります。 ネットワーク: 照合者、漁師、指名者、validator。で Polkadot の実装可能な 1 つ、後者の役割 実際には、基本的な validator と可用性の保証という 2 つの役割に分類できます。これについてはセクションで説明します 6.5.3. コレーター 漁師 バリデーター (このグループ) バリデーター (他のグループ) 承認する になる モニター レポート 悪い に対する行動 ブロックを提供します 候補者 のために 推薦者 図 1. 間の相互作用 Polkadot の 4 つの役割。 4.1.バリデーター。 validator は最高料金であり、 Polkadot ネットワーク上の新しいブロックを封印するのに役立ちます。 validator の役割は、十分に高い結合力に依存します ただし、他の保税当事者に預けられることは許可されています。 彼らのために行動する 1 人以上の validator を指名し、 validator の債券のそのような一部は、必ずしも validator 自体が所有しているわけではなく、これらの者が所有している可能性があります。 推薦者。 validator は、高可用性と帯域幅を備えたリレー チェーン クライアント実装を実行する必要があります。各ブロックで ノードは批准の役割を受け入れる準備ができていなければなりません 指定されたパラチェーン上の新しいブロック。 このプロセス 候補者の受信、検証、再公開が含まれます ブロック。指名は決定的ですが、事前に予測することは事実上不可能です。 validator はできないため、 完全な同期を維持することが合理的に期待される すべてのパラチェーンのデータベースを作成するには、validator が提案された新しいパラチェーンを考案するタスクを指名することが期待されます。 コレーターとして知られるサードパーティへのパラチェーン ブロック。 すべての新しいパラチェーン ブロックが、指定された validator サブグループ、validator によって適切に承認されると、 その後、リレーチェーンブロック自体を承認する必要があります。これには、 トランザクションキューの状態を更新する(本質的には パラチェーンの出力キューから別の出力キューにデータを移動する パラチェーンの入力キュー)、トランザクションを処理します。 承認されたリレーチェーントランザクションセットと承認 最終ブロック(最後のパラチェーン変更を含む)。POLKADOT: 異種マルチチェーン フレームワークのビジョン ドラフト 1 5 validator は合意を見つける義務を果たしていない 私たちが選択したコンセンサスアルゴリズムのルールの下では罰せられます。初期の意図しない障害の場合、これは次のとおりです。 validator の報酬を保留します。失敗が繰り返されると、セキュリティ保証金が (焼き付けによって) 減少します。二重署名や 共謀して無効なブロックを提供すると、 債券全体(部分的には燃えていますが、ほとんどが残っています) 情報提供者と誠実な関係者に)。 ある意味、validator はマイニング プールに似ています。 現在の PoW blockchain 件。 4.2.推薦者。指名者は利害関係者です validator の保証金に貢献した人。彼らは リスク資本を投入する以外に追加の役割はありません。 特定の validator (または のメンテナンスにおいて責任を持って行動すること。 ネットワーク。 比例配分された増額または減額が受けられます 債券の成長に応じて預金に入金されます。 彼らは貢献します。 照合者と合わせて、次に、推薦者もいくつかいます。 現在のPoWネットワークのマイナーと同じ感覚です。 4.3.照合者。取引照合者(略して照合者) validator が有効なものを作成するのを支援する当事者です。 パラチェーンブロック。彼らは特定のパラチェーンの「フルノード」を維持します。つまり、必要なものはすべて保持されます 新しいブロックを作成して実行できるようにするための情報 現在の PoW blockchain に対してマイナーが行うのとほぼ同じ方法でトランザクションを実行できます。通常の状況では、彼らは、 トランザクションを照合して実行し、封印されていないものを作成します をブロックし、ゼロ知識とともに提供する 現在責任を負っている 1 人以上の validator に証拠を提出します。 パラチェーンブロックを提案しています。 照合者、推薦者、validator 間の関係の正確な性質は変わる可能性があります。 時間。当初は、照合者が非常に緊密に連携することが期待されます validators は数が少ないため (おそらく 1 つだけ)トランザクション量が少ないパラチェーン。の 初期のクライアント実装には、 パラチェーン コレーター ノードは、(リレーチェーン) validator ノードに有効なパラチェーンを無条件に提供します ブロック。 同期バージョンを維持するコストとして このようなパラチェーンがすべて増加すると、さらに多くのパラチェーンが発生すると予想されます。 インフラを整備することで、 独立した経済的動機を持つ当事者に対する義務。 最終的には、 最も多くの取引手数料を徴収します。このような照合者は、報酬収益の継続的な分配のために、一定期間にわたって特定の validator を提供する契約を結ぶ可能性があります。 あるいは、「フリーランス」の照合者が単純に すぐに支払われる報酬の競争力のあるシェアと引き換えに、有効なパラチェーンブロックを提供する市場。同様に、分散型の推薦者プールでは、複数の推薦者プールが許可されます。 結束した参加者が調整し、責任を共有する validator。このプール機能により、オープンな参加が保証されます より分散化されたシステムにつながります。 4.4.漁師さんたち。他の2つのアクティブなパーティーとは異なり、 漁師はブロックオーサリングに直接関係していない プロセス。むしろ彼らは独立した「賞金稼ぎ」です。 高額な 1 回限りの報酬が動機です。 まさに、 漁師の存在を考えると、不正行為が起こることはめったになく、不正行為が起こるのは次のような場合のみであると予想されます。 結合した当事者が秘密鍵のセキュリティに不注意である、 悪意によるものではなく。名前が来る 予想される報酬の頻度、参加するための最小要件、および最終的な報酬のサイズから構成されます。 漁師は、タイムリーに次のことを証明することで報酬を得ることができます。 少なくとも一方の保税当事者が違法行為を行った。違法行為 それぞれ同じ承認された親を持つ 2 つのブロックに署名すること、またはパラチェーンの場合は無効なブロックの承認を支援することが含まれます。 ブロック。過剰な報酬や妥協を防ぐため、 セッションの秘密鍵の不正使用、基本報酬 単一の validator の違法に署名されたメッセージを提供することは、 最小限。この報酬は、増加するにつれて漸近的に増加します 他のvalidatorからの違法な署名を裏付けるものは、 本物の攻撃を暗示するもの。漸近線が設定されています 少なくとも次の基本的なセキュリティ主張に従って 66% validator の 3 分の 2 は慈善的に行動します。 フィッシャーマンは、以下の「フルノード」に似ています。 リソースが必要とする現在の blockchain システム 比較的小規模であり、安定した稼働時間を約束します 帯域幅も必要ありません。漁師の違いはこうだ 少額の保証金を支払わなければならないのと同じくらい。この絆は、 validator秒の時間と計算を無駄にするシビル攻撃 リソース。すぐに撤回可能ですが、おそらくそうではありません 数ドル相当以上の金額がかかる可能性があります 不正行為を発見することで多額の報酬を得る validator。

Designübersicht

Dieser Abschnitt soll einen kurzen Überblick darüber geben System als Ganzes. Eine gründlichere Untersuchung der Das System wird im folgenden Abschnitt beschrieben. 5.1. Konsens. Auf der Relay-Kette wird Polkadot erreicht Konsens auf niedriger Ebene über eine Reihe von einvernehmlich vereinbarten Gültigkeiten blockiert durch einen modernen asynchronen byzantinischen fehlertoleranten (BFT)-Algorithmus. Der Algorithmus wird inspiriert sein durch das einfache Tendermint [11] und das wesentlich mehr beteiligt HoneyBadgerBFT [14]. Letzteres bietet eine Effizienter und fehlertoleranter Konsens über eine willkürliche Entscheidung Defekte Netzwerkinfrastruktur angesichts einer Reihe meist harmloser Behörden oder validators. Für ein Netzwerk im Proof-of-Authority-Stil (PoA) reicht dies aus würde ausreichen, wie auch immer man sich Polkadot vorstellt auch als Netzwerk in einer vollständig offenen und öffentlichen Umgebung einsetzbar Situation ohne besondere Organisation oder Vertrauen Behörde, die für die Aufrechterhaltung erforderlich ist. Daher brauchen wir eine Mittel zur Bestimmung einer Reihe von validators und zur Schaffung von Anreizen sie, um ehrlich zu sein. Hierzu nutzen wir die PoS-basierte Auswahl Kriterien. 5.2. Den Einsatz beweisen. Wir gehen davon aus, dass das Netzwerk wird eine Möglichkeit haben, zu messen, wie viel „Einsatz“ ein bestimmtes Konto hat. Zum leichteren Vergleich mit Vorhandene Systeme nennen wir die Maßeinheit „tokens“. Leider ist der Begriff für a nicht ideal Es gibt eine Reihe von Gründen, nicht zuletzt weil es einfach ein Skalar ist Es gibt keine Vorstellung davon, welchen Wert ein Konto hat Individualität. Wir stellen uns vor, dass validators selten (höchstens) gewählt werden einmal pro Tag, aber vielleicht so selten wie einmal pro Quartal), durch ein Nominated Proof-of-Stake (NPoS)-System. Anreize können durch eine anteilige Zuteilung erfolgenPOLKADOT: VISION FÜR EIN HETEROGENES MULTI-CHAIN-RAHMEN ENTWURF 1 6 Relais Kette Validator-Schwarm (jeweils gefärbt durch seine bezeichnete Parachain) Transaktion (eingereicht von externer Akteur) Parachain Brücke Virtuelle Parachain (z. B. Ethereum) Parachain Parachain Warteschlangen und I/O Propagierte Transaktionen Kandidateneinreichung blockieren 2. Ordnung Relaiskette Parachain-Community Konto Eingehende Transaktion Ausgehende Transaktion Interchain-Transaktionen (verwaltet von validators) Collator Propagierter Block Fischer Abbildung 2. Ein zusammenfassendes Schema des Polkadot-Systems. Dies zeigt Collators, die Benutzertransaktionen sammeln und weitergeben sowie Blockkandidaten an Fischer und validators weitergeben. Es auch zeigt, wie ein Konto eine Transaktion, die aus seiner Parachain ausgeführt wird, über die Relay-Chain buchen kann und weiter in eine andere Parachain, wo es als Transaktion auf ein dortiges Konto interpretiert werden kann. Mittel aus einer token Basiserweiterung (bis zu 100 %) pro Jahr, wahrscheinlicher jedoch etwa 10 % zusammen mit etwaige erhobene Transaktionsgebühren. Während eine Ausweitung der Geldbasis typischerweise zu Inflation führt, da alle token Eigentümer Hätte er eine faire Chance auf Teilnahme, müsste kein tokenInhaber eine Wertminderung erleiden Bestände im Laufe der Zeit, vorausgesetzt, sie waren bereit, eine zu übernehmen Rolle im Konsensmechanismus. Ein besonderer Anteil von tokens wären für den staking-Prozess vorgesehen; die Die effektive Basiserweiterung token würde angepasst werden einen marktbasierten Mechanismus, um dieses Ziel zu erreichen. Validatoren sind durch ihre Einsätze stark gebunden; verlassend Die Anleihen der validators bleiben noch lange bestehen, nachdem die Pflichten der validators aufgehört haben (vielleicht etwa drei Monate). So lange Die Liquidationsfrist der Anleihe lässt zukünftiges Fehlverhalten zu bis zur regelmäßigen Kontrolle der Kette bestraft. Fehlverhalten führt zu einer Bestrafung, beispielsweise einer Kürzung Belohnung oder, in Fällen, die vorsätzlich gefährden Die Integrität des Netzwerks wird beeinträchtigt, der validator verliert einige oder alle seiner Integrität Anteil an andere validators, Informanten oder die Stakeholder als Ganzes (durch Brennen). Zum Beispiel ein validator Wer versucht, beide Zweige einer Abzweigung zu ratifizieren (manchmal (bekannt als „Angriff aus kurzer Distanz“) kann identifiziert werden und auf letztere Weise bestraft. Langstreckenangriffe, bei denen nichts auf dem Spiel steht4, werden durch eine einfache „Checkpoint“-Verriegelung umgangen, die eine gefährliche Kettenneuorganisation von mehr als einem verhindert besondere Kettentiefe. Um sicherzustellen, dass Clients neu synchronisiert werden lassen sich nicht auf die falsche Kette täuschen, regelmäßig Es wird zu „Hard Forks“ kommen (höchstens im gleichen Zeitraum). validators‘ Anleiheliquidation), die den jüngsten Checkpoint-Block hashes in Clients fest codiert. Dies passt gut zu einem weiteren den Platzbedarf reduzierenden Maß der „endlichen Kettenlänge“ oder periodisches Zurücksetzen des Genesis-Blocks. 5.3. Parachains und Collators. Jeder Parachain bekommt Ähnliche Sicherheitsvorkehrungen wie bei der Relay-Kette: die Die Header der Parachains sind im Relay-Chain-Block versiegelt Sicherstellen, dass nach der Bestätigung keine Neuorganisation oder „doppelte Ausgaben“ möglich sind. Dies ist eine ähnliche Sicherheitsgarantie wie die Seitenketten und das Mergemining von Bitcoin. Polkadot bietet jedoch auch starke Garantien dafür, dass die Zustandsübergänge der Parachains gültig sind. Dies geschieht dadurch, dass die Menge der validators kryptografisch zufällig in Teilmengen segmentiert wird; eine Teilmenge pro Parachain, wobei die Teilmengen pro Block möglicherweise unterschiedlich sind. Dies Das Setup impliziert im Allgemeinen, dass die Blockzeiten von Parachains dies tun mindestens so lang sein wie die der Relaiskette. Das Spezifische Mittel zur Bestimmung der Partitionierung liegen außerhalb des Geltungsbereichs 4Bei einem solchen Angriff schmiedet der Gegner vom Genesis-Block an eine völlig neue Geschichtskette. Durch die Steuerung a Obwohl sie zu Beginn einen relativ unbedeutenden Anteil am Einsatz haben, sind sie in der Lage, ihren Anteil am Einsatz im Vergleich zu allen anderen schrittweise zu erhöhen Stakeholder, da sie die einzigen aktiven Teilnehmer an ihrer alternativen Geschichte sind. Da es für die Schöpfung keine intrinsische physische Einschränkung gibt von Blöcken (im Gegensatz zu PoW, wo ziemlich viel Rechenenergie aufgewendet werden muss), sind sie in der Lage, eine Kette zu erstellen, die länger ist als die echte Kette in einem relativ kurze Zeitspanne und machen Sie es möglicherweise zum längsten und besten, indem Sie den kanonischen Zustand des Netzwerks übernehmen.POLKADOT: VISION FÜR EIN HETEROGENES MULTI-CHAIN-RAHMEN ENTWURF 1 7 dieses Dokuments, würde aber wahrscheinlich auf einem von beiden basieren ein Commit-Reveal-Framework ähnlich dem RanDAO [19] oder Verwenden Sie Daten, die aus vorherigen Blöcken jeder Parachain kombiniert wurden unter einem kryptografisch sicheren hash. Solche Teilmengen von validators sind erforderlich, um a bereitzustellen Parachain-Blockkandidat, der garantiert gültig ist (am Schmerz der Anleihebeschlagnahme). Die Gültigkeit dreht sich um zwei wichtige Punkte; erstens, dass es an sich gültig ist – das Alle Zustandsübergänge wurden gewissenhaft ausgeführt und das alles Externe Daten, auf die verwiesen wird (z. B. Transaktionen), sind für die Einbeziehung gültig. Zweitens, dass es sich um alle Daten handelt, die nicht dazugehören B. diese externen Transaktionen, über eine ausreichend hohe Verfügbarkeit verfügen, damit die Teilnehmer dazu in der Lage sind Laden Sie es herunter und führen Sie den Block manuell aus.5 Validatoren stellen möglicherweise nur einen „Null“-Block bereit, der keine externen „Transaktionsdaten“ enthält, laufen jedoch möglicherweise Gefahr, eine geringere Belohnung zu erhalten, wenn sie dies tun. Sie arbeiten Seite an Seite ein Parachain-Klatschprotokoll mit Kollatatoren – Einzelpersonen die Transaktionen in Blöcken zusammenfassen und einen nicht interaktiven, wissensfreien Beweis liefern, dass der Block ein gültiges Kind seines Elternblocks darstellt (und jede Transaktion entgegennimmt). Gebühren für ihre Mühe). Es bleibt den Parachain-Protokollen überlassen, ihre eigenen zu spezifizieren Mittel zur Spam-Prävention: Es gibt keine grundsätzliche Vorstellung von „Rechenressourcenmessung“ oder „Transaktionsgebühr“ durch die Relaiskette auferlegt. Es gibt diesbezüglich auch keine direkte Durchsetzung durch das Relay-Chain-Protokoll (obwohl es Es ist unwahrscheinlich, dass sich die Stakeholder für eine Übernahme entscheiden würden eine Parachain, die keinen anständigen Mechanismus bot). Dies ist eine ausdrückliche Anspielung auf die Möglichkeit unterschiedlicher Ketten Ethereum, z.B. eine Bitcoin-ähnliche Kette, die ein viel einfacheres Gebührenmodell oder ein anderes, noch nicht vorgeschlagenes Spam-Präventionsmodell hat. Die Relay-Chain von Polkadot selbst wird wahrscheinlich als existieren Ethereum-ähnliche Konten und Statuskette, möglicherweise ein EVMDerivat. Da die Relay-Chain-Knoten dies benötigen Führen Sie wesentliche andere Verarbeitungsvorgänge durch, den Transaktionsdurchsatz werden teilweise durch hohe Transaktionsgebühren minimiert und, falls unsere Forschungsmodelle dies erfordern, eine Blockgrößenbeschränkung. 5.4. Interchain-Kommunikation. Der entscheidende letzte Bestandteil von Polkadot ist die Kommunikation zwischen den Ketten. Seitdem Parachains können eine Art Informationskanal zwischen sich haben, wir erlauben uns, Polkadot a zu betrachten skalierbare Multikette. Im Fall von Polkadot ist die Kommunikation so einfach wie möglich: Transaktionen werden in a ausgeführt Parachain sind (gemäß der Logik dieser Kette) dazu in der Lage bewirken die Weiterleitung einer Transaktion an eine zweite Parachain oder möglicherweise die Relaiskette. Wie externe Transaktionen Bei Produktions-blockchains sind sie vollständig asynchron und es gibt keine intrinsische Fähigkeit für sie, etwas zurückzugeben Art von Informationen zurück zu ihrem Ursprung. Ziel: bekommt Daten von früher validators des Blocks. Konto erhält Beitrag: Eintrag entfernt aus Eingang Merkle tree Konto sendet Beitrag: Eintrag platziert in Ausgang Merkle tree für das Ziel Parachain Ausgang Quelle: Aktien Daten mit den nächsten Blöcken validators Postnachweis gespeichert in Parachain-Ausstieg Merkle Baum geroutete Referenz platziert in Zielparachains Eingang Merkle tree Eindringen Abbildung 3. Eine grundlegende schematische Darstellung die Hauptteile des Routings für Gepostete Transaktionen („Posts“). Um eine minimale Implementierungskomplexität zu gewährleisten, minimal Risiko und minimal Zwangsjacke von Zukunft Parachain-Architekturen sind diese Interchain-Transaktionen praktisch nicht von extern signierten Standardtransaktionen zu unterscheiden. Die Transaktion verfügt über ein Ursprungssegment, das die Möglichkeit bietet, eine Parachain zu identifizieren, und eine Adresse, die beliebig groß sein kann. Im Gegensatz zu gängigen aktuellen Systemen wie Bitcoin und Ethereum sind Interchain-Transaktionen mit keinerlei „Zahlung“ von Gebühren verbunden; Jede solche Zahlung muss durch Verhandlungslogik auf den Quell- und Zielparachains verwaltet werden. Ein System wie das vorgeschlagene Die Serenity-Veröffentlichung [7] von Ethereum wäre ein einfaches Mittel Es ist jedoch schwierig, eine solche kettenübergreifende Ressourcenzahlung zu verwalten Wir gehen davon aus, dass zu gegebener Zeit andere in den Vordergrund treten werden. Interchain-Transaktionen werden mit einer einfachen Lösung gelöst Warteschlangenmechanismus basierend auf einem Merkle tree, um sicherzustellen Treue. Es ist die Aufgabe der Relay-Chain-Betreuer, dies zu tun Verschieben Sie Transaktionen in der Ausgabewarteschlange einer Parachain in die Eingabewarteschlange der Zielparachain. Die Übergebene Transaktionen werden in der Relay-Chain referenziert, sind jedoch nicht relAy-Chain-Transaktionen selbst. Um zu verhindern, dass ein Parachain einen anderen Parachain mit Spam überschwemmt Transaktionen, damit eine Transaktion gesendet werden kann, ist dies erforderlich dass die Eingabewarteschlange des Ziels nicht zu groß ist der Zeitpunkt des Endes des vorherigen Blocks. Wenn die Eingabe Ist die Warteschlange nach der Blockverarbeitung zu groß, gilt sie als „gesättigt“ und es können keine Transaktionen dorthin weitergeleitet werden es innerhalb nachfolgender Blöcke, bis es wieder unter das reduziert wird Grenze. Diese Warteschlangen werden in der Relay-Chain verwaltet Parachains können so die Sättigung des anderen bestimmen Status; Auf diese Weise ist der Versuch, eine Transaktion zu buchen, fehlgeschlagen zu einem blockierten Ziel können synchron gemeldet werden. (Da es jedoch keinen Rückkehrpfad gibt, konnte eine sekundäre Transaktion, die aus diesem Grund fehlschlug, nicht zurückgemeldet werden an den ursprünglichen Anrufer und andere Möglichkeiten zur Wiederherstellung müsste stattfinden.) 5.5. Polkadot und Ethereum. Aufgrund der Turing-Vollständigkeit von Ethereum gehen wir davon aus, dass ausreichend Möglichkeiten für die Interoperabilität zwischen Polkadot und Ethereum bestehen voneinander, zumindest innerhalb einiger leicht ableitbarer Sicherheitsgrenzen. Kurz gesagt, wir stellen uns vor, dass Transaktionen von Polkadot kann von validators signiert und dann eingespeist werden 5Eine solche Aufgabe könnte zwischen validators geteilt werden oder zur designierten Aufgabe einer Gruppe stark verbundener validators werden, die als bezeichnet werden Verfügbarkeitsgaranten.

POLKADOT: VISION FÜR EIN HETEROGENES MULTI-CHAIN-RAHMEN ENTWURF 1 8 Ethereum, wo sie interpretiert und umgesetzt werden können ein Transaktionsweiterleitungsvertrag. In die andere Richtung, Wir sehen die Verwendung speziell formatierter Protokolle (Ereignisse) vor. aus einem „Breakout-Vertrag“ stammen, um eine schnelle Überprüfung zu ermöglichen, dass eine bestimmte Nachricht weitergeleitet werden sollte. 5.5.1. Polkadot bis Ethereum. Durch die Wahl eines BFT Konsensmechanismus mit validators, gebildet aus a Gruppe von Stakeholdern, die durch eine Zustimmungsabstimmung bestimmt wird Mechanismus können wir einen sicheren Konsens mit einem erreichen selten wechselnde und bescheidene Anzahl von validators. In einem System mit insgesamt 144 validators beträgt eine Blockzeit von 4 Sekunden und eine Endgültigkeit von 900 Blöcken (unter Berücksichtigung böswilliger Angriffe). Verhaltensweisen wie Doppelstimmen werden zur Anzeige gebracht, bestraft und repariert), kann die Gültigkeit einer Sperre vernünftigerweise sein Als bewiesen gelten bereits 97 Unterschriften (zwei Drittel von 144 plus eine) und eine anschließende 60-minütige Überprüfungsperiode, in der keine Anfechtungen hinterlegt werden. Ethereum ist in der Lage, einen „Einbruchsvertrag“ zu hosten, der Die 144 Unterzeichner können gepflegt und kontrolliert werden sie. Da die Wiederherstellung der digitalen Signatur mit elliptischer Kurve (ECDSA) nur 3.000 Gase unter dem EVM erfordert, und seitdem Wir möchten wahrscheinlich, dass die Validierung nur auf einem erfolgt Supermehrheit von validators (statt völliger Einstimmigkeit), Die Grundkosten von Ethereum bestätigen, dass eine Anweisung vorliegt wurde ordnungsgemäß validiert, da aus dem Polkadot-Netz nicht mehr als 300.000 Gas stammen würden – lediglich 6 % davon die Gesamtblockgasgrenze liegt bei 5,5 M. Erhöhen der Anzahl der validators (wie es für die Bearbeitung erforderlich wäre). Dutzende Ketten) erhöhen diese Kosten jedoch zwangsläufig Es wird allgemein erwartet, dass die Transaktionsbandbreite von Ethereum im Laufe der Zeit wächst, wenn die Technologie ausgereift ist Infrastruktur verbessert sich. Zusammen mit der Tatsache, dass nicht alle validators müssen beteiligt sein (z. B. nur die höchste). Für eine solche Aufgabe können abgesteckte validators herangezogen werden Die Grenzen dieses Mechanismus erstrecken sich einigermaßen gut. Unter der Annahme einer täglichen Rotation solcher validators (was (ziemlich konservativ – wöchentlich oder sogar monatlich können akzeptabel sein), dann die Kosten für die Wartung des Netzwerks diese Ethereum-Weiterleitungsbrücke wäre etwa 540.000 Gas pro Tag oder, bei den aktuellen Gaspreisen, 45 $ pro Jahr. Eine einfache Transaktion, die allein über die Brücke weitergeleitet wird, würde Kosten verursachen etwa 0,11 $; zusätzliche Vertragsberechnung würde kosten mehr natürlich. Durch Pufferung und Bündelung von Transaktionen Zusammengenommen können die Einbruchsgenehmigungskosten leicht betragen geteilt, wodurch die Kosten pro Transaktion erheblich gesenkt werden; wenn vor der Weiterleitung 20 Transaktionen erforderlich wären, dann Die Kosten für die Weiterleitung einer Basistransaktion würden auf sinken etwa 0,01 $. Eine interessante und kostengünstigere Alternative zu diesem Multisignatur-Vertragsmodell wäre die Verwendung von Schwellenwertsignaturen, um die multilaterale Eigentumssemantik zu erreichen. Während Schwellensignaturschemata für ECDSA sind rechenintensiv, diejenigen für andere Schemata wie Schnorr-Signaturen sind sehr vernünftig. Ethereum plant die Einführung von Grundelementen, die dies ermöglichen würden Schemata, die im kommenden Metropolis-Hardfork günstig zu verwenden sind. Wenn ein solches Mittel genutzt werden könnte, würden die Gaskosten sinken zur Weiterleitung einer Polkadot-Transaktion in den Ethereum Netzwerk würde dramatisch auf nahezu Null reduziert werden Gemeinkosten, die über die Grundkosten für die Validierung hinausgehen Unterschrift und Ausführung der zugrunde liegenden Transaktion. In diesem Modell hätten die validator-Knoten von Polkadot dies getan nichts anderes zu tun, als Nachrichten zu signieren. Damit die Transaktionen tatsächlich an das Netzwerk Ethereum weitergeleitet werden, haben wir Gehen Sie davon aus, dass sich auch die validators selbst dort befinden würden das Ethereum-Netzwerk oder, was wahrscheinlicher ist, kleine Kopfgelder dem ersten Akteur angeboten werden, der die Nachricht weiterleitet an das Netzwerk (das Kopfgeld könnte trivialerweise an das Netzwerk gezahlt werden). Urheber der Transaktion). 5.5.2. Ethereum bis Polkadot. Transaktionen durchführen Die Weiterleitung von Ethereum an Polkadot verwendet den einfachen Begriff der Protokolle. Wenn ein Ethereum-Vertrag eine Transaktion an eine bestimmte Parachain von Polkadot senden möchte, Es muss lediglich ein spezieller „Break-out-Vertrag“ abgeschlossen werden. Der Breakout-Vertrag würde jede mögliche Zahlung erfordern erforderlich sein und eine Protokollierungsanweisung erteilen, damit seine Existenz durch einen Merkle-Beweis und eine Behauptung, dass der Header des entsprechenden Blocks gültig ist, nachgewiesen werden kann kanonisch. Von den beiden letztgenannten Bedingungen ist die Gültigkeit möglicherweise die am einfachsten zu beweisen. Im Prinzip ist die einzige Voraussetzungfür jeden Polkadot-Knoten, der den Beweis benötigt (d. h. ernannte validator-Knoten), um eine vollständig synchronisierte Instanz eines Standard-Ethereum-Knotens auszuführen. Leider ist dies selbst eine ziemlich starke Abhängigkeit. Ein mehr Eine leichte Methode bestünde darin, einen einfachen Beweis dafür zu verwenden Der Header wurde korrekt ausgewertet, indem nur der angegeben wurde Ein Teil des Statusversuchs von Ethereum musste ordnungsgemäß ausgeführt werden Überprüfen Sie die Transaktionen im Block und prüfen Sie, ob die Protokolle (im Blockbeleg enthalten) gültig sind. Solche „SPV-ähnlichen“6 Beweise erfordern möglicherweise noch eine erhebliche Menge an Informationen; Praktischerweise werden sie normalerweise nicht benötigt alle: Ein Bindungssystem innerhalb von Polkadot würde Bindungen ermöglichen Dritte dürfen keine Header einreichen, auf die Gefahr hin, ihre Header zu verlieren Sollte ein anderer Dritter (z. B. ein „Fischer“, siehe 6.2.3) den Nachweis erbringen, dass der Header ungültig ist, kann die Bindung erfolgen (insbesondere, dass die Staatswurzel oder die Empfangswurzel Betrüger waren). In einem nicht finalisierenden PoW-Netzwerk wie Ethereum ist das Kanonizität lässt sich nicht schlüssig beweisen. Um dies zu beheben, versuchen Anwendungen, sich auf irgendeine Art zu verlassen Bei einer kettenabhängigen Ursache-Wirkungs-Beziehung warten Sie auf eine Reihe von „Bestätigungen“ oder bis die abhängige Transaktion eine bestimmte Anzahl von „Bestätigungen“ erreicht hat besondere Tiefe innerhalb der Kette. Am Ethereum, dies Die Tiefe variiert von 1 Block für die am wenigsten wertvollen Transaktionen ohne bekannte Netzwerkprobleme bis zu 1200 Blöcken wie bisher Dies war bei der ersten Frontier-Veröffentlichung für Börsen der Fall. Im stabilen „Homestead“-Netzwerk liegt diese Zahl bei 120 Blöcke für die meisten Börsen, und wir würden wahrscheinlich nehmen ein ähnlicher Parameter. Also wir kann Stell dir vor unsere Polkadot-Seite Ethereuminterface hat einige einfache Funktionen: um in der Lage zu sein Akzeptieren Sie einen neuen Header aus dem Netzwerk Ethereum und validieren Sie den PoW, um einen Beweis dafür akzeptieren zu können, dass a Ein bestimmtes Protokoll wurde vom Breakout-Vertrag auf der Ethereum-Seite für einen Header mit ausreichender Tiefe (und Weiterleitung) ausgegeben die entsprechende Nachricht innerhalb von Polkadot) und schließlich Beweise akzeptieren zu können, dass ein zuvor akzeptiertes aber Der noch nicht in Kraft gesetzte Header enthält einen ungültigen Empfangsstamm. Um tatsächlich die Header-Daten Ethereum selbst zu erhalten (und etwaige SPV-Beweise oder Gültigkeits-/Kanonizitätswiderlegungen) in das Netzwerk Polkadot, ein Anreiz zur Weiterleitung 6SPV bezieht sich auf „Simplified Payment Verification“ in Bitcoin und beschreibt eine Methode für Kunden, Transaktionen zu überprüfen und dabei nur Transaktionen zu überprüfen eine Kopie aller Blockheader der längsten PoW-Kette.POLKADOT: VISION FÜR EIN HETEROGENES MULTI-CHAIN-RAHMEN ENTWURF 1 9 Daten benötigt werden. Dies kann so einfach sein wie eine Zahlung (finanziert aus den auf der Seite Ethereum erhobenen Gebühren) bezahlt an jeden, der einen nützlichen Block weiterleiten kann, dessen Header ist gültig. Um dies zu gewährleisten, müssten Validatoren Informationen zu den letzten paar tausend Blöcken aufbewahren in der Lage sein, Forks zu verwalten, entweder über protokollintrinsische Mittel oder über einen auf dem Server gepflegten Vertrag Relaiskette. 5.6. Polkadot und Bitcoin. Bitcoin Interoperation stellt für Polkadot eine interessante Herausforderung dar: ein sogenanntes „Zwei-Wege-Kopplung“ wäre ein nützliches Stück Infrastruktur auf der Seite beider Netzwerke zu haben. Allerdings aufgrund Die Einschränkungen von Bitcoin gelten für die sichere Bereitstellung eines solchen Stifts ein nicht triviales Unterfangen. Zustellung einer Transaktion von Bitcoin bis Polkadot kann im Prinzip mit einem ähnlichen Verfahren wie für Ethereum erfolgen; eine „Breakout-Adresse“ in irgendeiner Weise durch die Polkadot validators kontrolliert werden könnten Empfangen übertragener tokens (und zusammen mit ihnen gesendeter Daten). SPV-Nachweise könnten durch incentivierte oracles erbracht werden und, zusammen mit einer Bestätigungsfrist, einer Prämie für Identifizieren nicht-kanonischer Blöcke, die die Transaktion implizieren wurde „doppelt ausgegeben“. Alle tokens, die sich dann im Besitz befinden „Breakout-Adresse“ würde dann im Prinzip von denselben validators für eine spätere Verbreitung kontrolliert. Das Problem besteht jedoch darin, wie die Einzahlungen von einem rotierenden validator-Set aus sicher gesteuert werden können. Anders als Ethereum, das in der Lage ist, willkürliche Entscheidungen zu treffen Bei Kombinationen von Signaturen ist Bitcoin im Wesentlichen eingeschränkter, da die meisten Kunden nur Multisignatur-Transaktionen mit maximal drei Parteien akzeptieren. Eine Ausweitung auf 36 oder, wie letztlich gewünscht, sogar auf Tausende, ist nach dem aktuellen Protokoll nicht möglich. Eine Möglichkeit besteht darin, das Protokoll Bitcoin zu ändern, um es zu aktivieren Solche Funktionalitäten gibt es jedoch in sogenannten „Hard Forks“. Bitcoin Welt ist nach jüngsten Versuchen schwer zu arrangieren. Eine Möglichkeit ist die Verwendung von Schwellenwertsignaturen, kryptografische Schemata, um eine eindeutig identifizierbare Öffentlichkeit zu ermöglichen Schlüssel zur effektiven Kontrolle durch mehrere geheime „Teile“, Einige oder alle davon müssen verwendet werden, um eine gültige Signatur zu erstellen. Leider sind Schwellenwertsignaturen kompatibel mit Bitcoins ECDSA sind rechenintensiv erstellen und von polynomialer Komplexität. Andere Schemata wie z Eine Schnorr-Signatur bietet jedoch weitaus geringere Kosten Zeitplan, auf dem sie in die Bitcoin eingeführt werden können Protokoll ist unsicher. Denn die letztendliche Sicherheit der Einlagen liegt bei Eine weitere Möglichkeit besteht darin, eine Reihe gebundener validators zu verwenden Reduzieren Sie die Anzahl der Multi-Signatur-Schlüsselhalter nur stark gebundene Teilmenge der gesamten validators, so dass dieser Schwellenwert vorliegt Signaturen werden machbar (oder schlimmstenfalls Bitcoins native). Mehrfachsignatur ist möglich). Dies reduziert natürlich die Gesamtbetrag der Anleihen, die als Wiedergutmachung abgezogen werden könnten, falls sich die validators illegal verhalten, wie auch immer ist eine elegante Verschlechterung, bei der einfach eine Obergrenze von festgelegt wird die Höhe der Mittel, die sicher zwischen den fließen können zwei Netzwerke (oder tatsächlich, auf die prozentualen Verluste bei einem Angriff). aus den validators erfolgreich). Daher halten wir es für nicht unrealistisch, eine einigermaßen sichere Bitcoin Interoperabilität „virtuelle Parachain“ zu platzieren. zwischen den beiden Netzwerken, obwohl dennoch ein erheblicher Aufwand mit ungewissem Zeitplan und durchaus möglich ist Dies erfordert die Zusammenarbeit der Beteiligten Netzwerk.

設計の概要

このセクションは、概要を簡単に説明することを目的としています。 システム全体として。をさらに徹底的に調査すると、 システムについては、それに続くセクションで説明します。 5.1.コンセンサス。リレーチェーン上で、Polkadot は次のことを達成します。 相互に合意された有効なセットに関する低レベルの合意 最新の非同期ビザンチン フォールトトレラント (BFT) アルゴリズムを通じてブロックします。アルゴリズムがインスピレーションを受けます シンプルな Tendermint [11] とそれ以上の機能による HoneyBadgerBFT [14] が関与しています。後者は、 恣意的なものに対する効率的でフォールトトレラントな合意 ネットワーク インフラストラクチャに欠陥があり、ほとんど無害な一連の権限または validator が指定されています。 Proof-of-Authority (PoA) スタイルのネットワークの場合、これだけで で十分ですが、Polkadot は次のようになると考えられます。 完全にオープンでパブリックなネットワークとして展開することも可能 特定の組織や信頼できる組織がない状況 それを維持するために必要な権限。 したがって、 validator のセットを決定し、奨励する手段 正直に言うと彼らは。このために、PoS ベースの選択を利用します 基準。 5.2.賭け金を証明する。ネットワークが どれくらいの「賭け金」を計測する何らかの手段を持つだろう 特定のアカウントにはあります。 比較しやすいように、 既存のシステムでは、測定単位と呼びます。 「tokens」。残念ながら、この用語は理想的なものではありません。 理由はたくさんありますが、特に単にスカラーであるということは重要です アカウントに関連付けられた値、という概念はありません。 個性。 私たちは、validator 人が選出されるのはまれであると想像しています (せいぜい 1 日に 1 回ですが、おそらく四半期に 1 回ほどの頻度で行われます)、 指名プルーフ・オブ・ステーク (NPoS) スキームを通じて。インセンティブは、比例配分によって発生します。POLKADOT: 異種マルチチェーン フレームワークのビジョン ドラフト 1 6 リレー チェーン バリデーターの群れ (それぞれの色で色分けされています) 指定されたパラチェーン) トランザクション (提出者 外部俳優) パラチェーン 橋 仮想パラチェーン (例: Ethereum) パラチェーン パラチェーン キューと I/O 伝播されたトランザクション 候補者の提出をブロックする 2次注文 リレーチェーン パラチェーンコミュニティ アカウント インバウンドトランザクション アウトバウンドトランザクション インターチェーントランザクション (validators が管理) コレーター 伝播されたブロック 漁師 図 2. Polkadot システムの概要図。これは、照合者がユーザー トランザクションを収集して伝播すること、およびブロック候補を漁師と validator に伝播することを示しています。それも アカウントがリレーチェーンを介してパラチェーンから実行されるトランザクションを投稿する方法を示します そして、別のパラチェーンに移行し、そこのアカウントへのトランザクションとして解釈できます。 token のベース拡張からの資金 (最大 100%) 年間、ただし可能性としては約 10%) 徴収される取引手数料。マネタリーベースの拡大は通常インフレにつながりますが、token の所有者全員が 参加する際には公平な機会が与えられ、token所有者は、その価値の減少に苦しむ必要はありません。 彼らが喜んで取得した場合に限り、長期にわたる保有量 コンセンサスメカニズムにおける役割。特定の割合 token 個が staking プロセスの対象となります。の 実質的なtokenベースの拡張は、次のように調整されます。 この目標を達成するための市場ベースのメカニズム。 バリデーターは、その利害関係によって強い絆で結ばれています。終了します validator の保証は、validator の職務が終了した後も長期間 (おそらく約 3 か月) 維持されます。こんなに長い 債券清算期間により、将来の不正行為が可能になる チェーンの定期的なチェックポイントまで罰せられます。 不正行為があった場合には減給などの懲罰が科せられます。 報酬を与える場合、または意図的に侵害する場合 ネットワークの整合性が失われ、validator はその一部またはすべてを失います。 他のvalidator、情報提供者、または利害関係者への利害関係 全体として(燃焼を通じて)。たとえば、validator フォークの両方のブランチを承認しようとする人 (場合によっては 「短距離」攻撃として知られる)が特定される可能性があり、 後者の方法で処罰されます。 長距離の「何も関係のない」攻撃4は、単純な「チェックポイント」ラッチによって回避され、複数の危険なチェーンの再編成を防ぎます。 特定のチェーンの深さ。 新しく同期するクライアントを確実にするには 間違ったチェーンにだまされることはありません。 「ハードフォーク」は(せいぜい同時期に)発生するだろう。 validators の債券清算)、最近のチェックポイント ブロック hashes をクライアントにハードコーディングします。これは、「有限チェーン長」または「有限チェーン長」というさらなるフットプリント削減策とうまく機能します。 ジェネシスブロックの定期的なリセット。 5.3.パラチェーンとコレーター。各パラチェーンが取得するのは、 リレーチェーンに対する同様のセキュリティ アフォーダンス: の パラチェーンのヘッダーはリレーチェーンブロック内に密封されています 確認後は、組織再編や「二重支出」が不可能であることを保証します。これは、Bitcoin のサイドチェーンとマージマイニングによって提供されるものと同様のセキュリティ保証です。ただし、Polkadot は、パラチェーンの状態遷移が有効であるという強力な保証も提供します。これ validator のセットが暗号的にランダムにサブセットに分割されることによって発生します。 1 つあたり 1 つのサブセット パラチェーンでは、サブセットはブロックごとに異なる可能性があります。これ セットアップは通常、パラチェーンのブロック時間が 少なくともリレーチェーンの長さと同じ長さにしてください。具体的な 分割を決定する手段は範囲外です 4 このような攻撃では、敵はジェネシス ブロック以降、全く新しい歴史の連鎖を作り上げます。をコントロールすることで、 オフセットでの賭け金の割合は比較的微々たるものですが、他のすべての賭け金と比べて徐々に自分の賭け金の割合を増やすことができます。 利害関係者は、彼らの代替歴史の唯一の積極的な参加者であるためです。創造物には本質的な物理的制限が存在しないため、 (実際の計算エネルギーを費やす必要がある PoW とは異なり) のブロックで、実際のチェーンよりも長いチェーンを作成できます。 比較的短い期間であり、ネットワークの正規の状態を引き継ぎ、最長かつ最良となる可能性があります。POLKADOT: 異種マルチチェーン フレームワークのビジョン ドラフト 1 7 この文書の内容は次のいずれかに基づいている可能性がありますが、 RanDAO [19] に似た commit-reveal フレームワーク、または 各パラチェーンの前のブロックから結合されたデータを使用する 暗号的に安全な hash の下で。 validator のこのようなサブセットは、 有効性が保証されているパラチェーンブロック候補( 債券没収の痛み)。有効性は 2 を中心に展開します 重要な点。第一に、それは本質的に有効であるということ、 すべての状態遷移が忠実に実行され、すべてが 参照される外部データ (トランザクションなど) は含めることができます。第二に、外部データはすべて、 外部トランザクションなどの候補は十分に高い可用性を備えているため、参加者は次のことを行うことができます。 それをダウンロードし、ブロックを手動で実行します。5 バリデーターは、外部の「トランザクション」データを含まない「null」ブロックのみを提供する場合がありますが、提供すると報酬が減額されるリスクが生じる可能性があります。彼らは一緒に働きます 照合者 (個人) とのパラチェーン ゴシップ プロトコル トランザクションをブロックに照合し、そのブロックが親の有効な子を構成することを示す非対話型のゼロ知識証明を提供します (トランザクションを取得する) 彼らのトラブルに対する料金)。 独自の指定はパラチェーン プロトコルに委ねられます。 スパム防止手段: 「コンピューティング リソースの測定」または「トランザクション料金」という基本的な概念はありません。 リレーチェーンによって課せられます。また、リレーチェーンプロトコルによってこれを直接強制することはありません(ただし、 利害関係者が採用を選択する可能性は低い まともなメカニズムを提供していないパラチェーン)。 これは、これまでとは異なるチェーンの可能性に対する明確なうなずきです。 Ethereum、例: Bitcoin のようなチェーンは、はるかに単純な料金モデル、またはその他のまだ提案されていないスパム防止モデルを備えています。 Polkadot のリレー チェーン自体はおそらく Ethereum のようなアカウントと状態チェーン (おそらく EVM__ 派生)。リレーチェーンノードは次のことを行う必要があるため、 他の重要な処理、トランザクション スループットを実行する 多額の取引手数料により部分的に最小限に抑えられる また、研究モデルでブロック サイズの制限が必要な場合もあります。 5.4.チェーン間通信。 Polkadot の重要な最終要素はチェーン間通信です。以来 パラチェーン間には何らかの情報チャネルが存在する可能性があるため、Polkadot をパラチェーンとみなすことができます。 スケーラブルなマルチチェーン。 Polkadot の場合、通信は可能な限り単純です。トランザクションは、 パラチェーンは(そのチェーンのロジックに従って)次のことができます。 トランザクションを 2 番目のパラチェーンにディスパッチします。 またはリレーチェーンの可能性もあります。外部トランザクションと同様 本番環境 blockchain では完全に非同期です そして、それらには何かを返す本質的な能力はありません。 情報の原点に戻ること。 宛先: 取得 以前のデータ ブロックのvalidator。 アカウントが投稿を受信します: エントリが削除されました イングレス Merkle tree アカウントが投稿を送信します: に置かれたエントリ 出口 Merkle tree 目的地に向けて パラチェーン 出口 出典:株式 次のブロックのデータ validators に保存されている投稿証明 パラチェーン出口マークル 木 配線された参照が配置されました 宛先パラチェーン内 イングレス Merkle tree 進入 図 3. を示す基本的な回路図 投稿のルーティングの主要部分 トランザクション (「投稿」)。 実装の複雑さを最小限に抑えるために、最小限の リスク そして 最小限の ストレートジャケット の 未来 パラチェーン アーキテクチャでは、これらのインターチェーン トランザクションは 標準の外部署名トランザクションと実質的に区別できません。 トランザクションにはオリジンセグメントがあり、パラチェーンを識別する機能を提供します。 任意のサイズのアドレス。 Bitcoin や Ethereum などの一般的な現在のシステムとは異なり、チェーン間トランザクションにはいかなる種類の手数料の「支払い」も伴いません。このような支払いは、ソースおよび宛先のパラチェーン上のネゴシエーション ロジックを通じて管理する必要があります。のために提案されているようなシステム Ethereum の Serenity リリース [7] は簡単な手段です ただし、そのようなクロスチェーンリソースの支払いを管理することは困難です やがて他の人たちが前面に出てくるかもしれないと私たちは考えています。 チェーン間トランザクションはシンプルな方法で解決されます。 Merkle tree に基づいたキューイング メカニズムにより、 忠実さ。リレーチェーンのメンテナの仕事は次のとおりです。 1 つのパラチェーンの出力キューでトランザクションを移動する 宛先パラチェーンの入力キューに追加されます。の 渡されたトランザクションはリレーチェーン上で参照されますが、相対ではありませんay-chain トランザクション自体。パラチェーンが別のパラチェーンにスパム送信するのを防ぐには トランザクション、トランザクションを送信するには、これが必要です 宛先の入力キューが大きすぎないこと 前のブロックの終了時刻。入力の場合 ブロック処理後のキューが大きすぎる場合、キューは「飽和」とみなされ、トランザクションはルーティングされません。 それは後続のブロック内で、以下に戻されるまで続きます。 限界。これらのキューはリレーチェーン上で管理されます パラチェーンが互いの飽和度を決定できるようにする ステータス。この方法では、トランザクションを投稿しようとして失敗しました 停止した宛先へのメッセージは同期的に報告される場合があります。 (ただし、リターンパスが存在しないため、その理由でセカンダリトランザクションが失敗した場合、それを報告することはできません) 元の呼び出し元とその他の回復手段に送信します。 開催しなければならないだろう。) 5.5. Polkadot と Ethereum。 Ethereum のチューリング完全性により、Polkadot と Ethereum が相互運用できる可能性が十分にあると予想されます。 少なくとも、容易に推測できるセキュリティの範囲内では、相互に影響を及ぼします。つまり、私たちは次のようなトランザクションを想定しています。 Polkadot は validators によって署名され、 5このようなタスクは、validator 間で共有される場合もあれば、強く結合された validator のセットの指定タスクになる場合もあります。 可用性の保証人。

POLKADOT: 異種マルチチェーン フレームワークのビジョン ドラフト 1 8 Ethereum によって解釈および実行できます。 トランザクション転送契約。反対方向では、 特別にフォーマットされたログ (イベント) の使用が予想されます。 これは、特定のメッセージを転送する必要があるかどうかを迅速に検証できるようにするための「ブレークアウト コントラクト」に由来しています。 5.5.1. Polkadot から Ethereum まで。の選択を通じて、 BFT コンセンサス メカニズムと validator から形成された 承認投票を通じて決定された一連の利害関係者 このメカニズムにより、安全な合意を得ることができます。 変更頻度は低く、validator の数は控えめです。 合計 144 validator のシステムでは、ブロック時間は 4 秒、900 ブロックのフィナリティ (悪意のある攻撃を許可) 二重投票などの行為は通報され処罰される および修復される)、ブロックの有効性は合理的に判断できます。 わずか 97 件の署名 (144 件の 3 分の 2 に 1 件を加えたもの) と、異議申し立てが提出されないその後の 60 分間の検証期間を通じて証明されたとみなされます。 Ethereum は「不法侵入契約」をホストできます。 144 の署名者を維持し、次の者によって制御されることができます。 彼ら。 EVM では、楕円曲線デジタル署名 (ECDSA) の回復に必要なガスは 3,000 ガスのみであるため、 おそらく検証は、 validator の超過半数 (完全な全会一致ではなく)、 Ethereum の基本コスト、命令が実行されたことを確認 Polkadot ネットワークからのガスは 300,000 ガス以下であることが適切に検証されており、その割合はわずか 6% です。 総ブロックガス制限は5.5Mです。 validator の数を増やす (問題に対処するために必要なため) 数十のチェーン) は必然的にこのコストを増加させますが、 技術が成熟するにつれて、Ethereum のトランザクション帯域幅は時間の経過とともに増加すると広く予想されています。 インフラが改善されます。そうではないという事実とともに、 すべての validator が関与する必要があります (例: 最高の validator のみ) ステークされた validator は、そのようなタスクのために呼び出される可能性があります) このメカニズムの限界はかなり拡張されます。 このような validator が毎日ローテーションすると仮定します (これは かなり保守的であり、毎週または毎月でも許容される場合があります)、その後、ネットワークの維持コストがかかります。 このEthereum-転送ブリッジは約540,000になります 1 日あたりのガソリン、または現在のガス価格では年間 45 ドルです。基本的なトランザクションを単独でブリッジ経由で転送するとコストがかかります 約0.11ドル。追加の契約計算には費用がかかります もちろんもっとです。トランザクションのバッファリングとバンドルによる 合わせて、侵入許可コストは簡単に計算できます。 共有され、トランザクションごとのコストが大幅に削減されます。 転送する前に 20 個のトランザクションが必要な場合、 基本的なトランザクションの転送コストは次のようになります。 約0.01ドル。 この複数署名契約モデルに代わる、興味深い、より安価な代替手段の 1 つは、多国間所有権のセマンティクスを実現するためにしきい値署名を使用することです。 ECDSA のしきい値署名スキーム 他のスキームの場合は計算コストが高くなります Schnorr 署名などは非常に合理的です。 Ethereum そのようなものを作るプリミティブを導入する予定です 今後の Metropolis ハードフォークで安価に使用できるスキーム。このような手段が利用できれば、ガス代は Polkadot トランザクションを Ethereum に転送するため ネットワークは大幅にゼロ近くまで削減されるでしょう 検証のための基本コストを超えるオーバーヘッド 署名し、基礎となるトランザクションを実行します。 このモデルでは、Polkadot の validator ノードは次のようになります。 メッセージに署名する以外に何もすることはありません。トランザクションを実際に Ethereum ネットワークにルーティングするには、次のようにします。 どちらかの validator 自体も存在すると仮定します。 Ethereum ネットワーク、またはおそらくその少額の報奨金 メッセージを転送した最初のアクターにオファーされます ネットワークに送信します(報奨金は簡単に支払われる可能性があります) トランザクションの発信者)。 5.5.2. Ethereum から Polkadot まで。トランザクションを取得する Ethereum から Polkadot への転送では、ログという単純な概念が使用されます。 Ethereum コントラクトが Polkadot の特定のパラチェーンにトランザクションをディスパッチしたい場合、 特別な「ブレイクアウト契約」を結ぶだけで済みます。 ブレイクアウト契約では、以下のような支払いが発生します。 マークル証明と対応するブロックのヘッダーが有効であるというアサーションによってその存在が証明されるように、ロギング命令を発行します。 正規の。 後の 2 つの条件のうち、おそらく有効性が最も重要です。 証明するのが最も簡単です。原則として、唯一の要件は、証明が必要な各 Polkadot ノードに対して (つまり、指定された validator ノード) は、標準の Ethereum ノードの完全に同期されたインスタンスを実行します。残念ながら、これ自体はかなり重い依存関係です。さらに 軽量な方法は、次のような単純な証明を使用することです。 ヘッダーは、 適切に実行するために必要な Ethereum の状態トライの一部 ブロック内のトランザクションを確認し、ログ (ブロック レシートに含まれる) が有効であることを確認します。そんな「SPVらしさ」6 証明にはまだかなりの量の情報が必要になる場合があります。都合の良いことに、通常は必要ありません。 all: Polkadot 内の結合システムにより結合が可能になります。 サードパーティは、ヘッダーを失う危険を冒してヘッダーを送信する必要があります。 債券は、他の第三者 (「漁師」など、6.2.3 を参照) がヘッダーが無効であるという証拠を提供した場合に限ります。 (具体的には、状態ルートまたは領収書のルートが偽者であったこと)。 Ethereum のようなファイナライズされていない PoW ネットワークでは、 正規性を決定的に証明することは不可能です。 これに対処するために、あらゆる種類のものに依存しようとするアプリケーションは、 チェーン依存の因果関係は、多数の「確認」を待つか、依存するトランザクションが一定のレベルに達するまで待ちます。 チェーン内の特定の深さ。 Ethereum に、これは 深さは、既知のネットワーク問題がない最も価値の低いトランザクションの 1 ブロックから、従来の 1200 ブロックまで変化します。 交換用の最初のフロンティアリリース時のケース。 安定した「Homestead」ネットワークでは、この数字は次の位置にあります。 ほとんどの取引所では 120 ブロックかかりますが、おそらくかかるでしょう。 同様のパラメータ。 それで 私たち できる 想像してください 私たちの Polkadot側 Ethereumインターフェイスにはいくつかの簡単な機能があります: Ethereum ネットワークから新しいヘッダーを受け入れ、PoW を検証して、何らかの証拠を受け入れることができるようにします。 特定のログは、十分な深さのヘッダー (および前方) の Ethereum 側のブレークアウト コントラクトによって発行されました。 Polkadot 内の対応するメッセージ)、そして最後に 以前に受け入れられた証拠を受け入れることができるようになりますが、 まだ制定されていないヘッダーには無効なレシート ルートが含まれています。 実際に Ethereum ヘッダー データ自体を取得するには (そして SPV の証明または有効性/正規性の反駁) Polkadot ネットワーク、転送の奨励 6SPV は、Bitcoin の簡易支払検証を指し、クライアントがトランザクションのみを保持しながら検証する方法を説明します。 最長の PoW チェーンのすべてのブロック ヘッダーのコピー。POLKADOT: 異種マルチチェーン フレームワークのビジョン ドラフト 1 9 データが必要です。 これは支払いと同じくらい簡単です (Ethereum 側で徴収された料金から賄われます) 支払われました ヘッダーが次のような有用なブロックを転送できる人 有効です。検証者は、次の目的で最後の数千ブロックに関する情報を保持することが求められます。 何らかのプロトコル固有の手段または上で維持されるコントラクトを通じて、フォークを管理できる。 リレーチェーン。 5.6. Polkadot そして Bitcoin。 Bitcoin 相互運用 Polkadot には興味深い課題が提示されています。 「双方向ペグ」は便利なインフラになる 両方のネットワーク側に置く必要があります。ただし、理由により、 Bitcoin の制限により、そのようなペグを安全に提供するには、 簡単ではない仕事。からのトランザクションの配信 Bitcoin から Polkadot までは、原則として Ethereum と同様のプロセスで実行できます。 「ブレークアウトアドレス」 Polkadot validator によって何らかの方法で制御される可能性があります 転送された token (およびそれらと一緒に送信されたデータ) を受信します。 SPV 証明は、インセンティブ付きの oracle によって提供できます。 確認期間とともに、報奨金が与えられます。 トランザクションを暗示する非正規ブロックを特定する 「二重支出」されている。 token はすべて 「ブレークアウト アドレス」は、原則として、後の分散のために同じ validator によって制御されます。 しかし、問題は、回転する validator セットから堆積物をどのように安全に制御できるかということです。 とは異なります Ethereum に基づいて任意の決定を下すことができます 署名の組み合わせにより、Bitcoin は実質的に さらに制限があり、ほとんどのクライアントは最大 3 者とのマルチシグネチャ トランザクションのみを受け入れます。これを 36、実際には最終的に望まれる数千まで拡張することは、現在のプロトコルでは不可能です。 1 つのオプションは、Bitcoin プロトコルを変更して有効にすることです。 このような機能は、いわゆる「ハードフォーク」と呼ばれるものですが、 Bitcoin 最近の試みから判断すると、世界を調整するのは困難です。可能性の 1 つは、しきい値署名の使用です。 単一識別可能な公衆を許可する暗号化スキーム 鍵は複数の秘密「部分」によって効果的に制御されます。 有効な署名を作成するには、その一部またはすべてを利用する必要があります。 残念ながら、しきい値署名と互換性があります Bitcoin の ECDSA は計算コストが高くつきます 多項式の複雑さを作成します。その他のスキームとしては、 Schnorr 署名はコストがはるかに低くなりますが、 Bitcoin に導入される可能性のあるタイムライン プロトコルは不明です。 預金の最終的な安全性は次のとおりです。 多数の validator を結合する、もう 1 つのオプションは、 マルチサインキーホルダーを大幅に削減 合計 validator の結合されたサブセット (しきい値など) 署名が実行可能になります (または、最悪の場合、Bitcoin のネイティブ マルチ署名も可能です)。 これにより、当然のことながら、 validator が違法行為を行った場合に賠償金として差し引かれる可能性がある保証金の総額ですが、これは はグレースフル デグラデーションであり、単に上限を設定するだけです 間で安全に運用できる資金の量。 2 つのネットワーク (実際、攻撃による損失の割合) validator からは成功します)。 そのため、合理的に安全な Bitcoin 相互運用性の「仮想パラチェーン」を配置することは非現実的ではないと考えています。 2 つのネットワーク間での作業はかなりの努力が必要ですが、スケジュールは不確実であり、可能性は十分にあります。 その中で利害関係者の協力を必要とする ネットワーク。

Protokoll im Detail

Das Protokoll kann grob in drei Teile unterteilt werden Teile: der Konsensmechanismus, die Parachain-Schnittstelle und Interchain-Transaktionsrouting. 6.1. Relaiskette Betrieb. Die Relaiskette wird Wahrscheinlich handelt es sich dabei um eine Kette, die Ethereum weitgehend ähnelt ist bundesstaatsbasiert, wobei der Bundesstaat die Adresse dem Konto zuordnet Informationen, hauptsächlich Salden und (um Wiederholungen zu verhindern) a Transaktionszähler. Das Platzieren von Konten erfüllt hier einen Zweck: die Bereitstellung von Konten für diejenigen, die Identität besitzen Wie hoch ist der Anteil am System?7 Es wird jedoch bemerkenswerte Unterschiede geben: • Verträge können nicht über Transaktionen bereitgestellt werden. Aufgrund des Wunsches, Anwendungsfunktionalität auf der Relay-Kette zu vermeiden, wird dies nicht der Fall sein Unterstützung der öffentlichen Bereitstellung von Verträgen. • Die Nutzung von Rechenressourcen („Gas“) wird nicht berücksichtigt. da die einzigen Funktionen für die öffentliche Nutzung verfügbar sind behoben werden, das Grundprinzip der Gasabrechnung hält nicht mehr. Daher wird eine Pauschalgebühr erhoben in allen Fällen, sodass in jedem Fall mehr Leistung erzielt werden kann dynamische Codeausführung, die möglicherweise durchgeführt werden muss und ein einfacheres Transaktionsformat. • Für aufgelistete Verträge werden spezielle Funktionen unterstützt, die eine automatische Ausführung und Netzwerknachrichtenausgaben ermöglichen. Für den Fall, dass die Relay-Kette eine VM hat und es sein sollte Basierend auf EVM würde es eine Reihe von Modifikationen aufweisen, um maximale Einfachheit zu gewährleisten. Es wäre wahrscheinlich verfügen über eine Reihe integrierter Verträge (ähnlich denen bei Adressen 1-4 in Ethereum), um eine plattformspezifische Anpassung zu ermöglichen zu verwaltende Aufgaben einschließlich eines Konsensvertrags, a validator-Vertrag und ein Parachain-Vertrag. Wenn nicht EVM, dann ist ein WebAssembly-Backend [2] (wasm) die wahrscheinlichste Alternative. in diesem Fall das Gesamtbild Die Struktur wäre ähnlich, aber es wäre nicht nötig für die integrierten Verträge, wobei Wasm ein realisierbares Ziel ist eher für Allzwecksprachen als für unreife Sprachen und begrenzte Sprachen für EVM. Andere wahrscheinliche Abweichungen vom aktuellen Ethereum-Protokoll sind durchaus möglich, beispielsweise eine Vereinfachung des Transaktionsempfangsformat, das die parallele Ausführung nicht widersprüchlicher Transaktionen innerhalb desselben Blocks ermöglicht, wie für die Serenity-Änderungsreihe vorgeschlagen. Es ist möglich, wenn auch unwahrscheinlich, dass es Serenity-ähnlich ist Als Relay-Chain kann eine „reine“ Kette eingesetzt werden, die Folgendes ermöglicht: Besonderer Vertrag zur Verwaltung von Dingen wie staking token gleicht aus, anstatt dies zu einem grundlegenden Bestandteil zu machen das Protokoll der Kette. Dies halten wir derzeit für unwahrscheinlich wird eine ausreichend große Protokollvereinfachung bieten Die damit verbundene zusätzliche Komplexität und Unsicherheit lohnt sich bei der Entwicklung. 7Diese Stake-Konten sind ein Mittel zur Darstellung des Betrags, den ein bestimmter Inhaber für die Gesamtsicherheit des Systems verantwortlich macht unweigerlich einen wirtschaftlichen Wert verschlüsseln. Es sollte jedoch klar sein, dass keine Absicht besteht, solche Werte zu verwenden In irgendeiner Weise zum Zweck des Austauschs gegen reale Waren und Dienstleistungen sollte dementsprechend beachtet werden, dass die tokens nicht mit ihnen verglichen werden können Währung und als solche behält die Relay-Chain ihre nihilistische Philosophie in Bezug auf Anwendungen bei.POLKADOT: VISION FÜR EIN HETEROGENES MULTI-CHAIN-RAHMEN ENTWURF 1 10 Für die Verwaltung des Konsensmechanismus, des validator-Sets, des Validierungsmechanismus und der Parachains sind eine Reihe kleinerer Funktionalitäten erforderlich. Diese könnten gemeinsam unter einem monolithischen Protokoll implementiert werden. Aus Gründen der Modularität bezeichnen wir diese jedoch als „Verträge“ der Relay-Chain. Das sollte so verstanden werden, dass sie Objekte sind (im Sinne von objektorientierte Programmierung), die vom Konsensmechanismus der Relaychain verwaltet wird, aber nicht unbedingt Sie werden als Programme in EVM-ähnlichen Opcodes definiert, noch sogar, dass sie durch das einzeln ansprechbar sind Kontosystem. 6.2. Absteckvertrag. Dieser Vertrag verwaltet den Satz validator. Es verwaltet: • Welche Konten sind derzeit validators; • die kurzfristig zu validators werden können bemerken; • auf welche Konten die Stake-Nominierung erfolgt ist ein validator; • Eigenschaften jedes einzelnen, einschließlich staking Volumen, akzeptable Auszahlungsraten und Adressen sowie kurzfristige (Sitzungs-)Identitäten. Es ermöglicht einem Konto, den Wunsch zu registrieren, ein zu werden gebundener validator (zusammen mit seinen Anforderungen), um sich für eine Identität zu nominieren und für bereits bestehende gebundene validators, ihren Wunsch zu registrieren, diesen Status zu verlassen. Es auch umfasst die Maschinerie selbst für den Validierungs- und Kanonisierungsmechanismus. 6.2.1. Stake-token Liquidität. Im Allgemeinen ist dies wünschenswert so viel wie möglich von den gesamten staking tokens haben seitdem an den Netzwerkwartungsarbeiten beteiligt Dies verknüpft die Netzwerksicherheit direkt mit der gesamten „Marktkapitalisierung“ des staking token. Dies kann problemlos erfolgen Anreize geschaffen werden, indem die Währung aufgebläht wird und der Erlös an diejenigen ausgeschüttet wird, die als validators teilnehmen. Allerdings stellt dies ein Problem dar: Wenn der token im Einsatzvertrag unter Strafe der Kürzung festgeschrieben ist, wie kann dann ein wesentlicher Anteil ausreichend bleiben? liquide sein, um eine Preisfindung zu ermöglichen? Eine Antwort hierauf besteht darin, einen einfachen Derivatkontrakt zu ermöglichen, der fungible tokens auf einem zugrunde liegenden, abgesteckten token sichert. Dies lässt sich nur schwer vertrauensfrei regeln. Darüber hinaus können diese derivativen tokens nicht gleich behandelt werden, und zwar aus demselben Grund, aus dem die Staatsanleihen verschiedener Eurozonen-Staatsanleihen nicht fungibel sind: dort besteht die Möglichkeit, dass der zugrunde liegende Vermögenswert versagt und wird wertlos. Bei den Regierungen der Eurozone könnte es eine geben Standard. Mit validator-abgesteckten tokens können die validator böswillig handeln und bestraft werden. Im Einklang mit unseren Grundsätzen entscheiden wir uns für die einfachste Lösung: Es werden nicht alle tokens abgesteckt. Das würde das bedeuten Ein gewisser Anteil (vielleicht 20 %) der tokens wird zwangsweise liquide bleiben. Obwohl dies aus sicherheitstechnischer Sicht unvollkommen ist, ist es unwahrscheinlich, dass es einen grundlegenden Unterschied macht die Sicherheit des Netzwerks; 80 % der durch Anleihebeschlagnahmungen möglichen Wiedergutmachung könnten noch geleistet werden im Vergleich zum „perfekten Fall“ von 100 % staking. Das Verhältnis zwischen eingesetzten und liquiden tokens kann relativ einfach durch einen umgekehrten Auktionsmechanismus gesteuert werden. Im Wesentlichen sind token-Inhaber daran interessiert, ein validator zu werden. würde jeweils ein Angebot für den staking-Vertrag veröffentlichen, in dem es heißt: die Mindestauszahlungsrate, die sie in Anspruch nehmen müssten Teil. Zu Beginn jeder Sitzung (Sitzungen würden passieren regelmäßig, vielleicht sogar einmal pro Stunde validator Slots würden je nach Interessenten besetzt Einsatz und Auszahlungsrate von validator. Ein möglicher Algorithmus denn das würde bedeuten, diejenigen mit den niedrigsten Angeboten anzunehmen einen Einsatz darstellen, der nicht höher ist als der angestrebte Gesamteinsatz dividiert durch die Anzahl der Slots und nicht weniger als die Untergrenze der Hälfte dieses Betrags. Wenn die Plätze nicht besetzt werden können, Die Untergrenze könnte wiederholt um einen Faktor verringert werden, um die Anforderungen zu erfüllen. 6.2.2. Nominierung. Es ist möglich, ohne Vertrauen zu nominieren diejenigen staking tokens zu einem aktiven validator und geben ihnen die Verantwortung für die Aufgaben von validators. Nominierung von Werken durch ein Zustimmungs-Abstimmungssystem. Jeder potenzielle Nominierende kann eine Anweisung zum staking-Vertrag veröffentlichen Ausdruck einer oder mehrerer validator Identitäten unter deren Verantwortung, die sie bereit sind, ihrer Bindung anzuvertrauen. In jeder Sitzung werden die Anleihen der Nominierenden verteilt dargestellt durch einen oder mehrere validators. Der Streuungsalgorithmus optimiert für einen Satz von validators gleicher Gesamtzahl Anleihen. Die Anleihen der Nominierenden unterliegen der tatsächlichen Verantwortung des validator aund Interesse gewinnen oder leiden Strafminderung entsprechend. 6.2.3. Beschlagnahmung/Verbrennung von Anleihen. Bestimmtes validator Verhalten führt zu einer Strafminderung ihrer Bindung. Wenn Die Anleihe wird unter das zulässige Minimum reduziert Die Sitzung wird vorzeitig beendet und eine neue gestartet. Eine nicht erschöpfende Liste strafbarer validator Fehlverhaltens umfasst: • Teil einer Parachain-Gruppe sein, die nicht in der Lage ist, etwas bereitzustellen Konsens über die Gültigkeit eines Parachain-Blocks; • aktiv für die Gültigkeit eines Invaliden unterschreiben Parachain-Block; • Unfähigkeit, Ausgangsnutzlasten bereitzustellen als verfügbar abgestimmt; • Inaktivität während des Konsensprozesses; • Validierung von Relay-Chain-Blöcken auf konkurrierenden Forks. Einige Fälle von Fehlverhalten gefährden die Integrität des Netzwerks (z. B. das Signieren ungültiger Parachain-Blöcke und die Validierung mehrerer Seiten eines Forks) und führen daher zu einem effektiven Exil durch die vollständige Reduzierung der Bindung. In andere, weniger schwerwiegende Fälle (z. B. Inaktivität im Konsens). Prozess) oder Fälle, in denen die Schuld nicht genau zugeordnet werden kann (Teil einer ineffektiven Gruppe), ein kleiner Teil Stattdessen kann eine Geldstrafe verhängt werden. Im letzteren Fall dies Funktioniert gut mit der Abwanderung von Untergruppen, um sicherzustellen, dass bösartige Knoten erleiden wesentlich mehr Verlust als die kollateralgeschädigten wohlwollenden Knoten. In einigen Fällen (z. B. Multi-Fork-Validierung und ungültig Unterblocksignierung) validators können das Fehlverhalten der anderen aufgrund der ständigen Überprüfung nicht einfach selbst erkennen eines jeden Parachain-Blocks wäre eine zu mühsame Aufgabe. Hier Es ist notwendig, die Unterstützung externer Parteien zu gewinnen den Validierungsprozess, um ein solches Fehlverhalten zu überprüfen und zu melden. Für die Meldung solcher Aktivitäten erhalten die Parteien eine Belohnung; Ihr Begriff „Fischer“ beruht auf der Unwahrscheinlichkeit einer solchen Belohnung. Da es sich in diesen Fällen typischerweise um sehr schwerwiegende Fälle handelt, gehen wir davon aus, dass etwaige Belohnungen problemlos aus der beschlagnahmten Kaution bezahlt werden können. Generell bevorzugen wir eine ausgeglichene Verbrennung (d. h. Reduktion auf nichts) mit Neuzuweisung, statt Versuch einer umfassenden Umverteilung. Dies hat die Wirkung

POLKADOT: VISION FÜR EIN HETEROGENES MULTI-CHAIN-RAHMEN ENTWURF 1 11 Erhöhen des Gesamtwerts von token, Kompensieren der Netzwerk im Allgemeinen bis zu einem gewissen Grad und nicht im Spezifischen an der Entdeckung beteiligte Partei. Dies dient vor allem der Sicherheit Mechanismus: Die großen Mengen, um die es geht, könnten zu extremen und akuten Verhaltensanreizen führen, wenn sie alle wären einem einzelnen Ziel verliehen. Im Allgemeinen ist es wichtig, dass die Belohnung groß genug ist, damit sich die Verifizierung für das Netzwerk lohnt, aber nicht so groß, dass sie die Kosten für die Bereitstellung eines Netzwerks ausgleicht gut finanzierter, gut orchestrierter Krimineller auf „industrieller Ebene“. Hackerangriff auf einen unglücklichen validator, um Fehlverhalten zu erzwingen. Auf diese Weise sollte der geforderte Betrag in der Regel Nein betragen größer als die direkte Bindung des fehlerhaften validator, damit a Es entsteht ein perverser Anreiz, sich schlecht zu benehmen und sich für das Kopfgeld zu melden. Dem kann entweder explizit entgegengewirkt werden durch eine Mindestanforderung an eine direkte Bindung, um ein zu sein validator oder implizit durch die Aufklärung der Nominatoren darüber, dass validators mit geringen hinterlegten Anleihen keinen großen Anreiz haben sich gut benehmen. 6.3. Parachain-Registrierung. Jede Parachain ist in definiert dieses Register. Es handelt sich um ein relativ einfaches datenbankähnliches Konstrukt, das sowohl statische als auch dynamische Informationen enthält jede Kette. Zu den statischen Informationen gehört der Kettenindex (ein einfacher ganze Zahl), zusammen mit der Validierungsprotokollidentität, a Mittel zur Unterscheidung zwischen den verschiedenen Klassen von Parachain, damit der richtige Validierungsalgorithmus gefunden werden kann wird von validators durchgeführt und hat die Aufgabe, einen gültigen Kandidaten vorzuschlagen. Ein erster Proof-of-Concept würde sich auf die Platzierung konzentrieren Die neuen Validierungsalgorithmen werden in die Clients selbst integriert, sodass jedes Mal ein Hard Fork des Protokolls erforderlich ist Zusätzliche Kettenklassen wurden hinzugefügt. Letztlich aber Möglicherweise kann der Validierungsalgorithmus in angegeben werden eine Art und Weise, die sowohl streng als auch effizient genug ist, dass Kunden es sind in der Lage, effektiv mit neuen Parachains zu arbeiten, ohne eine Hard-Fork. Ein möglicher Weg hierzu wäre die Spezifizierung der Parachain-Validierungsalgorithmus in einem etablierten, nativ kompilierte, plattformneutrale Sprache wie WebAssembly. Um dies festzustellen, sind zusätzliche Untersuchungen erforderlich Ob dies wirklich machbar ist, aber wenn ja, könnte es etwas bringen Damit verbunden ist der enorme Vorteil, Hard-Forks zu verbannen für immer. Dynamische Informationen umfassen Aspekte des Transaktionsroutingsystems, die eine globale Vereinbarung haben müssen, z als Eingangswarteschlange der Parachain (beschrieben in Abschnitt 6.6). Der Registry können nur Parachains hinzugefügt werden durch vollständige Abstimmung über das Referendum; das ließe sich bewerkstelligen intern, würde aber eher in einem externen platziert werden Referendumsvertrag, um die Weiterverwendung zu erleichtern allgemeinere Governance-Komponenten. Die Parameter zu Abstimmungsanforderungen (z. B. erforderliches Quorum, Mehrheit). erforderlich) zur Registrierung zusätzlicher Ketten und anderer, Weniger formelle Systemaktualisierungen werden in einem „Master“ dargelegt Verfassung“, werden aber wahrscheinlich einer ziemlich traditionellen Verfassung folgen Weg, zumindest zunächst. Die genaue Formulierung liegt uns nicht vor Spielraum für die vorliegende Arbeit, aber z.B. eine Zwei-Drittel-Supermehrheit mit mehr als einem Drittel des Gesamtsystems Eine positive Beteiligungsabstimmung kann ein sinnvoller Ausgangspunkt sein. Zu den weiteren Vorgängen gehört das Aufhängen und Entfernen von Fallschirmen. Eine Aussetzung würde es hoffentlich nie geben passieren, aber es soll zumindest als Schutz dienen Es gibt ein hartnäckiges Problem im Validierungssystem einer Parachain. Der offensichtlichste Fall, wo es sein könnte Erforderlich ist ein konsenskritischer Unterschied zwischen Implementierungen, der dazu führt, dass validators nicht in der Lage sind, sich darauf zu einigen Gültigkeit oder Sperren. Der Einsatz von Validatoren wird empfohlen mehrere Client-Implementierungen, damit sie in der Lage sind um ein solches Problem vor der Einziehung der Anleihe zu erkennen. Da es sich bei der Aussetzung um eine Notfallmaßnahme handelt, wäre dies der Fall unter der Schirmherrschaft des dynamischen validator-Votings statt als ein Referendum. Eine Wiedereinsetzung wäre bei beiden möglich aus den validators oder einem Referendum. Die vollständige Entfernung von Parachains wäre nur möglich nach einem Referendum und mit dem erforderlich wäre a erhebliche Schonfrist, um einen ordnungsgemäßen Übergang zu ermöglichen entweder eine eigenständige Kette oder um Teil einer anderen zu werden Konsenssystem. Die Schonfrist würde wahrscheinlich betragen Dies geschieht in der Reihenfolge von Monaten und wird wahrscheinlich pro Kette im Parachain-Register aufgeführt, damit dies anders ist Parachains können unterschiedliche Schonfristen genießen ihr Bedürfnis. 6.4. Relaisblöcke versiegeln. Unter Versiegelung versteht man im Wesentlichen zum Prozess der Kanonisierung; das heißt, Grunddaten welche umwandelnbildet das Original in etwas grundlegend Einzigartiges und Bedeutsames ab. Unter einer PoW-Kette, Versiegelung ist gewissermaßen ein Synonym für Bergbau. In unserem Fall, Dabei handelt es sich um die Sammlung signierter Aussagen von validators über die Gültigkeit, Verfügbarkeit und Kanonizität von a bestimmter Relay-Chain-Block und die Parachain blockiert diesen es repräsentiert. Die Mechanik des zugrunde liegenden Konsensalgorithmus BFT liegt außerhalb des Rahmens dieser Arbeit. Das werden wir Beschreiben Sie es stattdessen mit einem Grundelement, das a annimmt konsensschaffende Staatsmaschine. Letztlich erwarten wir sich von einer Reihe vielversprechender BFT Konsens inspirieren zu lassen Algorithmen im Kern; Tangaora [9] (eine BFT Variante von Raft [16]), Tendermint [11] und HoneyBadgerBFT [14]. Der Algorithmus muss eine Einigung über mehrere Parachains parallel erzielen und unterscheidet sich somit vom Üblichen blockchain Konsensmechanismen. Wir gehen davon einmal aus Sobald ein Konsens erreicht ist, können wir den Konsens aufzeichnen in einem unwiderlegbaren Beweis, der von jedem erbracht werden kann die Teilnehmer dazu. Auch wir gehen von Fehlverhalten aus innerhalb des Protokolls kann generell auf ein kleines Maß reduziert werden Gruppe mit Teilnehmern, die sich schlecht benehmen, sollte minimiert werden der Kollateralschaden bei der Strafzumessung.8 Der Beweis, der die Form unserer signierten Aussagen annimmt, wird zusammen im Header des Relay-Chain-Blocks platziert mit bestimmten anderen Feldern, nicht zuletzt dem Statetrie-Root und dem Transaction-Trie-Root der Relay-Kette. Die Versiegelung Prozess dauert Ort unter a Single konsensgenerierend Mechanismus Adressierung beides die Der Block der Relay-Chain und die Blöcke der Parachains, die machen Teil des Inhalts des Relays: Parachains werden von ihren Untergruppen nicht separat „festgeschrieben“ und dann zusammengestellt später. Dies führt zu einem komplexeren Prozess für die Relaychain, ermöglicht es uns aber, den Konsens des gesamten Systems in einer einzigen Phase zu vervollständigen, wodurch die Latenz minimiert und ermöglicht wird für recht komplexe Datenverfügbarkeitsanforderungen hilfreich für den Routing-Prozess unten. 8Bestehende PoS-basierte BFT-Konsensschemata wie Tendermint BFT und der ursprüngliche Slasher erfüllen diese Behauptungen.

POLKADOT: VISION FÜR EIN HETEROGENES MULTI-CHAIN-RAHMEN ENTWURF 1 12 Der Zustand der Konsensmaschine jedes Teilnehmers kann sein als einfache (zweidimensionale) Tabelle modelliert werden. Jeder Teilnehmer (validator) verfügt über eine Reihe von Informationen im Formular von unterzeichneten Erklärungen („Stimmen“) anderer Teilnehmer zu jedem Parachain-Block-Kandidaten sowie zum Relaychain-Block-Kandidaten. Der Informationssatz besteht aus zwei Teilen der Daten: Verfügbarkeit: tut dies validator habe Ausgang Transaktions-Post-Informationen aus diesem Block also Sind sie in der Lage, Parachain-Kandidaten im folgenden Block ordnungsgemäß zu validieren? Sie dürfen abstimmen entweder 1 (bekannt) oder 0 (noch nicht bekannt). Sobald sie Stimme 1, sie sind entschlossen, in ähnlicher Weise dafür zu stimmen der Rest dieses Prozesses. Spätere Abstimmungen, bei denen dies nicht der Fall ist Respekt, das ist ein Strafgrund. Gültigkeit: Ist der Parachain-Block gültig und ist alles? extern referenzierte Daten (z.B. Transaktionen) verfügbar? Dies ist nur für validators relevant, die der Parachain zugeordnet sind, über die sie abstimmen. Sie können entweder mit 1 (gültig), -1 (ungültig) oder 0 stimmen (noch nicht bekannt). Sobald sie ungleich Null stimmen, sind sie sind entschlossen, für den Rest auf diese Weise abzustimmen der Prozess. Spätere Abstimmungen, die dies nicht respektieren sind Strafgründe. Alle validators müssen Stimmen abgeben; Abstimmungen können unter Einhaltung der oben genannten Regeln erneut eingereicht werden. Der Fortschritt von Der Konsens kann als mehrere Standardkonsensalgorithmen über jede Parachain modelliert werden, die parallel stattfinden. Da diese möglicherweise durch eine relativ vereitelt werden Eine kleine Minderheit böswilliger Akteure konzentriert sich darauf Es besteht allgemeiner Konsens darüber, dass es sich um eine einzelne Parachain-Gruppe handelt Richten Sie eine Rücksicherung ein, um das Worst-Case-Szenario einzudämmen Deadlock zu lediglich einem oder mehreren ungültigen Parachain-Blöcken (und eine Runde der Bestrafung der Verantwortlichen). Die Grundregeln für die Gültigkeit der einzelnen Blöcke (Damit kann die Gesamtmenge der validators als Ganzes erreicht werden Konsens darüber, dass es der einzigartige Parachain-Kandidat wird vom kanonischen Relay referenziert werden): • Es müssen mindestens zwei Drittel der validators positiv und keines davon negativ stimmen; • Es muss mehr als ein Drittel der validators geben, die positiv über die Verfügbarkeit von Informationen zur Ausgangswarteschlange stimmen. Gibt es mindestens ein positives und mindestens ein negatives Votum zur Gültigkeit, entsteht eine Ausnahmebedingung und die gesamte Gruppe von validators muss abstimmen, um zu entscheiden wenn es böswillige Parteien gibt oder wenn ein Unfall vorliegt Gabel. Neben gültigen und ungültigen Stimmen gibt es noch eine dritte Art von Stimmen sind erlaubt, gleichbedeutend damit, für beide zu stimmen, was bedeutet, dass Der Knoten hat widersprüchliche Meinungen. Dies könnte daran liegen Der Eigentümer des Knotens führt mehrere Implementierungen aus, die dies tun nicht einverstanden, was auf eine mögliche Unklarheit im Protokoll hinweist. Nachdem alle Stimmen aus dem gesamten validator-Satz gezählt wurden, wenn die unterlegene Meinung hat zumindest einen kleinen Anteil (zu parametrisiert sein; höchstens die Hälfte, vielleicht deutlich weniger) der Stimmen der siegreichen Meinung, dann wird davon ausgegangen Wenn es sich um eine versehentliche Parachain-Gabel handelt, wird die Parachain automatisch vom Konsensprozess ausgeschlossen. Andernfalls gehen wir davon aus, dass es sich um eine böswillige Handlung handelt und ahnden diese Minderheit, die für die abweichende Meinung stimmte. Den Abschluss bildet eine Reihe demonstrierender Unterschriften Kanonizität. Anschließend kann der Relaiskettenblock versiegelt werden und der Prozess der Versiegelung des nächsten Blocks begann. 6.5. Verbesserungen beim Versiegeln von Relaisblöcken. Während Diese Dichtungsmethode bietet starke Garantien für den Systembetrieb, sie lässt sich jedoch nicht besonders gut skalieren da die Schlüsselinformationen jeder Parachain ihre eigenen haben müssen Verfügbarkeit garantiert von über einem Drittel aller validators. Dies bedeutet, dass der Verantwortungs-Fußabdruck jedes validator wächst, wenn weitere Ketten hinzugefügt werden. Während Datenverfügbarkeit innerhalb offener Konsensnetzwerke Da es sich im Wesentlichen um ein ungelöstes Problem handelt, gibt es Möglichkeiten, den Overhead für validator-Knoten zu verringern. Eine einfache Die Lösung besteht darin, zu erkennen, dass validators zwar schultern müssen Obwohl sie die Verantwortung für die Datenverfügbarkeit tragen, müssen sie die Daten nicht selbst speichern, kommunizieren oder replizieren. Sekundäre Datensilos, möglicherweise im Zusammenhang mit (oder sogar im selben Zusammenhang). (gleiche) Erfasser, die diese Daten zusammenstellen, dürfen die verwalten Die Aufgabe besteht darin, die Verfügbarkeit zu gewährleisten, wobei die validators einen Teil ihrer Zinsen/Einnahmen als Zahlung leisten. Obwohl dies zwar eine gewisse mittlere Skalierbarkeit erkaufen könnte, löst es das zugrunde liegende Problem jedoch nicht. seitdem Das Hinzufügen weiterer Ketten erfordert im Allgemeinen zusätzliche validators, der laufende Netzwerkressourcenverbrauch (insbesondere in Bezug auf die Bandbreite) wächst mit dem Quadrat von dieKetten, eine auf Dauer unhaltbare Eigenschaft. Letztendlich werden wir uns wahrscheinlich weiterhin den Kopf zerbrechen gegen die grundlegende Einschränkung, die das besagt Ein Konsensnetzwerk gilt als verfügbar und sicher Der laufende Bandbreitenbedarf liegt in der Größenordnung von insgesamt validators mal die gesamten Eingabeinformationen. Das liegt daran die Unfähigkeit eines nicht vertrauenswürdigen Netzwerks, die Aufgabe der Datenspeicherung ordnungsgemäß auf viele Knoten zu verteilen, die sitzen abgesehen von der eminent verteilbaren Aufgabe der Verarbeitung. 6.5.1. Einführung in die Latenz. Eine Möglichkeit, dies abzumildern Die Regel besteht darin, den Begriff der Unmittelbarkeit zu lockern. Indem wir verlangen, dass 33 %+1 validators nur irgendwann und nicht sofort für die Verfügbarkeit stimmen, können wir die exponentielle Datenausbreitung besser nutzen und dazu beitragen, Spitzen beim Datenaustausch auszugleichen. Eine vernünftige Gleichheit (wenn auch unbewiesen) kann sein: (1) Latenz = Teilnehmer × Ketten Unter dem aktuellen Modell skaliert die Größe des Systems mit der Anzahl der Ketten, um sicherzustellen, dass die Verarbeitung erfolgt verteilt; da jede Kette mindestens einen validator benötigt und wir den Verfügbarkeitsnachweis auf eine Konstante festlegen Anteil von validators, dann wächst die Zahl der Teilnehmer ebenfalls mit der Anzahl der Ketten. Am Ende haben wir: (2) Latenz = Größe2 Das heißt, wenn das System wächst, sind die erforderliche Bandbreite und die Latenz bis zur Verfügbarkeit überall bekannt Netzwerk, das auch als Nummer bezeichnet werden könnte der Blöcke vor der Endgültigkeit, wächst mit seinem Quadrat. Das ist Es ist ein erheblicher Wachstumsfaktor und könnte sich als erhebliches Hindernis erweisen und uns in „nicht flache“ Paradigmen zwingen wie zum Beispiel das Zusammenstellen mehrerer „Polkadotes“ in einer Hierarchie für die mehrstufige Weiterleitung von Posts durch einen Baum von Relaychains.

POLKADOT: VISION FÜR EIN HETEROGENES MULTI-CHAIN-RAHMEN ENTWURF 1 13 6.5.2. Öffentlichkeitsbeteiligung. Eine weitere mögliche Richtung ist die Einbeziehung der Öffentlichkeit in den Prozess durch a Mikro-Beschwerdesystem. Ähnlich wie die Fischer dort könnten externe Parteien sein, die die validators überwachen, die Ansprüche geltend machen Verfügbarkeit. Ihre Aufgabe besteht darin, jemanden zu finden, der offenbar nicht in der Lage ist, eine solche Verfügbarkeit nachzuweisen. Dabei tun sie kann eine Mikrobeschwerde bei anderen validators einreichen. PoW oder Eine abgesteckte Anleihe kann verwendet werden, um den Sybil-Angriff abzuschwächen was das System weitgehend unbrauchbar machen würde. 6.5.3. Verfügbarkeitsgarantien. Ein letzter Weg wäre Nominieren Sie einen zweiten Satz gebundener validators als „Verfügbarkeit“. Bürgen“. Diese werden wie die normalen validators verklebt und können sogar aus demselben Set stammen (In diesem Fall würden sie jedoch über einen langfristigen Zeitraum ausgewählt, zumindest pro Sitzung). Im Gegensatz zu normalen validators sind sie würde nicht zwischen Parachains wechseln, sondern eher Bilden Sie eine einzige Gruppe, um die Verfügbarkeit aller wichtigen Interchain-Daten zu bestätigen. Dies hat den Vorteil, dass die Äquivalenz zwischen Teilnehmern und Ketten gelockert wird. Im Wesentlichen können Ketten wachsen (zusammen mit der ursprünglichen Kette validator gesetzt), wohingegen Die Teilnehmer, und insbesondere diejenigen, die am Test zur Datenverfügbarkeit teilnehmen, können zumindest sublinear bleiben und möglicherweise konstant. 6.5.4. Collator-Einstellungen. Ein wichtiger Aspekt dabei Das System besteht darin, sicherzustellen, dass es eine gesunde Auswahl gibt Collatoren, die die Blöcke in einer beliebigen Parachain erstellen. Wenn ein Ein einzelner Collator dominierte eine Parachain und dann einige Angriffe machbarer werden, da die Wahrscheinlichkeit des Mangels an Die Verfügbarkeit externer Daten wäre weniger offensichtlich. Eine Möglichkeit besteht darin, Parachain-Blöcke künstlich zu beschweren ein pseudozufälliger Mechanismus, um eine große Vielfalt an Collatoren zu begünstigen. Im ersten Fall würden wir verlangen als Teil des Konsensmechanismus, den validators bevorzugen Parachain-Block-Kandidaten gelten als „schwerer“. Ebenso müssen wir validators dazu anregen, es zu versuchen Schlagen Sie den schwersten Block vor, den sie finden können – das könnte sein Dies geschieht, indem ein Teil ihrer Belohnung proportional zum Gewicht ihres Kandidaten gemacht wird. Um sicherzustellen, dass den Zusammenstellern eine angemessene Fairness geboten wird Chance, dass ihr Kandidat als Sieger ausgewählt wird Kandidaten im Konsens, wir machen das spezifische Gewicht von a Parachain-Blockkandidaten bestimmen anhand einer Zufallsfunktion, die mit jedem Collator verbunden ist. Zum Beispiel nehmen das XOR-Abstandsmaß zwischen der Adresse des Sortierers und eine kryptografisch sichere Pseudozufallszahl nahe dem Punkt des zu erstellenden Blocks bestimmt (ein fiktives „Gewinnticket“). Dies gibt effektiv jedem Zusammensteller (oder genauer gesagt die Adresse jedes Zusammenstellers) a zufällige Chance, dass ihr Kandidatenblock „siegt“. alle anderen. Um den Sybil-Angriff eines einzelnen Collators abzuschwächen, der eine Adresse in der Nähe des Gewinnscheins „schürft“ und sich somit befindet Wenn wir jeden Block zu einem Favoriten machen, fügen wir der Adresse eines Collators etwas Trägheit hinzu. Das kann so einfach sein, wie sie zu verlangen um einen Grundbetrag an Mitteln in der Adresse zu haben. Ein mehr Ein eleganter Ansatz wäre es, die Nähe zum zu gewichten Gewinnschein mit dem auf dem geparkten Geldbetrag Adresse in Frage. Während die Modellierung noch aussteht, Es ist durchaus möglich, dass dieser Mechanismus sogar sehr viel ermöglicht kleine Stakeholder, die als Zusammensteller mitwirken können. 6.5.5. Übergewichtige Blockaden. Wenn ein validator-Set kompromittiert ist, können sie einen Block erstellen und vorschlagen, der jedoch funktioniert gültig, die Ausführung nimmt übermäßig viel Zeit in Anspruch und validieren. Dies ist ein Problem, da eine validator-Gruppe dies könnte vernünftigerweise einen Block bilden, dessen Herstellung sehr lange dauert ausführen, es sei denn, eine bestimmte Information ist bereits bekannt und ermöglicht eine Abkürzung, z. B. Faktorisierung eines großen Primzahl. Wenn ein einzelner Zusammensteller diese Informationen wüsste, dann Sie hätten einen klaren Vorteil, wenn sie ihre eigenen bekämen Kandidaten nahmen an, solange die anderen mit der Bearbeitung des alten Blocks beschäftigt waren. Wir nennen diese Blöcke Übergewicht. Der Schutz vor der Übermittlung und Validierung dieser Blöcke durch validators erfolgt größtenteils unter dem gleichen Deckmantel wie für ungültige Blöcke, jedoch mit einer zusätzlichen Einschränkung: Da die Zeit, die zum Ausführen eines Blocks benötigt wird (und damit sein Status als). Übergewicht) ist subjektiv, das Endergebnis einer Abstimmung Fehlverhalten lässt sich im Wesentlichen in drei Lager einteilen. Eins Es besteht die Möglichkeit, dass der Block definitiv nicht übergewichtig ist. in diesem Fall erklären mehr als zwei Drittel, dass sie es könnten Führen Sie den Block innerhalb einer bestimmten Grenze aus (z. B. 50 % der zwischen den Blöcken zulässigen Gesamtzeit). Ein weiterer Grund ist, dass die Block ist ddefinitiv übergewichtig – das wäre, wenn mehr als Zwei Drittel erklären, dass sie den Block nicht ausführen konnten innerhalb dieser Grenze. Eine letzte Möglichkeit ist eine ziemlich gleiche Meinungsverschiedenheit zwischen validators. In diesem Fall können wir sich dafür entscheiden, eine angemessene Strafe zu verhängen. Um sicherzustellen, dass validators vorhersagen können, wann dies der Fall sein wird Wenn Sie einen übergewichteten Block vorschlagen, kann es sinnvoll sein, von ihnen zu verlangen, dass sie Informationen über ihre eigene Leistung für jeden Block veröffentlichen. Über einen ausreichenden Zeitraum hinweg Dies sollte es ihnen ermöglichen, ihre Verarbeitungsgeschwindigkeit zu profilieren im Vergleich zu den Kollegen, die sie beurteilen würden. 6.5.6. Collator-Versicherung. Ein Problem bleibt für validators bestehen: Anders als bei PoW-Netzwerken, um die eines Collators zu überprüfen Um die Gültigkeit eines Blocks zu gewährleisten, müssen sie die darin enthaltenen Transaktionen tatsächlich ausführen. Böswillige Sortierer können ungültige oder übergewichtige Blöcke an validators weiterleiten, was ihnen Kummer (Verschwendung) bereitet ihre Ressourcen) und möglicherweise erhebliche Opportunitätskosten verursachen. Um dies zu mildern, schlagen wir eine einfache Strategie vor Teil von validators. Zunächst werden Kandidaten für den Parachain-Block gesendet bis validators müssen von einem Relay-Chain-Konto signiert werden mit Mitteln; Ist dies nicht der Fall, sollte validator gelöscht werden es sofort. Zweitens sollten solche Kandidaten durch eine Kombination (z. B. Multiplikation) von priorisiert werden der Betrag des Guthabens auf dem Konto bis zu einer gewissen Obergrenze, die Anzahl der vorherigen Blöcke, die der Collator in der Vergangenheit erfolgreich vorgeschlagen hat (ganz zu schweigen von den vorherigen). Strafen) und der Nähefaktor zum Gewinner Ticket wie zuvor besprochen. Die Kappe sollte gleich sein als Strafschadenersatz, der in diesem Fall an validator gezahlt wurde von ihnen sendet einen ungültigen Block. Um Sortierer davon abzuhalten, ungültige oder übergewichtige Blockkandidaten an validators zu senden, kann jeder validator dies tun Platzieren Sie im nächsten Block eine Transaktion, einschließlich des beleidigenden Blocks, in dem ein Fehlverhalten behauptet wird, mit der Folge, dass einige oder alle Gelder in den sich schlecht benehmenden Zusammensteller übertragen werden Konto an den Geschädigten validator. Diese Art von Transaktion geht allen anderen voraus, um sicherzustellen, dass der Collator dies nicht kann Entfernen Sie die Gelder vor der Bestrafung. Die Menge an Die Höhe der als Schadensersatz überwiesenen Gelder ist noch ein dynamischer Parameter

POLKADOT: VISION FÜR EIN HETEROGENES MULTI-CHAIN-RAHMEN ENTWURF 1 14 muss modelliert werden, wird aber wahrscheinlich ein Teil der Blockbelohnung validator sein, um das Ausmaß der verursachten Trauer widerzuspiegeln. Zu Um zu verhindern, dass böswillige validators die Gelder der Sammler willkürlich beschlagnahmen, kann der Sammler im Gegenzug bei einer Jury aus zufällig ausgewählten validators gegen die Entscheidung des validator Berufung einlegen für die Hinterlegung einer kleinen Anzahlung. Wenn sie zugunsten des validator entscheiden, wird die Kaution von ihnen verbraucht. Wenn nicht, wird die Die Kaution wird zurückerstattet und der validator wird mit einer Geldstrafe belegt (da der validator ist in einer viel gewölbteren Position, der feine Wille wahrscheinlich ziemlich heftig sein). 6.6. Interchain Transaktion Routenführung. Interchain Das Transaktionsrouting ist eine der wesentlichen Wartungsarbeiten Aufgaben der Relay-Chain und ihrer validators. Das ist das Logik, die regelt, wie eine gebuchte Transaktion (oft mit einfach „Buchung“ abgekürzt) zu einer gewünschten Ausgabe wird von einer Quell-Parachain zu einem nicht verhandelbaren Input einer anderen Ziel-Parachain ohne jegliches Vertrauen Anforderungen. Wir wählen die obige Formulierung sorgfältig aus; vor allem wir Es ist nicht erforderlich, dass in der Quelle eine Transaktion stattgefunden hat Parachain hat diesen Beitrag ausdrücklich genehmigt. Der Einzige Die Einschränkungen, die wir unserem Modell auferlegen, sind Parachains bereitgestellt werden müssen, verpackt als Teil ihres Gesamtblocks Verarbeitungsausgabe, die Beiträge, die das Ergebnis der sind Blockausführung. Diese Posts sind als mehrere FIFO-Warteschlangen strukturiert; die Die Anzahl der Listen wird als Routing-Basis bezeichnet und kann sein etwa 16. Bemerkenswert ist, dass diese Zahl die Menge darstellt von Parachains, die wir unterstützen können, ohne darauf zurückgreifen zu müssen Mehrphasen-Routing. Zunächst wird Polkadot dies unterstützen Art der direkten Weiterleitung, wir werden jedoch eine Möglichkeit skizzieren Mehrphasen-Routing-Verfahren („Hyper-Routing“) als Mittel der Skalierung weit über den anfänglichen Satz von Parachains hinaus. Wir annehmen das alle Teilnehmer wissen die Untergruppierungen für die nächsten beiden Blöcke n, n + 1. Zusammenfassend lässt sich sagen, dass die Das Routing-System folgt diesen Schritten: • CollatorS: Kontaktieren Sie Mitglieder von V alidators[n][S] • CollatorS: FÜR JEDE Untergruppe: Stellen Sie sicher, dass at Mindestens 1 Mitglied von Validators[n][s] in Kontakt • Sortierer: FÜR JEDE Untergruppe s: annehmen egress[n −1][s][S] ist verfügbar (alle eingehenden Beiträge). Daten an „S“ vom letzten Block) • Sortierer: Verfassen Sie den Blockkandidaten b für S: (b.header, b.ext, b.proof, b.receipt, b.egress) • Sortierer: Senden Beweis Informationen Beweis[S] = (b.header, b.ext, b.proof, b.receipt) zu Validatoren[n][S] • CollatorS: Sicherstellung externer Transaktionsdaten b.ext wird anderen Sortierern und validators zur Verfügung gestellt • Sortierer: FÜR JEDER Untergruppe s: Senden Ausgang Informationen Ausgang[n][S][s] = (b.header, b.receipt, b.egress[s]) zu die Empfangen Untergruppen Mitglieder von als nächstes blockieren Validatoren[n + 1][s] • ValidatorV: Alle Mitglieder derselben Gruppe vorab verbinden für den nächsten Block: sei N = Chain[n + 1][V ]; verbinden alle validators v so dass Chain[n + 1][v] = N • ValidatorV: Sammeln Sie dazu alle eingehenden Daten Block: FÜR JEDER Untergruppe s: Abrufen egress[n −1][s][Chain[n][V ]], erhalte von anderen validators v, so dass Chain[n][v] = Chain[n][V ]. Möglicherweise werden zufällig ausgewählte andere validators zum Nachweis des Versuchs herangezogen. • ValidatorV: Akzeptieren Sie hierfür Kandidatennachweise Blockbeweis[Kette[n][V ]]. Gültigkeit des Abstimmungsblocks • ValidatorV: Akzeptieren Sie die Ausgangsdaten des Kandidaten für nächster Block: Akzeptieren Sie für jede Untergruppe Ausgang[n][s][N]. Verfügbarkeit von Vote-Block-Ausgangsdaten; unter interessierten validators erneut veröffentlichen v so dass Kette[n + 1][v] = Kette[n + 1][V ]. • V alidatorV: BIS ZUM KONSENS Wobei: egress[n][from][to] die aktuelle Ausgangswarteschlange ist Informationen für Beiträge, die von Parachain „von“ zu „gehen“. Parachain „to“ in Blocknummer „n“. CollatorS ist ein Collator für Parachain S. V alidators[n][s] ist die Menge von validators für Parachain s bei Blocknummer n. Umgekehrt, Chain[n][v] ist die Parachain, der validator v im Block Nummer n zugewiesen ist. block.egress[to] ist der Ausgang Warteschlange mit Beiträgen von einem Parachain-Blockblock, dessen Ziel Parachain ist. Da Collators (Transaktions-)Gebühren auf der Grundlage von erheben Ihre Blöcke werden kanonisch, zu denen sie einen Anreiz haben Stellen Sie sicher, dass für jedes nächste Blockziel die Untergruppe Mitglieder werden ab sofort über die Ausgangswarteschlange informiert blockieren. Validatoren werden nur dazu angeregt, einen Konsens über einen (Parachain-)Block zu erzielen, und kümmern sich daher wenig darum welcher Collator-Block letztendlich kanonisch wird. In Prinzipiell könnte ein validator eine Allianz mit einem Sammler eingehen und sich verschwören, um die Chancen anderer Sammler zu verringern. Blöcke werden kanonisch, aber das ist beides schwierig aufgrund der Zufallsauswahl zu arrangierenFunktion von validators für Parachains und könnten mit einer Reduzierung der Gebühren für Parachain-Blöcke, die sich halten, abgewehrt werden der Konsensprozess. 6.6.1. Externe Datenverfügbarkeit. Sicherstellung eines Fallschirms Die Frage, ob externe Daten tatsächlich verfügbar sind, ist ein Dauerproblem dezentrale Systeme, die darauf abzielen, die Arbeitslast zu verteilen das Netzwerk. Im Kern geht es um die Verfügbarkeit Problem, das besagt, dass dies nicht möglich ist Erstellen Sie einen nicht interaktiven Verfügbarkeitsnachweis noch irgendeiner Art des Nachweises der Nichtverfügbarkeit, damit ein BFT-System ordnungsgemäß funktioniert Validieren Sie jeden Übergang, dessen Richtigkeit davon abhängt Verfügbarkeit einiger externer Daten, die maximale Anzahl von akzeptablen byzantinischen Knoten plus einem des Systems muss bescheinigen, dass die Daten verfügbar sind. Damit ein System wie Polkadot ordnungsgemäß skaliert werden kann, ist Folgendes erforderlich Lädt ein Problem ein: wenn ein konstanter Anteil von validators muss die Verfügbarkeit der Daten bescheinigen und davon ausgehen dass validators die Daten tatsächlich speichern wollen, bevor sie behaupten, dass sie verfügbar sind, wie können wir das dann vermeiden? Problem, dass der Bandbreiten-/Speicherbedarf mit der Systemgröße (und damit der Anzahl der validators) zunimmt? Eine mögliche Antwort wäre ein separates Set von validators (Verfügbarkeitsgaranten), deren Bestellung wächst sublinear mit der Größe von Polkadot als Ganzes. Das ist beschrieben in 6.5.3. Wir haben auch einen sekundären Trick. Als Gruppe haben die Zusammensteller einen intrinsischen Anreiz, dafür zu sorgen, dass alle Daten vorhanden sind verfügbar für ihre gewählte Parachain, da sie ohne diese sind nicht in der Lage, weitere Blöcke zu erstellen, aus denen sie können Transaktionsgebühren erheben. Auch die Zusammensteller bilden eine Gruppe, deren Mitgliederzahl unterschiedlich ist (aufgrund der Zufälligkeit). Parachain validator Gruppen) nicht trivial und einfach einzugeben

POLKADOT: VISION FÜR EIN HETEROGENES MULTI-CHAIN-RAHMEN ENTWURF 1 15 zu beweisen. Aktuelle Collatoren (vielleicht der letzten paar tausend Blöcke) dürfen daher Herausforderungen an stellen die Verfügbarkeit externer Daten für eine bestimmte Parachain Block an validators für eine kleine Kaution. Validatoren müssen diejenigen aus der offensichtlich beleidigenden validator-Untergruppe kontaktieren, die ausgesagt haben, und entweder die Daten beschaffen und an den Ermittler zurücksenden oder die Sache eskalieren Sachverhalt durch Aussage über die mangelnde Verfügbarkeit (die direkte Weigerung, die Daten bereitzustellen, gilt als Straftat zur Beschlagnahmung von Anleihen, daher wird der sich schlecht benehmende validator wahrscheinlich gerechtfertigt sein). Trennen Sie die Verbindung) und kontaktieren Sie weitere validators um den gleichen Test durchzuführen. Im letzteren Fall die Bürgschaft des Gläubigers wird zurückgegeben. Sobald ein Quorum von validators erreicht ist, die solche Nichtverfügbarkeitszeugnisse abgeben können, werden sie freigelassen Eine sich schlecht benehmende Untergruppe wird bestraft und die Sperre aufgehoben. 6.6.2. Weiterleitung von Beiträgen. Jeder Parachain-Header enthält eine Egress-Trie-Root; Dies ist die Wurzel eines Versuchs, der das enthält Routing-basierte Bins, wobei jede Bin eine verkettete Liste ist von Egress-Posts. Merkle-Beweise können quer vorgelegt werden Parachain validators, um zu beweisen, dass es sich um eine bestimmte Parachain handelt Der Block hatte eine bestimmte Ausgangswarteschlange für eine bestimmte Zielparachain. Zu Beginn der Verarbeitung jeweils ein Parachain-Block Die Ausgangswarteschlange einer anderen Parachain ist für diesen Block bestimmt in die Eingangswarteschlange unseres Blocks eingefügt. Wir gehen von starken, wahrscheinlich CSPR9, Unterblockreihenfolge, um eine deterministische Operation zu erreichen, die keine Bevorzugung zwischen irgendwelchen bietet Paarung von Parachain-Blöcken. Collators berechnen die neue Warteschlange und entleeren Sie die Ausgangswarteschlangen entsprechend der Parachain Logik. Der Inhalt der Eingangswarteschlange wird explizit geschrieben in den Parachain-Block. Dies hat zwei Hauptzwecke: Erstens bedeutet dies, dass die Parachain isoliert von den anderen Parachains vertrauenswürdig synchronisiert werden kann. Zweitens, Es vereinfacht die Datenlogistik für den gesamten Eingang Warteschlange kann nicht in einem einzelnen Block verarbeitet werden; validators und Collators können folgende Blöcke verarbeiten ohne die Daten der Warteschlange speziell beschaffen zu müssen. Wenn die Eingangswarteschlange der Parachain über einem Schwellenwert liegt Betrag am Ende der Blockverarbeitung, dann wird er markiert Die Relaiskette ist gesättigt und es dürfen keine weiteren Nachrichten gesendet werden bis zur Freigabe an ihn geliefert werden. Merkle-Beweise sind Wird verwendet, um die Betriebstreue des Zusammentragers zu demonstrieren der Beweis des Parachain-Blocks. 6.6.3. Kritik. Ein kleiner Fehler in Bezug auf dieses Basic Mechanismus ist der Post-Bomben-Anschlag. Hier ist alles Parachains senden die größtmögliche Anzahl an Beiträgen zu einer bestimmten Parachain. Während dies das Ziel fesselt Ingress-Warteschlange auf einmal, es entsteht kein darüber hinausgehender Schaden ein Standard-Transaktions-DoS-Angriff. Normaler Betrieb, mit einer Reihe gut synchronisierter und nicht böswillige Collators und validators, für N Parachains, N × M insgesamt validators und L Collatoren pro Parachain, wir kann die gesamten Datenpfade pro Block aufschlüsseln in: Validator: M −1+L+L: M −1 für die anderen validators im Parachain-Satz L für jeden Collator, der einen Kandidaten-Parachain-Block bereitstellt, und ein zweites L für jeden Collator des nächsten Blocks, der die Ausgangsnutzlasten des vorherigen Blocks erfordert. (Letzteres entspricht eher dem schlimmsten Fall Betrieb, da es wahrscheinlich ist, dass Sortierer diesen gemeinsam nutzen werden Daten.) Collator: M + kN: M für eine Verbindung zu jedem relevanten Parachain-Block validator, kN zum Seeding der Ausgangsnutzlasten an eine Teilmenge jeder Parachain-validator-Gruppe für der nächste Block (und möglicherweise einige bevorzugte Collator(s)). Daher wachsen die Datenpfadwege pro Knoten linear mit der Gesamtkomplexität des Systems. Während dies so ist angemessen, da das System in Hunderte oder Tausende von Parachains skaliert wird, kann es zu einer gewissen Kommunikationslatenz kommen im Austausch für eine geringere Komplexitätswachstumsrate absorbiert werden. In diesem Fall kann ein mehrphasiger Routing-Algorithmus verwendet werden um die Anzahl der momentanen Pfade zu reduzieren auf Kosten der Einführung von Speicherpuffern und Latenz. 6.6.4. Hyper-Cube-Routing. Hyper-Cube-Routing ist ein Mechanismus, der meist als Erweiterung zum erstellt werden kann oben beschriebener grundlegender Routing-Mechanismus. Im Wesentlichen, Anstatt die Knotenkonnektivität mit der Anzahl der Parachains und Untergruppenknoten zu erhöhen, wachsen wir nur mit der Logarithmus von Parachains. Beiträge können zwischen diesen verschoben werden Mehrere Parachain-Warteschlangen auf dem Weg zur endgültigen Lieferung. Das Routing selbst ist deterministisch und einfach. Wir beginnen mit Begrenzung der Anzahl der Bins in den Eingangs-/Ausgangswarteschlangen; anstatt die Gesamtzahl der Parachains zu sein, sie sind dieRouting-Basis (b) . Dies wird als Nummer festgelegt von Parachains ändert sich, wobei stattdessen der Routing-Exponent (e) erhöht wird. Unter diesem Modell ist unser Nachrichtenvolumen wächst mit O(be), wobei die Pfade konstant bleiben und die Latenz (oder Anzahl der für die Zustellung erforderlichen Blöcke) mit O(e). Unser Routing-Modell ist ein Hyperwürfel mit E-Dimensionen. wobei jede Seite des Würfels b mögliche Orte hat. In jedem Block leiten wir Nachrichten entlang einer einzelnen Achse weiter. Wir alternieren die Achsen im Round-Robin-Verfahren und garantieren so die Lieferzeit von e-Blöcken im ungünstigsten Fall. Im Rahmen der Parachain-Verarbeitung fremdgebunden Nachrichten, die in der Eingangswarteschlange gefunden werden, werden sofort an den entsprechenden Bin der Ausgangswarteschlange weitergeleitet aktuelle Blocknummer (und damit Routingdimension). Dies Der Prozess erfordert eine zusätzliche Datenübertragung für jeden Hop Auf dem Lieferweg ist dies jedoch selbst ein Problem Dies kann durch den Einsatz alternativer Mittel gemildert werden der Daten-Nutzdatenlieferung und enthält nur eine Referenz, und nicht die volle Nutzlast des Posts im Post-Trie. Ein Beispiel für ein solches Hyper-Cube-Routing für ein System mit 4 Parachains könnte b = 2 und e = 2 sein: Phase 0, bei jeder Nachricht M: • sub0: wenn Mdest ∈{2, 3} dann sendTo(2) sonst behalten • sub1: wenn Mdest ∈{2, 3} dann sendTo(3) sonst behalten • sub2: wenn Mdest ∈{0, 1} dann sendTo(0) sonst behalten • sub3: wenn Mdest ∈{0, 1} dann sendTo(1) sonst behalten Phase 1, zu jeder Nachricht M: • sub0: wenn Mdest ∈{1, 3} dann sendTo(1) sonst behalten • sub1: wenn Mdest ∈{0, 2} dann sendTo(0) sonst behalten • sub2: wenn Mdest ∈{1, 3} dann sendTo(3) sonst behalten • sub3: wenn Mdest ∈{0, 2} dann sendTo(2) sonst behalten Die beiden Dimensionen sind hier als erste leicht zu erkennen zwei Bits des Zielindex; für den ersten Block die Es wird nur das höherwertige Bit verwendet. Der zweite Block befasst sich mit dem niederwertigen Bit. Sobald beides geschieht (in beliebiger Reihenfolge). Bestellung), dann wird die Post weitergeleitet. 9kryptografisch sicheres Pseudozufälliges

POLKADOT: VISION FÜR EIN HETEROGENES MULTI-CHAIN-RAHMEN ENTWURF 1 16 6.6.5. Maximierung des Zufalls. Eine Änderung des Grundprinzips Der Vorschlag würde eine feste Gesamtzahl von c2 −c validators vorsehen, mit c−1 validators in jeder Untergruppe. Jeder Block, anstatt Es findet eine unstrukturierte Neupartitionierung von validators statt unter Parachains, stattdessen für jede Parachain-Untergruppe, Jeder validator würde einem eindeutigen und anderen Objekt zugeordnet werden Parachain-Untergruppe im folgenden Block. Das würde führen zur Invariante dass zwischen zwei beliebigen Blöcken für jeden Bei zwei Parachain-Paarungen gibt es zwei validators, die haben die Parachain-Verantwortlichkeiten getauscht. Dies kann jedoch nicht dazu genutzt werden, absolute Garantien für die Verfügbarkeit zu erhalten (Ein einzelner validator wird gelegentlich offline gehen, auch wenn wohlwollend), kann es dennoch den Gesamtfall optimieren. Dieser Ansatz ist nicht ohne Komplikationen. Auch die Hinzufügung einer Parachain würde eine Neuorganisation erfordern des validator-Sets. Darüber hinaus ist die Anzahl der validators, die an das Quadrat der Anzahl der Fallschirme gebunden ist, würde zunächst sehr klein anfangen und schließlich weit wachsen zu schnell und wird nach etwa 50 Parachains unhaltbar. Keines davon sind grundsätzliche Probleme. Im ersten Fall Eine Neuorganisation der validator-Sets ist etwas, das sein muss sowieso regelmäßig gemacht. Bezüglich der Größe des validator Wenn dieser Wert zu klein ist, können mehrere validators zugewiesen werden auf dieselbe Parachain anwenden, indem ein ganzzahliger Faktor auf die angewendet wird Gesamtsumme von validators. Ein mehrphasiger Routing-Mechanismus wie das in 6.6.4 besprochene Hypercube-Routing würde dies tun Verringern Sie den Bedarf an einer großen Anzahl von validators wenn es eine große Anzahl von Ketten gibt. 6.7. Parachain-Validierung. Der Hauptzweck eines validator besteht darin, als gut vernetzter Akteur zu bezeugen, dass es sich um einen Parachain handelt Der Block ist gültig, einschließlich, aber nicht beschränkt auf, alle Zustandsübergänge, alle externen Transaktionen einschließlich der Ausführung von alle wartenden Beiträge in der Eingangswarteschlange und den Endzustand der Ausgangswarteschlange. Der Prozess selbst ist ziemlich einfach. Sobald der validator den vorherigen Block versiegelt hat, sind sie frei mit der Arbeit an der Bereitstellung eines möglichen Parachain-Blocks zu beginnen Kandidat für die nächste Konsensrunde. Zunächst findet validator einen Parachain-Blockkandidaten über einen Parachain-Collator (im Folgenden beschrieben) oder einen solchen seiner Co-validators. Die Parachain-Block-Kandidatendaten Enthält den Header des Blocks, den Header des vorherigen Blocks, alle enthaltenen externen Eingabedaten (für Ethereum und Bitcoin werden solche Daten als Transaktionen bezeichnet, sie können jedoch im Prinzip beliebige Datenstrukturen für beliebige Zwecke umfassen), Ausgangswarteschlangendaten und interne Daten zum Nachweis der Zustandsübergangsgültigkeit (für Ethereum Dies wären die verschiedenen Status-/Speicher-Trie-Knoten, die zum Ausführen jeder Transaktion erforderlich sind. Experimentelle Beweise zeigen diesen vollständigen Datensatz für einen aktuellen Ethereum-Block höchstens ein paar Hundert KiB betragen. Gleichzeitig wird, falls noch nicht geschehen, der validator angezeigt Es wird versucht, Informationen zum Übergang des vorherigen Blocks abzurufen, zunächst aus dem Übergang des vorherigen Blocks validators und höher von allen validators, die für die unterzeichnen Verfügbarkeit der Daten. Sobald der validator einen solchen Kandidatenblock erhalten hat, Anschließend validieren sie es vor Ort. Der Validierungsprozess ist im Modul validator der Parachain-Klasse enthalten, a konsenssensitives Softwaremodul, das geschrieben werden muss für jede Implementierung von Polkadot (allerdings im Prinzip Eine Bibliothek mit einem C-ABI könnte dies einer einzelnen Bibliothek ermöglichen zwischen Implementierungen mit den entsprechenden geteilt werden Verringerung der Sicherheit aufgrund der Tatsache, dass es nur eine einzige „Referenz“-Implementierung gibt). Der Prozess nimmt den Header des vorherigen Blocks und überprüft seine Identität über die kürzlich vereinbarte Relay-Kette Block, in dem sein hash aufgezeichnet werden soll. Sobald die Gültigkeit des übergeordneten Headers festgestellt ist, wird die spezifische Parachain Die Validierungsfunktion der Klasse kann aufgerufen werden. Dies ist eine einzelne Funktion, die eine Reihe von Datenfeldern akzeptiert (ungefähr). die zuvor angegebenen) und die Rückgabe eines einfachen Booleschen Werts die Gültigkeit der Sperre verkünden. Die meisten dieser Validierungsfunktionen prüfen zunächst die Header-Felder, aus denen direkt abgeleitet werden kann der übergeordnete Block (z. B. übergeordneter Block hash, Nummer). Nachfolgend Dadurch füllen sie alle internen Datenstrukturen auf notwendig, um Transaktionen und/oder Beiträge zu bearbeiten. Für eine Ethereum-ähnliche Kette läuft dies auf das Auffüllen von a hinaus Versuchen Sie die Datenbank mit den Knoten, die dafür benötigt werden vollständige Ausführung der Transaktionen. Andere Kettentypen können möglicherweise vorhanden sein andere pReparaturmechanismen. Sobald dies erledigt ist, werden die Eingangsbeiträge und externen Transaktionen (oder was auch immer die externen Daten darstellen) angezeigt umgesetzt, ausbalanciert gemäß der Spezifikation der Kette. (A Eine sinnvolle Standardeinstellung könnte sein, dass alle Eingangsbeiträge erforderlich sein müssen verarbeitet werden, bevor externe Transaktionen bedient werden, dies sollte jedoch der Logik der Parachain überlassen bleiben.) Durch diesen Erlass wird es eine Reihe von Egress-Beiträgen geben erstellt und es wird überprüft, ob diese tatsächlich übereinstimmen der Kandidat des Collators. Endlich ist das richtig besiedelt Der Header wird mit dem Header des Kandidaten verglichen. Bei einem vollständig validierten Kandidatenblock ist der validator kann dann für den hash seines Headers stimmen und alle erforderlichen Validierungsinformationen an die Co-validators in seiner Untergruppe senden. 6.7.1. Parachain-Collatoren. Parachain-Collatoren sind ungebundene Betreiber, die einen Großteil der Aufgaben von Minern erfüllen in den heutigen blockchain Netzwerken. Sie sind spezifisch zu einer bestimmten Parachain. Um zu funktionieren, müssen sie Halten Sie sowohl die Relaiskette als auch die vollständige Synchronisierung aufrecht Parachain. Die genaue Bedeutung von „vollständig synchronisiert“ hängt von der Klasse der Parachain ab, umfasst jedoch immer den aktuellen Status der Eingangswarteschlange der Parachain. Im Fall von Ethereum geht es auch darum, zumindest aufrechtzuerhalten eine Merkle-Tree-Datenbank der letzten paar Blöcke, aber vielleicht umfassen auch verschiedene andere Datenstrukturen, einschließlich Bloom Filtert nach Kontoexistenz, Familieninformationen und Protokollierung Ausgänge und Reverse-Lookup-Tabellen für die Blocknummer. Es sorgt nicht nur dafür, dass die beiden Ketten synchronisiert bleiben, sondern sorgt auch dafür, dass die beiden Ketten synchronisiert bleiben Sie müssen auch nach Transaktionen „fischen“, indem Sie eine Transaktionswarteschlange unterhalten und ordnungsgemäß validierte Transaktionen akzeptieren aus dem öffentlichen Netz. Mit der Warteschlange und der Kette ist es so ist in der Lage, neue Kandidatenblöcke für die in jedem Block ausgewählten validators zu erstellen (deren Identität bekannt ist, da die Relaychain synchronisiert ist) und sie zusammen mit dem einzureichen diverse Zusatzinformationen wie z.B. Gültigkeitsnachweis, via das Peer-Netzwerk. Für seine Mühe erhebt es alle Gebühren im Zusammenhang mit den darin enthaltenen Transaktionen. Darum kreisen verschiedene Ökonomien Anordnung. In einem hart umkämpften Markt, wo es gibt Liegt ein Überschuss an Collatoren vor, ist es möglich, dass die Transaktion erfolgt Die Gebühren werden mit den Parachain-validators geteilt, um Anreize zu schaffen die Aufnahme eines bestimmten Collator-Blocks. Ähnlich,

POLKADOT: VISION FÜR EIN HETEROGENES MULTI-CHAIN-RAHMEN ENTWURF 1 17 Einige Kollektoren erheben möglicherweise sogar die erforderlichen Gebühren zu zahlen, um den Block attraktiver zu machen validators. In diesem Fall sollte sich ein natürlicher Markt bilden Bei Transaktionen, bei denen höhere Gebühren anfallen, entfällt die Warteschlange und eine schnellere Einbindung in die Kette. 6.8. Vernetzung. Networking auf traditionellen blockchains wie Ethereum und Bitcoin haben eher einfache Anforderungen. Alle Transaktionen und Blöcke werden in einem einfachen, ungerichteten Klatsch übertragen. Insbesondere die Synchronisierung ist aufwändiger mit Ethereum, aber in Wirklichkeit war diese Logik darin enthalten die Peer-Strategie und nicht das Protokoll selbst, das sich um einige Anforderungs- und Antwortnachrichtentypen drehte. Während Ethereum mit dem devp2p-Protokoll Fortschritte bei den aktuellen Protokollangeboten machte, was viele ermöglichte Unterprotokolle, die über eine einzelne Peer-Verbindung gemultiplext werden sollen und daher das gleiche Peer-Overlay haben, unterstützen viele P2P-Protokolle gleichzeitig, der Ethereum-Teil von Das Protokoll blieb immer noch relativ einfach und das P2P Das Protokoll bleibt eine Weile unvollendet und wichtig Es fehlen Funktionen wie QoS-Unterstützung. Leider besteht weitgehend der Wunsch, ein allgegenwärtigeres „Web 3“-Protokoll zu schaffen ist fehlgeschlagen, da die einzigen Projekte, die es explizit nutzen, diese sind finanziert durch den Crowd-Sale Ethereum. Die Anforderungen für Polkadot sind etwas umfangreicher. Anstelle eines völlig einheitlichen Netzwerks, Polkadot verfügt über mehrere Arten von Teilnehmern mit jeweils unterschiedlichen Anforderungen an die Zusammensetzung ihrer Kollegen und über mehrere Netzwerke „Wege“, über deren Teilnehmer sich gerne unterhalten wird bestimmte Daten. Dies bedeutet ein wesentlich strukturierteres Netzwerk-Overlay – und ein Protokoll, das dies unterstützt – wird wahrscheinlich notwendig sein. Darüber hinaus ist die Erweiterbarkeit möglich, um zukünftige Ergänzungen wie neue Arten von „Ketten“ zu ermöglichen erfordern selbst eine neuartige Overlay-Struktur. Während einer ausführlichen Diskussion darüber, wie die Vernetzung Da das Protokoll möglicherweise nicht in den Rahmen dieses Dokuments fällt, ist eine Analyse der Anforderungen sinnvoll. Wir können Teilen Sie unsere Netzwerkteilnehmer grob in zwei Gruppen auf (Relaiskette, Parachains) jeweils aus drei Teilmengen. Wir können Geben Sie auch an, dass jeder der Parachain-Teilnehmer nur ist daran interessiert, sich untereinander zu unterhalten, anstatt Teilnehmer an anderen Parachains: • Relay-Chain-Teilnehmer: • Validatoren: P, jeweils in Teilmengen P[s] aufgeteilt Parachain • Verfügbarkeitsgaranten: A (dies kann durch Validatoren in der Grundform des Protokolls dargestellt werden) • Relay-Chain-Clients: M (beachten Sie die Mitglieder von jedem Parachain-Set wird tendenziell auch Mitglieder von M sein) • Parachain-Teilnehmer: • Parachain-Collatoren: C[0], C[1], . . . • Parachain-Fischer: F[0], F[1], . . . • Parachain-Kunden: S[0], S[1], . . . • Parachain-Light-Clients: L[0], L[1], . . . Im Allgemeinen benennen wir bestimmte Kommunikationsklassen findet tendenziell zwischen Mitgliedern dieser Gruppen statt: • P | A <-> P | A: Die voll eingestellt von validators/Bürgen muss sein gut vernetzt zu Konsens erreichen. • P[s] <-> C[s] | P[s]: Jeder validator als Mitglied einer bestimmten Parachain-Gruppe neigt zum Tratschen mit anderen solchen Mitgliedern sowie den Zusammenstellern dieser Parachain, um Blockkandidaten zu entdecken und zu teilen. • A <-> P[s] | C | A: Jeder Verfügbarkeitsgarant muss konsenssensitiv kettenübergreifend gesammelt werden Daten aus den ihm zugeordneten validators; Collatoren kann auch die Chance auf einen Konsens darüber optimieren blockieren, indem Sie es an Verfügbarkeitsgarantien weitergeben. Sobald sie vorliegen, werden die Daten an ausgezahlt einen anderen solchen Garanten, um den Konsens zu erleichtern. • P[s] <-> A | P[s']: Parachain validators wird Sie müssen zusätzliche Eingabedaten aus dem vorherigen Satz von validators oder den Verfügbarkeitsgaranten sammeln. • F[s] <-> P: Beim Melden dürfen die Fischer Platz nehmen eine Reklamation gegenüber jedem Teilnehmer. • M <-> M | P | A: Allgemeine Relay-Chain-Clients geben Daten von validators und Bürgen aus. • S[s] <-> S[s] | P[s] | A: Parachain-Kunden zahlen Daten von den validator/Garanten aus. • L[s] <-> L[s] | S[s]: Parachain-Light-Clients Daten von den Vollkunden auszahlen. Um einen effizienten Transportmechanismus zu gewährleisten, ist ein „flacher“ Overlay-Netzwerk – wie devp2p von Ethereum – wobei jedes Knoten unterscheidet nicht (nicht willkürlich) die Eignung seiner Knoten Gleichaltrige sind wahrscheinlich nicht geeignet. Eine einigermaßen erweiterbare Es wird wahrscheinlich ein Peer-Auswahl- und Entdeckungsmechanismus erforderlich sein sowohl in das Protokoll aufgenommen als auch aggressiv sein Planen Sie einen Ausblick, um die richtige Art von Kollegen sicherzustellen sind „zufällig“ connezur richtigen Zeit getroffen. Die genaue Strategie der Peer-Zusammensetzung wird für jede Teilnehmerklasse unterschiedlich sein: für eine ordnungsgemäße Skalierung Multi-Chain-Collatoren müssen entweder kontinuierlich sein Wiederverbindung mit den entsprechend gewählten validators oder Testamenten benötigen laufende Vereinbarungen mit einer Teilmenge der validators um sicherzustellen, dass sie während des größten Teils der Zeit, in der sie dafür unbrauchbar sind, nicht getrennt werden validator. Selbstverständlich werden auch Sortierer versuchen, eines aufrechtzuerhalten oder stabilere Verbindungen in den Verfügbarkeitsgaranten soll eine schnelle Verbreitung ihrer konsensorientierten Maßnahmen gewährleisten Daten. Verfügbarkeitsgaranten werden meist darauf abzielen, eine aufrechtzuerhalten stabile Verbindung untereinander und zu validators (für den Konsens und die konsenskritischen Parachain-Daten, zu denen). sie bezeugen) sowie an einige Collatoren (für die Parachain). Daten) und einige Fischer und Vollkunden (zum Zerstreuen). Informationen). Validatoren neigen dazu, nach anderen validators zu suchen, insbesondere nach solchen in derselben Untergruppe und anderen Collatoren, die ihnen Parachain-Blockkandidaten liefern können. Fischer sowie allgemeine Relay-Chain und Parachain Kunden werden im Allgemeinen versuchen, eine Verbindung zu a offen zu halten validator oder Bürge, aber viele andere ähnliche Knoten für sich selbst sonst. Parachain-Light-Clients streben ebenfalls danach, mit einem vollständigen Client der Parachain verbunden zu werden. wenn nicht nur andere Parachain-Light-Clients. 6.8.1. Das Problem der Peer-Churn. Im Basisprotokollvorschlag ändert sich jede dieser Teilmengen ständig zufällig mit jedem Block, der den zur Überprüfung zugewiesenen validators zugewiesen wird Die Parachain-Übergänge werden zufällig ausgewählt. Das kann ein Problem sein, wenn unterschiedliche (Nicht-Peer-)Knoten dies benötigen Daten untereinander weitergeben. Man muss sich entweder darauf verlassen ein fair verteiltes und gut vernetztes Peer-Netzwerk

POLKADOT: VISION FÜR EIN HETEROGENES MULTI-CHAIN-RAHMEN ENTWURF 1 18 Stellen Sie sicher, dass die Hop-Distanz (und damit die Latenz im schlimmsten Fall) nur mit dem Logarithmus der Netzwerkgröße wächst (ein Kademlia-ähnliches Protokoll [13] kann hier helfen), oder man muss Führen Sie längere Blockzeiten ein, um die notwendige Verbindungsaushandlung zu ermöglichen, um ein Peer-Set aufrechtzuerhalten spiegelt die aktuellen Kommunikationsbedürfnisse des Knotens wider. Keine dieser Lösungen ist großartig: lange Blockzeiten Wird dem Netzwerk aufgezwungen, kann es unbrauchbar werden bestimmte Anwendungen und Ketten. Sogar eine völlig faire und verbundenes Netzwerk wird zu erheblicher Verschwendung führen der Bandbreite, da sie aufgrund uninteressierter Knoten skaliert für sie nutzlose Daten weiterzugeben. Während beide Richtungen Teil der Lösung sein können, Eine sinnvolle Optimierung zur Minimierung der Latenz wäre möglich sein, die Volatilität dieser Parachain zu begrenzen validator Sätze, wobei entweder die Zugehörigkeit nur zwischen Reihen von Blöcken neu zugewiesen wird (z. B. in Gruppen von 15, die bei einer 4-Sekunden-Einheit). Blockzeit würde bedeuten, dass die Verbindungen nur einmal pro Jahr geändert werden Minute) oder durch schrittweise Rotation der Mitgliedschaft, z.B. Änderung durch jeweils ein Mitglied (z. B. wenn dort Sind jeder Parachain 15 validators zugeordnet, dann wäre es im Durchschnitt eine ganze Minute zwischen völlig eindeutig Sätze). Indem Sie die Abwanderung von Peers begrenzen und sicherstellen, dass vorteilhafte Peer-Verbindungen gut hergestellt werden Fortschritt durch die teilweise Vorhersehbarkeit von Parachain Sets können wir dazu beitragen, dass jeder Knoten dauerhaft einen behält zufällige Auswahl von Kollegen. 6.8.2. Weg zu einem effektiven Netzwerkprotokoll. Wahrscheinlich die Der effektivste und vernünftigste Entwicklungsaufwand wird sich auf die Nutzung eines bereits vorhandenen Protokolls statt auf die fortlaufende Nutzung konzentrieren unser eigenes. Es gibt mehrere Peer-to-Peer-Basisprotokolle Wir können das eigene DevP2P von Ethereum verwenden oder erweitern [22], libp2p von IPFS [1] und GNUnet von GNU [4]. Eine vollständige Überprüfung dieser Protokolle und ihrer Relevanz für den Aufbau eines modulares Peer-Netzwerk, das bestimmte strukturelle Garantien, dynamische Peer-Steuerung und erweiterbare Unterprotokolle unterstützt geht weit über den Rahmen dieses Dokuments hinaus, wird aber eine sein wichtiger Schritt bei der Umsetzung von Polkadot. 7. Praktische Aspekte des Protokolls 7.1. Interchain-Transaktionszahlung. Während ein tolles Durch den Wegfall der Notwendigkeit eines ganzheitlichen Rechnungslegungsrahmens für Rechenressourcen wie dem Gas von Ethereum wird ein Höchstmaß an Freiheit und Einfachheit gewonnen. Dies wirft jedoch eine wichtige Frage auf: Wie funktioniert eine Parachain ohne Gas? verhindern, dass eine andere Fallschirmkette sie zu Berechnungen zwingt? Während wir uns auf die Transaktions-Post-Eingangswarteschlange verlassen können Puffer, um zu verhindern, dass eine Kette eine andere mit Spam überschüttet Transaktionsdaten bietet das Protokoll keinen gleichwertigen Mechanismus, um Spam bei der Transaktionsverarbeitung zu verhindern. Dies ist ein Problem, das der höheren Ebene überlassen bleibt. Da Ketten Es steht Ihnen frei, dem eingehenden Text eine beliebige Semantik hinzuzufügen Transaktionspostdaten können wir diese Berechnung sicherstellen muss vor Beginn bezahlt werden. In ähnlicher Weise wie die Modell, das von Ethereum Serenity vertreten wird, können wir uns vorstellen ein „Break-in“-Vertrag innerhalb einer Parachain, der a validator um eine garantierte Zahlung im Austausch dafür zu erhalten Bereitstellung einer bestimmten Menge an Verarbeitungsressourcen. Diese Ressourcen können in etwas wie Gas gemessen werden, Es könnte sich aber auch um ein völlig neuartiges Modell handeln, beispielsweise um eine subjektive Ausführungszeit oder um ein Bitcoin-ähnliches Pauschalpreismodell. Dies allein ist nicht so nützlich, da wir nicht ohne weiteres davon ausgehen können, dass der Anrufer außerhalb der Kette für ihn verfügbar ist Welcher Wertmechanismus auch immer durch den Einbruch erkannt wird Vertrag. Wir können uns jedoch einen sekundären „Breakout“-Vertrag in der Quellkette vorstellen. Die beiden Verträge würden zusammen eine Brücke bilden, einander anerkennen und Bereitstellung von Wertäquivalenz. (Staking-tokens, verfügbar für jedes einzelne könnte zur Begleichung der Zahlungsbilanz verwendet werden.) Ein Aufruf in eine andere solche Kette würde ein Proxying bedeuten über diese Brücke, die die Mittel dafür bereitstellen würde Aushandeln des Werttransfers zwischen Ketten, um Bezahlen Sie die für die Zielparachain erforderlichen Rechenressourcen. 7.2. Zusätzlich Ketten. Während die Ergänzung von a Parachain ist eine relativ günstige Operation, sie ist nicht kostenlos. Mehr Parachains bedeuten weniger validators pro Parachain und schließlich eine größere Anzahl von validators mit jeweils einem reduzierte durchschnittliche Bindung. Während das Problem geringerer Zwangskosten für den Angriff auf eine Parachain dadurch gemildert wird Fischer, das wachsende validator-Set erzwingt im Wesentlichen a höhere Latenz aufgrund der Mechanik des zugrunde liegenden Konsensesthod. Darüber hinaus jeder Parachain bringt das Potenzial mit sich, validators mit einem zu trauern Überlastender Validierungsalgorithmus. Daher wird es einen „Preis“ geben, der validators ist und/oder die Beteiligungsgemeinschaft wird dafür extrahieren Hinzufügung einer neuen Parachain. Dieser Markt für Ketten wird sehen Sie möglicherweise den Zusatz von entweder: • Ketten, bei denen wahrscheinlich kein Nettobeitrag gezahlt wird (in Bezug auf das Einsperren oder Verbrennen von staking tokens), die in einen Teil einbezogen werden müssen (z. B. Konsortialketten, Doge-Ketten, App-spezifische Ketten); • Ketten, die dem Netzwerk einen intrinsischen Wert liefern durch das Hinzufügen bestimmter Funktionen schwierig woanders hinzukommen (z. B. Vertraulichkeit, interne Skalierbarkeit, Serviceanbindung). Im Wesentlichen muss die Gemeinschaft der Beteiligten dies tun Anreize geschaffen werden, Kinderketten hinzuzufügen – entweder finanziell oder durch den Wunsch, dem Relais funktionsreiche Ketten hinzuzufügen. Es ist vorgesehen, dass neue Ketten hinzugefügt werden Kurze Kündigungsfrist für den Ausbau, sodass neue Ketten eingebaut werden können kompromisslos experimentiert werden kann das mittel- oder langfristige Wertversprechen. 8. Fazit Wir haben eine Richtung skizziert, die man als Autor einschlagen kann skalierbares, heterogenes Multi-Chain-Protokoll mit dem Potenzial, abwärtskompatibel zu bestimmten, bereits vorhandenen Protokollen zu sein blockchain Netzwerke. Unter einem solchen Protokoll, Teilnehmer Arbeiten Sie in aufgeklärtem Eigeninteresse daran, ein Gesamtsystem zu schaffen, das auf außerordentlich kostenlose Weise und ohne die typischen Kosten für bestehende Benutzer erweitert werden kann stammt aus einem Standarddesign blockchain. Wir haben gegeben ein grober Überblick über die Architektur, die erforderlich wäre, einschließlich die Art der Teilnehmer, ihre wirtschaftlichen Anreize und die Prozesse, an denen sie beteiligt sein müssen. Wir haben identifizierte ein grundlegendes Design und diskutierte seine Stärken und Einschränkungen; Dementsprechend haben wir weitere Anweisungen, die kann diese Einschränkungen lockern und den Weg zu einer vollständig skalierbaren blockchain-Lösung ebnen.POLKADOT: VISION FÜR EIN HETEROGENES MULTI-CHAIN-RAHMEN ENTWURF 1 19 8.1. Fehlendes Material und offene Fragen. Bei unterschiedlichen Implementierungen des Protokolls ist eine Netzwerkverzweigung immer möglich. Die Erholung von einem solchen Ausnahmezustand wurde nicht besprochen. Angesichts der Tatsache, dass das Netzwerk zwangsläufig einen Fertigstellungszeitraum ungleich Null haben wird, Die Wiederherstellung nach der Relaychain-Forking sollte kein großes Problem darstellen, erfordert jedoch eine sorgfältige Integration das Konsensprotokoll. Die Beschlagnahmung von Anleihen und umgekehrt die Bereitstellung von Belohnungen hat noch nicht tief erforscht. Derzeit gehen wir von Belohnungen aus werden nach dem Prinzip „Gewinner nimmt alles“ bereitgestellt: Dies ist möglicherweise nicht der Fall Bieten Sie den Fischern das beste Anreizmodell. Ein kurzzeitiger Commit-Reveal-Prozess würde es vielen Fischern ermöglichen den Preis zu beanspruchen und eine gerechtere Verteilung der Belohnungen zu gewährleisten, Allerdings könnte der Prozess zu zusätzlicher Latenz im führen Entdeckung von Fehlverhalten. 8.2. Danksagungen. Vielen Dank an alle Korrektoren, die dabei geholfen haben, dies in den Griff zu bekommen vorzeigbare Form. Insbesondere Peter Czaban, Bjorn Wagner, Ken Kappler, Robert Habermeier, Vitalik Buterin, Reto Trinkler und Jack Petersson. Vielen Dank an alle die Menschen, die Ideen oder Anfänge beigesteuert haben davon verdienen Marek Kotewicz und Aeron Buchanan besondere Erwähnung. Und vielen Dank an alle anderen für ihre Hilfe unterwegs. Alle Fehler sind meine eigenen. Teile dieser Arbeit, einschließlich erster Recherchen zu Konsensalgorithmen wurden teilweise von den Briten finanziert Regierung im Rahmen des Innovate UK-Programms.

プロトコルの詳細

プロトコルは大きく 3 つに分類できます。 部分: コンセンサスメカニズム、パラチェーンインターフェイス そしてチェーン間トランザクションルーティング。 6.1.リレーチェーン 操作。の リレーチェーン するだろう おそらく、Ethereum とほぼ同様のチェーンである可能性があります。 アドレスをアカウントにマッピングする状態を伴う状態ベースです 情報、主に残高と(リプレイを防ぐため) トランザクションカウンター。ここにアカウントを配置することで、アイデンティティが持つアカウントを提供するという 1 つの目的が達成されます。 システム内のステークの量。7 ただし、顕著な違いがあります。 • コントラクトはトランザクションを通じて展開できません。リレーチェーン上のアプリケーション機能を回避したいという要望から、それは行われません。 契約の公的展開をサポートします。 • コンピューティング リソースの使用量 (「ガス」) は考慮されません。 公的に使用できる唯一の機能であるため、 ガス会計の背後にある理論的根拠は修正されるでしょう もう成立しません。そのため、定額料金が適用されます すべてのケースで、より高いパフォーマンスを可能にします。 動的コードの実行が必要になる場合があります よりシンプルなトランザクション形式。 • リストされたコントラクトでは、自動実行とネットワークメッセージ出力を可能にする特別な機能がサポートされています。 リレーチェーンに VM があり、それが EVM をベースにしているため、最大限の簡素化を実現するために多くの変更が加えられています。 おそらく 多くの組み込みコントラクトがあります ( Ethereum のアドレス 1 ~ 4) を使用して、プラットフォーム固有の コンセンサス契約を含む管理すべき義務、 validator コントラクトとパラチェーン コントラクト。 EVM でない場合は、WebAssembly [2] (wasm) バックエンドが最も可能性の高い代替手段です。この場合は全体的に 構造は似ていますが、その必要はありません Wasm が実行可能なターゲットである組み込みコントラクトの場合 未熟な言語ではなく汎用言語向け EVM の言語は限定されています。 現在の Ethereum プロトコルからのその他の逸脱も十分に考えられます。たとえば、 同じブロック内で競合しないトランザクションを並列実行できるトランザクション受信形式。 Serenity シリーズの変更で提案されているとおりです。 可能性は低いですが、セレニティのようなものである可能性があります。 「純粋な」チェーンをリレー チェーンとして展開できるため、 staking token のようなものを管理するための特定の契約 それを基本的な部分にするのではなく、バランスを取る チェーンのプロトコル。現時点では、その可能性は低いと考えています 十分に優れたプロトコルの簡素化を提供します。 さらなる複雑さと不確実性が伴う価値がある それを開発する上で。 7 特定の保有者がシステム全体のセキュリティに対して責任を負う金額を表す手段として、これらのステーク アカウントは、 必然的に何らかの経済的価値をエンコードします。ただし、このような値を使用する意図はありませんので、ご理解ください。 いかなる方法であっても、現実世界の商品やサービスと交換することを目的とする場合、token を次のものに喩えるものではないことに注意してください。 通貨であるため、リレーチェーンはアプリケーションに関する虚無的な哲学を保持しています。POLKADOT: 異種マルチチェーン フレームワークのビジョン ドラフト 1 10 コンセンサス メカニズム、validator セット、検証メカニズム、およびパラチェーンを管理するために必要な機能の小さな部分が多数あります。これら モノリシックプロトコルの下で一緒に実装できます。ただし、モジュール性を高めるため、これらをリレーチェーンの「契約」と呼びます。これは、 それらはオブジェクトであることを意味すると解釈されます(という意味で) オブジェクト指向プログラミング)はリレーチェーンのコンセンサスメカニズムによって管理されますが、必ずしもそうではありません これらは、EVM のようなオペコードのプログラムとして定義されていません。 たとえそれらが アカウントシステム。 6.2.ステーキング契約。このコントラクトは validator セットを維持します。以下を管理します。 • 現在 validator であるアカウント。 • 短くするとvalidatorsになる可能性があります 気づいてください。 • どのアカウントが指名権を賭けているか validator; • staking ボリューム、許容可能なペイアウト率とアドレス、および短期 (セッション) ID を含むそれぞれのプロパティ。 アカウントがなりたいという願望を登録できるようになります。 結合された validator (その要件とともに)、何らかのアイデンティティを指名し、既存の結合された validator がこのステータスを終了する希望を登録します。それも 検証および正規化メカニズムのための機構自体が含まれています。 6.2.1.ステーク - token 流動性。一般的に望ましいのは、 合計 staking token をできるだけ多くする ネットワーク保守業務に関与して以来 これは、ネットワーク セキュリティを staking token 全体の「時価総額」に直接結び付けることになります。これは簡単にできます 通貨を吊り上げ、validator として参加する人に収益を分配することでインセンティブが与えられます。ただし、これを行うと問題が発生します。token 減額の罰を受けてステーキングコントラクトに固定されているのに、どうすればかなりの部分が十分に残るのでしょうか 価格発見を可能にするために液体を使用しますか? これに対する 1 つの答えは、単純なデリバティブ契約を許可し、基礎となるステーク済み token 上で代替可能な token を確保することです。これを信頼性のない方法で手配するのは困難です。 さらに、これらのデリバティブ token は、異なるユーロ圏政府の債券が代替不可能であるのと同じ理由で同等に扱うことができません。 原資産が故障して、 無価値。ユーロ圏各国政府では、 デフォルト。 validator でステーキングされた token では、validator が 悪意を持って行動し、罰せられます。 私たちの理念に従い、すべての token を賭けるわけではないという最も単純な解決策を選択します。これはつまり、 token の一部 (おそらく 20%) は強制的に液体のままになります。これはセキュリティの観点からは不完全ですが、根本的な違いを生む可能性は低いです。 ネットワークのセキュリティ。保釈金没収によって可能な賠償金の80%はまだ支払えるだろう 100% staking の「完璧なケース」と比較します。 ステーキングされたtokenとリキッドtokenの比率は、リバース オークション メカニズムを通じて非常に簡単に目標とすることができます。 基本的に、token 保有者は、validator になることに興味があります。 それぞれが、staking 契約に次のようなオファーを投稿します。 要求される最低ペイアウト率 部分。 各セッションの開始時 (セッションは 定期的に、おそらく 1 時間に 1 回程度の頻度で発生します) validator スロットは、それぞれの希望に応じて埋められます validator の賭け金とペイアウト率。考えられるアルゴリズムの 1 つ というのは、これは最低のオファーを持った人たちを採用することになるからです。 目標とする合計賭け金を超えない賭け金を表す スロット数で割った値であり、その半分の下限以上となります。スロットが埋まらない場合は、 下限は、満足するために、何らかの係数によって繰り返し削減される可能性があります。 6.2.2.指名する。信頼性の高い指名が可能 staking token をアクティブな validator に与えます。 validator の職務の責任。作品のノミネート 承認投票システムを通じて。各推薦者候補者は、staking 契約に指示を投稿できます。 1 つ以上の validator アイデンティティを表現し、その下に 彼らは自分たちの絆を託す用意があるという責任を持っています。 各セッションでは、推薦者の絆が分散されます。 1 つ以上の validator で表されます。分散アルゴリズムは、合計が等しい validator のセットを最適化します。 絆。指名者の債券は、validator a の有効な責任の下に置かれます。利息を得るか、苦しむか それに応じて刑罰も軽減される。 6.2.3.保証金の没収/バーニング。特定のvalidator行動により、懲罰的に絆が減らされます。もし ボンドが許容最小値を下回った場合、 セッションが途中で終了し、別のセッションが開始されました。罰せられるvalidatorの不正行為のリストはすべてではありませんが、次のとおりです。 • パラチェーングループの一員であるため、提供できない パラチェーンブロックの有効性についてのコンセンサス。 • 無効なファイルの有効性を確認するために積極的に署名する。 パラチェーンブロック。 • 以前は出力ペイロードを提供できなかった 利用可能として投票しました。 • 合意プロセス中の非アクティブ。 • 競合するフォーク上のリレーチェーンブロックを検証する。 不正行為の一部のケースでは、ネットワークの完全性が脅かされ(無効なパラチェーン ブロックへの署名やフォークの複数の側面の検証など)、その結果、ボンドの全体的な削減を通じて実質的な追放が発生します。で その他、それほど深刻ではないケース (例: コンセンサスにおける不活動) プロセス)、または責任を正確に割り当てることができない場合(非効率なグループの一員である場合)、ごく一部 代わりに、債券の全額に罰金が課される場合があります。後者の場合、これは サブグループのチャーンとうまく連携して、悪意のある行為が確実に行われるようにします。 ノードは、巻き添えで被害を受けた善良なノードよりも大幅に多くの損失を被ります。 場合によっては (マルチフォーク検証や無効な場合など) サブブロック署名) validator は定期的に検証されるため、互いの不正行為をそれ自体で簡単に検出できません。 各パラチェーンブロックの作成は非常に困難な作業になります。ここ 社外の関係者の支援を得る必要がある そのような不正行為を検証して報告するための検証プロセス。当事者は、そのような活動を報告すると報酬を受け取ります。彼らの「漁師」という言葉は、ありそうもないことに由来しています。 そのような報酬の。 通常、これらの事件は非常に深刻であるため、私たちは、没収された保証金から報酬が簡単に支払われることを想定しています。 一般に、燃焼のバランスをとることを好みます。 (つまり、ゼロに減らす) ではなく、再割り当てを使用します。 大規模な再配分を試みています。これには次のような効果があります

POLKADOT: 異種マルチチェーン フレームワークのビジョン ドラフト 1 11 token の全体的な値を増やし、 特定のネットワークではなく、ある程度のネットワーク全般 発見に関与した当事者。 これは主に安全のためです メカニズム: 大量のものが関与するため、すべてが揃った場合、極端かつ急性の行動の奨励につながる可能性があります。 単一の対象に与えられます。 一般に、報酬は、ネットワークにとって検証を価値のあるものにするのに十分な額であることが重要ですが、ネットワークのフロントにかかるコストを相殺できるほど大きくないことが重要です。 資金力があり、巧妙に組織された「業界レベル」の犯罪者 不運な validator に対してハッキング攻撃を行い、不正行為を強制します。 このようにして、請求額は通常、ゼロになるはずです。 誤ったvalidatorの直接結合より大きい。 不正行為をしたり、報奨金を得るために自分自身を報告したりすることによって生じる倒錯的なインセンティブ。これは明示的に対処できます になるための最低直接債券要件を通じて validator または、保証金がほとんど預けられていない validator には大きなインセンティブがないことを推薦者に教育することによって暗黙的に 行儀よく振る舞うこと。 6.3.パラチェーンレジストリ。各パラチェーンは次のように定義されます。 このレジストリ。これは比較的単純なデータベースのような構造であり、静的情報と動的情報の両方を保持します。 各チェーン。 静的情報には、チェーン インデックス (単純な 整数)、検証プロトコル ID とともに、 異なるクラスを区別する手段 パラチェーンを使用することで、正しい検証アルゴリズムを実現できます。 有効な候補者を推薦するよう委託されたvalidatorsによって運営されています。最初の概念実証では、配置に焦点を当てます。 新しい検証アルゴリズムがクライアント自体に組み込まれるため、事実上、毎回プロトコルのハードフォークが必要になります。 チェーンの追加クラスが追加されました。結局のところ、 検証アルゴリズムを指定できる場合があります。 クライアントが安心して利用できるよう、厳密かつ効率的な方法です。 新しいパラチェーンを効果的に操作できる ハードフォーク。これに対する考えられる手段の 1 つは、次のように指定することです。 十分に確立されたパラチェーン検証アルゴリズム、 WebAssembly など、ネイティブにコンパイルされたプラットフォームに依存しない言語。判断するには追加の調査が必要です これが本当に実現可能かどうかはわかりませんが、もし可能であれば、 これにより、ハードフォークを排除するという大きな利点が得られます 永遠に。 動的情報には、グローバルな合意が必要なトランザクション ルーティング システムの側面が含まれます。 パラチェーンの入力キューとして(セクション6.6で説明)。 レジストリにはパラチェーンのみを追加できます 国民投票の完全な投票を通じて。これはなんとかなるだろう 内部に配置されますが、外部に配置される可能性が高くなります。 再利用を容易にするための住民投票契約 より一般的なガバナンスコンポーネント。パラメータは 投票要件 (例: 必要な定足数、過半数 必須)追加チェーンの登録など、 あまり正式ではないシステムのアップグレードは「マスター」で規定されます。 憲法」に従うが、かなり伝統的なものに従う可能性が高い 少なくとも最初はパス。正確な配合はできていない 現在の作業の範囲ですが、例:システム全体の 3 分の 1 以上で可決する 3 分の 2 の圧倒的多数 積極的に投票することが賢明な出発点かもしれません。 追加の操作には、パラチェーンの一時停止と削除が含まれます。 サスペンションは願わくば決してないでしょう しかし、それは最低限の安全策として設計されています パラチェーンの検証システムには解決しがたい問題があります。それが起こる可能性がある最も明白な例は、 必要なのは、実装間のコンセンサスが重要な違いであるため、validator は同意できない 有効性またはブロック。バリデーターは使用することをお勧めします。 複数のクライアント実装を可能にするために 保釈金を没収される前にそのような問題を発見すること。 停止は緊急措置なので、 むしろ動的なvalidator投票の後援の下で 住民投票よりも。再インストールはどちらも可能です validators または住民投票から。 パラチェーンの完全な除去は、 国民投票の後、それに伴い、 ~への秩序ある移行を可能にするための実質的な猶予期間 スタンドアロンのチェーンか、他のチェーンの一部になるかのどちらか コンセンサスシステム。 猶予期間はおそらく次のとおりです 数か月のオーダーで、異なる順序でパラチェーン レジストリにチェーンごとに設定される可能性があります。 パラチェーンは、以下に応じてさまざまな猶予期間を楽しむことができます。 彼らの必要性。 6.4.リレーブロックの密閉。シーリングとは、本質的には、 正規化のプロセスへ。つまり基礎データです どれを変換するオリジナルを根本的に特異で意味のあるものにマッピングします。 PoW チェーンの下では、 封印は事実上採掘と同義です。私たちの場合、 これには、validators からの、有効性、可用性、正規性に関する署名付きステートメントの収集が含まれます。 特定のリレーチェーン ブロックとパラチェーン ブロック それは表します。 基礎となる BFT コンセンサス アルゴリズムの仕組みは、現在の作業の範囲外です。 させていただきます 代わりに、を想定するプリミティブを使用してそれを記述します。 合意形成ステートマシン。最終的に私たちが期待するのは、 多くの有望なBFTコンセンサスに触発される コア内のアルゴリズム。 Tangaora [9] (BFT の亜種) ラフト [16])、テンダーミント [11]、ハニーバジャーBFT [14]。 アルゴリズムは複数のパラチェーンで並行して合意に達する必要があるため、通常のアルゴリズムとは異なります。 blockchain コンセンサス メカニズム。一度は コンセンサスに達した場合、そのコンセンサスを記録することができます 以下のいずれかによって提供できる反駁できない証拠において 参加者はそれに参加します。不正行為も想定されます プロトコル内では通常、小さな値に減らすことができます。 不正行為を行った参加者を含むグループを最小限に抑える 罰を与える際の巻き添え被害。8 私たちの署名済みステートメントの形式をとった証明は、リレーチェーンブロックのヘッダーに一緒に配置されます 他の特定のフィールド、特にリレーチェーンのステートトライルートとトランザクショントライルート。 の 封印 プロセス かかります 場所 下 ある 独身 合意形成 仕組み アドレス指定 両方 の リレーチェーンのブロックとパラチェーンのブロック リレーのコンテンツの一部: パラチェーンはサブグループによって個別に「コミット」されてから照合されるわけではありません 後で。これにより、リレーチェーンのプロセスがより複雑になりますが、システム全体のコンセンサスを 1 つの段階で完了できるため、遅延が最小限に抑えられ、 非常に複雑なデータ可用性要件に対応します。 以下のルーティング プロセスに役立ちます。 8 Tendermint BFT やオリジナルの Slasher などの既存の PoS ベースの BFT コンセンサス スキームは、これらの主張を満たしています。

POLKADOT: 異種マルチチェーン フレームワークのビジョン ドラフト 1 12 各参加者のコンセンサスマシンの状態は、 単純な (2 次元) テーブルとしてモデル化できます。各参加者 (validator) は、次の形式で一連の情報を持っています。 各パラチェーン ブロック候補およびリレーチェーン ブロック候補に関する他の参加者からの署名付きステートメント (「投票」) の合計。情報のセットは 2 つです データの: 可用性: あります これ validator 持っています 出口 このブロックからのトランザクションポスト情報なので、 次のブロックのパラチェーン候補を適切に検証できますか?彼らは投票するかもしれない 1 (既知) または 0 (まだ不明)。かつて彼らは 1 票を投じる場合、彼らは同様に投票することを約束します。 このプロセスの残りの部分。そうでない後の投票 これが処罰の理由であることを尊重してください。 有効性: パラチェーン ブロックは有効であり、すべて有効です。 外部参照データ (例: 取引) 利用可能ですか?これは、投票しているパラチェーンに割り当てられている validator にのみ関係します。 1 (有効)、-1 (無効)、または 0 のいずれかに投票できます。 (まだ知られていません)。一度非ゼロに投票すると、 残りの期間もこの方法で投票することを約束します プロセス。これを尊重しない後の投票 が処罰の根拠となります。 すべての validator は投票を提出する必要があります。投票は上記のルールに従って再提出することができます。の進行状況 コンセンサスは、各パラチェーン上で並行して発生する複数の標準 BFT コンセンサス アルゴリズムとしてモデル化できます。これらは相対的な要因によって潜在的に妨げられるため、 少数の悪意のある攻撃者が集中している 単一のパラチェーン グループでは、全体的なコンセンサスが存在します。 バックストップを確立し、最悪のシナリオを制限します。 1 つまたは複数の無効なパラチェーン ブロックのみでデッドロック (および 責任者には一連の懲罰を科す)。 個々のブロックの有効性に関する基本規則 (これにより、validator の合計セットが全体として次のようになります) 独自のパラチェーン候補となることで合意 正規リレーから参照されます): • validator の少なくとも 3 分の 2 が肯定的に投票し、否定的に投票する人がいない必要があります。 • 出力キュー情報の利用可能性に肯定的に投票している validator が 3 分の 1 を超えている必要があります。 有効性に関して少なくとも 1 つの肯定的な投票と少なくとも 1 つの否定的な投票がある場合、例外条件が作成されます。 validator のセット全体が投票して決定する必要があります 悪意のある当事者がいる場合、または事故があった場合 フォーク。有効・無効以外の第三の投票 これは両方に投票することと同等です。つまり、 ノードには矛盾した意見があります。この原因として考えられるのは、 ノードの所有者は複数の実装を実行しています。 一致しない場合は、プロトコルに曖昧さがある可能性があることを示しています。 すべての投票が完全な validator セットからカウントされた後、次の場合 負けた意見は少なくともある程度の割合を占める( パラメータ化される。多くても半分、おそらく大幅に少ない) 勝利意見の投票のうち、次のように仮定されます。 偶発的にパラチェーンがフォークされた場合、パラチェーンはコンセンサスプロセスから自動的に一時停止されます。そうでない場合は、悪質な行為とみなし、処罰します。 反対意見に投票した少数派。 結論は、次のことを示す一連の署名です。 正規性。その後、リレーチェーンブロックを密閉することができます そして次のブロックを封印するプロセスが始まりました。 6.5.シールリレーブロックの改良。その間 このシール方法はシステムの動作を強力に保証しますが、スケールアウトはあまりうまくいきません すべてのパラチェーンの鍵情報には、 すべての validator の 3 分の 1 以上で可用性が保証されています。 これは、すべての validator の責任の足跡が チェーンが追加されると増加します。 オープンコンセンサスネットワーク内でのデータの可用性 これは本質的に未解決の問題ですが、validator ノードにかかるオーバーヘッドを軽減する方法はあります。シンプルな 1 つの 解決策は、validators が負担しなければならないことを認識することです データの可用性に対して責任を負うため、データ自体を実際に保存、通信、複製する必要はありません。 セカンダリ データ サイロ。おそらく関連する (あるいは、まさに 同じ)このデータを編集する照合者は、 validator が利息/収入の一部を支払いとして提供することで、利用可能性を保証するというタスク。 ただし、これによりある程度の中間的なスケーラビリティは得られるかもしれませんが、それでも根本的な問題の解決にはなりません。それ以来 チェーンを追加するには、通常、追加の validator が必要となり、継続的なネットワーク リソースの消費 (特に帯域幅の点で) は の 2 乗で増加します。 の鎖は長期的には維持できない性質です。 結局のところ、我々は頭を打ち続けることになるだろう という基本的な制限に反して、 安全に利用できるとみなされるコンセンサスネットワーク、 継続的な帯域幅要件は合計のオーダーに相当します validators 倍の合計入力情報。これは次の理由によるものです 信頼できないネットワークでは、データ ストレージのタスクを多くのノードに適切に分散できず、 処理という非常に分散可能なタスクは別として。 6.5.1.レイテンシーの紹介。これを和らげる一つの手段 ルールは、即時性の概念を緩和することです。 可用性に関して 33%+1 validators の投票をすぐにではなく最終的にのみ要求することで、指数関数的なデータ伝播をより効果的に活用し、データ交換のピークを平準化することができます。 合理的な平等(証明されていないが) 次のようになります: (1) レイテンシ = 参加者 × チェーン 現在のモデルでは、システムのサイズが拡大します 処理が確実に行われるようにチェーンの数を設定します。 配布された。各チェーンには少なくとも 1 つの validator が必要であり、可用性証明書を定数に固定するためです。 validator の割合が増加すると、参加者も同様に増加します チェーンの数で。最終的には次のようになります。 (2) レイテンシ = サイズ2 つまり、システムが成長するにつれて、必要な帯域幅と可用性が得られるまでの遅延がシステム全体で判明します。 ネットワーク。番号としても特徴付けられます。 ファイナリティ前のブロックの数は、その二乗に応じて増加します。これは これは実質的な成長要因であるが、それが顕著な障害となり、私たちを「非フラット」パラダイムに追い込む可能性がある 複数の「Polkadot」を階層に構成するなど リレーチェーンのツリーを介したポストのマルチレベルルーティング用。

POLKADOT: 異種マルチチェーン フレームワークのビジョン ドラフト 1 13 6.5.2.一般参加。もう一つ考えられる方向性 それは、プロセスへの一般の参加を求めることです。 マイクロクレームシステム。漁師と同じように、 主張するvalidatorを取り締まる外部の関係者である可能性があります 可用性。 彼らの任務は、そのような能力を証明できないと思われる人物を見つけることです。 そうすることで彼らは 他の validator に対してマイクロ苦情を申し立てることができます。捕虜か シビル攻撃を軽減するためにステーキングボンドが使用される可能性があります そうなるとシステムはほとんど役に立たなくなります。 6.5.3.可用性の保証者。最終的なルートは次のとおりです 結合された validator の 2 番目のセットを「可用性」として指名します。 保証人」。これらは通常の validator と同様に結合され、同じセットから取得されることもあります (ただし、その場合、少なくともセッションごとに、長期にわたって選択されることになります)。通常の validator とは異なり、 パラチェーン間で切り替えるのではなく、 すべての重要なチェーン間データの可用性を証明するために単一のグループを形成します。 これには、参加者とチェーン間の等価性が緩和されるという利点があります。 基本的に、チェーンは次のことができます。 (元のチェーン validator セットとともに) 成長しますが、 参加者、特にデータ可用性の証明に参加する人々は、少なくとも準線形性を維持できます。 そしておそらく一定です。 6.5.4.照合者の設定。この重要な側面の 1 つは、 このシステムは、健全な選択が行われることを保証することを目的としています。 特定のパラチェーンでブロックを作成するコレーター。もし 単一の照合者がパラチェーンを支配し、その後いくつかの攻撃を行った が不足する可能性が高いため、より実現可能になります。 外部データの利用可能性はそれほど明らかではありません。 1 つのオプションは、パラチェーン ブロックに人工的に重み付けすることです。 さまざまな照合者を優先するための擬似ランダム メカニズム。まず第一に、次のようにします。 validators が支持するコンセンサス メカニズムの一部として パラチェーンブロック候補は「より重い」と判定されました。 同様に、validator に次のことを試みるよう奨励する必要があります。 見つけられる最も重いブロックを提案します。これはおそらく これは、報酬の一部を候補者の体重に比例させることで行われます。 照合者に合理的な公平性が与えられるようにするため 彼らの候補者が勝利者として選ばれる可能性 候補者が合意に達した場合、私たちは特定の重要性を決定します。 パラチェーンブロック候補は、各照合器に接続されたランダム関数で決定されます。 たとえば、 照合者の住所間の XOR 距離測定値 および暗号的に安全な擬似乱数 ブロックが作成されるポイントの近くで決定される (概念的な「当たりチケット」)。これにより、それぞれに効果的な効果が得られます。 照合者 (より具体的には、各照合者の住所) 候補ブロックが「勝つ」ランダムな確率 他のすべて。 単一の照合者によるシビル攻撃を軽減するために、当選チケットに近いアドレスを「マイニング」し、 各ブロックをお気に入りにするには、照合者のアドレスに慣性を追加します。これは、それらを要求するのと同じくらい簡単かもしれません アドレスにベースライン金額の資金が含まれていること。さらに エレガントなアプローチは、 に駐車した金額の当選チケット 問題のアドレス。まだモデリングは終わっていないのですが、 このメカニズムにより、非常に 小規模な利害関係者が照合者として貢献します。 6.5.5.太り過ぎのブロック。 validator セットが侵害された場合、ブロックを作成して提案する可能性がありますが、 有効ですが、実行に膨大な時間がかかり、 検証します。 validator グループは次のような可能性があるため、これは問題です。 非常に長い時間がかかるブロックを合理的に形成する ショートカットを許可する特定の情報がすでにわかっている場合を除き、実行します。大きな因数分解 プライム。 もし 1 人の照合者がその情報を知っていたとしたら、 彼らは自分たちで手に入れたほうが明らかに有利だろう 他の候補者は、古いブロックの処理で忙しい限り受け入れられました。これらのブロックをオーバーウェイトと呼びます。 これらのブロックの送信と検証を行う validator に対する保護は、主に、 無効なブロックですが、追加の警告があります: ブロックの実行にかかった時間 (およびそのステータス) 太りすぎ)は主観的なものであり、投票の最終結果は 不正行為は基本的に 3 つのグループに分類されます。 1 つ 可能性としては、ブロックが明らかに太りすぎではないということです。 この場合、3分の2以上が「できる」と宣言している。 ある制限内でブロックを実行します (例: ブロック間に許可される合計時間の 50%)。 もう一つは、 ブロックはdです間違いなく太りすぎです。これは、以下の場合に当てはまります。 3 分の 2 がブロックを実行できなかったと宣言 上記制限内で。 最後の可能性はほぼ等しいです validator の間で意見が分かれています。この場合、私たちは、 相応の罰を与えることを選択します。 validator がいつそうなるかを確実に予測できるようにするため オーバーウェイトブロックを提案する場合、各ブロックのパフォーマンスに関する情報を公開するよう要求するのが賢明かもしれません。十分な期間を経て、 これにより、処理速度のプロファイリングが可能になるはずです 彼らを判断するであろう仲間と比較して。 6.5.6.コレーター保険。 validators には次の問題が 1 つ残っています。 PoW ネットワークとは異なり、照合者の 有効性を確保するためにブロックを作成するには、実際にその中でトランザクションを実行する必要があります。悪意のある照合者は、無効なブロックや重量超過のブロックを validator にフィードして、彼らを苦しめる (無駄な) 可能性があります。 彼らのリソース)、潜在的にかなりの機会費用がかかることになります。 これを軽減するために、私たちは、 validator の一部。まず、パラチェーンブロック候補が送信されました validator へはリレー チェーン アカウントから署名する必要があります 資金を使って。そうでない場合は、validator がドロップされるはずです それはすぐに。第二に、そのような候補は、次の組み合わせ(乗算など)によって優先順位を付ける必要があります。 アカウント内の資金の量が一定の上限まで、 照合者が過去に提案に成功した以前のブロックの数 (以前のブロックは言うまでもありません) 罰)、および勝利への近接要因 前述したようにチケット。キャップも同じはず この事件でvalidatorに支払われた懲罰的損害賠償金として うちは無効なブロックを送信しています。 照合者が無効または過大なブロック候補を validator に送信することを妨げるために、validator は次のことを行うことができます。 次のブロックに、不正行為を主張する問題ブロックを含むトランザクションを配置し、不正行為を行った照合者の資金の一部または全部を転送する 被害を受けたvalidatorにアカウントを送信します。 このタイプのトランザクションは、照合者が確実に実行できないように、他のトランザクションよりも優先して実行されます。 処罰の前に資金を削除してください。の量 損害賠償として送金される資金はまだ動的パラメータです

POLKADOT: 異種マルチチェーン フレームワークのビジョン ドラフト 1 14 モデル化される予定ですが、引き起こされた悲しみのレベルを反映するvalidatorブロック報酬の割合になる可能性があります。へ 悪意のある validator が照合者の資金を恣意的に没収するのを防ぐため、照合者はその代わりにランダムに選ばれた validator からなる陪審を招いて validator の決定に対して上訴することができます 少額の入金のため。 彼らが validator に有利であると判断した場合、デポジットは彼らによって消費されます。そうでない場合は、 デポジットは返還され、validator には罰金が科せられます( validator ははるかにアーチ型の位置にあり、罰金は おそらくかなり重いでしょう)。 6.6.インターチェーン トランザクション ルーティング。インターチェーン トランザクション ルーティングは重要なメンテナンスの 1 つです リレーチェーンのタスクとそのvalidator。 これは、 投稿されたトランザクション (多くの場合、単に「投稿」と短縮される) が望ましい出力になるまでの過程を制御するロジック あるソースパラチェーンから、信頼を持たない別の宛先パラチェーンの交渉不可能な入力になるまで 要件。 上記の文言は慎重に選択しています。特に私たちは ソース内にトランザクションが存在する必要はありません parachain はこの投稿を明示的に承認しました。唯一の 私たちがモデルに課す制約は、パラチェーンです。 ブロック全体の一部としてパッケージ化して提供する必要があります 処理出力、その結果である投稿 ブロックの実行。 これらのポストは、複数の FIFO キューとして構造化されています。の リストの数はルーティング ベースとして知られており、 およそ 16。注目すべきことに、この数字は数量を表します。 に頼ることなくサポートできるパラチェーンの数 マルチフェーズルーティング。当初、Polkadot はこれをサポートします 一種の直接ルーティングですが、考えられる 1 つの概要を説明します。 手段としてのマルチフェーズ配線プロセス (「ハイパー配線」) パラチェーンの初期セットをはるかに超えてスケールアウトします。 私たち 仮定する それ すべて 参加者 知っています の 次の 2 つのブロック n、n + 1 のサブグループ化。要約すると、 ルーティング システムは次の段階に従います。 • CollatorS: Validators[n][S] のメンバーに連絡します。 • CollatorS: サブグループごとに: で確認します。 V alidators[n][s] の少なくとも 1 人のメンバーが接触中 • コレーター: 各サブグループについて: 仮定する egress[n −1][s][S] が利用可能です (すべての受信ポスト 最後のブロックから「S」へのデータ) • コレーター: S のブロック候補 b を構成します。 (b.header、b.ext、b.proof、b.receipt、b.egress) • コレーター: 送信 証拠 情報 proof[S] = (b.header、b.ext、b.proof、b.receipt) から バリデーター[n][S] • CollatorS: 外部トランザクション データ b.ext を保証します。 他の照合者とvalidatorが利用できるようになります • コレーター: のための それぞれ サブグループ s: 送信 出口 情報 出口[n][S][s] = (b.header、b.receipt、b.egress[s]) に の 受信 サブグループの メンバー の 次へ ブロック バリデータ[n + 1][s] • ValidatorV : すべての同じセットのメンバーを事前接続します 次のブロックの場合: N = Chain[n + 1][V ]; とします。接続する Chain[n + 1][v] = N となるすべての validators v • バリデーター V : このためのすべてのデータ入力を照合します ブロック: のための それぞれ サブグループ s: 取得 egress[n −1][s][Chain[n][V ]]、Chain[n][v] = Chain[n][V ] となるように他の validators v から取得します。 おそらく、試みの証拠として、ランダムに選択された他の validator を経由します。 • バリデーター V : これに対する候補証明を受け入れる ブロックプルーフ[Chain[n][V ]]。投票ブロックの有効性 • バリデーター V : の候補出力データを受け入れる 次のブロック: サブグループごとに、受け入れます 出口[n][s][N]。投票ブロック出力の可用性。関心のある validator 間で再公開します。 チェーン[n + 1][v] = チェーン[n + 1][V ]。 • ValidatorV : コンセンサスが得られるまで ここで: egress[n][from][to] は現在の出力キューです。 パラチェーン「from」から~への投稿に関する情報 ブロック番号「n」のパラチェーン「to」。 Collat​​orS は、パラチェーン S の照合器です。V alidators[n][s] は、ブロック番号 n のパラチェーンの validator のセットです。逆に、 Chain[n][v] は、ブロック番号 n で validator v が割り当てられるパラチェーンです。 block.egress[to] は出口です パラチェーンブロックからの投稿のキュー。 パラチェーンの目的地は です。 照合者は以下に基づいて(取引)手数料を徴収するため、 彼らのブロックが正規化されることを奨励されている 次のブロックの宛先ごとに、サブグループの メンバーには現在からの出力キューが通知されます ブロック。バリデーターは、(パラチェーン)ブロックに関する合意形成のみを目的としており、それ自体はほとんど気にしません。 どの照合者のブロックが最終的に正規となるのか。で 原則として、validator は照合者と同盟を結び、他の照合者が犯罪に関与する可能性を減らすために共謀する可能性があります。 ブロックが正規化されますが、これは両方とも困難です ランダムセレのため手配しますvalidator のアクション パラチェーンは、持続するパラチェーンブロックに支払われる手数料を削減することで防御できる可能性があります。 コンセンサスプロセス。 6.6.1.外部データの可用性。パラチェーンの確保 外部データが実際に利用できるかどうかは、永続的な問題です ワークロードを分散することを目的とした分散型システム ネットワーク。問題の中心は可用性です どちらも不可能であるため、 非インタラクティブな可用性の証明などを作成する BFT システムが適切に利用できないことの証明 正確さが依存する遷移を検証します。 一部の外部データの利用可能性、最大数 許容可能なビザンチン ノードの数とシステムの 1 つ データが利用可能であることを証明する必要があります。 Polkadot のように、システムが適切にスケールアウトするには、これ 問題が発生します: validators の割合が一定の場合 データの可用性を証明する必要があり、次のように仮定します。 validators は、データが利用可能であると主張する前に実際にデータを保存したいと考えている場合、どうすれば回避できますか? システムのサイズ (したがって validator の数) に応じて増加する帯域幅/ストレージ要件の問題はありますか?考えられる答えの 1 つは、別のセットを用意することです。 validator 件 (在庫保証者)、注文は増加中 全体として Polkadot のサイズでサブリニアに。これは 6.5.3 で説明されています。 二次的なトリックもあります。 グループとしての照合者には、すべてのデータが確実に収集されるようにするという本質的なインセンティブがあります。 選択したパラチェーンがなければ利用可能です。 それ以上のブロックを作成できません。 取引手数料を徴収します。照合者もグループを形成しますが、そのメンバーは (ランダムな性質のため) 様々です。 パラチェーン validator グループ) 入力は簡単ではありません

POLKADOT: 異種マルチチェーン フレームワークのビジョン ドラフト 1 15 証明するために。したがって、最近の照合者 (おそらく最後の数千ブロック) は、 特定のパラチェーンの外部データの利用可能性 小規模な結合の場合は validators までブロックします。 検証者は、明らかに違反している validator サブグループの証言者に連絡し、データを取得して照合者に返すか、検証をエスカレーションする必要があります。 利用可能性が欠如していることを証言することで問題を解決する (データの提供を直接拒否することは保釈金没収犯罪としてカウントされるため、不正行為を行った validator はおそらくただの罪になるだろう) 接続を切断します)、追加の validator に連絡します 同じテストを実行します。後者の場合、担保保証金 が返されます。 このような利用不能の証言を行うことができる validator の定足数に達すると、解放され、 不正行為をしたサブグループは罰せられ、ブロックは元に戻されます。 6.6.2.投稿ルーティング。各パラチェーンヘッダーには、 出口トライルート;これは、を含むトライのルートです。 ルーティングベースのビン。各ビンは連結されたリストです 出口ポストの数。 マークル証明はさまざまな場所で提供される可能性があります parachain validators は、特定のパラチェーンの ブロックには、特定の宛先パラチェーンに対する特定の出力キューがありました。 パラチェーンブロックの処理の開始時に、それぞれの 当該ブロックに向かう他のパラチェーンの出力キューは ブロックの入力キューにマージされました。私たちは強いと仮定しますが、 おそらく CSPR9、サブブロックの順序付けにより、どのサブブロックにも優先順位が与えられない決定論的な操作を実現します。 パラチェーンブロックペアリング。照合者は新しいキューを計算します パラチェーンに従って出力キューを排出します ロジック。 入力キューの内容は明示的に書き込まれます。 パラチェーンブロックに入れます。 これには主に次の 2 つの目的があります。 まず、これはパラチェーンが他のパラチェーンから独立してトラストレスに同期できることを意味します。第二に、 イングレス全体が発生した場合のデータロジスティクスを簡素化します。 キューを単一のブロックで処理することはできません。 validator と照合者は次のブロックを処理できます キューのデータを特別に取得する必要はありません。 パラチェーンの入力キューがしきい値を超えている場合 ブロック処理の終了時に量がマークされる リレーチェーン上で飽和状態になり、それ以上のメッセージは送信できなくなります クリアされるまで配信されます。 マークル証明は、 照合者の操作の忠実性を実証するために使用されます。 パラチェーンブロックの証拠。 6.6.3.批評。この基本に関する小さな欠陥が 1 つあります メカニズムは爆弾後攻撃です。 ここがすべての場所です パラチェーンは可能な限り最大量の投稿を送信します 特定のパラチェーンに。これによりターゲットが拘束される一方で、 キューを一度に入力しても、何度繰り返してもダメージはありません 標準的なトランザクション DoS 攻撃。 正常に動作しており、十分に同期されており、 悪意のないコレーターと validator (N 個のパラチェーンの場合)、 パラチェーンごとに合計 N × M validator と L 個の照合器があり、 ブロックごとの合計データ経路を次のように分類できます。 バリデータ: M −1+L+L: 他の validator の場合は M −1 パラチェーン セットでは、候補パラチェーン ブロックを提供する各コレーターに L、各コレーターに 2 番目の L 前のブロックの出力ペイロードを必要とする次のブロックの。 (後者は実際には最悪のケースに近いです) 照合者がそのようなものを共有する可能性が高いため、 データです。) Collator: M +kN: M (関連するそれぞれへの接続用) パラチェーン ブロック validator、各パラチェーン validator グループのサブセットに出力ペイロードをシードするための kN 次のブロック (およびおそらくお気に入りの照合者)。 そのため、ノードごとのデータ パスウェイは直線的に増加します。 システム全体の複雑さによります。これがある間、 システムが数百または数千のパラチェーンにスケールアップされると、ある程度の通信遅延が発生する可能性があるのは当然です。 複雑さの増加率を下げる代わりに吸収されます。 この場合、マルチフェーズルーティングアルゴリズムが使用される可能性があります。 瞬間的な経路の数を減らすため その代償として、ストレージ バッファとレイテンシが発生します。 6.6.4.ハイパーキューブルーティング。ハイパーキューブ ルーティングは、主に、 上で説明した基本的なルーティング メカニズム。 本質的には、 パラチェーンやサブグループノードの数に応じてノード接続を増やすのではなく、 パラチェーンの対数。投稿は次の間を通過する可能性があります 最終配送に向かういくつかのパラチェーンのキュー。 ルーティング自体は決定的でシンプルです。まずは、 入力/出力キュー内のビンの数を制限します。 パラチェーンの総数ではなく、 はルーティングベース (b) 。これは数値として固定されます パラチェーンの変更が行われ、代わりにルーティング指数 (e) が増加します。このモデルでは、メッセージ量は O(be) とともに成長し、経路は一定のまま およびレイテンシー (または配信に必要なブロック数) O(e)で。 私たちのルーティング モデルは e 次元の超立方体です。 立方体の各側面には b 個の可能な位置があります。 各ブロックでは、単一の軸に沿ってメッセージをルーティングします。私たち ラウンドロビン方式で軸を交互に切り替えることで、ブロックの最悪の場合の配信時間が保証されます。 パラチェーン処理の一部として、外部バインド 入力キューで見つかったメッセージは、適切な出力キューのビンに直ちにルーティングされます。 現在のブロック番号 (および配線次元)。これ このプロセスではホップごとに追加のデータ転送が必要になります 配送ルート上だが、それ自体が問題 何らかの代替手段を使用することで軽減できる可能性があります データ ペイロード配信の、参照のみを含む、 ポストトライのポストの完全なペイロードではなく。 システムのハイパーキューブ ルーティングの例 パラチェーンが 4 つある場合、b = 2 および e = 2 は次のようになります。 フェーズ 0、各メッセージ M: • sub0: if Mdest ∈{2, 3} then sendTo(2) else keep • sub1: if Mdest ∈{2, 3} then sendTo(3) else keep • sub2: if Mdest ∈{0, 1} then sendTo(0) else keep • sub3: if Mdest ∈{0, 1} then sendTo(1) else keep フェーズ 1、各メッセージ M: • sub0: if Mdest ∈{1, 3} then sendTo(1) else keep • sub1: if Mdest ∈{0, 2} then sendTo(0) else keep • sub2: if Mdest ∈{1, 3} then sendTo(3) else keep • sub3: if Mdest ∈{0, 2} then sendTo(2) else keep ここでの 2 つの次元は、最初に見るのが簡単です。 宛先インデックスの 2 ビット。最初のブロックでは、 上位ビットのみが使用されます。 2 番目のブロックの取引 下位ビットを使用します。両方が発生すると(任意で) 順序)、投稿はルーティングされます。 9暗号的に安全な擬似ランダム

POLKADOT: 異種マルチチェーン フレームワークのビジョン ドラフト 1 16 6.6.5.セレンディピティを最大化する。基本的なものを1つ変更すると、 プロポーザルでは、固定合計 c2 −c validators が表示されます。 各サブグループに c−1 validator 個。各ブロックではなく、 validator の非構造化再パーティション化が存在します パラチェーン間ではなく、パラチェーンのサブグループごとに、 各 validator は、一意の異なる名前に割り当てられます。 次のブロックのパラチェーン サブグループ。これは 任意の 2 つのブロック間の不変式を導出します。 パラチェーンの 2 つのペアには、2 つの validator が存在します。 パラチェーンの責任を交換しました。これを使用して可用性を絶対に保証することはできませんが、 (単一の validator は、たとえ 有益)、それでも一般的なケースを最適化できます。 このアプローチには複雑さが伴います。パラチェーンの追加には再組織化も必要になる validator セットの。さらに、validator の数はパラチェーンの数の 2 乗に関連付けられ、 最初は非常に小さく始まり、最終的には大きく成長します 速すぎて、約 50 パラチェーンを超えると維持できなくなります。 これらはいずれも根本的な問題ではありません。最初のケースでは、 validator セットの再編成は必ず実行する必要があります。 とにかく定期的に行われます。 validatorのサイズについて 設定が小さすぎる場合、複数の validator が割り当てられる可能性があります 同じパラチェーンに整数係数を適用します。 全体の合計は validator です。 6.6.4 で説明したハイパーキューブ ルーティングなどのマルチフェーズ ルーティング メカニズムは、次のようになります。 多数の validator の要件を軽減します チェーン数が多い場合。 6.7.パラチェーンの検証。 validator の主な目的 絆の強い俳優として、パラチェーンの ブロックは有効です。これには、状態遷移、含まれる外部トランザクション、実行が含まれますが、これらに限定されません。 入力キュー内の待機中のポストと最終状態 出力キューの。 プロセス自体は非常に簡単です。 validator が前のブロックを封印すると、それらは解放されます パラチェーンブロックの候補を提供する作業を開始する 次のコンセンサスラウンドの候補者。 最初に、validator は、パラチェーン コレーター (次に説明します) または 1 つのパラメーターを通じてパラチェーン ブロック候補を見つけます。 その共同validatorの。パラチェーンブロック候補データ ブロックのヘッダー、前のブロックのヘッダー、 含まれる外部入力データ (Ethereum および Bitcoin の場合、そのようなデータはトランザクションと呼ばれますが、原則として任意の目的のための任意のデータ構造が含まれる場合があります)、出力キュー データおよび状態遷移の妥当性を証明する内部データ (Ethereum の場合) これは、各トランザクションを実行するために必要なさまざまな状態/ストレージ トライ ノードになります)。 実験的証拠は、最近の Ethereum ブロックのこの完全なデータセットを示しています 最大でも数百 KiB です。 同時に、まだ完了していない場合は、validator が実行されます。 前のブロックの遷移に関する情報を、最初は前のブロックから取得しようとします。 validator 以降、すべての validator が署名しています データの可用性。 validator がそのような候補ブロックを受信すると、 次に、それをローカルで検証します。検証プロセスは、パラチェーン クラスの validator モジュール内に含まれています。 作成する必要があるコンセンサス重視のソフトウェア モジュール Polkadot の実装の場合 (原則的には C ABI を備えたライブラリでは、単一のライブラリで次のことが可能になります。 適切な実装間で共有される 「参照」実装が 1 つだけであることから安全性が低下します)。 このプロセスは前のブロックのヘッダーを取得し、最近合意されたリレーチェーンを通じてそのアイデンティティを検証します。 hash が記録されるブロック。親ヘッダーの有効性が確認されると、特定のパラチェーンが クラスの検証関数が呼び出される可能性があります。これは、多数のデータ フィールドを受け入れる単一の関数です (おおよそ 前に与えられたもの)、単純なブール値を返します ブロックの有効性を宣言します。 このような検証関数のほとんどは、最初に から直接派生できるヘッダーフィールド 親ブロック (例: 親 hash、番号)。フォロー中 これにより、内部データ構造が次のように設定されます。 トランザクションや投稿を処理するために必要です。 Ethereum のようなチェーンの場合、これは に必要なノードを含むデータベースを試してください。 トランザクションの完全な実行。他のチェーンタイプには、 その他のp修復メカニズム。 完了すると、イングレス投稿と外部トランザクション (または外部データが表すもの) は次のようになります。 チェーンの仕様に従って制定され、バランスがとれています。 (A 賢明なデフォルトは、すべての入力ポストを要求することかもしれません 外部トランザクションがサービスされる前に処理されますが、これはパラチェーンのロジックが決定する必要があります。) この制定により、一連の出力投稿は 作成され、これらが実際に一致することが検証されます 照合者の候補者。最後に、適切に設定された ヘッダーは候補者のヘッダーと照合されます。 完全に検証された候補ブロックでは、validator その後、ヘッダーの hash に投票し、必要な検証情報をすべてそのサブグループ内の co-validator に送信できます。 6.7.1.パラチェーンコレーター。パラチェーンの照合者は、マイナーのタスクの多くを実行する、拘束されていないオペレーターです。 現在のblockchainネットワーク上で。それらは具体的です 特定のパラチェーンに。操作するには、次のことを行う必要があります。 リレーチェーンと完全に同期されたものの両方を維持する パラチェーン。 「完全に同期」の正確な意味はパラチェーンのクラスによって異なりますが、パラチェーンの入力キューの現在の状態が常に含まれます。 Ethereum の場合、少なくともメンテナンスも必要です 最後の数ブロックのマークルツリー データベースですが、 ブルームを含む他のさまざまなデータ構造も含まれます アカウントの存在、家族情報、ログ記録用のフィルター ブロック番号の出力と逆引き参照テーブル。 2 つのチェーンの同期を維持するだけでなく、 トランザクションキューを維持し、適切に検証されたトランザクションを受け入れることによって、トランザクションを「フィッシング」する必要もあります パブリックネットワークから。キューとチェーンでは、 各ブロックで選択された validator の新しい候補ブロック (リレーチェーンが同期されているため、その ID がわかっている) を作成し、それらを 有効性の証明などのさまざまな付随情報。 ピアネットワーク。 その厄介な問題として、含まれる取引に関連するすべての手数料を徴収します。これに関してはさまざまな経済学が浮かんでいる アレンジメント。競争の激しい市場では、 担保者が余っているため、取引が行われる可能性があります。 インセンティブを与えるために手数料をパラチェーン validators と共有する 特定の照合者のブロックを含めること。 同様に、

POLKADOT: 異種マルチチェーン フレームワークのビジョン ドラフト 1 17 一部の照合者は、必要な手数料を徴収する場合もあります。 ブロックをより魅力的なものにするために支払われる validator秒。 この場合、自然な市場が形成されるはずです トランザクションはキューをスキップして高い手数料を支払う そして、より早くチェーンに組み込まれるようになります。 6.8.ネットワーキング。従来の blockchain でのネットワーキング Ethereum や Bitcoin などの要件はかなり単純です。 すべてのトランザクションとブロックは、単純な方向性のないゴシップでブロードキャストされます。同期は特に複雑です。 Ethereum を使用していますが、実際には、このロジックは いくつかの要求および応答メッセージ タイプを中心に解決するプロトコル自体ではなく、ピア戦略。 Ethereum は、devp2p プロトコルを使用して現在のプロトコルの提供を進めました。これにより、多くの機能が可能になりました。 サブプロトコルは単一のピア接続上で多重化されるため、同じピア オーバーレイを多数サポートします。 p2p プロトコルと同時に、Ethereum 部分 プロトコルはまだ比較的単純なままであり、p2p 議定書はしばらくの間、重要な作業が完了していないため、 QoS サポートなどの機能がありません。悲しいことに、よりユビキタスな「Web 3」プロトコルを作成したいという願望は主に 失敗しました。明示的に使用しているのはプロジェクトだけです Ethereum クラウドセールから資金を調達しました。 Polkadot の要件はかなり厳密です。完全に均一なネットワークではなく、Polkadot 数種類の参加者がおり、それぞれのピア構成や複数のネットワークに対して異なる要件があります。 参加者が会話する傾向がある「通り」 特定のデータ。これは、実質的により構造化されたネットワーク オーバーレイ、およびそれをサポートするプロトコルを意味します。 おそらく必要になるだろう。さらに、新しい種類の「チェーン」など、将来の追加を容易にする拡張性も備えています。 それら自体には新しいオーバーレイ構造が必要です。 ネットワーキングの仕組みについて徹底的に議論しながら、 プロトコルはこの文書の範囲外であるように見えるかもしれませんが、一部の要件分析は合理的です。できます ネットワーク参加者を大まかに 2 つのセットに分類します (リレーチェーン、パラチェーン) 3 つのサブセットのそれぞれ。できます また、各パラチェーン参加者は、 ではなく、自分たち同士で会話することに興味がある 他のパラチェーンの参加者: • リレーチェーン参加者: • バリデータ: P、それぞれのサブセット P[s] に分割 パラチェーン • 可用性保証者: A (これは、プロトコルの基本形式のバリデーターによって表される場合があります) • リレーチェーンクライアント: M (各メンバーのメンバーに注意してください) パラチェーン セットも M のメンバーになる傾向があります) • パラチェーン参加者: • パラチェーン コレーター: C[0]、C[1]、. 。 。 • パラチェーン漁師: F[0]、F[1]、 。 。 。 • パラチェーン クライアント: S[0]、S[1]、. 。 。 • パラチェーン ライトクライアント: L[0]、L[1]、. 。 。 一般に、私たちはコミュニケーションの特定のクラスに名前を付けます これらのセットのメンバー間で発生する傾向があります。 •P |あ <-> P |答え: の いっぱい セット の validators/保証人 しなければならない なる よくつながっている に コンセンサスを得る。 • P[s] <-> C[s] | P[s]: 特定のパラチェーン グループのメンバーとしての各 validator は噂話をする傾向があります 他の同様のメンバーおよび照合者とともに そのパラチェーンのブロック候補を発見して共有します。 • A <-> P[s] | C | A:各空室保証人 コンセンサスに敏感なクロスチェーンを収集する必要がある validator からのデータが割り当てられています。照合者 また、彼らの合意形成の可能性を最適化する可能性もあります。 可用性保証者に通知することでブロックします。 データを取得すると、データは次の企業に支払われます。 合意を促進するための他のそのような保証人。 • P[s] <-> A | P[s']: パラチェーン validators は 以前の validator セットまたは可用性保証者から追加の入力データを収集する必要があります。 • F[s] <-> P: 漁師は報告する際、 参加者に対するクレーム。 • M <-> M | P | A: 一般的なリレー チェーン クライアントは、validator と保証人からデータを支払います。 • S[s] <-> S[s] | P[s] | A: パラチェーンのクライアントは、validator/保証人からデータを支払います。 • L[s] <-> L[s] | S[s]: パラチェーン ライト クライアント 完全なクライアントからデータを分配します。 効率的な輸送メカニズムを確保するために、「フラット」 オーバーレイ ネットワーク (Ethereum の devp2p など) ノードは、そのノードの適合性を (恣意的にではなく) 区別しません。 同僚が適切である可能性は低いです。適度に拡張可能な ピアの選択と検出のメカニズムが必要になる可能性があります 積極的であると同時にプロトコルに含まれること 適切な種類のピアを確保するための先読みを計画する 偶然にも適切なタイミングで実行されました。 ピアメイクの正確な戦略は、参加者のクラスごとに異なります。 マルチチェーンの場合、照合者は継続的に実行する必要があります。 それに応じて選出された validator に再接続するか、 validator のサブセットとの継続的な契約が必要です validator が役に立たないほとんどの時間で切断されないようにするためです。照合者も当然、その情報を維持しようとします。 または可用性保証者へのより安定した接続 コンセンサスに敏感な情報を迅速に広めることを保証するために設定されています。 データ。 可用性の保証者は主に、 相互および validators への安定した接続 (コンセンサスおよびコンセンサスが重要なパラチェーン データの場合) 彼らは証明します)、そして一部の照合者(パラチェーンの場合)も証明します データ)と一部の漁師と完全な顧客(分散のため) 情報)。バリデーターは、他の validator、特に同じサブグループ内のvalidator を探す傾向があります。 パラチェーンブロック候補を提供できる照合者。 漁師、一般的なリレーチェーン、パラチェーンなど クライアントは通常、接続をオープンな状態に保つことを目的とします。 validator または保証人ですが、他の多くの同様のノード そうでなければ自分自身に。パラチェーンのライトクライアントも同様に、パラチェーンの完全なクライアントに接続することを目指します。 他のパラチェーンライトクライアントだけではないにしても。 6.8.1.ピアチャーンの問題。基本的なプロトコルの提案では、これらの各サブセットは、検証するために割り当てられた validator として各ブロックとともに常にランダムに変化します。 パラチェーン遷移はランダムに選択されます。これはできる 異種 (非ピア) ノードが問題となる可能性があります。 相互にデータを渡します。どちらかに頼らなければなりません 公平に分散され、適切に接続されたピア ネットワーク

POLKADOT: 異種マルチチェーン フレームワークのビジョン ドラフト 1 18 ホップ距離 (したがって最悪の場合の遅延) がネットワーク サイズの対数に応じてのみ増加するようにする (Kademlia のようなプロトコル [13] がここで役立つかもしれません)、または、次のことを行う必要があります。 ピアセットを維持するために必要な接続ネゴシエーションを実行できるようにするために、より長いブロック時間を導入します。 ノードの現在の通信ニーズを反映します。 どちらも優れた解決策ではありません: ブロック時間が長い ネットワークに強制的にアクセスすると、ネットワークが役に立たなくなる可能性があります。 特定のアプリケーションとチェーン。完全に公平であっても ネットワークに接続すると、かなりの無駄が発生します 関心のないノードにより拡張される帯域幅の減少 彼らにとって役に立たないデータを転送するため。 両方の方向がソリューションの一部を形成する可能性がありますが、 レイテンシーを最小限に抑えるために合理的な最適化を行うと、 これらのパラチェーンのボラティリティを制限するためです validator 一連のブロック間でのみメンバーシップを再割り当てするセット (例: 15 個のグループ、4 秒ごと) ブロック時間は、接続を 1 回につき 1 回だけ変更することを意味します。 分)、またはメンバーシップを段階的にローテーションすることによって(例:一度に 1 人のメンバーによって変更されます (例: 各パラチェーンに 15 validator が割り当てられている場合、完全に一意なパラチェーン間の間隔は平均で丸 1 分になります。 セット)。ピアのチャーンの量を制限し、有利なピア接続が適切に確立されるようにすることで、 パラチェーンの部分的な予測可能性を通じて進歩する セットを使用すると、各ノードが永続的に保持されるようにすることができます。 偶然の仲間選び。 6.8.2.効果的なネットワーク プロトコルへのパス。おそらく、 最も効果的かつ合理的な開発努力は、ローリングではなく既存のプロトコルの利用に焦点を当てます。 私たち自身の。 いくつかのピアツーピアベースプロトコルが存在します。 Ethereum 独自の devp2p を使用または拡張する場合があります [22]、IPFS の libp2p [1]、GNU の GNUnet [4]。これらのプロトコルとその構築との関連性を完全にレビューします。 特定の構造保証、動的ピアステアリング、および拡張可能なサブプロトコルをサポートするモジュラーピアネットワーク この文書の範囲をはるかに超えていますが、 Polkadot の実装における重要なステップ。 7. プロトコルの実用性 7.1.インターチェーントランザクション支払い。素晴らしい一方で、 Ethereum のガスのような総合的な計算リソース アカウンティング フレームワークの必要性をなくすことで、かなりの自由とシンプルさが得られますが、これは重要な疑問を引き起こします。ガスがなければ、パラチェーンはどのように機能するのでしょうか。 別のパラチェーンが強制的に計算を実行するのを避けますか?トランザクション後の入力キューに依存することもできますが、 あるチェーンが別のチェーンにスパム送信するのを防ぐためのバッファー トランザクション データの場合、トランザクション処理のスパムを防止するための同等のメカニズムがプロトコルによって提供されることはありません。 これはより高いレベルに委ねられる問題です。チェーン以来 受信メッセージに任意のセマンティクスを自由に付加できる トランザクション後のデータを使用すると、計算が確実に行われるようになります。 開始前に料金を支払う必要があります。同じような流れで、 Ethereum Serenity が支持するモデル、想像できます パラチェーン内の「侵入」契約により、 validator と引き換えに支払いが保証されます。 特定の量の処理リソースの提供。 これらのリソースはガスのようなもので測定される可能性があります。 しかし、主観的な実行時間や Bitcoin のような定額料金モデルなど、まったく新しいモデルである可能性もあります。 オフチェーンの呼び出し元が利用できるとはすぐには想定できないため、これ自体はあまり役に立ちません。 侵入によって認識されるあらゆる価値メカニズム 契約。ただし、ソースチェーン内に二次的な「ブレイクアウト」コントラクトが存在することは想像できます。 2 つの契約は共に橋を形成し、お互いを認識し、 価値の同等性を提供します。 (ステーキング-tokens、利用可能 それぞれを国際収支の決済に使用できます。) 別のそのようなチェーンを呼び出すことはプロキシを意味します この橋を通って、 チェーン間での価値の移転を交渉して、 宛先パラチェーンで必要な計算リソースの料金を支払います。 7.2.追加 チェーン。その間 の 追加 の ある パラチェーンは比較的安価な操作ですが、無料ではありません。 パラチェーンが増えると、パラチェーンあたりの validator が少なくなります そして最終的には、それぞれが 平均債券の減少。パラチェーンを攻撃するための強制コストが小さいという問題は、次のように軽減されます。 漁師の皆さん、validator セットの成長は本質的に、 基礎となるコンセンサスの仕組みにより、レイテンシが高くなるそーだ。さらに各パラチェーン validators を悲しませる可能性があります。 負担の大きい検証アルゴリズム。 したがって、validator の「価格」が発生することになります。 および/または利害関係者コミュニティが、 新しいパラチェーンの追加。このチェーン市場は、 おそらく次のいずれかが追加されているのがわかります。 • 一部となる可能性が高い(staking tokens のロックアップまたはバーンアウトに関して)正味拠出金の支払いがゼロのチェーン(コンソーシアム チェーンなど) Doge チェーン、アプリ固有のチェーン)。 • ネットワークに本質的な価値を提供するチェーン 特定の機能を追加するのが難しい 他の場所(機密性、内部拡張性、サービス提携など)を取得するため。 基本的に、利害関係者のコミュニティは次のことを行う必要があります。 経済的または経済的に子チェーンを追加するよう奨励される リレーに機能的なチェーンを追加したいという願望を通じて。 新しいチェーンが追加されると、非常に大きな影響を受けることが想定されます。 削除の通知期間が短いため、新しいチェーンを使用できます。 妥協するリスクなしに実験できる 中長期的な価値提案。 8. 結論 私たちは、著者が取ることができる方向性を概説しました。 特定の既存のプロトコルとの下位互換性がある可能性のある、スケーラブルな異種マルチチェーン プロトコル blockchain ネットワーク。このようなプロトコルの下では、参加者は 賢明な自己利益に基づいて、既存ユーザーに通常のコストをかけずに、非常に自由な方法で拡張できるシステム全体を作成します。 標準の blockchain デザインから来ています。私たちは与えました 必要となるアーキテクチャの大まかな概要 参加者の性質、経済的インセンティブ そして彼らが関与しなければならないプロセス。私たちは持っています 基本設計を特定し、その長所について議論し、 制限;したがって、さらなる方向性があります。 これらの制限が緩和され、完全にスケーラブルな blockchain ソリューションに向けてさらに前進する可能性があります。POLKADOT: 異種マルチチェーン フレームワークのビジョン ドラフト 1 19 8.1.不足している資料と未解決の質問。プロトコルの実装が異なる場合、ネットワークの分岐が常に発生する可能性があります。そんな状態からの回復 例外的な状況については議論されなかった。ネットワークには必然的にゼロ以外のファイナライゼーション期間があると仮定すると、 リレーチェーンの分岐から回復することは大きな問題ではありませんが、慎重に統合する必要があります。 コンセンサスプロトコル。 保証金の没収と逆に報酬の提供は、 深くは研究されていません。現時点では報酬を想定しています 勝者総取りの原則に基づいて提供されます。これは当てはまらない場合があります。 漁師に最適な奨励モデルを提供する。短期間のコミットと公開のプロセスにより、多くの漁師が許可されるでしょう。 賞品をより公平に分配して賞品を受け取るため、 ただし、このプロセスにより、追加のレイテンシーが発生する可能性があります。 不正行為の発見。 8.2.謝辞。皆様、本当にありがとうございました これを漠然と理解するのに協力してくれた校正者 存在感のある形状。 特にピーター・ツァバン、ビョルン ワーグナー、ケン・カプラー、ロバート・ハーバマイヤー、ヴィタリック・ブテリン、レト・トリンクラー、ジャック・ピーターソン。 皆さんのおかげで アイデアや始まりに貢献した人々 その中で、マレク・コテヴィッチとアーロン・ブキャナンは特に言及に値する。そして、助けてくれた他の皆さんにも感謝します 途中で。すべての間違いは私自身のものです。 の初期研究を含むこの研究の一部 コンセンサスアルゴリズムの一部は英国によって資金提供されました。 Innovate UK プログラムに基づく政府。