Cosmos: Ein Netzwerk verteilter Ledger
Introduction
Le succès combiné de l'écosystème open source, le partage de fichiers décentralisé et les crypto-monnaies publiques ont a inspiré une compréhension que les protocoles Internet décentralisés peut être utilisé pour améliorer radicalement les infrastructures socio-économiques. Nous avons vu des applications blockchain spécialisées comme Bitcoin [1] (un crypto-monnaie), Zerocash [2] (une crypto-monnaie pour la confidentialité), et plateformes smart contract généralisées telles que Ethereum [3], avec d'innombrables applications distribuées pour l'Etherium Virtual Machine (EVM) telle qu'Augur (un marché de prédiction) et TheDAO [4] (un club d'investissement). Cependant, à ce jour, ces blockchain ont souffert de plusieurs d'inconvénients, y compris leur inefficacité énergétique flagrante, leur mauvaise ou des performances limitées et des mécanismes de gouvernance immatures. Propositions visant à augmenter le débit des transactions de Bitcoin, telles que Les témoins séparés [5] et BitcoinNG [6] sont à mise à l'échelle verticale. des solutions qui restent limitées par la capacité d’un seul organisme physique machine, afin de garantir la propriété d'une auditabilité complète. Le Lightning Network [7] peut aider à faire évoluer la transaction Bitcoin
volume en laissant certaines transactions hors du grand livre, et est bien adapté aux micropaiements et à la préservation de la confidentialité rails de paiement, mais peuvent ne pas convenir à des applications plus généralisées besoins de mise à l’échelle. Une solution idéale est celle qui permet à plusieurs blockchain parallèles de interopérer tout en conservant leurs propriétés de sécurité. Cela a s'est avéré difficile, voire impossible, avec proof-of-work. Fusionné l'exploitation minière, par exemple, permet au travail effectué de sécuriser un parent chaîne à réutiliser sur une chaîne enfant, mais les transactions doivent toujours être validé, dans l'ordre, par chaque nœud, et un blockchain fusionné est vulnérable aux attaques si la majorité du pouvoir hashing sur le le parent ne fusionne pas activement l'enfant. Une revue académique d'architectures de réseau blockchain alternatives sont fournies contexte supplémentaire, et nous fournissons des résumés d’autres propositions et leurs inconvénients dans les travaux connexes. Nous présentons ici Cosmos, une nouvelle architecture réseau blockchain qui répond à tous ces problèmes. Cosmos est un réseau de nombreux des blockchain indépendants, appelés zones. Les zones sont alimentées par Tendermint Core [8], qui fournit une haute performance, moteur de consensus cohérent et sécurisé de type PBFT, où des garanties strictes de responsabilité fork s'appliquent au comportement des éléments malveillants. acteurs. L'algorithme de consensus BFT de Tendermint Core est bien adapté pour la mise à l'échelle des proof-of-stake blockchain publics. La première zone sur Cosmos est appelée le hub Cosmos. Le Cosmos Hub est une crypto-monnaie proof-of-stake multi-actifs avec un simple mécanisme de gouvernance qui permet au réseau de s’adapter et mise à niveau. De plus, le hub Cosmos peut être étendu de connecter d’autres zones. Le hub et les zones du réseau Cosmos communiquent avec entre eux via un protocole de communication inter-blockchain (IBC), une sorte d'UDP ou TCP virtuel pour les blockchain. Les jetons peuvent être transféré d’une zone à une autre de manière sécurisée et rapidesans qu’il soit nécessaire d’échanger des liquidités entre zones. Au lieu de cela, tous les transferts inter-zones token passent par le Hub Cosmos, qui garde une trace du montant total de tokens détenu par chaque zone. Le Le hub isole chaque zone de la défaillance des autres zones. Parce que n'importe qui peut connecter une nouvelle zone au hub Cosmos, les zones le permettent pour une compatibilité future avec les nouvelles innovations blockchain. Dans cette section, nous décrivons le protocole de consensus Tendermint et l'interface utilisée pour créer des applications avec. Pour plus détails, voir l'annexe. Dans les algorithmes byzantins classiques de tolérance aux pannes (BFT), chaque nœud a le même poids. Dans Tendermint, les nœuds ont une valeur non négative quantité de pouvoir de vote et nœuds qui ont un vote positif puissance sont appelés validators. Les validateurs participent au protocole de consensus en diffusant des signatures cryptographiques, ou votes, pour se mettre d’accord sur le prochain bloc. Les pouvoirs de vote des validateurs sont déterminés dès la genèse, ou sont modifié de manière déterministe par le blockchain, en fonction du demande. Par exemple, dans une application proof-of-stake telle que le Cosmos Hub, le pouvoir de vote peut être déterminé par le montant de staking tokens cautionné en garantie. REMARQUE : Les fractions telles que ⅔ et ⅓ font référence à des fractions du total des votes. puissance, jamais le nombre total de validator, à moins que tous les validator ont un poids égal. >⅔ signifie « plus de ⅔ », ≥⅓ signifie « au moins ⅓”. Tendermint est un protocole de consensus BFT partiellement synchrone dérivé de l'algorithme de consensus DLS [20]. La menthe tendre est
remarquable par sa simplicité, ses performances et sa responsabilité fork. Le protocole nécessite un ensemble connu et fixe de validator, où chaque validator est identifié par sa clé publique. Les validateurs tentent de parvenir à un consensus sur un bloc à la fois, où un bloc est une liste de transactions. Le vote pour le consensus sur un bloc se déroule dans tours. Chaque tour a un leader, ou proposant, qui propose un bloc. Les validator votent ensuite, par étapes, pour savoir si pour accepter le blocage proposé ou passer au tour suivant. Le le proposant pour un tour est choisi de manière déterministe parmi les liste des validator, proportionnellement à leur pouvoir de vote. Les détails complets du protocole sont décrits ici. La sécurité de Tendermint découle de son utilisation optimale du byzantin tolérance aux pannes via un vote à super majorité (>⅔) et un verrouillage mécanisme. Ensemble, ils veillent à ce que : ≥⅓ du pouvoir de vote doit être byzantin pour provoquer une violation de la sécurité, où plus de deux valeurs sont engagées. si un ensemble de validator réussit à violer la sécurité, ou même tente de le faire, ils peuvent être identifiés par le protocole. Ceci comprend à la fois le vote pour les blocs conflictuels et la diffusion votes injustifiés. Malgré ses fortes garanties, Tendermint offre des performances. Dans des benchmarks de 64 nœuds répartis sur 7 des datacenters sur les 5 continents, sur des instances cloud commodités, Le consensus Tendermint peut traiter des milliers de transactions par deuxièmement, avec des latences de validation de l’ordre d’une à deux secondes. Notamment, la performance de plus d'un millier de transactions par la seconde est maintenue même dans des conditions adverses difficiles, avec validators plante ou diffuse des votes frauduleux. Voir la figure ci-dessous pour plus de détails.

Un avantage majeur de l’algorithme de consensus de Tendermint est la simplification sécurité client légère, ce qui en fait un candidat idéal pour les applications mobiles et cas d'utilisation de l'Internet des objets. Alors qu'un client léger Bitcoin doit se synchroniser chaînes d'en-têtes de bloc et trouver celle avec le plus de preuves de fonctionnent, les clients légers de Tendermint n'ont qu'à suivre les changements à l'ensemble validator, puis vérifiez les >⅔ PreCommits dans le dernier bloc pour déterminer le dernier état. Des épreuves client légères et succinctes permettent également d'inter-blockchain communications. Tendermint dispose de mesures de protection pour empêcher certains attaques notables, comme les doubles dépenses à longue portée sans enjeu et la censure. Ceux-ci sont discutés plus en détail dans l’annexe.L'algorithme de consensus Tendermint est implémenté dans un programme appelé Tendermint Core. Tendermint Core est un « moteur de consensus » indépendant des applications, capable de transformer n'importe quelle application de boîte noire déterministe dans une application répliquée de manière distribuée blockchain. Tendermint Core se connecte aux applications blockchain via l'interface Application Blockchain (ABCI) [17]. Ainsi, ABCI permet de programmer des applications blockchain dans n'importe quel langage, pas seulement le langage de programmation que le consensus moteur est écrit. De plus, ABCI permet de facilement échangez la couche de consensus de toute pile blockchain existante. Nous faisons une analogie avec la célèbre crypto-monnaie Bitcoin. Bitcoin est une crypto-monnaie blockchain où chaque nœud conserve une base de données entièrement auditée sur les résultats des transactions non dépensées (UTXO). Si on voulait créer un système de type Bitcoin au-dessus de ABCI, Tendermint Core serait responsable de Partage de blocs et de transactions entre nœuds Établir un ordre canonique/immuable des transactions (le blockchain) Pendant ce temps, l'application ABCI serait chargée de Maintenance de la base de données UTXO Validation des signatures cryptographiques des transactions Empêcher les transactions de dépenser des fonds inexistants Autoriser les clients à interroger la base de données UTXO Tendermint est capable de décomposer la conception blockchain en offrant une API très simple entre le processus de candidature et processus de consensus.
Einführung
Der kombinierte Erfolg des Open-Source-Ökosystems, dezentrales Yle-Sharing und öffentliche Kryptowährungen inspirierte ein Verständnis dafür, dass dezentralisierte Internetprotokolle können genutzt werden, um die sozioökonomische Infrastruktur radikal zu verbessern. Wir haben spezielle blockchain-Anwendungen gesehen wie Bitcoin [1] (a Kryptowährung), Zerocash [2] (eine Kryptowährung aus Datenschutzgründen) und verallgemeinerte smart contract-Plattformen wie Ethereum [3], mit unzählige verteilte Anwendungen für das Etherium Virtual Maschine (EVM) wie Augur (ein Prognosemarkt) und TheDAO [4] (ein Investmentclub). Bisher haben diese blockchains jedoch unter einer Reihe von Problemen gelitten von Nachteilen, einschließlich ihrer groben Energieineffizienz, schlechten oder eingeschränkte Leistung und unausgereifte Governance-Mechanismen. Vorschläge zur Skalierung des Transaktionsdurchsatzes von Bitcoin, wie z Segregated-Witness [5] und BitcoinNG [6] sind vertikale Skalierung Lösungen, die durch die Kapazität einer einzelnen physischen Einheit begrenzt bleiben Maschine, um die Eigenschaft der vollständigen Prüfbarkeit sicherzustellen. Das Lightning Network [7] kann dabei helfen, die Transaktion Bitcoin zu skalieren
Volumen, indem einige Transaktionen vollständig aus dem Hauptbuch entfernt werden, und eignet sich gut für Mikrozahlungen und zur Wahrung der Privatsphäre Zahlungsschienen, sind jedoch möglicherweise nicht für allgemeinere Zwecke geeignet Skalierungsanforderungen. Eine ideale Lösung ist eine, die mehrere parallele blockchains ermöglicht unter Beibehaltung ihrer Sicherheitseigenschaften interagieren. Das hat erwies sich mit proof-of-work als schwierig, wenn nicht unmöglich. Zusammengeführt Der Bergbau ermöglicht beispielsweise die Arbeit, die zur Sicherung eines Elternteils geleistet wird Die Kette kann in einer untergeordneten Kette wiederverwendet werden, die Transaktionen müssen jedoch weiterhin erfolgen der Reihe nach von jedem Knoten validiert und ein zusammengeführtes blockchain ist anfällig für Angriffe, wenn eine Mehrheit der hashing-Macht auf dem Das übergeordnete Element führt kein aktives Merge-Mining für das untergeordnete Element durch. Eine wissenschaftliche Rezension alternativer blockchain Netzwerkarchitekturen vorgesehen Wir bieten zusätzlichen Kontext und bieten Zusammenfassungen anderer Vorschläge und ihre Nachteile in der verwandten Arbeit. Hier präsentieren wir Cosmos, eine neuartige blockchain Netzwerkarchitektur das all diese Probleme angeht. Cosmos ist ein Netzwerk aus vielen unabhängige blockchains, sogenannte Zonen. Die Zonen werden mit Strom versorgt Tendermint Core [8], der eine leistungsstarke, konsistente, sichere PBFT-ähnliche Konsens-Engine, bei der strenge Garantien zur Rechenschaftspflicht über das Verhalten böswilliger Personen gelten Schauspieler. Der Konsensalgorithmus BFT von Tendermint Core ist gut geeignet zur Skalierung öffentlicher proof-of-stake blockchains. Die erste Zone auf Cosmos wird Cosmos Hub genannt. Der Cosmos Hub ist eine Multi-Asset-Kryptowährung mit einem einfachen Governance-Mechanismus, der es dem Netzwerk ermöglicht, sich anzupassen und Upgrade. Darüber hinaus kann der Cosmos Hub um erweitert werden andere Zonen verbinden. Der Hub und die Zonen des Netzwerks Cosmos kommunizieren mit untereinander über ein Inter-blockchain-Kommunikationsprotokoll (IBC), eine Art virtuelles UDP oder TCP für blockchains. Token können sein sicher und schnell von einer Zone in eine andere übertragen werdenohne dass Austauschliquidität zwischen Zonen erforderlich ist. Stattdessen Alle zonenübergreifenden token-Übertragungen erfolgen über den Cosmos-Hub, der Verfolgt die Gesamtzahl der von jeder Zone gehaltenen tokens. Die Der Hub isoliert jede Zone vom Ausfall anderer Zonen. Weil Jeder kann eine neue Zone mit dem Cosmos Hub verbinden, sofern die Zonen dies zulassen für Zukunftskompatibilität mit neuen blockchain Innovationen. In diesem Abschnitt beschreiben wir das Tendermint-Konsensprotokoll und die Schnittstelle, die zum Erstellen von Anwendungen damit verwendet wird. Für mehr Einzelheiten finden Sie im Anhang. In klassischen byzantinischen fehlertoleranten (BFT)-Algorithmen ist jeder Knoten hat das gleiche Gewicht. In Tendermint haben Knoten ein Nicht-Negativ Menge an Stimmrechten und Knoten, die eine positive Abstimmung haben Leistung werden validators genannt. Validatoren beteiligen sich an der Konsensprotokoll durch Übertragung kryptografischer Signaturen oder Abstimmungen, um sich auf den nächsten Block zu einigen. Die Stimmrechte der Validatoren werden bei der Entstehung festgelegt oder sind es deterministisch durch den blockchain geändert, abhängig von der Anwendung. Beispielsweise in einer proof-of-stake-Anwendung wie der Cosmos Hub, die Stimmrechte können durch den bestimmt werden Betrag von staking tokens als Sicherheit verpfändet. HINWEIS: Brüche wie ⅔ und ⅓ beziehen sich auf Bruchteile der Gesamtstimmenzahl Leistung, niemals die Gesamtzahl der validators, es sei denn, alle validators gleiches Gewicht haben. >⅔ bedeutet „mehr als ⅔“, ≥⅓ bedeutet „mindestens ⅓”. Tendermint ist ein teilweise synchrones BFT-Konsensprotokoll abgeleitet vom DLS-Konsensalgorithmus [20]. Tendermint ist
zeichnet sich durch seine Einfachheit, Leistung und Fork-Verantwortlichkeit aus. Das Protokoll erfordert einen yxed bekannten Satz von validators, wobei jeder validator wird durch ihren öffentlichen Schlüssel identifiziert. Validatoren versuchen es Kommen Sie zu einem Konsens über jeweils einen Block, wobei ein Block eine Liste ist von Transaktionen. Die Abstimmung über einen Konsens über einen Block geht weiter Runden. Jede Runde hat einen Rundenleiter oder Antragsteller, der schlägt einen Block vor. Die validators stimmen dann schrittweise darüber ab, ob den vorgeschlagenen Block anzunehmen oder in die nächste Runde zu gehen. Die Der Antragsteller für eine Runde wird deterministisch aus der Reihenfolge ausgewählt Liste der validators, im Verhältnis zu ihrer Stimmstärke. Die vollständigen Details des Protokolls werden hier beschrieben. Die Sicherheit von Tendermint beruht auf der Verwendung optimaler Byzantiner Fehlertoleranz durch Abstimmung mit Supermehrheit (>⅔) und eine Sperrung Mechanismus. Gemeinsam stellen sie sicher, dass: ≥⅓ Das Stimmrecht muss byzantinisch sein, um eine Verletzung von zu verursachen Sicherheit, bei der mehr als zwei Werte verankert sind. ob es einem Satz von validators jemals gelingt, die Sicherheit zu verletzen, oder sogar Versuche dies zu tun, können anhand des Protokolls identifiziert werden. Dies umfasst sowohl die Stimmabgabe für Konziktionsblöcke als auch die Rundfunkübertragung ungerechtfertigte Stimmen. Trotz seiner starken Garantien bietet Tendermint Außergewöhnliches Leistung. In Benchmarks von 64 Knoten verteilt auf 7 Rechenzentren auf 5 Kontinenten, auf Commodity-Cloud-Instanzen, Der Tendermint-Konsens kann Tausende von Transaktionen pro verarbeiten Zweitens mit Commit-Latenzen in der Größenordnung von ein bis zwei Sekunden. Bemerkenswert ist die Leistung von weit über tausend Transaktionen pro Der zweite bleibt auch unter harten, konkurrenzfähigen Bedingungen erhalten validators stürzt ab oder sendet böswillig manipulierte Stimmen. Siehe Einzelheiten finden Sie in der Abbildung unten.

Ein großer Vorteil des Konsensalgorithmus von Tendermint ist die Vereinfachung geringe Client-Sicherheit, was es zu einem idealen Kandidaten für mobile und mobile Geräte macht Anwendungsfälle für das Internet der Dinge. Während ein Bitcoin Light-Client synchronisiert werden muss Ketten von Blockheadern und ynd diejenige mit den meisten Beweisen für Arbeit, Tendermint Light-Kunden müssen nur mit den Veränderungen Schritt halten zum Satz validator hinzufügen und dann die >⅔ PreCommits im festlegen Latest-Block, um den neuesten Status zu ermitteln. Prägnante, leichte Client-Proofs ermöglichen auch Inter-blockchain Kommunikation. Tendermint verfügt über Schutzmaßnahmen zur Vorbeugung bestimmter Bemerkenswerte Angriffe, wie z. B. Double Spends über große Entfernungen, bei denen nichts auf dem Spiel steht und Zensur. Diese werden im Anhang ausführlicher besprochen.Der Tendermint-Konsensalgorithmus ist in a implementiert Programm namens Tendermint Core. Tendermint Core ist ein anwendungsunabhängige „Konsens-Engine“, die jeden verwandeln kann deterministische Blackbox-Anwendung in eine verteilt replizierte blockchain. Tendermint Core stellt eine Verbindung zu blockchain-Anwendungen her über die Application Blockchain Interface (ABCI) [17]. Also ABCI ermöglicht die Programmierung von blockchain-Anwendungen in beliebiger Reihenfolge Sprache, nicht nur die Programmiersprache, die der Konsens ist Engine ist eingeschrieben. Darüber hinaus ermöglicht ABCI eine einfache Tauschen Sie die Konsensschicht eines vorhandenen blockchain-Stacks aus. Wir ziehen eine Analogie zur bekannten Kryptowährung Bitcoin. Bitcoin ist eine Kryptowährung blockchain, die jeder Knoten verwaltet eine vollständig geprüfte Datenbank für nicht ausgegebene Transaktionsausgaben (UTXO). Wenn man wollte ein Bitcoin-ähnliches System auf ABCI erstellen, Tendermint Core wäre dafür verantwortlich Gemeinsame Nutzung von Blöcken und Transaktionen zwischen Knoten Festlegung einer kanonischen/unveränderlichen Reihenfolge von Transaktionen (die blockchain) In der Zwischenzeit wäre die Anwendung ABCI zuständig Pflege der Datenbank UTXO Validierung kryptografischer Signaturen von Transaktionen Verhindern, dass bei Transaktionen nicht vorhandene Mittel ausgegeben werden Ermöglichen, dass Clients die Datenbank UTXO abfragen Tendermint ist in der Lage, das Design blockchain zu zerlegen Bietet eine sehr einfache API zwischen dem Bewerbungsprozess und Konsensprozess.
Cosmos Architecture
Cosmos est un réseau de blockchain parallèles indépendants qui sont chacun alimenté par des algorithmes de consensus classiques BFT comme Menthe tendre 1. La première blockchain de ce réseau sera le Cosmos Hub. Le Cosmos Hub se connecte à de nombreux autres blockchain (ou zones) via un nouveau protocole de communication inter-blockchain. Le hub Cosmos suit de nombreux types token et conserve une trace du total nombre de token dans chaque zone connectée. Les jetons peuvent être transféré d’une zone à une autre de manière sécurisée et rapide sans avoir besoin d'un échange liquide entre zones, car tout les transferts de pièces inter-zones passent par le Hub Cosmos. Cette architecture résout de nombreux problèmes que l'espace blockchain auxquels sont confrontés aujourd'hui, tels que l'interopérabilité des applications, l'évolutivité et évolutivité transparente. Par exemple, les zones dérivées de Bitcoind, Go-Ethereum, CryptoNote, ZCash ou tout autre système blockchain peut être branché sur le hub Cosmos. Ces zones permettent à Cosmos de évoluer à l’infini pour répondre à la demande mondiale de transactions. Les zones sont également un excellent outil pour un échange distribué, qui sera pris en charge en tant que eh bien. Cosmos n'est pas qu'un seul grand livre distribué, et le Cosmos Hub n’est pas un jardin clos ni le centre de son univers. Nous sommes concevoir un protocole pour un réseau ouvert de registres distribués qui peut servir de nouvelle base aux futurs systèmes financiers, basé sur les principes de la cryptographie, d'une économie saine et du consensus théorie, transparence et responsabilité. Le Cosmos Hub est le premier blockchain public du Cosmos Réseau, alimenté par l'algorithme de consensus BFT de Tendermint. Le Le projet open source Tendermint est né en 2014 pour répondre au la vitesse, l'évolutivité et les problèmes environnementaux de l'algorithme de consensus de preuve de travail de Bitcoin. En utilisant et en améliorant des solutions éprouvées
BFT algorithmes développés au MIT en 1988 [20], le Tendermint L'équipe a été la première à démontrer conceptuellement un proof-of-stake crypto-monnaie qui résout le problème de l'enjeu nul subi par les crypto-monnaies proof-of-stake de première génération telles que comme NXT et BitShares1.0. Aujourd'hui, pratiquement tous les portefeuilles mobiles Bitcoin utilisent des serveurs de confiance pour fournissez-leur la vérification des transactions. En effet, la preuve de travail nécessite d'attendre de nombreuses confirmations avant qu'un la transaction peut être considérée comme irréversiblement engagée. Des attaques à double dépense ont déjà été démontrées sur des services comme CoinBase. Contrairement aux autres systèmes de consensus blockchain, Tendermint propose vérification instantanée et prouvée des paiements des clients mobiles. Puisque le Tendermint est conçu pour ne jamais bifurquer du tout, les appareils mobiles les portefeuilles peuvent recevoir une confirmation de transaction instantanée, ce qui rend les paiements sans confiance et pratiques sont une réalité sur les smartphones. Ceci a des implications importantes pour les applications de l'Internet des objets, car eh bien. Les validateurs de Cosmos ont un rôle similaire à celui des mineurs de Bitcoin, mais utilisez plutôt des signatures cryptographiques pour voter. Les validateurs sont des machines sécurisées et dédiées qui sont responsables de la validation blocs. Les non-validator peuvent déléguer leurs staking token (appelés "atomes") à n'importe quel validator pour gagner une partie des frais forfaitaires et des atomes récompenses, mais ils encourent le risque d'être punis (coupés) si le le délégué validator est piraté ou viole le protocole. Le éprouvé les garanties de sécurité du consensus Tendermint BFT et les garanties dépôt des parties prenantes – validators et délégants – fournir sécurité prouvable et quantifiable pour les nœuds et les clients légers. Les grands livres publics distribués devraient avoir une constitution et un système de gouvernance. Bitcoin s'appuie sur la Fondation Bitcoin etl'exploitation minière pour coordonner les mises à niveau, mais c'est un processus lent. Ethereum s'est divisé en ETH et ETC après avoir difficilement résolu Le DAO hack, en grande partie parce qu'il n'y avait pas de contrat social préalable ni aucun mécanisme pour prendre de telles décisions. Les validateurs et les délégués du hub Cosmos peuvent voter sur propositions qui peuvent modifier les paramètres prédéfinis du système automatiquement (comme la limite de gaz du bloc), coordonner les mises à niveau, comme ainsi que voter sur les amendements à la constitution lisible par l'homme qui régissent les politiques du Hub Cosmos. La Constitution permet une cohésion entre les parties prenantes sur des questions telles que le vol et les bugs (tels que l'incident TheDAO), permettant une intervention plus rapide et résolution plus propre. Chaque zone peut également avoir sa propre constitution et sa propre gouvernance mécanisme également. Par exemple, le hub Cosmos pourrait avoir un constitution qui impose l'immuabilité au Hub (pas de rollbacks, sauf pour les bogues de l'implémentation du nœud Hub Cosmos), tandis que chaque zone peut définir ses propres politiques concernant les restaurations. En permettant l'interopérabilité entre les différentes zones politiques, le Le réseau Cosmos offre à ses utilisateurs une liberté et un potentiel ultimes pour expérimentation sans autorisation. Nous décrivons ici un nouveau modèle de décentralisation et d'évolutivité. Cosmos est un réseau de nombreux blockchain alimentés par Menthe tendre. Alors que les propositions existantes visent à créer un « blockchain » avec l'ordre global total des transactions, Cosmos permet à plusieurs blockchain de s'exécuter simultanément les uns avec les autres tout en conservant l'interopérabilité. A la base, le Hub Cosmos gère de nombreux blockchains appelés « zones » (parfois appelés « fragments », en référence à la technique de mise à l’échelle de la base de données connue sous le nom de « sharding »).
Un flux constant de validations de blocs récentes provenant de zones publiées sur le Hub permet au Hub de suivre l'état de chaque zone. De même, chaque zone suit l'état du Hub (mais les zones ne se suivent pas, sauf indirectement à travers le Moyeu). Des paquets d'informations sont ensuite communiqués à partir d'un zone à une autre en affichant des preuves Merkle comme preuve que le les informations ont été envoyées et reçues. Ce mécanisme est appelé communication inter-blockchain, ou IBC pour faire court. N'importe laquelle des zones peut elle-même être des hubs pour former un graphe acyclique, mais par souci de clarté, nous décrirons uniquement le simple conyguration où il n'y a qu'un seul hub et de nombreux non-hub zones. Le Cosmos Hub est un blockchain qui héberge un multi-actifs grand livre distribué, où les token peuvent être détenus par des utilisateurs individuels ou par zones elles-mêmes. Ces token peuvent être déplacés d'une zone à un autre dans un paquet spécial IBC appelé « paquet de pièces ». Le moyeu est chargé de préserver l’invariance globale du total montant de chaque token dans les zones. IBC paquet de pièces les transactions doivent être validées par l'expéditeur, le hub et le destinataire blockchains.Étant donné que le hub Cosmos agit comme le grand livre central pour l'ensemble système, la sécurité du Hub est d’une importance primordiale. Tandis que chaque zone peut être un Tendermint blockchain sécurisé par seulement 4 (ou même moins si le consensus BFT n'est pas nécessaire), le Hub doit être sécurisé par un ensemble globalement décentralisé de validator qui peut résister aux scénarios d'attaque les plus sévères, tels qu'un partition du réseau continental ou attaque parrainée par un État-nation. Une zone Cosmos est une zone blockchain indépendante qui échange IBC messages avec le Hub. Du point de vue du Hub, une zone est un compte multi-signatures à adhésion dynamique multi-actifs qui peut envoyer et recevoir des token en utilisant des paquets IBC. Comme un compte de crypto-monnaie, une zone ne peut pas transférer plus de tokens que il l'a fait, mais peut recevoir des token d'autres personnes qui les possèdent. Une zone peut être désigné comme une « source » d'un ou plusieurs types token, lui accordant le pouvoir d'augmenter cet approvisionnement token. Les atomes du Hub Cosmos peuvent être jalonnés par les validator d'une zone connecté au Hub. Tandis que les attaques à double dépense sur ces zones entraînerait la réduction des atomes avec la responsabilité fork de Tendermint, une zone où >⅔ du pouvoir de vote sont Les Byzantins peuvent commettre un état invalide. Le hub Cosmos ne vérifier ou exécuter des transactions validées sur d'autres zones, il est donc la responsabilité des utilisateurs d’envoyer des token aux zones en lesquelles ils ont confiance. À l'avenir, le système de gouvernance du Hub Cosmos pourrait réussir des propositions d'amélioration qui tiennent compte des défaillances de zone. Pour Par exemple, les transferts sortants token depuis certaines (ou toutes) zones peuvent être étranglé pour permettre la coupure de circuit d'urgence des zones (un arrêt temporaire des transferts token) lorsqu'une attaque est détectée. Voyons maintenant comment le Hub et les zones communiquent entre eux. autre. Par exemple, s'il y a trois blockchain, "Zone1", "Zone2",

et « Hub », et nous souhaitons que « Zone1 » produise un paquet destiné pour « Zone2 » en passant par « Hub ». Pour déplacer un paquet d'un blockchain à un autre, un BAT est affiché sur la chaîne de réception. La preuve indique que la chaîne d'envoi a publié un paquet pour le destination présumée. Pour que la chaîne de réception puisse vérifier cette preuve, il doit être capable de suivre les en-têtes de bloc de l’expéditeur. Ceci Le mécanisme est similaire à celui utilisé par les sidechains, ce qui nécessite deux chaînes en interaction pour prendre conscience l'une de l'autre via un flux bidirectionnel de datagrammes de preuve d'existence (transactions). Le protocole IBC peut naturellement être défini à l'aide de deux types de transactions : une transaction IBCBlockCommitTx , qui permet un blockchain pour prouver à tout observateur de son bloc le plus récent-hash, et une transaction IBCPacketTx , qui permet à un blockchain de prouver à tout observateur que le paquet donné a bien été publié par l’application de l’expéditeur, via une preuve Merkle au récent bloc-hash. En divisant la mécanique IBC en deux transactions distinctes, nous permettre au mécanisme de marché des frais natifs de la chaîne de réception de déterminer quels paquets sont validés (c'est-à-dire reconnus), tandis que permettant une liberté totale sur la chaîne d'envoi quant à la manière dont de nombreux paquets sortants sont autorisés. Dans l'exemple ci-dessus, afin de mettre à jour le bloc-hash de "Zone1" sur « Hub » (ou de « Hub » sur « Zone2 »), un IBCBlockCommitTxla transaction doit être publiée sur « Hub » avec le bloc-hash de « Zone1 » (ou sur « Zone2 » avec le bloc-hash de « Hub »). Voir IBCBlockCommitTx et IBCPacketTx pour plus d'informations. sur les deux types de transactions IBC. De la même manière que Bitcoin est plus sécurisé en étant distribué, grand livre répliqué en masse, nous pouvons rendre les échanges moins vulnérables aux hacks externes et internes en l'exécutant sur le blockchain. Nous appelez cela un échange distribué. Ce que la communauté des cryptomonnaies appelle un système décentralisé Aujourd’hui, les échanges sont basés sur ce que l’on appelle des transactions « atomiques crosschain » (AXC). Avec une transaction AXC, deux utilisateurs sur deux chaînes différentes peuvent effectuer deux transactions de transfert qui sont engagés ensemble sur les deux registres, ou aucun (c'est-à-dire atomiquement). Par exemple, deux utilisateurs peuvent échanger des bitcoins contre de l'éther (ou deux token sur deux grands livres différents) en utilisant les transactions AXC, même si Bitcoin et Ethereum ne sont pas connectés l'un à l'autre autre. L'avantage d'exécuter un échange sur les transactions AXC est qu'aucun utilisateur n'a besoin de se faire confiance ni de se faire confiance service. L'inconvénient est que les deux parties doivent être en ligne pour le commerce ait lieu. Un autre type d'échange décentralisé est un échange répliqué en masse. échange distribué qui fonctionne tout seul blockchain. Utilisateurs sur ce type d'échange peut soumettre un ordre limité et transformer son ordinateur éteint, et la transaction peut s'exécuter sans que l'utilisateur soit en ligne. Le blockchain correspond et termine la transaction au nom du commerçant.
Cosmos Architektur
Cosmos ist ein Netzwerk unabhängiger paralleler blockchains Jeder basiert auf klassischen BFT-Konsensalgorithmen wie Tendermint 1. Der erste blockchain in diesem Netzwerk wird der Cosmos Hub sein. Die Cosmos Der Hub stellt über einen eine Verbindung zu vielen anderen blockchains (oder Zonen) her neuartiges inter-blockchain Kommunikationsprotokoll. Der Cosmos-Hub verfolgt zahlreiche token-Typen und zeichnet die Gesamtzahl auf Anzahl der tokens in jeder verbundenen Zone. Token können sein sicher und schnell von einer Zone in eine andere übertragen werden ohne dass ein Flüssigkeitsaustausch zwischen den Zonen erforderlich ist, denn alle Münztransfers zwischen Zonen erfolgen über den Hub Cosmos. Diese Architektur löst viele Probleme, die den Raum blockchain betreffen Herausforderungen wie Anwendungsinteroperabilität, Skalierbarkeit usw nahtlose Aufrüstbarkeit. Beispielsweise abgeleitete Zonen von Bitcoind, Go-Ethereum, CryptoNote, ZCash oder jedes andere blockchain-System kann an den Hub Cosmos angeschlossen werden. Diese Zonen ermöglichen Cosmos Skalieren Sie unbegrenzt, um der globalen Transaktionsnachfrage gerecht zu werden. Zonen gibt es auch Ein tolles Jahr für einen verteilten Austausch, der unterstützt wird Naja. Cosmos ist nicht nur ein einzelnes verteiltes Hauptbuch, und der Cosmos Hub ist kein ummauerter Garten oder das Zentrum seines Universums. Wir sind Entwurf eines Protokolls für ein offenes Netzwerk verteilter Hauptbücher das als neue Grundlage für zukünftige Finanzsysteme dienen kann, basierend auf Prinzipien der Kryptographie, solider Ökonomie und Konsens Theorie, Transparenz und Verantwortlichkeit. Der Cosmos Hub ist der erste öffentliche blockchain im Cosmos Netzwerk, unterstützt durch den Konsensalgorithmus BFT von Tendermint. Die Das Open-Source-Projekt Tendermint wurde 2014 ins Leben gerufen, um das Problem anzugehen Geschwindigkeit, Skalierbarkeit und Umweltprobleme des Proof-of-Work-Konsensalgorithmus von Bitcoin. Indem wir Bewährtes nutzen und verbessern
BFT Algorithmen, die 1988 am MIT entwickelt wurden [20], der Tendermint Das Team war das erste, das konzeptionell ein proof-of-stake demonstrierte. Kryptowährung, die das Nichts-auf-dem-Spiel-Problem angeht leiden unter Kryptowährungen der proof-of-stake der ersten Generation, z als NXT und BitShares1.0. Heutzutage nutzen praktisch alle Bitcoin mobilen Geldbörsen vertrauenswürdige Server Stellen Sie ihnen eine Transaktionsbestätigung zur Verfügung. Dies liegt daran, dass beim Proof-of-Work viele Bestätigungen abgewartet werden müssen, bevor ein Die Transaktion kann als unwiderruflich begangen betrachtet werden. Doublespend-Angriffe wurden bereits auf Dienste wie demonstriert CoinBase. Im Gegensatz zu anderen blockchain-Konsenssystemen bietet Tendermint Sofortige und nachweislich sichere Zahlungsüberprüfung für mobile Clients. Da der Tendermint so konzipiert ist, dass er sich überhaupt nicht verzweigt, ist er mobil Wallets können eine sofortige Transaktionsbestätigung erhalten, was macht Vertrauenslose und praktische Zahlungen sind auf Smartphones Realität. Dies hat erhebliche Auswirkungen auf Anwendungen im Internet der Dinge Naja. Validatoren in Cosmos haben eine ähnliche Rolle wie Bitcoin Miner, aber Verwenden Sie stattdessen kryptografische Signaturen zum Abstimmen. Validatoren sind sichere, dedizierte Maschinen, die für das Commit verantwortlich sind Blöcke. Nicht-validators können ihre staking tokens delegieren (genannt „Atome“) an ein beliebiges validator, um einen Teil der Blockgebühren und Atome zu verdienen Belohnungen, aber sie laufen Gefahr, bestraft (gekürzt) zu werden, wenn die Der Delegierte validator wird gehackt oder verstößt gegen das Protokoll. Das Bewährte Sicherheitsgarantien des Tendermint BFT-Konsenses und der Sicherheiten Hinterlegung von Stakeholdern – validators und Delegierten – bereitstellen nachweisbare, quantifizierbare Sicherheit für Knoten und Light Clients. Verteilte öffentliche Hauptbücher sollten eine Satzung haben und a Governance-System. Bitcoin stützt sich auf die Stiftung Bitcoin undMining, um Upgrades zu koordinieren, aber das ist ein langsamer Prozess. Ethereum spaltete sich nach Hard-Forking in ETH und ETC auf Der DAO-Hack, hauptsächlich weil es keinen vorherigen Gesellschaftsvertrag gab noch einen Mechanismus, um solche Entscheidungen zu treffen. Validatoren und Delegatoren im Hub Cosmos können darüber abstimmen Vorschläge, die voreingestellte Parameter des Systems ändern können automatisch (z. B. Blockgasbegrenzung), Upgrades koordinieren, z sowie über Änderungen der für Menschen lesbaren Verfassung abzustimmen die die Richtlinien des Cosmos-Hubs regeln. Die Verfassung sorgt für den Zusammenhalt der Beteiligten bei Themen wie: Diebstahl und Bugs (z. B. der Vorfall TheDAO), was eine schnellere und schnellere Lösung ermöglicht sauberere Auflösung. Jede Zone kann auch ihre eigene Verfassung und Verwaltung haben Mechanismus auch. Beispielsweise könnte der Hub Cosmos einen haben Verfassung, die Unveränderlichkeit am Hub durchsetzt (keine Rollbacks, außer für Fehler der Hub-Knoten-Implementierung Cosmos), während Jede Zone kann ihre eigenen Richtlinien für Rollbacks festlegen. Durch die Ermöglichung der Interoperabilität zwischen verschiedenen Richtlinienzonen wird die Das Cosmos-Netzwerk bietet seinen Benutzern ultimative Freiheit und Potenzial für erlaubnisloses Experimentieren. Hier beschreiben wir ein neuartiges Modell der Dezentralisierung und Skalierbarkeit. Cosmos ist ein Netzwerk aus vielen blockchains, die von betrieben werden Zarte Minze. Während bestehende Vorschläge darauf abzielen, ein „Single“ zu schaffen blockchain“ mit der gesamten globalen Transaktionsreihenfolge, Cosmos ermöglicht die gleichzeitige Ausführung vieler blockchains unter Beibehaltung der Interoperabilität. Auf der Basis verwaltet der Cosmos Hub viele unabhängige blockchains werden als „Zonen“ (manchmal auch als „Shards“ bezeichnet) bezeichnet Verweis auf die als „Sharding“ bekannte Datenbankskalierungstechnik.
Ein ständiger Strom aktueller Block-Commits aus Zonen, auf denen gepostet wurde Der Hub ermöglicht es dem Hub, über den Status jeder Zone auf dem Laufenden zu bleiben. Ebenso hält jede Zone den Status des Hubs auf dem Laufenden (aber Zonen Bleiben Sie nicht miteinander auf dem Laufenden, außer indirekt über die Hub). Von einem werden dann Informationspakete übermittelt Zone zu einer anderen, indem Merkle-Beweise als Beweis dafür veröffentlicht werden Informationen wurden gesendet und empfangen. Dieser Mechanismus wird aufgerufen Inter-blockchain-Kommunikation, kurz IBC. Jede der Zonen kann selbst Knotenpunkte sein, um einen azyklischen Graphen zu bilden. aber der Übersichtlichkeit halber werden wir nur das Einfache beschreiben Konyguration, in der es nur einen Hub und viele Nicht-Hubs gibt Zonen. Der Cosmos Hub ist ein blockchain, der ein Multi-Asset hostet Distributed Ledger, in dem tokens von einzelnen Benutzern gehalten werden können oder nach Zonen selbst. Diese tokens können aus einer Zone verschoben werden an einen anderen in einem speziellen IBC-Paket namens „Münzpaket“. Der Hub ist verantwortlich für die Erhaltung der globalen Invarianz der Gesamtheit Menge jedes token in den Zonen. IBC Münzpaket Transaktionen müssen vom Sender, Hub und Empfänger festgeschrieben werden blockchains.Da der Cosmos Hub als zentrales Hauptbuch für das Ganze fungiert System ist die Sicherheit des Hubs von größter Bedeutung. Während Jede Zone kann ein Tendermint blockchain sein, der durch as gesichert ist nur 4 (oder sogar weniger, wenn kein Konsens erforderlich ist), der Hub muss durch einen global dezentralen Satz von validators gesichert werden hält den schwersten Angriffsszenarien stand, wie z Aufteilung des kontinentalen Netzwerks oder ein vom Nationalstaat geförderter Angriff. Eine Cosmos-Zone ist eine unabhängige blockchain, die IBC austauscht. Nachrichten mit dem Hub. Aus der Sicht des Hubs ist eine Zone eine Multi-Asset-Konto mit dynamischer Mitgliedschaft und mehreren Signaturen kann tokens mit IBC Paketen senden und empfangen. Wie ein Kryptowährungskonto kann eine Zone nicht mehr tokens übertragen als Das hat es, kann aber tokens von anderen empfangen, die sie haben. Eine Zone kann als „Quelle“ eines oder mehrerer token-Typen bezeichnet werden, wodurch ihm die Macht verliehen wird, die token-Versorgung anzukurbeln. Atome des Cosmos Hubs können durch validators einer Zone abgesteckt werden mit dem Hub verbunden. Während Sie Angriffe auf diese Zonen doppelt ausgeben würde mit der Rechenschaftspflicht von Tendermint zu einer Zerschneidung von Atomen führen, einem Bereich, in dem mehr als 2/3 der Stimmrechte liegen Byzanz kann einen ungültigen Zustand begehen. Der Cosmos Hub funktioniert nicht Überprüfen oder Ausführen von Transaktionen, die in anderen Zonen vorgenommen wurden Es liegt in der Verantwortung der Benutzer, tokens an Zonen zu senden, denen sie vertrauen. In Zukunft könnte das Governance-System des Hubs Cosmos den Hub überholen Verbesserungsvorschläge, die Zonenausfälle berücksichtigen. Für Beispielsweise können ausgehende token-Übertragungen aus einigen (oder allen) Zonen erfolgen gedrosselt werden, um eine Notabschaltung von Zonen zu ermöglichen (ein vorübergehender Stopp von token Übertragungen), wenn ein Angriff erkannt wird. Jetzt schauen wir uns an, wie der Hub und die Zonen miteinander kommunizieren andere. Wenn es beispielsweise drei blockchains gibt, „Zone1“, „Zone2“,

und „Hub“, und wir möchten, dass „Zone1“ ein bestimmtes Paket produziert für „Zone2“ über „Hub“. Um ein Paket von einem zu verschieben blockchain an einen anderen gesendet wird, wird ein Nachweis in der Empfangskette veröffentlicht. Der Beweis besagt, dass die Sendekette ein Paket für veröffentlicht hat angebliches Ziel. Damit die Empfangskette diesen Beweis überprüfen kann, ist es muss in der Lage sein, mit den Blockheadern des Absenders Schritt zu halten. Dies Der Mechanismus ähnelt dem von Seitenketten verwendeten, was erfordert zwei interagierende Ketten, um sich gegenseitig über a bewusst zu sein bidirektionaler Strom von Existenznachweis-Datagrammen (Transaktionen). Das IBC-Protokoll kann natürlich mithilfe von zwei Arten definiert werden Transaktionen: eine IBCBlockCommitTx -Transaktion, die eine ermöglicht blockchain, um es jedem Beobachter seines letzten Blocks zu beweisen-hash, und eine IBCPacketTx-Transaktion, die es einem blockchain ermöglicht Beweisen Sie jedem Beobachter, dass das angegebene Paket tatsächlich veröffentlicht wurde durch die Bewerbung des Absenders, über einen Merkle-Beweis bis zum letzten block-hash. Durch die Aufteilung der IBC-Mechanik in zwei separate Transaktionen können wir Ermöglichen Sie dies dem nativen Gebührenmarktmechanismus der Empfangskette Bestimmen Sie, welche Pakete festgeschrieben (d. h. bestätigt) werden Dies ermöglicht völlige Freiheit in der Versandkette hinsichtlich der Art und Weise Viele ausgehende Pakete sind erlaubt. Um im obigen Beispiel den Block hash von „Zone1“ zu aktualisieren auf „Hub“ (oder von „Hub“ auf „Zone2“), ein IBCBlockCommitTxDie Transaktion muss auf „Hub“ mit dem Block-hash von gepostet werden „Zone1“ (oder auf „Zone2“ mit dem Block-hash von „Hub“). Weitere Informationen finden Sie unter IBCBlockCommitTx und IBCPacketTx auf den beiden Transaktionstypen IBC. Genauso wie Bitcoin durch die Verteilung sicherer ist, Mit einem massenreplizierten Ledger können wir den Austausch weniger anfällig machen externe und interne Hacks, indem Sie es auf dem blockchain ausführen. Wir Nennen Sie dies einen verteilten Austausch. Was die Kryptowährungs-Community als dezentral bezeichnet Börsen basieren heute auf sogenannten „Atomic Crosschain“ (AXC)-Transaktionen. Bei einer AXC-Transaktion sind zwei Benutzer aktiv Zwei verschiedene Ketten können zwei Übertragungstransaktionen durchführen in beiden Hauptbüchern zusammen oder gar nicht festgeschrieben (d. h. atomar). Beispielsweise können zwei Benutzer Bitcoins gegen Ether (bzw zwei beliebige tokens in zwei verschiedenen Hauptbüchern) unter Verwendung von AXC-Transaktionen, obwohl Bitcoin und Ethereum nicht miteinander verbunden sind andere. Der Vorteil des Betreibens einer Börse für AXC-Transaktionen ist dass keine Benutzer einander oder dem Handelsabgleich vertrauen müssen Dienst. Der Nachteil besteht darin, dass beide Parteien online sein müssen der Handel stattfinden soll. Eine andere Art der dezentralen Börse ist die Massenreplikation verteilter Austausch, der eigenständig läuft blockchain. Benutzer an Diese Art von Börse kann eine Limit-Order aufgeben und umsetzen Computer ausgeschaltet, und der Handel kann ausgeführt werden, ohne dass der Benutzer dies tun muss online. Der blockchain stimmt überein und schließt den Handel im Namen ab des Händlers.
Applications
Un échange centralisé peut créer un carnet de commandes important et limité commandes et ainsi attirer plus de commerçants. La liquidité engendre plus liquidité dans le monde des changes, il existe donc un réseau solide effet (ou au moins un effet gagnant-prenant le plus) dans l'échange entreprise. Le leader actuel des échanges de crypto-monnaie aujourd'hui se trouve Poloniex avec un volume sur 24 heures de 20 millions de dollars, et en deuxième position se trouve Bitynex avec un volume sur 24 heures de 5 millions de dollars. Étant donné un réseau aussi solide effets, il est peu probable que les échanges décentralisés basés sur AXC gagner du volume sur les échanges centralisés. Pour une décentralisation bourse pour rivaliser avec une bourse centralisée, il lui faudrait pour prendre en charge des carnets de commandes importants avec des ordres limités. Seulement un distribué un échange sur un blockchain peut fournir cela. Tendermint offre des avantages supplémentaires d'une transaction plus rapide s'engage. En privilégiant la qualité rapide sans sacrifier cohérence, les zones de Cosmos peuvent ynaliser les transactions rapidement – par exemple les transactions d'ordres d'échange ainsi que les transferts IBC token vers et d'autres zones. Compte tenu de l’état actuel des échanges de crypto-monnaie, un grand l'application pour Cosmos est l'échange distribué (alias le Cosmos DEX). La capacité de débit des transactions ainsi que la latence de validation peut être comparable à celle des systèmes centralisés échanges. Les traders peuvent soumettre des ordres limités qui peuvent être exécutés sans que les deux parties n'aient besoin d'être en ligne. Et avec Tendermint, le hub Cosmos et IBC, les traders peuvent transférer des fonds vers et depuis l'échange vers et depuis d'autres zones avec rapidité. Une zone privilégiée peut agir comme source d'un token ponté de une autre crypto-monnaie. Un pont est semblable à la relation entre un hub et une zone Cosmos ; les deux doivent suivre le rythme derniers blocs de l'autre afin de vérifier les preuves que les token ont déplacé de l'un à l'autre. Une "zone-pont" sur le Cosmos le réseau suit le Hub ainsi que les autres
crypto-monnaie. L'indirection à travers la zone du pont permet la logique du Hub pour rester simple et agnostique par rapport aux autres Stratégies consensuelles de blockchain telles que proof-of-work de Bitcoin exploitation minière. Chaque zone de pont validator exécuterait un système alimenté par Tendermint blockchain avec une application de pont spéciale ABCI, mais aussi un nœud complet de l’« origine » blockchain. Lorsque de nouveaux blocs sont extraits à l'origine, la zone de pont validators parviendront à un accord sur les blocs engagés en signant et partageant leur vision locale respective du blockchain d’origine pointe. Lorsqu'une zone-pont reçoit un paiement à l'origine (et il a été convenu que des confirmations suffisantes avaient été vues dans le cas d'une chaîne PoW telle que Ethereum ou Bitcoin), un correspondant un compte est créé sur la zone pont avec ce solde. Dans le cas de Ethereum, la zone pont peut partager la même validator-défini comme hub Cosmos. Du côté Ethereum (le origine), un contrat-relais permettrait aux détenteurs d'éther d'envoyer de l'éther à la zone-pont en l'envoyant au contrat-pont le Ethereum. Une fois que l'éther est reçu par le contrat-pont, le l'éther ne peut pas être retiré à moins qu'un paquet IBC approprié ne soit reçu par le contrat-pont de la zone-pont. Le Le contrat de pont suit l'ensemble validator de la zone de pont, qui peut être identique à l’ensemble validator du Hub Cosmos. Dans le cas de Bitcoin, le concept est similaire sauf qu'au lieu de un seul contrat-relais, chaque UTXO serait contrôlé par un seuil multisignature publication P2SH. En raison des limites de le système P2SH, les signataires ne peuvent pas être identiques aux Cosmos Hub validator-set.L'éther sur la zone pont («bridged-ether») peut être transféré vers et depuis le Hub, puis être détruit avec une transaction qui l'envoie à une adresse de retrait particulière le Ethereum. Un IBC paquet prouvant que la transaction a eu lieu sur la zone pont peut être posté sur le contrat-relais Ethereum pour permettre à l'éther à retirer. Dans le cas de Bitcoin, le système de script restreint permet Il est difficile de reproduire le mécanisme de transfert de pièces IBC. Chaque UTXO a son propre pubscript indépendant, donc chaque UTXO doit être migré vers un nouveau UTXO lorsqu'il y a un changement dans l'ensemble des Bitcoin signataires du dépôt fiduciaire. Une solution consiste à compresser et décompressez l'ensemble UTXO si nécessaire pour conserver le nombre total des UTXOs en panne. Le risque d'un tel contrat de transition est un ensemble validator voyou. ≥⅓ Le pouvoir de vote byzantin pourrait provoquer un fork, retirant l'éther du contrat-pont sur Ethereum tout en gardant le bridgedether sur la zone-pont. Pire encore, >⅔ du pouvoir de vote byzantin peut voler de l'éther à ceux qui l'ont envoyé au contrat-pont en s'écartant de la logique de pontage originale de la zone-pont. Il est possible de résoudre ces problèmes en concevant le pont pour qu'il soit totalement responsable. Par exemple, tous les paquets IBC, provenant du hub et l'origine, pourrait nécessiter une reconnaissance par la zone de pont dans de telle sorte que toutes les transitions d'état de la zone de pont puissent être efficacement contesté et vérifié soit par le hub, soit par l'origine contrat-relais. Le Hub et l'origine devraient permettre aux zones de pont validator de déposer des garanties, et token les transferts hors de la zone de pont. le contrat-relais devrait être retardé (et le détachement des garanties période suffisamment longue) pour permettre d'éventuelles contestations auditeurs indépendants. Nous quittons la conception de la spécification et mise en œuvre de ce système ouvert comme un avenir Cosmos
proposition d'amélioration, à adopter par le Hub Cosmos système de gouvernance. La résolution du problème de mise à l’échelle est un problème ouvert pour Ethereum. Actuellement, les nœuds Ethereum traitent chaque transaction et stocker également tous les états. lien. Puisque Tendermint peut valider des blocs beaucoup plus rapidement que ceux de Ethereum Zones proof-of-work, EVM alimentées par le consensus Tendermint et fonctionnant sur de l'éther ponté peut fournir des performances plus élevées à Ethereum blockchains. De plus, bien que le hub Cosmos et La mécanique des paquets IBC ne permet pas une logique de contrat arbitraire exécution en soi, il peut être utilisé pour coordonner les mouvements token entre les contrats Ethereum fonctionnant sur des zones différentes, fournissant une base pour une mise à l'échelle token centrée sur Ethereum via partage. Les zones Cosmos exécutent une logique d'application arbitraire, définie à le début de la vie de la zone et peut éventuellement être mis à jour au fil du temps par la gouvernance. Une telle zexibilité permet aux zones Cosmos de agir comme des ponts vers d'autres crypto-monnaies telles que Ethereum ou Bitcoin, et il autorise également les dérivés de ces blockchain, en utilisant la même base de code mais avec un ensemble validator différent et distribution initiale. Cela permet à de nombreuses crypto-monnaies existantes frameworks, tels que ceux de Ethereum, Zerocash, Bitcoin, CryptoNote et ainsi de suite, à utiliser avec Tendermint Core, qui est un moteur de consensus plus performant, sur un réseau commun, ouvrant une formidable opportunité d’interopérabilité à travers plates-formes. De plus, en tant que blockchain multi-actifs, un seul La transaction peut contenir plusieurs entrées et sorties, où chacune l'entrée peut être n'importe quel type token, permettant à Cosmos de servir directement de une plateforme d'échange décentralisé, bien que les commandes soient assuméesà égaler via d'autres plateformes. Alternativement, une zone peut servir en tant qu'échange distribué tolérant aux pannes (avec carnets de commandes), qui peut être une amélioration stricte par rapport au système centralisé existant échanges de crypto-monnaie qui ont tendance à être piratés au fil du temps. Les zones peuvent également servir de versions d'entreprise soutenues par blockchain et les systèmes gouvernementaux, où les éléments d'un service particulier qui sont traditionnellement gérés par une organisation ou un groupe d’organisations sont plutôt exécutés en tant qu'application ABCI sur une certaine zone, ce qui lui permet d'hériter de la sécurité et de l'interopérabilité du public Cosmos réseau sans sacrifier le contrôle sur le sous-jacent service. Ainsi, Cosmos peut offrir le meilleur des deux mondes pour les organisations qui cherchent à utiliser la technologie blockchain mais qui sont se méfier de céder complètement le contrôle à un tiers distribué fête. Certains affirment qu'un problème majeur lié à la recherche de cohérence les algorithmes de consensus comme Tendermint sont que n'importe quel réseau partition qui fait qu'il n'y a pas de partition unique avec >⅔ le pouvoir de vote (par exemple ≥⅓ du magazine) mettra complètement fin au consensus. L'architecture Cosmos peut aider à atténuer ce problème en utilisant une plaque tournante mondiale avec des zones régionales autonomes, où le pouvoir de vote pour chaque zone sont répartis selon une répartition géographique commune région. Par exemple, un paradigme commun peut être celui d'un individu villes, ou régions, d'exploiter leurs propres zones tout en partageant un pôle commun (par exemple le Hub Cosmos), permettant à l'activité municipale de persister dans le cas où le hub s'arrête en raison d'un réseau temporaire partition. Notons que cela permet de réelles conséquences géologiques, politiques et caractéristiques topologiques de réseau à prendre en compte dans la conception de systèmes robustes systèmes fédérés tolérants aux pannes.
NameCoin a été l'un des premiers blockchain à tenter de résoudre le problème. problème de résolution de nom en adaptant le Bitcoin blockchain. Malheureusement, cette approche a posé plusieurs problèmes. Avec Namecoin, on peut vérifier que, par exemple, @satoshi était enregistré avec une clé publique particulière à un moment donné dans le passé, mais nous ne saurions pas si la clé publique a été mis à jour récemment sauf si nous téléchargeons tous les blocs depuis le dernier mise à jour de ce nom. Cela est dû à la limitation de Bitcoin UTXO modèle de Merkle-isation des transactions, où seul le les transactions (mais pas l'état d'application mutable) sont Merkle-isées dans le bloc-hash. Cela nous permet de prouver l'existence, mais pas la non-existence de mises à jour ultérieures d'un nom. Ainsi, nous ne pouvons pas savoir pour certain de la valeur la plus récente d'un nom sans faire confiance à un nœud, ou encourir des coûts importants en bande passante en téléchargeant le tout blockchain. Même si un arbre de recherche Merkle était implémenté dans NameCoin, sa dépendance à proof-of-work rend la vérification client légère problématique. Les clients légers doivent télécharger une copie complète du en-têtes pour tous les blocs de l'ensemble du blockchain (ou au moins de tous les en-têtes depuis la dernière mise à jour d'un nom). Cela signifie que le les besoins en bande passante évoluent de manière linéaire avec le temps [21]. De plus, les changements de nom sur un proof-of-work blockchain nécessite d'attendre des blocs de confirmation proof-of-work supplémentaires, ce qui peut prendre jusqu'à une heure le Bitcoin. Avec Tendermint, tout ce dont nous avons besoin est le bloc le plus récent -hash signé par un quorum de validators (par droit de vote) et un Merkle preuve à la valeur actuelle associée au nom. Cela fait possible d'avoir un client léger succinct, rapide et sécurisé vérification des valeurs de nom. Dans Cosmos, nous pouvons reprendre ce concept et l'étendre davantage. Chacun La zone d'enregistrement de nom dans Cosmos peut avoir un nom de domaine de premier niveau (TLD) associé tel que « .com » ou « .org », et chaque nom-
la zone d'enregistrement peut avoir sa propre gouvernance et son propre enregistrement règles.
Anwendungen
Eine zentralisierte Börse kann ein umfangreiches Orderbuch mit Limits schaffen Bestellungen und locken so mehr Händler an. Liquidität erzeugt mehr Liquidität in der Börsenwelt und somit ein starkes Netzwerk Effekt (oder zumindest einen Winner-Take-Most-Effekt) im Austausch Geschäft. Der derzeitige Marktführer für Kryptowährungsbörsen ist Poloniex mit einem 24-Stunden-Volumen von 20 Millionen US-Dollar und an zweiter Stelle Bitynex mit einem 24-Stunden-Volumen von 5 Millionen US-Dollar. Angesichts eines so starken Netzwerks Auswirkungen ist es unwahrscheinlich, dass AXC-basierte dezentrale Börsen dies tun Gewinnen Sie Volumen gegenüber den zentralisierten Börsen. Für eine dezentrale Um mit einer zentralisierten Börse konkurrieren zu können, bräuchte es eine Börse um tiefe Orderbücher mit Limit-Orders zu unterstützen. Nur eine verteilte Exchange auf einem blockchain kann dies bieten. Tendermint bietet zusätzliche Vorteile einer schnelleren Transaktion begeht. Indem wir der schnellen Synalität Priorität einräumen, ohne Opfer zu bringen Konsistenz können Zonen in Cosmos Transaktionen schnell synchronisieren – z sowohl Börsenauftragstransaktionen als auch IBC token Überweisungen an und aus anderen Zonen. Angesichts der heutigen Lage der Kryptowährungsbörsen ist das großartig Anwendung für Cosmos ist der verteilte Austausch (auch bekannt als Cosmos DEX). Die Transaktionsdurchsatzkapazität sowie Die Commit-Latenz kann mit der zentralisierten Latenz vergleichbar sein Austausch. Händler können Limitaufträge erteilen, die ausgeführt werden können ohne dass beide Parteien online sein müssen. Und mit Tendermint, Über den Hub Cosmos und IBC können Händler Gelder ein- und auszahlen den schnellen Austausch von und zu anderen Zonen. Eine privilegierte Zone kann als Quelle eines überbrückten token von dienen eine andere Kryptowährung. Eine Brücke ähnelt der Beziehung zwischen einem Cosmos-Hub und einer Zone; beide müssen mithalten neuesten Blöcke des anderen, um Beweise zu überprüfen, die tokens haben von einem zum anderen bewegt. Eine „Brückenzone“ auf der Cosmos Das Netzwerk hält sowohl mit dem Hub als auch mit den anderen Schritt
Kryptowährung. Die Umleitung durch die Brückenzone ermöglicht Die Logik des Hubs besteht darin, einfach und agnostisch gegenüber anderen zu bleiben blockchain Konsensstrategien wie Bitcoins proof-of-work Bergbau. Jede Bridge-Zone validator würde einen Tendermint-betriebenen Betrieb betreiben blockchain mit einer speziellen ABCI Bridge-App, aber auch einem Vollknoten von der „Ursprung“ blockchain. Wenn neue Blöcke am Ursprung, der Brückenzone, abgebaut werden validators werden sich durch Unterzeichnung auf festgeschriebene Blöcke einigen und Teilen ihrer jeweiligen lokalen Sicht auf den Ursprungsort blockchain Tipp. Wenn eine Bridge-Zone die Zahlung am Ursprungsort erhält (und Es wurde vereinbart, dass in dem Fall genügend Bestätigungen gesehen wurden einer PoW-Kette wie Ethereum oder Bitcoin), ein entsprechender Mit diesem Guthaben wird ein Konto in der Bridge-Zone erstellt. Im Fall von Ethereum kann die Bridge-Zone dasselbe teilen validator-set als Cosmos Hub. Auf der Seite Ethereum (die Ursprung) würde ein Brückenvertrag es Ether-Inhabern ermöglichen, Ether zu senden an die Bridge-Zone senden, indem Sie es an den Bridge-Vertrag senden Ethereum. Sobald Ether vom Brückenvertrag empfangen wird, wird der Ether kann nicht zurückgezogen werden, es sei denn, es liegt ein entsprechendes IBC-Paket vor durch den Brückenvertrag von der Brückenzone erhalten. Die Bridge-Contract verfolgt den validator-Satz der Bridge-Zone, der kann mit dem validator-Set des Hubs Cosmos identisch sein. Im Fall von Bitcoin ist das Konzept ähnlich, außer dass statt ein einzelner Bridge-Vertrag, jeder UTXO würde von a gesteuert werden Schwellenwert-Multisignatur-P2SH-Pubscript. Aufgrund der Einschränkungen von Im P2SH-System können die Unterzeichner nicht mit dem Cosmos identisch sein. Hub validator-set.Ether auf der Bridge-Zone („bridged-ether“) kann übertragen werden und vom Hub entfernt und später mit einer Transaktion zerstört werden sendet es an eine bestimmte Auszahlungsadresse unter Ethereum. Ein IBC Paket, das beweist, dass die Transaktion in der Bridge-Zone stattgefunden hat kann an den Bridge-Vertrag Ethereum gesendet werden, um den Ether zuzulassen zurückgezogen werden. Im Fall von Bitcoin reicht das eingeschränkte Skriptsystem aus Es ist schwierig, den Münztransfermechanismus IBC nachzubilden. Jeder UTXO verfügt über ein eigenes unabhängiges Pubscript, daher muss jedes UTXO eines sein wird auf ein neues UTXO migriert, wenn sich der Satz ändert Bitcoin Treuhandunterzeichner. Eine Lösung besteht darin, zu komprimieren und Dekomprimieren Sie den UTXO-Satz nach Bedarf, um die Gesamtzahl beizubehalten von UTXOs ausgefallen. Das Risiko eines solchen Überbrückungsvertrags besteht in einem betrügerischen validator-Set. ≥⅓ Die byzantinische Stimmmacht könnte eine Abspaltung verursachen und Ether abziehen vom Bridge-Vertrag auf Ethereum, während der Bridgedether auf der Bridge-Zone bleibt. Schlimmer noch, >⅔ byzantinische Stimmmacht kann Stehlen Sie Ether direkt von denen, die ihn an den Brückenvertrag gesendet haben durch Abweichung von der ursprünglichen Brückenlogik der Brückenzone. Es ist möglich, diese Probleme durch die Gestaltung der Brücke zu lösen völlig verantwortlich. Zum Beispiel alle IBC-Pakete vom Hub und Der Ursprung erfordert möglicherweise eine Bestätigung durch die Bridge-Zone in so dass alle Zustandsübergänge der Bridge-Zone möglich sind effizient herausgefordert und bestätigt, entweder vom Hub oder vom Ursprung Brückenvertrag. Der Hub und der Ursprung sollten es den Bridgezone-validators ermöglichen, Sicherheiten zu hinterlegen, und token-Transfers aus der Bridgezone Der Brückenvertrag sollte verzögert werden (und die Aufhebung der Sicherheiten). ausreichend lange Zeit), um etwaige Herausforderungen zu berücksichtigen unabhängige Wirtschaftsprüfer. Wir verlassen das Design der Spezifikation und Die Implementierung dieses Systems ist zukunftsoffen Cosmos
Verbesserungsvorschlag, der von den Cosmos Hubs verabschiedet werden soll Governance-System. Die Lösung des Skalierungsproblems ist für Ethereum ein offenes Thema. Derzeit verarbeiten Ethereum Knoten jede einzelne Transaktion und Speichern Sie auch alle Zustände. Link. Da Tendermint Blöcke viel schneller festschreiben kann als die von Ethereum proof-of-work, EVM Zonen, die auf dem Tendermint-Konsens basieren und Der Betrieb mit Bridged-Ether kann eine höhere Leistung bieten Ethereum blockchains. Darüber hinaus sind der Cosmos Hub und IBC Die Paketmechanik lässt keine willkürliche Vertragslogik zu Da es sich um eine reine Ausführung handelt, kann es zur Koordinierung von token Bewegungen verwendet werden zwischen Ethereum Verträgen, die in verschiedenen Zonen laufen, Bereitstellung einer Grundlage für die token-zentrierte Ethereum-Skalierung über Scherben. Cosmos Zonen führen beliebige Anwendungslogik aus, die definiert ist der Beginn des Lebens der Zone und kann möglicherweise aktualisiert werden im Laufe der Zeit durch Governance. Diese Zexibilität ermöglicht Cosmos Zonen fungieren als Brücken zu anderen Kryptowährungen wie Ethereum oder Bitcoin, und es erlaubt auch Ableitungen dieser blockchains, Verwendung derselben Codebasis, aber mit einem anderen validator-Satz und Erstverteilung. Dies ermöglicht viele bestehende Kryptowährungen Frameworks wie die von Ethereum, Zerocash, Bitcoin, CryptoNote und so weiter, zur Verwendung mit Tendermint Core eine leistungsfähigere Konsens-Engine in einem gemeinsamen Netzwerk, Dies eröffnet enorme Möglichkeiten für die Interoperabilität zwischen allen Plattformen. Darüber hinaus als Multi-Asset blockchain, ein Single Die Transaktion kann mehrere Ein- und Ausgänge enthalten Die Eingabe kann ein beliebiger Typ token sein, sodass Cosmos direkt als dienen kann eine Plattform für den dezentralen Austausch, allerdings werden Aufträge angenommenüber andere Plattformen gematcht werden. Alternativ kann auch eine Zone dienen als verteilte fehlertolerante Börse (mit Orderbüchern), die kann eine deutliche Verbesserung gegenüber bestehenden zentralisierten Systemen darstellen Kryptowährungsbörsen, die im Laufe der Zeit dazu neigen, gehackt zu werden. Zonen können auch als blockchain-gestützte Versionen des Unternehmens dienen und Regierungssysteme, in denen Teile eines bestimmten Dienstes das sind werden traditionell von einer Organisation oder einer Gruppe von Organisationen betrieben werden stattdessen als ABCI-Anwendung in einer bestimmten Zone ausgeführt ermöglicht es ihm, die Sicherheit und Interoperabilität der Öffentlichkeit zu übernehmen Cosmos Netzwerk, ohne die Kontrolle über das zugrunde liegende zu opfern Dienst. Somit bietet Cosmos möglicherweise das Beste aus beiden Welten Organisationen, die die Technologie blockchain nutzen möchten, dies aber tun Bedenken Sie, die Kontrolle vollständig an einen verteilten Dritten abzugeben Party. Einige behaupten, dass die Konsistenzbegünstigung ein großes Problem darstellt Konsensalgorithmen wie Tendermint sind für jedes Netzwerk geeignet Partition, was dazu führt, dass es keine einzelne Partition mit >⅔ gibt Stimmrecht (z. B. ≥⅓ Weggang des Magazins) wird den Konsens insgesamt stoppen. Die Cosmos-Architektur kann durch die Verwendung dazu beitragen, dieses Problem zu mildern ein globaler Knotenpunkt mit regionalen autonomen Zonen, in denen Stimmrechte bestehen für jede Zone werden auf der Grundlage einer gemeinsamen geografischen Lage verteilt Region. Beispielsweise kann ein gemeinsames Paradigma für Einzelpersonen gelten Städte oder Regionen können ihre eigenen Zonen betreiben und gleichzeitig eine teilen gemeinsamer Hub (z. B. der Cosmos Hub), der kommunale Aktivitäten ermöglicht bleibt bestehen, falls der Hub aufgrund eines temporären Netzwerks anhält Partition. Beachten Sie, dass dies echte geologische, politische und Netzwerktopologische Merkmale, die bei der robusten Gestaltung berücksichtigt werden müssen föderierte fehlertolerante Systeme.
NameCoin war einer der ersten blockchains, der versuchte, das Problem zu lösen Namensauflösungsproblem durch Anpassung von Bitcoin blockchain. Leider gab es bei diesem Ansatz mehrere Probleme. Mit Namecoin können wir beispielsweise überprüfen, ob es @satoshi war irgendwann in der Vergangenheit mit einem bestimmten öffentlichen Schlüssel registriert, aber wir würden nicht wissen, ob der öffentliche Schlüssel inzwischen vorhanden war vor kurzem aktualisiert, es sei denn, wir laden alle Blöcke seit dem letzten herunter Aktualisierung dieses Namens. Dies ist auf die Beschränkung von Bitcoin zurückzuführen UTXO Transaktion Merkle-isierungsmodell, bei dem nur die Transaktionen (jedoch nicht der veränderliche Anwendungsstatus) sind Merkle-isiert in den Block-hash. Dadurch können wir die Existenz, aber nicht die Nichtexistenz späterer Aktualisierungen eines Namens nachweisen. Daher können wir es nicht wissen Sichern Sie sich den neuesten Wert eines Namens, ohne einem vollständigen Wert zu vertrauen oder dass durch den Download erhebliche Bandbreitenkosten entstehen das ganze blockchain. Selbst wenn ein Merkle-isierter Suchbaum in NameCoin implementiert würde, Seine Abhängigkeit von proof-of-work erleichtert die Überprüfung des Clients problematisch. Light-Kunden müssen eine vollständige Kopie davon herunterladen Header für alle Blöcke im gesamten blockchain (oder zumindest alle Header seit der letzten Aktualisierung eines Namens). Dies bedeutet, dass die Der Bandbreitenbedarf skaliert linear mit der Zeit [21]. Darüber hinaus sind Namensänderungen an einem proof-of-work blockchain erfordert das Warten auf zusätzliche Bestätigungsblöcke proof-of-work, Dies kann auf Bitcoin bis zu einer Stunde dauern. Bei Tendermint benötigen wir lediglich den aktuellsten Block: hash unterzeichnet von einem Quorum von validators (nach Stimmstärke) und einem Merkle Nachweis auf den aktuellen Wert, der dem Namen zugeordnet ist. Das macht es möglich, einen prägnanten, schnellen und sicheren Light-Client zu haben Überprüfung von Namenswerten. In Cosmos können wir dieses Konzept aufgreifen und weiter ausbauen. Jeder Die Namensregistrierungszone in Cosmos kann einen zugehörigen Toplevel-Domain-Namen (TLD) wie „.com“ oder „.org“ haben, und jeder Name-
Die Registrierungszone kann über eine eigene Verwaltung und Registrierung verfügen Regeln.
Gouvernance et économie
Bien que le Cosmos Hub soit un grand livre distribué multi-actifs, il existe un token natif spécial appelé l'atome. Les atomes sont les seuls staking token du hub Cosmos. Les atomes sont une licence pour le détenteur de voter, valider ou déléguer à d'autres validator. Comme celui de Ethereum éther, les atomes peuvent également être utilisés pour payer les frais de transaction pour atténuer le spam. Atomes inzationnaires supplémentaires et transaction de bloc les honoraires sont récompensés aux validator et aux délégataires qui délèguent à validators. La transaction BurnAtomTx peut être utilisée pour récupérer n'importe quel montant proportionnel de tokens provenant du pool de réserve. La distribution initiale des atomes token et validator sur Genesis ira aux donateurs de la collecte de fonds Cosmos (75 %), principaux donateurs (5 %), Cosmos Network Foundation (10 %) et ALL IN BITS, Inc. (10%). À partir de la genèse, 1/3 de la quantité totale d'atomes sera être récompensé chaque année par les validator et les délégués cautionnés. Consultez le plan Cosmos pour plus de détails. Contrairement à Bitcoin ou à d'autres proof-of-work blockchain, un Tendermint blockchain devient plus lent avec plus de validator en raison de l'augmentation complexité des communications. Heureusement, nous pouvons soutenir suffisamment validators pour créer un blockchain robuste distribué à l'échelle mondiale avec des temps de confirmation des transactions très rapides et, comme bande passante,
stockage et la capacité de calcul parallèle augmente, nous pourrons pour prendre en charge davantage de validator à l'avenir. Le jour de la genèse, le nombre maximum de validator sera fixé à 100, et ce nombre augmentera au rythme de 13% pendant 10 ans, et s'établir à 300 validators. Les détenteurs d'atomes qui ne le sont pas déjà peuvent devenir validator en signer et soumettre une transaction BondTx . Le montant de les atomes fournis en garantie doivent être différents de zéro. N'importe qui peut devenir un validator à tout moment, sauf lorsque la taille du courant L'ensemble validator est supérieur au nombre maximum de validator. autorisé. Dans ce cas, la transaction n'est valable que si le montant de Le nombre d’atomes est supérieur à la quantité d’atomes effectifs détenus par le le plus petit validator, où les atomes efficaces incluent les atomes délégués. Lorsqu'un nouveau validator remplace un validator existant de cette manière, le validator existant devient inactif et tous les atomes et les atomes délégués entrent dans l’état de déliaison. Une pénalité doit être imposée aux validator pour tout déviation intentionnelle ou non des règles sanctionnées protocole. Certaines preuves sont immédiatement recevables, comme une double signe à la même hauteur et rond, ou une violation de Année 0 : 100 Année 1 : 113 Année 2 : 127 Année 3 : 144 Année 4 : 163 Année 5 : 184 Année 6 : 208 Année 7 : 235 Année 8 : 265 Année 9 : 300 Année 10 : 300 ...
« empêcher le verrouillage » (une règle du protocole de consensus Tendermint). Une telle preuve entraînera la perte de la réputation du validator. et ses atomes liés ainsi que sa part proportionnelle de tokens dans le pool de réserve – collectivement appelé sa « mise » – sera réduit. Parfois, les validator ne seront pas disponibles, soit en raison de conditions régionales perturbations du réseau, panne de courant ou autres raisons. Si, à tout moment point dans les blocs ValidatorTimeoutWindow passés, un validator le vote de validation n'est pas inclus dans le blockchain plus de ValidatorTimeoutMaxAbsent fois, ce validator deviendra inactif et perdez ValidatorTimeoutPenalty (DEFAULT 1 %) de son enjeu. Certains comportements « malveillants » ne produisent pas d’effets visiblement perceptibles. preuve sur le blockchain. Dans ces cas, les validator peuvent coordonner hors bande pour forcer l'expiration du délai d'attente de ces éléments malveillants validators, s'il existe un consensus à la grande majorité. Dans les situations où le Hub Cosmos s'arrête en raison d'une coalition ≥⅓ de le pouvoir de vote disparaît, ou dans des situations où une coalition ≥⅓ des pouvoirs de vote censurent les preuves de comportement malveillant de la part de en entrant dans le blockchain, le hub doit récupérer avec un hard-fork proposition de réorganisation. (Lien vers « Forks et attaques de censure »). Les hubs Cosmos validator peuvent accepter n'importe quel type ou combinaison de token de types comme frais de traitement d’une transaction. Chaque validator peut fixer subjectivement le taux de change qu'il souhaite et choisir quelles que soient les transactions souhaitées, à condition que le BlockGasLimit soit pas dépassé. Les frais perçus, déduction faite des éventuelles taxes précisées ci-dessous, sont redistribués aux parties prenantes cautionnées au prorata de leurs atomes liés, chaque ValidatorPayoutPeriod (DEFAULT 1 heure).Parmi les frais de transaction collectés, ReserveTax (2 % PAR DÉFAUT) sera allez vers la réserve pour augmenter la réserve et augmenter la sécurité et la valeur du réseau Cosmos. Ces les fonds peuvent également être distribués conformément aux décisions faite par le système de gouvernance. Détenteurs d'atomes qui délèguent leur pouvoir de vote à d'autres validator verser une commission au délégué validator. La commission peut être défini par chaque validator. La sécurité du hub Cosmos est fonction de la sécurité du sous-jacents aux validator et au choix de la délégation par les délégants. Afin d'encourager la découverte et la déclaration précoce des espèces trouvées vulnérabilités, le Cosmos Hub encourage les pirates à publier exploits réussis via une transaction ReportHackTx qui dit : "Ceci validator a été piraté. Veuillez envoyer la prime à cette adresse ». Sur un tel exploit, le validator et les délégants deviendront inactifs, HackPunishmentRatio (par défaut 5 %) des atomes de chacun obtiendront réduit et HackRewardRatio (par défaut 5 %) des atomes de chacun sera récompensé à l’adresse de prime du pirate informatique. Le validator doit récupérer les atomes restants en utilisant leur clé de sauvegarde. Afin d'éviter que cette fonctionnalité ne soit utilisée de manière abusive pour transférer atomes non investis, la proportion d'atomes investis et non investis de Les validator et les délégants avant et après le ReportHackTx resteront les mêmes, et la prime des hackers inclura certains atomes non investis, le cas échéant. Le hub Cosmos est exploité par une organisation distribuée qui nécessite un mécanisme de gouvernance bien défini afin de coordonner divers changements au blockchain, comme la variable
paramètres du système, ainsi que les mises à niveau logicielles et amendements constitutionnels. Tous les validator sont responsables du vote sur toutes les propositions. A défaut de voter sur une proposition en temps opportun entraînera le validator étant automatiquement désactivé pendant une période de temps appelée AbsenteeismPenaltyPeriod (PAR DÉFAUT 1 semaine). Les délégués héritent automatiquement du vote du délégué validator. Ce vote peut être annulé manuellement. Atomes non liés n'obtenez aucun vote. Chaque proposition nécessite un dépôt de MinimumProposalDeposit tokens, qui peuvent être une combinaison d'un ou plusieurs tokens y compris les atomes. Pour chaque proposition, les électeurs peuvent voter pour prendre le dépôt. Si plus de la moitié des électeurs choisissent de voter dépôt (par exemple parce que la proposition était du spam), le dépôt va à le pool de réserve, à l’exception des atomes brûlés. Pour chaque proposition, les électeurs peuvent voter avec les options suivantes : Ouais OuiAvecForce Non NonAvecForce S'abstenir Une stricte majorité de votes Oui ou OuiAvecForce (ou Non ou Votes NayWithForce) est requis pour que la proposition soit décidée comme réussi (ou décidé comme échec), mais 1/3+ peut opposer son veto à la majorité décision en votant « avec force ». Lorsqu'on oppose son veto à une majorité stricte, tout le monde est puni en perdant VetoPenaltyFeeBlocks (PAR DÉFAUT 1 jour de blocs) de frais (sauf taxes qui ne sera pas affecté), et le parti qui a opposé son veto à la majorité
la décision sera en outre punie par la perte de VetoPenaltyAtoms (PAR DÉFAUT 0,1%) de ses atomes. N'importe lequel des paramètres définis ici peut être modifié avec le transmission d'une ParameterChangeProposal . Les atomes peuvent être inzés et les fonds du pool de réserve dépensés avec le adoption d'une BountyProposal . Toutes les autres propositions, comme une proposition de mise à niveau du protocole, sera coordonné via la TextProposal générique. Voir le Plan. Il y a eu de nombreuses innovations dans le consensus blockchain et évolutivité au cours des deux dernières années. Cette section fournit un bref enquête sur un certain nombre de sujets importants. Le consensus en présence de participants malveillants est un problème datant du début des années 1980, lorsque Leslie Lamport a inventé le expression « faute byzantine » pour faire référence à un comportement de processus arbitraire qui s'écarte du comportement prévu, contrairement à un « défaut de crash », dans lequel un processus plante tout simplement. Des premières solutions ont été découvertes pour les réseaux synchrones où il existe une limite supérieure surlatence des messages, bien que l'utilisation pratique soit limitée à des environnements contrôlés tels que les contrôleurs d’avion et centres de données synchronisés via des horloges atomiques. Ce n'est que lorsque fin des années 90, la tolérance aux pannes byzantine pratique (PBFT) [11] était présenté comme un consensus efficace partiellement synchrone algorithme capable de tolérer jusqu'à ⅓ des processus se comportant arbitrairement. PBFT est devenu l'algorithme standard, engendrant de nombreuses variantes, dont la plus récente créée par IBM dans le cadre de leur contribution à Hyperledger. Le principal avantage du consensus Tendermint sur PBFT est que Tendermint a une structure sous-jacente améliorée et simplifiée, dont certains sont le résultat de l’adoption du paradigme blockchain. Les blocs Tendermint doivent être validés dans l'ordre, ce qui évite le complexité et surcharge de communication associées aux PBFT changements de vue. Dans Cosmos et dans de nombreuses crypto-monnaies, il n'y a pas il faut autoriser le bloc N+i où i >= 1 à valider, lorsque le bloc N lui-même ne s’est pas encore engagé. Si la bande passante est la raison pour laquelle le bloc N ne s'est pas engagé dans une zone Cosmos, alors cela ne sert à rien d'utiliser votes de partage de bande passante pour les blocs N+i. Si une partition réseau ou ofzine nodes est la raison pour laquelle le bloc N n'a pas été validé, alors N+je ne m’engagerai pas de toute façon. De plus, le regroupement des transactions en blocs permet Merkle-hashing régulier de l'état de l'application, plutôt que des résumés périodiques comme avec le schéma de points de contrôle de PBFT. Cela permet pour des validations de transactions prouvables plus rapides pour les clients légers et plus rapides communication inter-blockchain. Tendermint Core comprend également de nombreuses optimisations et fonctionnalités qui vont au-delà de ce qui est spécifié dans PBFT. Par exemple, les blocs proposés par validators sont découpés en parties, Merkle-isées, et bavardé d'une manière qui améliore la diffusion performances (voir LibSwift [19] pour l'inspiration). Aussi, menthe tendre Core ne fait aucune hypothèse sur le point à point
connectivité et fonctionne aussi longtemps que le réseau P2P est faiblement connecté. Bien que ce ne soit pas la première année à déployer proof-of-stake (PoS), BitShares1.0 [12] contribué considérablement à la recherche et à l’adoption du PoS blockchain, en particulier ceux dits PoS « délégués ». Dans BitShares, les actionnaires élisent des "témoins", chargés de passer commande et commettre des transactions, et des « délégués », chargés de coordonner les mises à jour logicielles et les modifications de paramètres. BitShares2.0 vise à atteindre des performances élevées (100 000 tx/s, 1 s latence) dans des conditions idéales, chaque bloc étant signé par un seul signataire et la qualité de la transaction prend un peu plus de temps que le intervalle de bloc. Une spécification canonique est encore en développement. Les parties prenantes peuvent supprimer ou remplacer les témoins qui se comportent mal lors d'une réunion. quotidiennement, mais il n'y a pas de garantie significative de témoins ou des délégataires à l'image de Tendermint PoS qui sont coupés le cas d’une attaque réussie à double dépense. S'appuyant sur une approche lancée par Ripple, Stellar [13] a créé un modèle d'accord byzantin fédéré dans lequel les processus la participation au consensus ne constitue pas un objectif fixe et global ensemble connu. Au lieu de cela, chaque nœud de processus gère un ou plusieurs des « tranches de quorum », chacune constituant un ensemble de processus de confiance. Un Le « quorum » dans Stellar est défini comme étant un ensemble de nœuds qui contiennent au au moins une tranche de quorum pour chaque nœud de l'ensemble, tel que un accord peut être trouvé. La sécurité du mécanisme Stellar repose sur l'hypothèse que l'intersection de deux quorums quelconques n'est pas vide, tandis que le la disponibilité d'un nœud nécessite au moins une de ses tranches de quorum pour se composent entièrement de nœuds corrects, créant un compromis entre en utilisant des tranches de quorum grandes ou petites qui peuvent être difficiles à équilibrer sans imposer d’hypothèses significatives sur la confiance. Finalement,les nœuds doivent d'une manière ou d'une autre choisir des tranches de quorum adéquates pour y parvenir. être suffisamment tolérant aux pannes (ou à tout « nœuds intacts », dont dont dépendent une grande partie des résultats de l'article), et le seul la stratégie fournie pour garantir qu'une telle conyguration est hiérarchique et similaire au Border Gateway Protocol (BGP), utilisé par les meilleurs FAI sur Internet pour établir des tables de routage globales, et par celui utilisé par les navigateurs pour gérer les certificats TLS ; tous deux notoires pour leur insécurité. Les critiques formulées dans l'article Stellar concernant les systèmes de preuve de participation basés sur Tendermint sont atténuées par la stratégie token décrite. ici, dans lequel un nouveau type de token appelé atome est émis qui représentent des réclamations sur des portions futures de frais et de récompenses. Le L'avantage de proof-of-stake basé sur Tendermint est donc son relatif simplicité, tout en offrant une sécurité suffisante et prouvable garanties. BitcoinNG est une amélioration proposée à Bitcoin qui permettrait pour les formes d'évolutivité verticale, telles que l'augmentation de la taille des blocs, sans les conséquences économiques négatives généralement associées avec un tel changement, comme l'impact disproportionné sur les petits mineurs. Cette amélioration est obtenue en séparant élection du leader à partir de la diffusion de la transaction : les dirigeants sont les premiers élu par proof-of-work en « micro-blocs », et pouvoir alors transactions de diffusion à valider jusqu'à un nouveau micro-bloc est trouvé. Cela réduit les besoins en bande passante nécessaires pour gagner la course PoW, permettant aux petits mineurs de concourir plus équitablement, et permettre que les transactions soient commises plus régulièrement par le dernier mineur à trouver un micro-bloc. Casper [16] est un algorithme de consensus proof-of-stake proposé pour Ethereum. Son principal mode de fonctionnement est le « consensus par pari ». Par laisser validators parier de manière itérative sur le bloc qui, selon eux, sera
s'engager dans le blockchain en fonction des autres paris qu'ils ont vu jusqu'à présent, la ynalité peut éventuellement être atteinte. lien. Il s’agit d’un domaine de recherche actif de l’équipe Casper. Le Le défi consiste à construire un mécanisme de pari qui puisse être s'est avérée être une stratégie évolutive stable. Le principal avantage de Casper, par rapport à Tendermint, pourrait offrir une « disponibilité » sur la cohérence » – le consensus n’exige pas un quorum >⅔ de pouvoir de vote – peut-être au détriment de la vitesse de validation ou complexité de mise en œuvre. Le protocole Interledger [14] n'est pas strictement une solution d'évolutivité. Il fournit une interopération ad hoc entre différents registres systèmes à travers un réseau de relations bilatérales faiblement couplées. À l'instar du Lightning Network, l'objectif d'ILP est de faciliter paiements, mais il se concentre spécifiquement sur les paiements à travers des types de grand livre et étend le mécanisme de transaction atomique à inclure non seulement des hash-serrures, mais également un quorum de notaires (appelé le Protocole de Transport Atomique). Ce dernier mécanisme pour l'application de l'atomicité dans les transactions inter-grands livres est similaire à Le mécanisme SPV client léger de Tendermint, donc une illustration du la distinction entre ILP et Cosmos/IBC est justifiée, et fournis ci-dessous. 1. Les notaires d'un connecteur en ILP ne prennent pas en charge l'adhésion changements et ne permettent pas une pondération zexible entre notaires. D'autre part, IBC est conçu spécifiquement pour blockchains, où validators peuvent avoir des poids différents, et où l'adhésion peut changer au cours de la blockchain. 2. Comme dans Lightning Network, le destinataire du paiement en ILP doit être en ligne pour renvoyer une confirmation à l'expéditeur. Dans untoken transfert via IBC, l'ensemble validator du récepteur blockchain est responsable de fournir la confirmation, et non le utilisateur récepteur. 3. La différence la plus frappante est que les connecteurs d'ILP ne sont pas responsable ou gardant l'autorité en matière de paiements, alors que dans Cosmos, les validator d'un hub sont l'autorité de l'état des transferts IBC token ainsi que l'autorité du montant de tokens détenu par chaque zone (mais pas le montant de tokens détenus par chaque compte dans une zone). C'est le innovation fondamentale qui permet une sécurité asymétrique transfert de token de zone en zone ; l'analogue des ILP Le connecteur dans Cosmos est un connecteur persistant et sécurisé au maximum. Grand livre blockchain, le hub Cosmos. 4. Les paiements inter-grand livre dans ILP doivent être garantis par un carnet d’ordres de change, car il n’y a pas de transfert asymétrique de pièces de monnaie d'un registre à un autre, seul le transfert de valeur ou équivalents du marché. Les sidechains [15] sont un mécanisme proposé pour faire évoluer le Bitcoin réseau via des blockchain alternatifs qui sont « rattachés dans les deux sens » à le Bitcoin blockchain. (L'ancrage bidirectionnel équivaut à pontage. Dans Cosmos, nous disons « bridging » pour distinguer le marketpegging). Les sidechains permettent aux bitcoins de passer efficacement du Bitcoin blockchain au sidechain et à l'arrière, et permettre expérimentation de nouvelles fonctionnalités sur la sidechain. Comme dans le Cosmos Hub, la sidechain et Bitcoin servent de clients légers de les uns les autres, en utilisant des preuves SPV pour déterminer quand les pièces doivent être transféré à la sidechain et inversement. Bien sûr, depuis Bitcoin utilise proof-of-work, les sidechains centrés autour de Bitcoin souffrent des nombreux problèmes et risques de proof-of-work en tant que mécanisme de consensus. De plus, c'est un Bitcoin-maximaliste solution qui ne prend pas en charge nativement une variété de token et
topologie de réseau inter-zones comme le fait Cosmos. Cela dit, le noyau le mécanisme de la cheville à double sens est en principe le même que celui employé par le réseau Cosmos. Ethereum recherche actuellement un certain nombre de stratégies différentes pour fragmenter l'état du Ethereum blockchain pour répondre besoins d’évolutivité. Ces efforts ont pour objectif de maintenir couche d'abstraction offerte par la machine virtuelle Ethereum actuelle à travers l’espace d’état partagé. De multiples efforts de recherche sont en cours à ce moment. [18][22] Cosmos et Ethereum 2.0 Mauve [22] ont des objectifs de conception différents. Cosmos concerne spécifiquement les token. Mauve est une question de mise à l'échelle calcul général. Cosmos n'est pas lié à EVM, donc même différentes machines virtuelles peuvent interopérer. Cosmos permet au créateur de la zone de déterminer qui valide la zone. N'importe qui peut créer une nouvelle zone dans Cosmos (sauf si la gouvernance en décide autrement). Le hub isole les défaillances de zone afin que les invariants globaux token soient préservé. Le réseau Lightning est un réseau de transfert proposé token fonctionnant à une couche au-dessus du Bitcoin blockchain (et d'autres blockchains), permettant une amélioration de plusieurs ordres de grandeur dans le débit des transactions en déplaçant la majorité des transactions en dehors du registre consensuel vers ce que l’on appelle les « canaux de paiement ».Ceci est rendu possible par les scripts de crypto-monnaie en chaîne, qui permettre aux parties de conclure des contrats étatiques bilatéraux dans lesquels l'état peut être mis à jour en partageant des signatures numériques et des contrats peut être clôturé en publiant ynally des preuves sur le blockchain, un mécanisme popularisé pour la première fois par les échanges atomiques inter-chaînes. Par ouvrir des canaux de paiement avec de nombreuses parties, participants au Lightning Network peut devenir des points focaux pour le routage des paiements de tiers, conduisant à un canal de paiement entièrement connecté réseau, au prix d’un capital immobilisé sur les canaux de paiement. Bien que le réseau Lightning puisse également s'étendre facilement sur plusieurs blockchain indépendants pour permettre le transfert de valeur via un marché des changes, il ne peut pas être utilisé pour transférer des token d'un blockchain à un autre. Le principal avantage du réseau Cosmos décrit ici est de permettre une telle token transferts. Cela dit, nous nous attendons à ce que les canaux de paiement et le Lightning Network sera largement adopté avec notre Mécanisme de transfert token, pour des raisons d'économie et de confidentialité. Le témoin séparé est un lien de proposition d'amélioration Bitcoin qui vise à augmenter le débit de transaction par bloc de 2X ou 3X, tout en accélérant simultanément la synchronisation des blocs pour les nouveaux nœuds. Le génie de cette solution réside dans la façon dont elle fonctionne au sein du limitations du protocole actuel de Bitcoin et permet un soft-fork mise à niveau (c'est-à-dire que les clients avec des versions plus anciennes du logiciel seront continuer à fonctionner après la mise à niveau). Tendermint, étant un nouveau protocole, n'a aucune restriction de conception, il a donc une mise à l'échelle différente priorités. Principalement, Tendermint utilise un algorithme round-robin BFT basé sur des signatures cryptographiques au lieu du minage, ce qui permet trivialement une mise à l'échelle horizontale à travers plusieurs parallèles blockchains, tandis que les validations de bloc régulières et plus fréquentes permettent mise à l'échelle verticale également.
Governance und Wirtschaft
Während es sich beim Cosmos Hub um ein Multi-Asset-Distributed-Ledger handelt, gibt es eines ein besonderes natives token namens Atom. Atome sind die einzigen staking token des Hubs Cosmos. Atome sind eine Lizenz für den Inhaber abstimmen, bestätigen oder an andere validators delegieren. Wie die von Ethereum Ether, Atome können auch zur Bezahlung von Transaktionsgebühren verwendet werden Spam eindämmen. Zusätzliche Inzationsatome und Blocktransaktion Gebühren werden an validators und Delegierte vergütet, die an delegieren validators. Mit der BurnAtomTx -Transaktion können alle Dateien wiederhergestellt werden anteiliger Betrag von tokens aus dem Reservepool. Die anfängliche Verteilung der Atome tokens und validators in Genesis geht an die Spender der Spendenaktion Cosmos (75 %), Hauptspender (5 %), Cosmos Network Foundation (10 %) und ALL IN BITS, Inc (10 %). Von der Entstehung an wird 1/3 der gesamten Atommenge vorhanden sein werden jedes Jahr an gebundene validators und Delegierte belohnt. Weitere Einzelheiten finden Sie im Plan Cosmos. Im Gegensatz zu Bitcoin oder anderen proof-of-work blockchains ist ein Tendermint blockchain wird aufgrund der Erhöhung mit mehr validators langsamer Kommunikationskomplexität. Glücklicherweise können wir genug unterstützen validators sorgen für eine robuste, global verteilte blockchain mit sehr schnellen Transaktionsbestätigungszeiten und als Bandbreite
Speicher- und parallele Rechenkapazitätserhöhungen werden wir in der Lage sein um in Zukunft weitere validators zu unterstützen. Am Genesis-Tag wird die maximale Anzahl von validators festgelegt 100, und diese Zahl wird 10 Jahre lang um 13 % steigen, und bei 300 validators abrechnen. Atominhaber, die es noch nicht sind, können validators werden Unterzeichnen und Senden einer BondTx-Transaktion. Die Menge an Als Sicherheit bereitgestellte Atome müssen ungleich Null sein. Jeder kann werden a validator jederzeit, außer wenn die Größe des Stroms Der Satz validator ist größer als die maximale Anzahl von validators erlaubt. In diesem Fall ist die Transaktion nur dann gültig, wenn der Betrag von Atome ist größer als die Menge der effektiven Atome, die von ihnen gehalten werden kleinster validator, wobei effektive Atome delegierte Atome umfassen. Wenn ein neuer validator einen vorhandenen validator auf diese Weise ersetzt, das bestehende validator wird inaktiv und alle Atome und Die delegierten Atome gehen in den nichtbindenden Zustand über. Für jeden muss den validators eine Strafe auferlegt werden absichtliches oder unbeabsichtigtes Abweichen vom Sanktionen Protokoll. Einige Beweismittel sind sofort zulässig, wie z Doppelschild auf gleicher Höhe und rund, oder ein Verstoß gegen Jahr 0: 100 Jahr 1: 113 Jahr 2: 127 Jahr 3: 144 Jahr 4: 163 Jahr 5: 184 Jahr 6: 208 Jahr 7: 235 Jahr 8: 265 Jahr 9: 300 Jahr 10: 300 ...
„prevote-the-lock“ (eine Regel des Tendermint-Konsensprotokolls). Solche Beweise führen dazu, dass die validator ihren guten Ruf verliert und seine gebundenen Atome sowie sein anteiliger Anteil an tokens in Der Reservepool – zusammenfassend als „Einsatz“ bezeichnet – wird gekürzt. Manchmal sind validators aus regionalen Gründen nicht verfügbar Netzwerkstörungen, Stromausfall oder andere Gründe. Wenn überhaupt Punkt in den vergangenen ValidatorTimeoutWindow-Blöcken, ein validator Die Commit-Abstimmung ist nicht mehr im blockchain enthalten ValidatorTimeoutMaxAbsent-Zeiten, die zu validator werden inaktiv und verlieren ValidatorTimeoutPenalty (STANDARD 1 %) davon Pfahl. Manches „böswillige“ Verhalten ist nicht offensichtlich erkennbar Beweise auf dem blockchain. In diesen Fällen können die validators Koordinieren Sie Out-of-Band, um das Timeout dieser bösartigen Angriffe zu erzwingen validators, wenn ein Konsens mit Supermehrheit besteht. In Situationen, in denen der Cosmos-Hub aufgrund einer Koalition von ≥⅓ anhält Stimmrechte gehen aus dem Magazin oder in Situationen, in denen eine ≥⅓ Koalition besteht der Stimmrechte zensieren Beweise für böswilliges Verhalten Bei Eingabe von blockchain muss der Hub mit einer Hard-Fork wiederhergestellt werden Reorg-Vorschlag. (Link zu „Forks und Zensurangriffe“). Cosmos Hub-validators können jeden token-Typ oder jede Kombination akzeptieren Arten wie Gebühren für die Abwicklung einer Transaktion. Jeder validator kann subjektiv den gewünschten Wechselkurs festlegen und wählen welche Transaktionen es auch immer möchte, solange das BlockGasLimit ist nicht überschritten. Die eingezogenen Gebühren, abzüglich etwaiger unten aufgeführter Steuern, werden anteilig an die gebundenen Anteilseigner umverteilt ihre gebundenen Atome, alle ValidatorPayoutPeriod (STANDARD 1 Stunde).Von den erhobenen Transaktionsgebühren wird ReserveTax (STANDARD 2 %) übernommen Gehen Sie zum Reservepool, um den Reservepool zu vergrößern und Erhöhen Sie die Sicherheit und den Wert des Cosmos-Netzwerks. Diese Mittel können auch entsprechend den Beschlüssen verteilt werden durch das Governance-System geschaffen. Atominhaber, die ihr Stimmrecht an andere validators delegieren zahlen Sie eine Provision an den Delegierten validator. Die Kommission kann von jedem validator festgelegt werden. Die Sicherheit des Cosmos Hubs hängt von der Sicherheit des ab zugrunde liegende validators und die Wahl der Delegation durch die Delegierenden. Um die Entdeckung und frühzeitige Meldung von Fundstücken zu fördern Schwachstellen ermutigt der Cosmos Hub Hacker zur Veröffentlichung erfolgreiche Exploits über eine ReportHackTx -Transaktion, die besagt: „Dies validator wurde gehackt. Bitte senden Sie das Kopfgeld an diese Adresse.“ Auf Bei einem solchen Exploit werden validator und Delegatoren inaktiv. HackPunishmentRatio (Standard 5 %) aller Atome erhalten durchgestrichen und HackRewardRatio (Standard 5 %) aller Atome wird an die Kopfgeldadresse des Hackers belohnt. Der validator müssen die verbleibenden Atome mithilfe ihres Sicherungsschlüssels wiederherstellen. Um zu verhindern, dass diese Funktion zum Übertragen missbraucht wird nicht übertragene Atome, der Anteil der übertragenen gegenüber nicht übertragenen Atomen von validators und Delegatoren vor und nach dem ReportHackTx willen bleiben gleich, und das Hacker-Kopfgeld wird einige davon umfassen nicht gebundene Atome, falls vorhanden. Der Cosmos Hub wird von einer verteilten Organisation betrieben Dafür ist ein gut durchdachter Governance-Mechanismus erforderlich Koordinieren Sie verschiedene Änderungen an blockchain, beispielsweise an der Variablen
Parameter des Systems sowie Software-Upgrades und Verfassungsänderungen. Alle validators sind für die Abstimmung über alle Vorschläge verantwortlich. Gelingt es nicht Eine rechtzeitige Abstimmung über einen Vorschlag führt zum validator automatisch für einen Zeitraum namens deaktiviert AbsenteeismPenaltyPeriod (STANDARD 1 Woche). Delegierte erben automatisch die Stimme des Delegierten validator. Diese Abstimmung kann manuell überschrieben werden. Ungebundene Atome keine Stimme bekommen. Für jedes Angebot ist eine Anzahlung in Höhe von „MinimumProposalDeposit“ erforderlich tokens, die eine Kombination aus einem oder mehreren tokens sein können einschließlich Atome. Für jeden Vorschlag können die Wähler dafür stimmen die Anzahlung. Wenn sich mehr als die Hälfte der Wähler für die Annahme entscheiden Anzahlung (z. B. weil es sich bei dem Vorschlag um Spam handelte) geht die Anzahlung an der Reservepool, mit Ausnahme aller Atome, die verbrannt werden. Für jeden Vorschlag können die Wähler mit den folgenden Optionen abstimmen: Ja YeaWithForce Nein Nein, mit Kraft Enthalten Eine strikte Mehrheit der Ja- oder Ja-mit-Force-Stimmen (oder Nein-Stimmen) NeinMitForce-Stimmen) ist erforderlich, damit über den Vorschlag entschieden werden kann bestanden (oder als gescheitert entschieden), aber 1/3+ kann gegen die Mehrheit ein Veto einlegen Entscheidung durch Abstimmung „mit Gewalt“. Wenn eine strikte Mehrheit abgelehnt wird, Jeder wird durch den Verlust von VetoPenaltyFeeBlocks bestraft (STANDARD: Blöcke im Wert von 1 Tag) im Wert von Gebühren (außer Steuern). (die nicht betroffen ist) und der Partei, die ihr Veto mehrheitlich eingelegt hat
Die Entscheidung wird zusätzlich mit dem Verlust von VetoPenaltyAtoms bestraft (STANDARD 0,1 %) seiner Atome. Jeder der hier definierten Parameter kann mit geändert werden Übergabe eines ParameterChangeProposal. Mit dem können Atome aktiviert und Reserve-Pool-Gelder ausgegeben werden Verabschiedung eines BountyProposal. Alle anderen Vorschläge, wie etwa ein Vorschlag zur Aktualisierung des Protokolls, wird über das generische TextProposal koordiniert. Siehe den Plan. Es gab viele Neuerungen im blockchain-Konsens und Skalierbarkeit in den letzten Jahren. Dieser Abschnitt bietet eine kurze Zusammenfassung Übersicht über eine ausgewählte Anzahl wichtiger. Ein Konsens in Anwesenheit böswilliger Teilnehmer ist ein Problem stammt aus den frühen 1980er Jahren, als Leslie Lamport das Wort prägte Der Ausdruck „byzantinischer Fehler“ bezieht sich auf willkürliches Prozessverhalten vom beabsichtigten Verhalten abweicht, im Gegensatz zu einem „Crash-Fehler“, wobei ein Prozess einfach abstürzt. Es wurden frühe Lösungen gefunden für synchrone Netzwerke, bei denen es eine Obergrenze gibtNachrichtenlatenz, obwohl der praktische Nutzen auf sehr begrenzt war kontrollierte Umgebungen wie Flugzeugsteuerungen und Rechenzentren über Atomuhren synchronisiert. Es dauerte bis zum Ende der 90er Jahre war die praktische byzantinische Fehlertoleranz (PBFT) [11] als effizienter, teilweise synchroner Konsens eingeführt Algorithmus, der bis zu ⅓ der Prozesse tolerieren kann willkürlich. PBFT wurde zum Standardalgorithmus und brachte viele hervor Variationen, darunter zuletzt eine, die von IBM im Rahmen von erstellt wurde ihr Beitrag zu Hyperledger. Der Hauptvorteil des Tendermint-Konsenses über PBFT ist Folgendes Tendermint hat eine verbesserte und vereinfachte Grundstruktur, Einige davon sind das Ergebnis der Übernahme des blockchain-Paradigmas. Tendermint-Blöcke müssen in der richtigen Reihenfolge festgeschrieben werden, wodurch das vermieden wird Komplexität und Kommunikationsaufwand im Zusammenhang mit PBFT Ansichtsänderungen. In Cosmos und vielen Kryptowährungen gibt es keine Es muss berücksichtigt werden, dass Block N+i mit i >= 1 festgeschrieben werden kann, wenn Block N selbst hat sich noch nicht verpflichtet. Wenn die Bandbreite der Grund für den Block N ist nicht in einer Cosmos-Zone festgeschrieben wurde, hilft die Verwendung nicht Bandbreitenteilungsstimmen für Blöcke N+i. Wenn eine Netzwerkpartition bzw ofzine-Knoten ist also der Grund, warum Block N nicht festgeschrieben wurde N+ich werde mich sowieso nicht festlegen. Darüber hinaus ermöglicht die Stapelung von Transaktionen in Blöcken Regelmäßige Merkle-hashing des Anwendungsstatus, anstatt periodische Digests wie beim Checkpointing-Schema von PBFT. Dies ermöglicht für schnellere und nachweisbare Transaktions-Commits für Light-Clients Kommunikation zwischen blockchain. Tendermint Core enthält außerdem viele Optimierungen und Funktionen die über das hinausgehen, was in PBFT angegeben ist. Zum Beispiel, Die von validators vorgeschlagenen Blöcke sind in Teile aufgeteilt, Merkle-isiert, und so geklatscht, dass die Übertragung verbessert wird Leistung (siehe LibSwift [19] als Inspiration). Auch Tendermint Core macht keine Annahmen über Punkt-zu-Punkt
Konnektivität und funktioniert so lange wie das P2P-Netzwerk schwach verbunden. BitShares1.0 [12] ist zwar nicht das erste Mal, dass proof-of-stake (PoS) bereitgestellt wird. hat wesentlich zur Forschung und Einführung von PoS beigetragen blockchains, insbesondere solche, die als „delegierte“ PoS bekannt sind. In Bei BitShares wählen die Stakeholder „Zeugen“, die für die Ordnung verantwortlich sind und Durchführung von Transaktionen sowie „Delegierte“, die dafür verantwortlich sind Koordinieren von Software-Updates und Parameteränderungen. BitShares2.0 zielt darauf ab, eine hohe Leistung zu erreichen (100.000 TX/s, 1 s). Latenz) unter idealen Bedingungen, wobei jeder Block von einem einzelnen signiert ist Unterzeichner und Transaktionsynalität dauern etwas länger als die Blockintervall. Eine kanonische Spezifizierung befindet sich noch in der Entwicklung. Stakeholder können sich ungebührlich benehmende Zeugen entfernen oder ersetzen täglich, aber es gibt keine nennenswerten Sicherheiten von Zeugen oder Delegatoren in Form von Tendermint PoS, die eingeschnitten werden der Fall eines erfolgreichen Double-Spend-Angriffs. Aufbauend auf einem von Ripple entwickelten Ansatz, Stellar [13] reyned a Modell des Föderierten Byzantinischen Abkommens, in dem die Prozesse stattfinden Die Teilnahme am Konsens stellt keine yxed und global dar bekannter Satz. Vielmehr kuratiert jeder Prozessknoten einen oder mehrere „Quorum-Slices“, die jeweils eine Reihe vertrauenswürdiger Prozesse darstellen. A „Quorum“ in Stellar ist eine Reihe von Knoten, die at enthalten mindestens ein Quorum-Slice für jeden Knoten im Satz, so dass eine Einigung erzielt werden kann. Die Sicherheit des Stellar-Mechanismus beruht auf der Annahme dass der Schnittpunkt zweier beliebiger Quoren nicht leer ist, während die Für die Verfügbarkeit eines Knotens ist mindestens einer seiner Quorum-Slices erforderlich bestehen vollständig aus korrekten Knoten, wodurch ein Kompromiss zwischen ihnen entsteht Verwendung großer oder kleiner Quorum-Slices, die möglicherweise schwer auszugleichen sind ohne wesentliche Annahmen über Vertrauen aufzuerlegen. Letztlich,Knoten müssen dafür irgendwie geeignete Quorum-Slices auswählen eine ausreichende Fehlertoleranz aufweisen (oder überhaupt irgendwelche „intakten Knoten“) Viele der Ergebnisse der Arbeit hängen davon ab) und das Einzige Die bereitgestellte Strategie zur Sicherstellung einer solchen Konfiguration ist hierarchisch und ähnelt dem Border Gateway Protocol (BGP), das von erstklassigen ISPs im Internet zum Erstellen globaler Routing-Tabellen verwendet wird die von Browsern zur Verwaltung von TLS-Zertifikaten verwendet wird; beide berüchtigt für ihre Unsicherheit. Die Kritik im Stellar-Papier an den Tendermint-basierten Proof-of-Stake-Systemen wird durch die beschriebene token-Strategie abgemildert Hier wird ein neuer Typ von token namens Atom ausgegeben stellen Ansprüche auf künftige Honorar- und Vergütungsanteile dar. Die Der Vorteil von Tendermint-basiertem proof-of-stake ist also sein Verwandter Einfachheit und bietet dennoch ausreichende und nachweisbare Sicherheit Garantien. BitcoinNG ist eine vorgeschlagene Verbesserung zu Bitcoin, die dies ermöglichen würde für Formen der vertikalen Skalierbarkeit, wie z. B. die Erhöhung der Blockgröße, ohne die typischen negativen wirtschaftlichen Folgen mit einer solchen Änderung, etwa den unverhältnismäßig großen Auswirkungen auf kleine Bergleute. Diese Verbesserung wird durch die Trennung erreicht Wahl des Anführers aus der Transaktionsübertragung: Anführer stehen an erster Stelle von proof-of-work in „Mikroblöcken“ gewählt und dann dazu in der Lage Broadcast-Transaktionen müssen bis zu einem neuen Mikroblock festgeschrieben werden gefunden wird. Dadurch werden die erforderlichen Bandbreitenanforderungen reduziert Gewinnen Sie das PoW-Rennen und ermöglichen Sie kleinen Bergleuten einen faireren Wettbewerb. und es ermöglicht, dass Transaktionen regelmäßiger durchgeführt werden können Letzter Miner, der einen Mikroblock gefunden hat. Casper [16] ist ein vorgeschlagener proof-of-stake Konsensalgorithmus für Ethereum. Seine Hauptbetriebsart ist „Konsens-by-Wette“. Von Lassen Sie validators iterativ darauf wetten, welcher Block ihrer Meinung nach erfolgreich sein wird
werden auf der Grundlage der anderen Wetten in den blockchain eingebunden Soweit sie es bisher gesehen haben, kann irgendwann Gleichheit erreicht werden. Link. Dies ist ein aktives Forschungsgebiet des Casper-Teams. Die Die Herausforderung besteht darin, einen Wettmechanismus zu konstruieren, der dies kann hat sich als evolutionär stabile Strategie erwiesen. Der Hauptvorteil von Casper bietet im Vergleich zu Tendermint möglicherweise „Verfügbarkeit“. Überkonsistenz“ – für den Konsens ist kein Quorum von >⅔ erforderlich Stimmmacht – vielleicht auf Kosten der Commit-Geschwindigkeit oder Komplexität der Implementierung. Das Interledger-Protokoll [14] ist nicht unbedingt eine Skalierbarkeitslösung. Es Bietet eine Ad-hoc-Interoperation zwischen verschiedenen Ledgern Systeme durch ein lose gekoppeltes bilaterales Beziehungsnetzwerk. Wie beim Lightning Network besteht der Zweck von ILP darin, zu erleichtern Zahlungen, aber es konzentriert sich speziell auf Zahlungen über unterschiedliche hinweg Ledger-Typen und erweitert den atomaren Transaktionsmechanismus auf umfassen nicht nur hash-Sperren, sondern auch ein Quorum von Notaren (genannt das Atomtransportprotokoll). Der letztere Mechanismus für Die Durchsetzung der Atomizität bei Transaktionen zwischen Hauptbüchern ähnelt Der Light-Client-SPV-Mechanismus von Tendermint, also eine Illustration davon Die Unterscheidung zwischen ILP und Cosmos/IBC ist gerechtfertigt und unten angegeben. 1. Die Notare eines Connectors in ILP unterstützen keine Mitgliedschaft Änderungen und erlauben keine flexible Gewichtung dazwischen Notare. Andererseits ist IBC speziell dafür konzipiert blockchains, wobei validators unterschiedliche Gewichte haben können, und wobei sich die Mitgliedschaft im Laufe des Jahres ändern kann blockchain. 2. Wie im Lightning Network der Zahlungsempfänger bei ILP muss online sein, um eine Bestätigung an den Absender zurückzusenden. In einemtoken Übertragung über IBC, den validator-Satz des Empfängers blockchain ist für die Bestätigung verantwortlich, nicht die empfangenden Benutzer. 3. Der auffälligste Unterschied besteht darin, dass dies bei den ILP-Anschlüssen nicht der Fall ist Verantwortlicher oder verantwortlicher Staat für Zahlungen, wohingegen in Cosmos die validators eines Hubs die Autorität von sind der Staat der IBC token Übertragungen sowie die Autorität der Anzahl der tokens, die von jeder Zone gehalten werden (jedoch nicht die Menge an tokens, die von jedem Konto innerhalb einer Zone gehalten werden). Das ist das grundlegende Innovation, die eine sichere Asymmetrischkeit ermöglicht Übertragung von tokens von Zone zu Zone; das Analogon zu ILPs Der Connector in Cosmos ist dauerhaft und maximal sicher blockchain Hauptbuch, der Cosmos Hub. 4. Die Inter-Ledger-Zahlungen in ILP müssen durch eine abgesichert sein Börsenorderbuch, da keine asymmetrische Übertragung erfolgt Münzen von einem Hauptbuch zum anderen, nur die Übertragung von Werten oder Marktäquivalente. Sidechains [15] sind ein vorgeschlagener Mechanismus zur Skalierung des Bitcoin Netzwerk über alternative blockchains, an die „zweiseitig gekoppelt“ ist die Bitcoin blockchain. (Zwei-Wege-Pegging entspricht Überbrückung. In Cosmos sagen wir „Bridging“, um es vom Marketpegging zu unterscheiden. Sidechains ermöglichen die effektive Bewegung von Bitcoins aus dem Bitcoin blockchain zur Sidechain und zurück und berücksichtigen Experimentieren mit neuen Funktionen auf der Sidechain. Wie in der Cosmos Hub, die Sidechain und Bitcoin dienen als Light-Clients von einander unter Verwendung von SPV-Proofs, um zu bestimmen, wann Münzen sein sollten auf die Sidechain und zurück übertragen. Natürlich, seit Bitcoin verwendet proof-of-work, Sidechains rund um Bitcoin leiden darunter von den vielen Problemen und Risiken von proof-of-work als Konsensmechanismus. Darüber hinaus ist dies ein Bitcoin-Maximalist Lösung, die eine Vielzahl von tokens und nicht nativ unterstützt
Interzonen-Netzwerktopologie wie Cosmos. Das heißt, der Kern Der Mechanismus des Zwei-Wege-Stifts ist im Prinzip derselbe im Netzwerk Cosmos beschäftigt. Ethereum erforscht derzeit verschiedene Strategien um den Zustand der zu adressierenden Ethereum blockchain zu teilen Skalierbarkeitsanforderungen. Ziel dieser Bemühungen ist die Aufrechterhaltung der Abstraktionsschicht, die von der aktuellen virtuellen Maschine Ethereum angeboten wird über den gemeinsamen Zustandsraum hinweg. Mehrere Forschungsanstrengungen sind derzeit im Gange. [18][22] Cosmos und Ethereum 2.0 Mauve [22] verfolgen unterschiedliche Designziele. Bei Cosmos geht es speziell um tokens. Bei Mauve geht es um Skalierung allgemeine Berechnung. Cosmos ist nicht an EVM gebunden, sodass dies auch für verschiedene VMs möglich ist zusammenarbeiten. Mit Cosmos kann der Zonenersteller bestimmen, wer die validiert Zone. Jeder kann eine neue Zone in Cosmos starten (es sei denn, Governance entscheidet anders). Der Hub isoliert Zonenausfälle, sodass globale token-Invarianten vorhanden sind konserviert. Das Lightning Network ist ein vorgeschlagenes token Übertragungsnetzwerk Betrieb auf einer Ebene über der Bitcoin blockchain (und anderen öffentlichen blockchains), was Verbesserungen um viele Größenordnungen ermöglicht im Transaktionsdurchsatz, indem der Großteil der Transaktionen verschoben wird außerhalb des Konsensbuchs in sogenannte „Zahlungskanäle“ übertragen.Möglich wird dies durch On-Chain-Kryptowährungsskripte, die Ermöglichen Sie den Parteien den Abschluss bilateraler Stateful-Verträge, bei denen die Der Status kann durch die gemeinsame Nutzung digitaler Signaturen und Verträge aktualisiert werden kann durch abschließende Veröffentlichung von Beweisen auf dem blockchain abgeschlossen werden, a Mechanismus, der erstmals durch kettenübergreifende Atomaustausche populär gemacht wurde. Von Eröffnung von Zahlungskanälen mit vielen Parteien, Teilnehmern an der Lightning Network kann zu Brennpunkten für das Routing werden Zahlungen anderer, was zu einem vollständig vernetzten Zahlungskanal führt Netzwerk, auf Kosten der Kapitalbindung an Zahlungskanäle. Das Lightning-Netzwerk kann sich jedoch auch problemlos über das gesamte Netzwerk erstrecken mehrere unabhängige blockchains, um die Wertübertragung zu ermöglichen Über einen Devisenmarkt kann es nicht asymmetrisch genutzt werden tokens von einem blockchain auf einen anderen übertragen. Der Hauptvorteil Der Zweck des hier beschriebenen Netzwerks Cosmos besteht darin, eine solche Direktübertragung zu ermöglichen token Überweisungen. Das heißt, wir erwarten Zahlungskanäle und das Lightning Network wird zusammen mit unserem weit verbreitet sein token-Übertragungsmechanismus aus Kosteneinsparungs- und Datenschutzgründen. Segregated Witness ist ein Link zu einem Bitcoin Verbesserungsvorschlag zielt darauf ab, den Transaktionsdurchsatz pro Block um das Zweifache oder Dreifache zu erhöhen. Gleichzeitig wird die Blocksynchronisierung für neue Knoten beschleunigt. Die Brillanz dieser Lösung liegt in der Art und Weise, wie sie innerhalb der funktioniert Einschränkungen des aktuellen Protokolls von Bitcoin und ermöglicht einen Soft-Fork Upgrade (d. h. Clients mit älteren Versionen der Software werden dies tun). nach dem Upgrade weiterhin funktionieren). Tendermint, ein neues Protokoll, unterliegt keinen Designbeschränkungen und weist daher eine andere Skalierung auf Prioritäten. Tendermint verwendet hauptsächlich einen BFT Round-Robin-Algorithmus basierend auf kryptografischen Signaturen statt Mining, was Ermöglicht trivialerweise eine horizontale Skalierung durch mehrere Parallelen blockchains, während regelmäßige, häufigere Block-Commits dies zulassen auch vertikale Skalierung.
Consensus et détails techniques
Un protocole de consensus bien conçu devrait fournir garanties en cas de dépassement de la capacité de tolérance et le consensus échoue. Ceci est particulièrement nécessaire dans le domaine économique systèmes, où le comportement byzantin peut avoir des conséquences financières substantielles récompense. La plus importante de ces garanties est une forme de responsabilité fork, où les processus qui ont conduit au consensus échouer (c'est-à-dire avoir amené les clients du protocole à accepter des valeurs différentes - un fourchette) peuvent être identifiés et sanctionnés selon les règles de la protocole ou, éventuellement, le système juridique. Lorsque le système juridique est peu fiables ou excessivement coûteux à invoquer, les validator peuvent être obligés de faire des dépôts de garantie pour pouvoir participer, et ceux les dépôts peuvent être révoqués ou réduits en cas de comportement malveillant détecté [10]. Notez que cela diffère de Bitcoin, où le forking est un phénomène régulier en raison de l'asynchronie du réseau et de la nature probabiliste du ynding collisions partielles hash. Puisque dans de nombreux cas, un fork malveillant est impossible à distinguer d'un fork en raison de l'asynchronie, Bitcoin ne peut pas mettre en œuvre de manière fiable la responsabilité fork, autre que la responsabilité implicite coût d’opportunité payé par les mineurs pour l’exploitation d’un bloc orphelin. Nous appelons les étapes de vote PreVote et PreCommit. Un vote peut être pour un bloc particulier ou pour Nil. Nous appelons une collection de >⅔ PreVotes pour un seul bloc dans le même tour, une Polka et une collection de >⅔ PreCommits pour un seul bloc au cours du même tour d’un Commit. Si >⅔ PreCommit pour Nil dans le même tour, ils passent au suivant rond. Notez qu’un déterminisme strict dans le protocole entraîne une faible hypothèse de synchronisation car les leaders défectueux doivent être détectés et
sauté. Ainsi, les validator attendent un certain temps, TimeoutPropose, avant de pré-voter Nil, et la valeur de TimeoutPropose augmente à chaque tour. Progression à travers le reste d'un tour est entièrement asynchrone, dans la mesure où la progression n'est que effectué une fois qu'un validator entend de >⅔ du réseau. En pratique, il faudrait un adversaire extrêmement puissant pour contrecarrer indéfiniment l'hypothèse de synchronisation faible (ce qui fait que le consensus ne parvient pas à jamais commettre un blocage), et cela peut être rendu encore plus difficile en utilisant des valeurs aléatoires de TimeoutPropose sur chaque validator. Un ensemble supplémentaire de contraintes, ou règles de verrouillage, garantit que le Le réseau finira par engager un seul bloc à chaque hauteur. N'importe lequel tentative malveillante de provoquer la validation de plusieurs blocs à une hauteur donnée peut être identifié. Tout d'abord, un PreCommit pour un bloc doit être accompagné d'une justification, sous la forme d'une Polka pour ce bloc. Si le validator a déjà PreCommit un bloc au tour R_1, nous disent qu'ils sont verrouillés sur ce bloc, et la Polka avait l'habitude de justifier le le nouveau PreCommit au tour R_2 doit arriver dans un tour R_polka où R_1 < R_polka <= R_2. Deuxièmement, les validator doivent proposer et/ou PréVote le bloc sur lequel ils sont verrouillés. Ensemble, ces conditions garantissent qu'un validator ne fait pas de PreCommit sans preuves suffisantes comme justification, et que validators qui ont PreCommit ne peut déjà pas contribuer aux preuves à PreCommit autre chose. Cela garantit à la fois la sécurité et la vivacité du algorithme de consensus. Les détails complets du protocole sont décrits ici. La nécessité de synchroniser tous les en-têtes de bloc est éliminée dans TendermintPoS car l'existence d'une chaîne alternative (un fork) signifie ≥⅓ de la mise sous caution peut être réduite. Bien sûr, puisque couper nécessite que quelqu'un partage la preuve d'un fork, les clients légers devraient stocker tout bloc-hash valide qu'il voit. De plus, les clients légerspourrait périodiquement rester synchronisé avec les modifications apportées à l'ensemble validator, dans afin d'éviter les attaques à longue portée (mais d'autres solutions sont possibles). Dans un esprit similaire à Ethereum, Tendermint permet aux applications de intégrer une racine Merkle globale hash dans chaque bloc, permettant facilement requêtes d'état vérifiables pour des éléments tels que les soldes des comptes, la valeur stocké dans un contrat, ou l’existence d’une transaction non dépensée sortie, en fonction de la nature de l’application. En supposant un ensemble de réseaux de diffusion suffisamment résilients et un ensemble validator statique, n'importe quelle fourchette du blockchain peut être détecté et les dépôts des validator incriminés réduits. Ceci l'innovation, suggérée pour la première fois par Vitalik Buterin début 2014, résout le problème sans enjeu des autres proof-of-stake crypto-monnaies (voir Travaux connexes). Cependant, puisque validator définit doit pouvoir modifier, sur une longue période de temps, l'original Les validator peuvent tous devenir déliés et seraient donc libres de créer une nouvelle chaîne à partir du bloc Genesis, sans aucun coût car ils n'ont plus de dépôts bloqués. Cette attaque a eu lieu connue sous le nom d'attaque à longue portée (LRA), par opposition à une attaque à courte portée. Attaque à distance, où les validator qui sont actuellement liés provoquent un fork et sont donc punissables (en supposant qu'un fork soit responsable BFT algorithme comme le consensus Tendermint). Les attaques à longue portée sont souvent considéré comme un coup critique porté à proof-of-stake. Heureusement, la LRA peut être atténuée comme suit. D'abord, pour un validator pour se désengager (récupérant ainsi leur dépôt de garantie et ne percevant plus de frais pour participer au consensus), le le dépôt doit être rendu intransférable pendant un certain temps connue sous le nom de « période de détachement », qui peut être de l’ordre de semaines ou mois. Deuxièmement, pour qu'un client léger soit sécurisé, la première année chaque fois qu'il se connecte au réseau, il doit vérifier un bloc récent-hash contre une source fiable, ou de préférence plusieurs sources. Ceci
Cette condition est parfois qualifiée de « subjectivité faible ». Enfin, pour rester sécurisé, il doit se synchroniser avec le dernier validator défini sur au moins aussi souvent que la durée de la période de détachement. Ceci garantit que le client léger est informé des modifications apportées au validator fixé avant qu'un validator voit son capital délié et donc plus en jeu, ce qui lui permettrait de tromper le client en effectuant une attaque à longue portée en créant de nouveaux blocs en commençant à un hauteur où il a été collé (en supposant qu'il contrôle suffisamment plusieurs des premières clés privées). Il convient de noter que vaincre la LRA de cette manière nécessite une refonte du système. le modèle de sécurité d'origine de proof-of-work. Dans PoW, c'est supposé qu'un client léger peut se synchroniser avec la hauteur actuelle à partir du bloc Genesis de confiance à tout moment simplement en traitant la preuve de travail dans chaque en-tête de bloc. Toutefois, pour vaincre la LRA, nous exiger qu'un client léger se connecte avec une certaine régularité pour suivre les modifications dans l'ensemble validator, et que la première fois qu'ils lorsqu'ils se connectent, ils doivent être particulièrement attentifs à s'authentifier ce qu'ils entendent du réseau par rapport à des sources fiables. De bien sûr, cette dernière exigence est similaire à celle de Bitcoin, où le protocole et le logiciel doivent également être obtenus auprès d'un source. La méthode ci-dessus pour prévenir l’ARL est bien adaptée aux validator et les nœuds complets d'un blockchain alimenté par Tendermint, car ceux-ci les nœuds sont censés rester connectés au réseau. Le La méthode convient également aux clients légers dont on peut s'attendre à synchronisez-vous fréquemment avec le réseau. Cependant, pour les clients légers qui ne sont pas censés avoir un accès fréquent à Internet ou au blockchain réseau, encore une autre solution peut être utilisée pour surmonter la LRA. Les non-titulaires de validator token peuvent publier leurs token comme garantie avec une période de détachement très longue (par exemple beaucoup plus longue que la période de détachement pour validators) et servir des clients légers avec une méthode secondaire d'attestation de la validité des informations actuelles et bloc passé-hashes. Bien que ces token ne comptent pas pour le sécurité du consensus du blockchain, ils peuvent néanmoinsoffrir de solides garanties aux clients légers. Si bloc historique-hash les requêtes étaient prises en charge dans Ethereum, n'importe qui pouvait lier son tokens dans un smart contract spécialement conçu et fournir services d'attestation payants, créant ainsi un marché pour la sécurité des clients légers LRA. En raison de la définition d’un block commit, toute coalition ≥⅓ de le pouvoir de vote peut arrêter le blockchain en sortant du zine ou non diffuser leurs votes. Une telle coalition peut également censurer transactions particulières en rejetant les blocs qui incluent ces transactions, même si cela entraînerait une proportion importante de propositions de blocs seraient rejetées, ce qui ralentirait le rythme de validations de bloc du blockchain, réduisant ainsi son utilité et sa valeur. La coalition malveillante pourrait également diffuser les votes au compte-goutte afin quant à broyer, le bloc blockchain s'engage à s'arrêter presque ou à s'engager dans toute combinaison de ces attaques. Enfin, cela peut provoquer le blockchain à fork, en double-signant ou en violant le verrouillage règles. Si un adversaire actif à l’échelle mondiale était également impliqué, il pourrait diviser le réseau de telle manière qu'il puisse sembler que le mauvais un sous-ensemble de validators était responsable du ralentissement. Ce n'est pas juste une limitation de Tendermint, mais plutôt une limitation de tous protocoles de consensus dont le réseau est potentiellement contrôlé par un adversaire actif. Pour ces types d'attaques, un sous-ensemble des validator doit se coordonner par des moyens externes pour signer une proposition de réorganisation qui choisit un fork (et toute preuve de celui-ci) et le sous-ensemble initial de validators avec leurs signatures. Les validateurs qui signent une telle proposition de réorganisation renoncent à leur garantie sur tous les autres forks. Les clients devraient vérifier les signatures sur la proposition de réorganisation, vérifier toute preuve, et porter un jugement ou demander à l'utilisateur final de prendre une décision. Pour Par exemple, une application de portefeuille téléphonique peut demander à l'utilisateur un code de sécurité
avertissement, alors qu'un réfrigérateur peut accepter toute proposition de réorganisation signé par +½ des validator originaux avec droit de vote. Aucun algorithme byzantin tolérant aux pannes non synchrone ne peut venir au consensus lorsque ≥⅓ des droits de vote sont malhonnêtes, mais une fourchette suppose que ≥⅓ des voix ont déjà été malhonnêtes par double signature ou changement de serrure sans justification. Alors, je signe la proposition de réorganisation est un problème de coordination qui ne peut pas être résolu par n'importe quel protocole non synchrone (c'est-à-dire automatiquement, et sans faire d'hypothèses sur la fiabilité du réseau sous-jacent). Pour l’instant, nous laissons le problème de la coordination des propositions de réorganisation à la coordination humaine via le consensus social. sur les médias Internet. Les validateurs doivent veiller à ce qu'il y ait il n'y a plus de partitions réseau avant la signature d'une proposition de réorganisation, afin d'éviter les situations dans lesquelles deux propositions de réorganisation contradictoires sont signées. En supposant que le support et le protocole de coordination externe soient robuste, il s'ensuit que les forks sont moins préoccupants que la censure attaques. En plus des forks et de la censure, qui nécessitent ≥⅓ byzantin pouvoir de vote, une coalition de >⅔ pouvoir de vote peut s'engager état arbitraire et invalide. Ceci est caractéristique de tout (BFT) système de consensus. Contrairement à la double signature, qui crée des forks avec des preuves facilement vérifiables, détectant l'engagement d'un un état invalide nécessite que des pairs non validateurs vérifient des blocs entiers, ce qui implique qu'ils conservent une copie locale de l'état et exécutent chaque transaction, calculant indépendamment la racine d'état pour eux-mêmes. Une fois détecté, la seule façon de gérer une telle panne passe par le consensus social. Par exemple, dans les situations où Bitcoin a échoué, que ce soit en raison de bugs logiciels (comme en mars 2013), ou commettant un état invalide en raison du comportement byzantin de mineurs (comme en juillet 2015), la communauté bien connectée de entreprises, développeurs, mineurs et autres organisations établi un consensus social sur les actions manuellesrequis par les participants pour guérir le réseau. De plus, puisque On peut s'attendre à ce que validators d'un Tendermint blockchain soient identifiable, l'engagement d'un état invalide peut même être punissable par la loi ou par une jurisprudence externe, si vous le souhaitez. ABCI se compose de 3 types de messages principaux qui sont transmis à partir de le cœur de l’application. L'application répond avec messages de réponse correspondants. Le message AppendTx est le cheval de bataille de l'application. Chacun La transaction dans le blockchain est livrée avec ce message. Le l'application doit valider chaque transaction reçue avec le Message AppendTx contre l'état actuel, le protocole d'application, et les informations d'identification cryptographiques de la transaction. Un validé la transaction doit ensuite mettre à jour l'état de l'application - en en liant une valeur dans un magasin de valeurs clés, ou en mettant à jour le UTXO base de données. Le message CheckTx est similaire à AppendTx, mais il est uniquement destiné à valider les transactions. Vérifications de l'année du pool de mémoire de Tendermint Core la validité d'une transaction avec CheckTx, et uniquement les relais valides transactions avec ses pairs. Les applications peuvent vérifier une incrémentation nonce dans la transaction et renvoie une erreur lors de CheckTx si le nonce est ancien. Le message Commit est utilisé pour calculer un chiffrement engagement envers l’état actuel de l’application, à placer dans le en-tête de bloc suivant. Cela a des propriétés pratiques. Les incohérences dans la mise à jour de cet état apparaîtront désormais sous la forme blockchain forks qui capture toute une classe de programmation erreurs. Cela simplifie également le développement de logiciels légers et sécurisés. clients, car les preuves Merkle-hash peuvent être vérifiées en vérifiant par rapport le bloc-hash, et le bloc-hash est signé par un quorum de validators (par droit de vote).
Des messages ABCI supplémentaires permettent à l'application de suivre et modifiez l'ensemble validator, et pour que l'application reçoive le bloquer les informations, telles que la hauteur et les votes de validation. Les requêtes/réponses ABCI sont de simples messages Protobuf. Vérifier le schéma yle. Arguments : Data ([]byte) : les octets de la transaction de la demande Retours : Code (uint32) : code de réponse Données ([]octet) : octets de résultat, le cas échéant Journal (chaîne) : message de débogage ou d'erreur Utilisation :
Ajoutez et exécutez une transaction. Si la transaction est valide, renvoie CodeType.OK Arguments : Data ([]byte) : les octets de la transaction de la demande Retours : Code (uint32) : code de réponse Données ([]octet) : octets de résultat, le cas échéant Journal (chaîne) : message de débogage ou d'erreur Utilisation :
Valider une transaction. Ce message ne doit pas muter le état. Les transactions sont exécutées pour la première fois via CheckTx avant diffusé aux pairs dans la couche mempool. Vous pouvez faire CheckTx semi-stateful et effacez l'état lors de la validation ou BeginBlock , pour permettre des séquences de transactions dépendantes dans le même bloc.
Retours : Données ([]octet) : racine Merkle hash Journal (chaîne) : message de débogage ou d'erreur Utilisation :
Renvoie une racine Merkle hash de l'état de l'application. Arguments : Data ([]byte) : les octets de la requête Retours : Code (uint32) : code de réponse Data ([]byte) : octets de réponse à la requête Journal (chaîne) : message de débogage ou d'erreur Utilisation :
Videz la file d'attente de réponses. Applications qui implémentent types.L’application n’a pas besoin d’implémenter ce message – c’est gérés par le projet. Retours : Data ([]byte) : les octets d'informations Utilisation :
Renvoie des informations sur l’état de l’application. Demande spécifique. Arguments : Clé (chaîne) : Clé à définir
Value (string) : valeur à définir pour la clé Retours : Journal (chaîne) : message de débogage ou d'erreur Utilisation :
Définissez les options de l'application. Par ex. Key="mode", Value="mempool" pour une connexion mempool, ou Key="mode", Value="consensus" pour une connexion consensuelle. Les autres options sont spécifiques à l'application. Arguments : Validateurs ([]Validator) : Genèse initiale-validators Utilisation :
Appelé une fois lors de la genèse Arguments : Height (uint64) : la hauteur du bloc qui commence Utilisation :
Signale le début d’un nouveau bloc. Appelé avant tout AppendTxs. Arguments : Height (uint64) : hauteur du bloc qui s'est terminé Retours : Validateurs ([]Validator) : validators modifiés par de nouveaux pouvoirs de vote (0 pour supprimer) Utilisation :
Signale la fin d’un bloc. Appelé avant chaque commit après tout opérations Consultez le référentiel ABCI pour plus de détails.Il existe plusieurs raisons pour lesquelles un expéditeur peut souhaiter que accusé de réception d'un paquet par la chaîne réceptrice. Par exemple, l'expéditeur peut ne pas connaître l'état du chaîne de destination, si l'on s'attend à ce qu'elle soit défectueuse. Ou bien, l'expéditeur peut souhaitez imposer un délai d'attente au paquet (avec le paramètre MaxHeight rendement des paquets), alors que n'importe quelle chaîne de destination peut souffrir d'une attaque par déni de service avec une augmentation soudaine du nombre de messages entrants. paquets. Dans ces cas, l'expéditeur peut exiger un accusé de réception en définissant l'état initial du paquet sur AckPending . Ensuite, c'est le la responsabilité de la chaîne de réception de confirmer la livraison en incluant un en abrégé IBCPacket dans l'application Merkle hash. Tout d'abord, un IBCBlockCommit et un IBCPacketTx sont publiés sur « Hub ». qui prouve l'existence d'un IBCPacket sur la « Zone1 ». Dis ça IBCPacketTx a la valeur suivante : DeChainID : "Zone1" FromBlockHeight : 100 (disons) Paquet : un IBCPaquet :
En-tête : un IBCPacketHeader :
SrcChainID : "Zone1"
DstChainID : "Zone2"
Nombre : 200 (disons)
Statut : Accusé de réception en attente
Type : « pièce de monnaie »
MaxHeight : 350 (disons que « Hub » est actuellement à la hauteur de 300)
Charge utile :
FromBlockHeight : 400 (disons)
Paquet : un IBCPacket :
En-tête : un IBCPacketHeader :
SrcChainID : "Zone1"
DstChainID : "Zone2"
Numéro : 200
Statut : AcquitEnvoyé
Type : « pièce de monnaie »
Hauteur maximale : 350
PayloadHash :
statut de "Zone2" par le bloc 350, il aurait défini le statut automatiquement sur Timeout . Cette preuve d'un délai d'attente peut obtenir posté sur « Zone1 », et tous les token peuvent être renvoyés. Il existe deux types de Merkle tree pris en charge dans le Écosystème Tendermint/Cosmos : l'arbre simple et l'IAVL+ Arbre. L'arbre simple est un Merkle tree pour une liste statique d'éléments. Si le le nombre d'éléments n'est pas une puissance de deux, certaines feuilles seront à différents niveaux. Simple Tree essaie de garder les deux côtés de l'arbre même hauteur, mais la gauche peut être plus grande. Ce Merkle tree est utilisé pour Merkle-iser les transactions d'un bloc, et le niveau supérieur éléments de la racine de l’état de l’application.Le but de la structure de données IAVL+ est de fournir des stockage des paires clé-valeur dans l'état de l'application de telle sorte qu'un La racine déterministe de Merkle hash peut être calculée efficacement. Le l'arbre est équilibré à l'aide d'une variante de l'algorithme AVL, et tout les opérations sont O(log(n)). Dans un arbre AVL, les hauteurs des deux sous-arbres enfants de n'importe quel nœud diffèrent d’au plus un. Chaque fois que cette condition est violée lors d'un mise à jour, l'arborescence est rééquilibrée en créant O(log(n)) de nouveaux nœuds qui pointez vers les nœuds non modifiés de l’ancien arbre. Dans l'AVL d'origine algorithme, les nœuds internes peuvent également contenir des paires clé-valeur. L'AVL+ (notez le plus) modifie l'algorithme AVL pour conserver tout valeurs sur les nœuds feuilles, tout en utilisant uniquement des nœuds de branche pour stocker les clés. Cela simplifie l'algorithme tout en gardant la trace merkle hash court. L’arbre AVL+ est analogue aux essais de Patricia de Ethereum. Il y a compromis. Les clés n'ont pas besoin d'être hashed avant d'être insérées dans Arbres IAVL+, ce qui permet une itération ordonnée plus rapide dans la clé espace qui peut bénéficier à certaines applications. La logique est plus simple à implémenter, ne nécessitant que deux types de nœuds : les nœuds internes et nœuds feuilles. La preuve de Merkle est en moyenne plus courte, étant une * / \ / \ / \ / \ * * / \ / \ / \ / \ / \ / \ * * * h6 / \ / \ / \ h0 h1 h2 h3 h4 h5 Un SimpleTree avec 7 éléments
arbre binaire équilibré. D'autre part, la racine Merkle d'un L’arborescence IAVL+ dépend de l’ordre des mises à jour. Nous prendrons en charge des Merkle tree supplémentaires efficaces, tels que Patricia Trie de Ethereum lorsque la variante binaire devient disponible. Dans l'implémentation canonique, les transactions sont diffusées vers le Application hub Cosmos via l'interface ABCI. Le Cosmos Hub acceptera un certain nombre de transactions principales types, notamment SendTx , BondTx , UnbondTx , ReportHackTx , SlashTx , BurnAtomTx , ProposalCreateTx et ProposalVoteTx , qui sont assez explicites et seront documentés dans un révision future de cet article. Nous documentons ici les deux principaux types de transactions pour IBC : IBCBlockCommitTx et IBCPacketTx . Une transaction IBCBlockCommitTx est composée de : ChainID (string) : ID du blockchain BlockHash ([]byte) : le bloc-hash octets, la racine Merkle qui comprend l'application-hash BlockPartsHeader (PartSetHeader) : l'en-tête de l'ensemble partiel de bloc octets, uniquement nécessaires pour vérifier les signatures de vote BlockHeight (int) : la hauteur du commit BlockRound (int) : Le tour du commit Commit ([]Vote) : le >⅔ Tendermint Precommit vote qui comprendre un bloc de validation ValidatorsHash ([]byte) : une racine Merkle-tree hash du nouveau validator ensemble
ValidatorsHashProof (SimpleProof) : Un SimpleTree Merkleproof pour prouver le ValidatorsHash par rapport au BlockHash
AppHash ([]byte) : une racine IAVLTree Merkle-tree hash du
état de l'application
AppHashProof (SimpleProof) : un SimpleTree Merkle-proof pour
prouver l'AppHash contre le BlockHash
Un IBCPacket est composé de :
En-tête (IBCPacketHeader) : l'en-tête du paquet
Payload ([]byte) : octets de la charge utile du paquet. Facultatif
PayloadHash ([]byte) : le hash pour les octets du paquet.
Facultatif
L'un des éléments suivants : Payload ou PayloadHash doit être présent. Le hash
d'un IBCPacket est une simple racine Merkle des deux éléments, Header
et Charge utile . Un IBCPacket sans la charge utile complète est appelé un
paquet abrégé.
Un IBCPacketHeader est composé de :
SrcChainID (string) : ID source blockchain
DstChainID (string) : ID de destination blockchain
Number (int) : un numéro unique pour tous les paquets
Statut (énumération) : peut être AckPending , AckSent ,
AckReceived , NoAck ou Timeout
Type (chaîne) : les types dépendent de l'application. Cosmos
réserve le type de paquet "coin"
MaxHeight (int) : si le statut n'est pas NoAckWanted ou AckReceived
à cette hauteur, le statut devient Timeout . Facultatif
Une transaction IBCPacketTx est composée de :FromChainID (string) : ID du blockchain qui est
fournir ce paquet ; pas nécessairement la source
FromBlockHeight (int) : hauteur blockchain à laquelle le
Le paquet suivant est inclus (Merkle-isé) dans le bloc-hash de
la chaîne d'approvisionnement
Paquet (IBCPacket) : Un paquet de données, dont le statut peut être un
de AckPending , AckSent , AckReceived , NoAck ou Timeout
PacketProof (IAVLProof) : un IAVLTree Merkle-proof pour prouver
le hash du paquet par rapport à l'AppHash de la chaîne source à
hauteur donnée
La séquence d'envoi d'un paquet de « Zone1 » à « Zone2 »
via le « Hub » est illustré dans la {Figure X}. Tout d'abord, un IBCPacketTx
prouve à "Hub" que le paquet est inclus dans l'état de l'application de
"Zone1". Ensuite, un autre IBCPacketTx prouve à « Zone2 » que le
Le paquet est inclus dans l’état de l’application de « Hub ». Pendant ce temps
procédure, les rendements IBCPacket sont identiques : le SrcChainID est
toujours "Zone1" et DstChainID est toujours "Zone2".
Le PacketProof doit avoir le chemin d'accès correct à l'épreuve de Merkle, comme
suit :
Lorsque « Zone1 » souhaite envoyer un paquet à « Zone2 » via « Hub »,
les données IBCPacket sont identiques, que le paquet soit merkleisé sur la « Zone1 », le « Hub » ou la « Zone2 ». Le seul rendement mutable est
Statut pour le suivi de la livraison.
Nous remercions nos amis et nos pairs pour leur aide dans la conceptualisation,
examiner et fournir un soutien à notre travail avec Tendermint
et Cosmos.
IBC/
Zaki Manian de SkuChain a fourni beaucoup d'aide pour le formatage et libellé, en particulier dans la section ABCI Jehan Tremback d'Althea et Dustin Byington pour leur aide itérations initiales Andrew Miller de Honey Badger pour ses commentaires sur le consensus Greg Slepak pour ses commentaires sur le consensus et la formulation Merci également à Bill Gleim et Seunghwan Han pour divers cotisations. Votre nom et votre organisation ici pour votre contribution 1 Bitcoin : https://bitcoin.org/bitcoin.pdf 2 ZéroCash : http://zerocash-project.org/paper 3 Ethereum : https://github.com/ethereum/wiki/wiki/WhitePaper 4 LeDAO : https://download.slock.it/public/DAO/WhitePaper.pdf 5 Témoin séparé : https://github.com/bitcoin/bips/blob/master/bip0141.mediawiki 6 BitcoinNG : https://arxiv.org/pdf/1510.02037v2.pdf 7 Réseau Lightning : https://lightning.network/lightningnetwork-paper-DRAFT-0.5.pdf 8Menthe tendre : https://github.com/tendermint/tendermint/wiki 9 Impossibilité FLP : https://groups.csail.mit.edu/tds/papers/Lynch/jacm85.pdf dixSlasheur : https://blog.ethereum.org/2014/01/15/slasher-apunitive-proof-of-stake-algorithm/ 11 PBFT : http://pmg.csail.mit.edu/papers/osdi99.pdf 12 BitShares : https://bitshares.org/technology/delegatedproof-of-stake-consensus/
13 Stellar : https://www.stellar.org/papers/stellar-consensusprotocol.pdf 14 Grand livre intermédiaire : https://interledger.org/rfcs/0001-interledgerarchitecture/ 15 chaînes latérales : https://blockstream.com/sidechains.pdf 16Casper : https://blog.ethereum.org/2015/08/01/introducing-casperfriendly-ghost/ 17 ABCI : https://github.com/tendermint/abci 18 Ethereum Partage : https://github.com/ethereum/EIPs/issues/53 19 LibSwift : http://www.ds.ewi.tudelft.nl/yleadmin/pds/papers/Performa nceAnalysisOfLibswift.pdf 20 DLS : http://groups.csail.mit.edu/tds/papers/Lynch/jacm88.pdf 21 Sécurité des clients légers : https://en.bitcoin.it/wiki/Thin_Client_Security 22 Ethereum 2.0 Papier Mauve : http://vitalik.ca/yles/mauve_paper.html https://www.docdroid.net/ec7xGzs/314477721-ethereumplatform-review-opportunities-and-challenges-for-privateand-consortium-blockchains.pdf.html
³ è
Konsens und technische Details
Ein gut gestaltetes Konsensprotokoll sollte einiges bieten Garantien für den Fall, dass die Toleranzkapazität überschritten wird und der Konsens scheitert. Dies ist insbesondere in der Wirtschaft notwendig Systeme, in denen byzantinisches Verhalten erhebliche finanzielle Auswirkungen haben kann Belohnung. Die wichtigste Garantie dieser Art ist eine Form der Rechenschaftspflicht, bei der die Prozesse, die zum Konsens geführt haben, berücksichtigt werden scheitern (d. h. dazu geführt, dass Clients des Protokolls unterschiedliche Werte akzeptieren - a Fork) können nach den Regeln der identifiziert und bestraft werden Protokoll oder möglicherweise das Rechtssystem. Wenn das Rechtssystem ist validators können unzuverlässig oder übermäßig teuer sein gezwungen, eine Kaution zu hinterlegen, um teilnehmen zu können, und so weiter Einzahlungen können widerrufen oder gekürzt werden, wenn böswilliges Verhalten vorliegt erkannt [10]. Beachten Sie, dass dies im Gegensatz zu Bitcoin ist, wo eine Verzweigung regelmäßig vorkommt aufgrund der Netzwerkasynchronität und der probabilistischen Natur des Findens teilweise hash Kollisionen. Da es sich in vielen Fällen um einen bösartigen Fork handelt Aufgrund der Asynchronität ist Bitcoin nicht von einem Fork zu unterscheiden Implementieren Sie die Fork-Rechenschaftspflicht zuverlässig, anders als implizit Opportunitätskosten, die von Bergleuten für den Abbau eines verwaisten Blocks gezahlt werden. Wir nennen die Abstimmungsphasen PreVote und PreCommit. Eine Abstimmung kann dafür sein einen bestimmten Block oder für Null. Wir nennen eine Sammlung von >⅔ PreVotes für einen einzelnen Block in derselben Runde eine Polka und eine Sammlung von >⅔ Precommits für einen einzelnen Block in derselben Runde sind ein Commit. Wenn >⅔ Wenn in derselben Runde ein PreCommit für Null erfolgt, gehen sie zur nächsten über rund. Beachten Sie, dass der strikte Determinismus im Protokoll eine Schwachstelle mit sich bringt Synchronitätsannahme, da fehlerhafte Leiter erkannt und erkannt werden müssen
übersprungen. Daher warten validators einige Zeit, TimeoutPropose, bevor sie Null vorabstimmen, und der Wert von TimeoutPropose erhöht sich mit jeder Runde. Fortschritt durch Der Rest einer Runde ist vollständig asynchron, insofern nur der Fortschritt Wird erstellt, sobald ein validator von mehr als 2/3 des Netzwerks hört. In der Praxis, Es würde einen extrem starken Gegner erfordern, um ihn auf unbestimmte Zeit zu vereiteln die schwache Synchronitätsannahme (was dazu führt, dass der Konsens scheitert). jemals einen Block festschreiben), und dies kann sogar noch mehr sein schwierig, indem für jeden zufällige Werte von TimeoutPropose verwendet werden validator. Ein zusätzlicher Satz von Einschränkungen oder Sperrregeln stellt sicher, dass die Das Netzwerk wird letztendlich nur einen Block auf jeder Höhe festschreiben. Irgendein böswilliger Versuch, die Festschreibung von mehr als einem Block zu bewirken in einer bestimmten Höhe identifiziert werden. Zuerst ein PreCommit für einen Block muss mit einer Begründung in Form einer Polka für diesen Block versehen sein. Wenn validator in Runde R_1 bereits einen Block vorab festgeschrieben hat, wir Sagen Sie, sie sind auf diesen Block fixiert, und die Polka hat dies als Rechtfertigung verwendet Neues PreCommit in Runde R_2 muss in einer Runde R_polka erfolgen wobei R_1 < R_polka <= R_2. Zweitens müssen validators einen Vorschlag machen und/oder den Block, auf den sie gesperrt sind, vorab abstimmen. Zusammen, diese Bedingungen stellen sicher, dass ein validator nicht ohne PreCommit ausgeführt wird ausreichende Beweise als Rechtfertigung, und dass validators dies getan haben bereits PreCommit kann nicht zu Beweisen für PreCommit beitragen etwas anderes. Dies gewährleistet sowohl Sicherheit als auch Lebendigkeit Konsensalgorithmus. Die vollständigen Details des Protokolls werden hier beschrieben. Die Notwendigkeit, alle Blockheader zu synchronisieren, entfällt in TendermintPoS, da die Existenz einer alternativen Kette (eines Forks) ≥⅓ davon bedeutet Der gebundene Pfahl kann gekürzt werden. Natürlich, da das Schneiden erforderlich ist Dass jemand Beweise für eine Abspaltung weitergibt, sollten leichte Kunden aufbewahren alle Block-hash-Commits, die es sieht. Darüber hinaus leichte Kundenkönnte regelmäßig mit Änderungen am validator-Satz synchronisiert bleiben um Angriffe über große Entfernungen zu vermeiden (aber es gibt auch andere Lösungen). möglich). Im Geiste ähnlich wie Ethereum ermöglicht Tendermint Anwendungen dazu Das Einbetten einer globalen Merkle-Wurzel hash in jeden Block erleichtert dies Überprüfbare Statusabfragen für Dinge wie Kontostände, den Wert in einem Vertrag gespeicherte Informationen oder das Vorliegen einer nicht ausgegebenen Transaktion Ausgabe abhängig von der Art der Anwendung. Voraussetzung ist eine ausreichend belastbare Sammlung von Rundfunknetzen und ein statisches validator-Set, jede Abzweigung im blockchain kann sein entdeckt und die Einlagen der betreffenden validators gekürzt. Dies Die erstmals Anfang 2014 von Vitalik Buterin vorgeschlagene Innovation löst dieses Problem das Nichts-auf-dem-Spiel-Problem anderer proof-of-stake Kryptowährungen (siehe Verwandte Arbeiten). Da jedoch validator gesetzt ist muss in der Lage sein, das Original über einen langen Zeitraum hinweg zu verändern validators können alle ungebunden werden und wären daher frei dazu Erstellen Sie eine neue Kette aus dem Genesis-Block, ohne dass Kosten anfallen Sie haben keine Einlagen mehr gesperrt. Es kam zu diesem Angriff bekannt als Long Range Attack (LRA), im Gegensatz zu einem Short Distanzangriff, bei dem validators, die derzeit verbunden sind, einen verursachen Fork und sind daher strafbar (vorausgesetzt, ein Fork ist BFT Algorithmus wie Tendermint-Konsens). Langstreckenangriffe sind wird oft als schwerer Schlag für proof-of-stake angesehen. Glücklicherweise kann die LRA wie folgt gemildert werden. Erstens für a validator zur Aufhebung der Kaution (wodurch ihre Sicherheit zurückerlangt wird). und keine Gebühren mehr für die Teilnahme am Konsens verdienen), die Die Anzahlung muss für einen bestimmten Zeitraum unübertragbar gemacht werden bekannt als „Entbindungszeitraum“, der in der Größenordnung von liegen kann Wochen oder Monate. Zweitens, damit ein Light-Client sicher ist, das Jahr Sobald eine Verbindung zum Netzwerk hergestellt wird, muss ein aktueller Block überprüft werden: hash gegen eine vertrauenswürdige Quelle oder vorzugsweise gegen mehrere Quellen. Dies
Dieser Zustand wird manchmal als „schwache Subjektivität“ bezeichnet. Schließlich, Um sicher zu bleiben, muss es mit dem neuesten validator-Satz synchronisiert werden mindestens so häufig wie die Dauer der Entbindungsperiode. Dies Stellt sicher, dass der Light-Client über Änderungen an validator informiert ist. Das Kapital, das vor einem validator gesetzt wird, ist ungebunden und daher nicht mehr auf dem Spiel steht, was es ihm ermöglichen würde, den Kunden durch die Ausführung zu täuschen Ein Fernangriff durch die Erstellung neuer Blöcke, beginnend bei a Höhe, auf der es verklebt wurde (vorausgesetzt, es hat ausreichend Kontrolle darüber). viele der frühen privaten Schlüssel). Beachten Sie, dass die Überwindung der LRA auf diese Weise eine Überarbeitung erfordert das ursprüngliche Sicherheitsmodell von proof-of-work. In PoW ist es so Es wird davon ausgegangen, dass ein Light-Client mit der aktuellen Höhe synchronisiert werden kann Sie können jederzeit einen vertrauenswürdigen Genesis-Block erstellen, indem Sie einfach den Proof-of-Work in jedem Block-Header verarbeiten. Um die LRA zu überwinden, müssen wir jedoch erfordern, dass ein Light-Client regelmäßig online geht Verfolgen Sie Änderungen im Satz validator, und zwar beim ersten Mal Wenn Sie online gehen, müssen Sie bei der Authentifizierung besonders vorsichtig sein was sie aus dem Netzwerk hören, gegen vertrauenswürdige Quellen. Von Natürlich ähnelt diese letztere Anforderung der von Bitcoin, wo Das Protokoll und die Software müssen ebenfalls von einem vertrauenswürdigen Anbieter bezogen werden Quelle. Die obige Methode zur Verhinderung von LRA eignet sich gut für validators und vollständige Knoten eines von Tendermint betriebenen blockchain, weil diese Knoten sollen mit dem Netzwerk verbunden bleiben. Die Die Methode eignet sich auch für zu erwartende Light-Clients häufig mit dem Netzwerk synchronisieren. Für leichte Kunden gilt das jedoch Es wird nicht erwartet, dass sie häufigen Zugriff auf das Internet oder das Internet haben blockchain Netzwerk kann noch eine andere Lösung zur Überwindung verwendet werden die LRA. Nicht-validator token-Inhaber können ihre tokens als posten Sicherheiten mit einer sehr langen Unverbindlichkeitsdauer (z. B. viel länger). als der Entbindungszeitraum für validators) und leichte Kunden bedienen mit einer sekundären Methode zur Bestätigung der Gültigkeit aktueller und vergangener Block-hashes. Diese tokens zählen zwar nicht zum Sie können die Sicherheit des blockchain-Konsenses dennoch gewährleistenbieten starke Garantien für kleine Kunden. Wenn historischer Block-hash Abfragen wurden in Ethereum unterstützt, jeder konnte sie verbinden tokens in einem speziell entwickelten smart contract und bereitstellen Zertifizierungsdienste gegen Bezahlung, wodurch effektiv ein Markt für Lightclient-LRA-Sicherheit geschaffen wird. Aufgrund der Definition eines Block-Commits kann jede ≥⅓ Koalition von Das Stimmrecht kann die blockchain stoppen, indem man das Magazin verlässt oder nicht ihre Stimmen übermitteln. Eine solche Koalition kann auch zensieren bestimmte Transaktionen durch Ablehnung von Blöcken, die diese enthalten Allerdings würde dies zu einem erheblichen Anteil führen Anzahl der abzulehnenden Blockvorschläge, was die Rate verlangsamen würde von Block-Commits des blockchain, was seinen Nutzen und Wert verringert. Die böswillige Koalition könnte so im Handumdrehen auch Stimmen verbreiten B. um blockchain-Block-Commits fast zum Stillstand zu bringen oder einzugreifen jede Kombination dieser Angriffe. Schließlich kann es dazu führen, dass blockchain zu forken, durch Doppelsignierung oder Verletzung der Sperre Regeln. Wäre auch ein global agierender Gegner beteiligt, könnte es zu einer Teilung kommen das Netzwerk so, dass es den Anschein erwecken kann, dass es falsch ist Eine Teilmenge der validators war für die Verlangsamung verantwortlich. Das ist nicht der Fall nur eine Einschränkung von Tendermint, sondern eher eine Einschränkung von allem Konsensprotokolle, deren Netzwerk möglicherweise von einem kontrolliert wird aktiver Gegner. Für diese Art von Angriffen sollte eine Teilmenge der validators verwendet werden Koordinieren Sie mit externen Mitteln die Unterzeichnung eines Reorg-Vorschlags wählt eine Abzweigung (und alle Beweise dafür) und die anfängliche Teilmenge davon validators mit ihren Unterschriften. Validatoren, die einen solchen Reorganisationsvorschlag unterzeichnen, verzichten auf ihre Sicherheiten für alle anderen Forks. Kunden sollten Überprüfen Sie die Unterschriften auf dem Reorg-Vorschlag, überprüfen Sie alle Beweise, und ein Urteil fällen oder den Endbenutzer zu einer Entscheidung auffordern. Für Beispielsweise kann eine Telefon-Wallet-App den Benutzer zur Eingabe einer Sicherheit auffordern
Warnung, während ein Kühlschrank jeden Reorg-Vorschlag annehmen kann unterzeichnet von +½ der ursprünglichen validators nach Stimmrecht. Es kann keinen asynchronen byzantinischen fehlertoleranten Algorithmus geben zum Konsens, wenn ≥⅓ der Stimmrechte unehrlich sind, aber dennoch eine Abspaltung geht davon aus, dass ≥⅓ der Stimmberechtigten bereits unehrlich waren Doppelsignierung oder Sperränderung ohne Begründung. Also, unterschreiben Der Reorg-Vorschlag ist ein Koordinationsproblem, das nicht sein kann wird durch jedes nicht synchrone Protokoll gelöst (d. h. automatisch und ohne Annahmen über die Zuverlässigkeit des zu treffen zugrunde liegendes Netzwerk). Das Problem der Koordination von Reorganisationsvorschlägen überlassen wir vorerst der menschlichen Koordination über gesellschaftlichen Konsens in Internetmedien. Validatoren müssen dafür sorgen, dass dies gewährleistet ist Es gibt keine verbleibenden Netzwerkpartitionen vor dem Signieren eines Reorg-Vorschlags, um Situationen zu vermeiden, in denen zwei widersprüchliche Reorg-Vorschläge signiert werden. Vorausgesetzt, dass es sich um ein externes Koordinationsmedium und -protokoll handelt robust, daraus folgt, dass Forks weniger ein Problem darstellen als Zensur Angriffe. Zusätzlich zu Gabeln und Zensur, die ≥⅓ Byzantinisch erfordern Eine Koalition mit mehr als ⅔ Stimmrechten kann sich verpflichten willkürlicher, ungültiger Zustand. Dies ist charakteristisch für alle (BFT) Konsenssystem. Im Gegensatz zur Doppelsignierung, die Forks erstellt mit leicht überprüfbaren Beweisen, die die Begehung einer Person nachweisen Der ungültige Zustand erfordert, dass nicht validierende Peers ganze Blöcke überprüfen. was bedeutet, dass sie eine lokale Kopie des Status behalten und ausführen Für jede Transaktion wird die Statuswurzel unabhängig berechnet sich selbst. Sobald ein solcher Fehler erkannt wird, gibt es nur eine Möglichkeit, damit umzugehen erfolgt über gesellschaftlichen Konsens. Zum Beispiel in Situationen, in denen Bitcoin ist gescheitert, ob Forking aufgrund von Softwarefehlern (wie im März). 2013) oder das Begehen eines ungültigen Zustands aufgrund byzantinischen Verhaltens von Bergleute (wie im Juli 2015), die gut vernetzte Gemeinschaft von Unternehmen, Entwickler, Bergleute und andere Organisationen etablierte einen gesellschaftlichen Konsens darüber, was manuelle Handlungen warenvon den Teilnehmern benötigt wird, um das Netzwerk zu heilen. Darüber hinaus seit validators eines Tendermint blockchain können erwartet werden identifizierbar, möglicherweise sogar Bekenntnis eines ungültigen Staates strafbar durch Gesetz oder eine externe Rechtsprechung, falls gewünscht. ABCI besteht aus drei primären Nachrichtentypen, von denen die Zustellung erfolgt den Kern der Anwendung. Die Anwendung antwortet mit entsprechende Antwortnachrichten. Die AppendTx -Nachricht ist das Arbeitstier der Anwendung. Jeder Die Transaktion im blockchain wird mit dieser Nachricht zugestellt. Die Die Anwendung muss jede mit dem empfangene Transaktion validieren AppendTx-Nachricht gegen den aktuellen Status, Anwendungsprotokoll, und die kryptografischen Anmeldeinformationen der Transaktion. Eine validierte Die Transaktion muss dann den Anwendungsstatus aktualisieren – bis Binden eines Werts in einen Schlüsselwertspeicher oder durch Aktualisieren des UTXO Datenbank. Die CheckTx -Nachricht ähnelt AppendTx, ist jedoch nur für Validierung von Transaktionen. Mempool-Erstprüfungen von Tendermint Core die Gültigkeit einer Transaktion mit CheckTx und nur gültige Weiterleitungen Transaktionen mit seinen Kollegen. Anwendungen können eine Erhöhung prüfen nonce in der Transaktion und geben Sie bei CheckTx einen Fehler zurück, wenn der nonce ist alt. Die Commit-Nachricht wird zur Berechnung einer Kryptographie verwendet Engagement für den aktuellen Anwendungsstand, in den gestellt werden nächster Blockkopf. Dies hat einige praktische Eigenschaften. Inkonsistenzen bei der Aktualisierung dieses Status werden nun als angezeigt blockchain Forks, die eine ganze Programmierklasse abdecken Fehler. Dies vereinfacht auch die Entwicklung eines sicheren Leichtbaus Kunden, da Merkle-hash-Beweise durch Vergleich überprüft werden können Der Block-hash und der Block-hash sind von einem Quorum von unterzeichnet validators (nach Stimmstärke).
Zusätzliche ABCI-Nachrichten ermöglichen es der Anwendung, den Überblick zu behalten und ändern Sie den Satz validator und damit die Anwendung den empfängt Blockinformationen wie die Höhe und die Commit-Stimmen. ABCI Anfragen/Antworten sind einfache Protobuf-Nachrichten. Überprüfen Schauen Sie sich das Schema an. Argumente: Daten ([]Byte): Die Bytes der Anforderungstransaktion Rückgaben: Code (uint32): Antwortcode Daten ([]byte): Ergebnisbytes, falls vorhanden Protokoll (Zeichenfolge): Debug- oder Fehlermeldung Verwendung:
Hängen Sie eine Transaktion an und führen Sie sie aus. Wenn die Transaktion gültig ist, gibt CodeType.OK zurück Argumente: Daten ([]Byte): Die Bytes der Anforderungstransaktion Rückgaben: Code (uint32): Antwortcode Daten ([]byte): Ergebnisbytes, falls vorhanden Protokoll (Zeichenfolge): Debug- oder Fehlermeldung Verwendung:
Validieren Sie eine Transaktion. Diese Nachricht sollte nicht mutieren Staat. Transaktionen werden zunächst über CheckTx ausgeführt Broadcast an Peers in der Mempool-Schicht. Du kannst machen CheckTx semi-stateful und löscht den Status beim Commit oder BeginBlock , um abhängige Transaktionssequenzen zu ermöglichen im selben Block.
Rückgaben: Daten ([]Byte): Die Merkle-Wurzel hash Protokoll (Zeichenfolge): Debug- oder Fehlermeldung Verwendung:
Gibt eine Merkle-Wurzel hash des Anwendungsstatus zurück. Argumente: Daten ([]Byte): Die Abfrageanforderungsbytes Rückgaben: Code (uint32): Antwortcode Daten ([]Byte): Die Abfrageantwortbytes Protokoll (Zeichenfolge): Debug- oder Fehlermeldung Verwendung:
Leeren Sie die Antwortwarteschlange. Anwendungen, die implementieren types.Application muss diese Nachricht nicht implementieren – sie ist es vom Projekt übernommen. Rückgaben: Daten ([]byte): Die Informationsbytes Verwendung:
Gibt Informationen zum Anwendungsstatus zurück. Bewerbung Spezifisch. Argumente: Schlüssel (Zeichenfolge): Schlüssel zum Festlegen
Wert (Zeichenfolge): Wert, der für den Schlüssel festgelegt werden soll Rückgaben: Protokoll (Zeichenfolge): Debug- oder Fehlermeldung Verwendung:
Anwendungsoptionen festlegen. Z.B. Key=“mode“, Value=“mempool“ für eine Mempool-Verbindung oder Key=“mode“, Value=“consensus“ für eine Konsensverbindung. Weitere Optionen sind anwendungsspezifisch. Argumente: Validatoren ([]Validator): Initial genesis-validators Verwendung:
Einst bei der Genesis genannt Argumente: Höhe (uint64): Die Blockhöhe, die beginnt Verwendung:
Signalisiert den Beginn eines neuen Blocks. Vorher angerufen AppendTxs. Argumente: Höhe (uint64): Die Blockhöhe, die endete Rückgaben: Validatoren ([]Validator): validators durch neue geändert Stimmrechte (0 zum Entfernen) Verwendung:
Signalisiert das Ende eines Blocks. Wird schließlich vor jedem Commit aufgerufen Transaktionen Weitere Details finden Sie im Repository ABCI.Es gibt mehrere Gründe, warum ein Absender das möchte Bestätigung der Zustellung eines Pakets durch die Empfangskette. Beispielsweise kennt der Absender möglicherweise nicht den Status der Zielkette, wenn erwartet wird, dass sie fehlerhaft ist. Oder der Absender Sie möchten dem Paket eine Zeitüberschreitung auferlegen (mit der Option MaxHeight Paketausbeute), während jede Zielkette unter einem Denial-of-Service-Angriff mit einem plötzlichen Anstieg der Anzahl eingehender Daten leiden kann Pakete. In diesen Fällen kann der Absender eine Empfangsbestätigung verlangen indem Sie den anfänglichen Paketstatus auf „AckPending“ setzen. Dann ist es das Die Verantwortung der Empfangskette, die Lieferung zu bestätigen, liegt in der Verantwortung eines abgekürzt IBCPacket in der App Merkle hash. Zuerst werden ein IBCBlockCommit und IBCPacketTx auf „Hub“ gepostet. das beweist die Existenz eines IBCPacket auf „Zone1“. Sag das IBCPacketTx hat den folgenden Wert: FromChainID: „Zone1“ FromBlockHeight: 100 (sagen wir) Paket: ein IBCPaket:
Header: ein IBCPacketHeader:
SrcChainID: „Zone1“
DstChainID: „Zone2“
Anzahl: 200 (sagen wir)
Status: Bestätigung ausstehend
Typ: „Münze“
MaxHeight: 350 (sagen wir, „Hub“ befindet sich derzeit auf der Höhe 300)
Nutzlast:
FromBlockHeight: 400 (sagen wir)
Paket: ein IBCPaket:
Header: ein IBCPacketHeader:
SrcChainID: „Zone1“
DstChainID: „Zone2“
Anzahl: 200
Status: AckSent
Typ: „Münze“
Maximale Höhe: 350
PayloadHash:
Wenn Sie den Status von „Zone2“ durch Block 350 ändern, wird der Status festgelegt automatisch auf Timeout . Dadurch lässt sich ein Beweis für eine Zeitüberschreitung erhalten zurück auf „Zone1“ gepostet und alle tokens können zurückgegeben werden. Es werden zwei Arten von Merkle trees unterstützt Tendermint/Cosmos Ökosystem: The Simple Tree und das IAVL+ Baum. Der Simple Tree ist ein Merkle tree für eine statische Liste von Elementen. Wenn die Die Anzahl der Elemente ist keine Zweierpotenz, einige Blätter werden vorhanden sein verschiedene Ebenen. Simple Tree versucht, beide Seiten des Baums beizubehalten gleiche Höhe, aber die linke Seite darf um eins größer sein. Das ist Merkle tree Wird verwendet, um die Transaktionen eines Blocks und der obersten Ebene zu merkleisieren Elemente des Anwendungsstatusstamms.Der Zweck der IAVL+-Datenstruktur besteht darin, persistente Daten bereitzustellen Speicherung für Schlüssel-Wert-Paare im Anwendungsstatus, sodass a Die deterministische Merkle-Wurzel hash kann effizient berechnet werden. Die Der Baum wird mithilfe einer Variante des AVL-Algorithmus ausgeglichen, und so weiter Operationen sind O(log(n)). In einem AVL-Baum die Höhen der beiden untergeordneten Teilbäume eines beliebigen Knotens höchstens um eins unterscheiden. Immer wenn diese Bedingung bei einem verletzt wird Bei der Aktualisierung wird der Baum neu ausbalanciert, indem O(log(n)) neue Knoten erstellt werden zeigen auf unveränderte Knoten des alten Baums. Im Original-AVL Algorithmus können innere Knoten auch Schlüssel-Wert-Paare enthalten. Das AVL+ Der Algorithmus (beachten Sie das Plus) ändert den AVL-Algorithmus, um alles beizubehalten Werte auf Blattknoten, während Zweigknoten nur zum Speichern von Schlüsseln verwendet werden. Dies vereinfacht den Algorithmus und behält gleichzeitig die Merkle-Spur hash bei kurz. Der AVL+-Baum ist analog zu den Patricia-Versuchen von Ethereum. Es gibt Kompromisse. Schlüssel müssen vor dem Einsetzen nicht hashed werden IAVL+-Bäume, sodass eine schnellere geordnete Iteration im Schlüssel möglich ist Platz, der für einige Anwendungen von Vorteil sein kann. Die Logik ist einfacher implementieren, wobei nur zwei Arten von Knoten erforderlich sind – innere Knoten und Blattknoten. Der Merkle-Beweis ist im Durchschnitt kürzer und beträgt a * / \ / \ / \ / \ * * / \ / \ / \ / \ / \ / \ * * * h6 / \ / \ / \ h0 h1 h2 h3 h4 h5 Ein SimpleTree mit sieben Elementen
ausgeglichener Binärbaum. Andererseits ist die Merkle-Wurzel von an Der IAVL+-Baum hängt von der Reihenfolge der Aktualisierungen ab. Wir unterstützen weitere effiziente Merkle trees, wie z Patricia Trie von Ethereum, wenn die binäre Variante wird verfügbar. In der kanonischen Implementierung werden Transaktionen an die gestreamt Cosmos Hub-Anwendung über die Schnittstelle ABCI. Der Cosmos Hub akzeptiert eine Reihe primärer Transaktionen Typen, einschließlich SendTx , BondTx , UnbondTx , ReportHackTx , SlashTx , BurnAtomTx , ProposalCreateTx und ProposalVoteTx , die ziemlich selbsterklärend sind und in einem dokumentiert werden zukünftige Überarbeitung dieses Papiers. Hier dokumentieren wir die beiden primären Transaktionstypen für IBC: IBCBlockCommitTx und IBCPacketTx . Eine IBCBlockCommitTx -Transaktion besteht aus: ChainID (string): Die ID von blockchain BlockHash ([]byte) : Die Block-hash Bytes, die Merkle-Wurzel Dazu gehört die App-hash BlockPartsHeader (PartSetHeader): Der Blockteilsatz-Header Bytes, werden nur zur Überprüfung der Abstimmungssignaturen benötigt BlockHeight (int) : Die Höhe des Commits BlockRound (int) : Die Runde des Commits Commit ([]Vote): Das >⅔ Tendermint Precommit stimmt darüber ab umfassen einen Block-Commit ValidatorsHash ([]byte): Eine Merkle-Tree-Wurzel hash des neuen validator gesetzt
ValidatorsHashProof (SimpleProof): Ein SimpleTree Merkleproof zum Nachweis des ValidatorsHash gegenüber dem BlockHash
AppHash ([]byte): Eine IAVLTree-Merkle-Tree-Wurzel hash des
Anwendungsstatus
AppHashProof (SimpleProof): Ein SimpleTree Merkle-Proof für
Beweisen des AppHash gegenüber dem BlockHash
Ein IBCPacket besteht aus:
Header (IBCPacketHeader): Der Paket-Header
Nutzlast ([]Byte): Die Bytes der Paketnutzlast. Optional
PayloadHash ([]byte): Der hash für die Bytes des Pakets.
Optional
Es muss entweder „Payload“ oder „PayloadHash“ vorhanden sein. Der hash
eines IBCPacket ist eine einfache Merkle-Wurzel der beiden Elemente, Header
und Nutzlast . Ein IBCPaket ohne die vollständige Nutzlast wird als ein bezeichnet
abgekürztes Paket.
Ein IBCPacketHeader besteht aus:
SrcChainID (string): Die Quell-ID blockchain
DstChainID (string): Die Ziel-ID blockchain
Nummer (int): Eine eindeutige Nummer für alle Pakete
Status (Aufzählung): Kann AckPending, AckSent oder AckSent sein.
AckReceived , NoAck oder Timeout
Typ (Zeichenfolge): Die Typen sind anwendungsabhängig. Cosmos
reserviert den Pakettyp „Münze“.
MaxHeight (int) : Wenn der Status nicht NoAckWanted oder AckReceived ist
Bei dieser Höhe wird der Status zu Timeout . Optional
Eine IBCPacketTx -Transaktion besteht aus:FromChainID (string) : Die ID des blockchain, der ist
Bereitstellung dieses Pakets; nicht unbedingt die Quelle
FromBlockHeight (int) : Die blockchain Höhe, in der die
Das folgende Paket ist im Block-hash von enthalten (Merkle-isiert).
die Quellkette
Paket (IBCPacket): Ein Datenpaket, dessen Status eins sein kann
von AckPending , AckSent , AckReceived , NoAck oder Timeout
PacketProof (IAVLProof): Ein IAVLTree Merkle-Proof zum Beweisen
hash des Pakets gegen den AppHash der Quellkette unter
gegebene Höhe
Die Reihenfolge zum Senden eines Pakets von „Zone1“ nach „Zone2“
durch den „Hub“ ist in {Abbildung X} dargestellt. Zuerst ein IBCPacketTx
beweist gegenüber „Hub“, dass das Paket im App-Status enthalten ist
„Zone1“. Dann beweist ein weiterer IBCPacketTx für „Zone2“, dass die
Paket ist im App-Status von „Hub“ enthalten. Dabei
Verfahren, die IBCPacket -Ergebnisse sind identisch: die SrcChainID ist
immer „Zone1“ und die DstChainID ist immer „Zone2“.
Der PacketProof muss den richtigen Merkle-Proof-Pfad haben, z
folgt:
Wenn „Zone1“ über „Hub“ ein Paket an „Zone2“ senden möchte,
Die IBCPaketdaten sind identisch, unabhängig davon, ob das Paket auf „Zone1“, dem „Hub“ oder „Zone2“ gemerkt wird. Der einzige veränderliche Ertrag ist
Status für die Sendungsverfolgung.
Wir danken unseren Freunden und Kollegen für ihre Unterstützung bei der Konzeption,
Überprüfung und Unterstützung unserer Arbeit mit Tendermint
und Cosmos.
IBC/
Zaki Manian von SkuChain leistete viel Hilfe bei der Formatierung und Formulierungen, insbesondere im Abschnitt ABCI Jehan Tremback von Althea und Dustin Byington für ihre Hilfe erste Iterationen Andrew Miller von Honey Badger für sein Feedback zum Konsens Greg Slepak für Feedback zum Konsens und zur Formulierung Vielen Dank auch an Bill Gleim und Seunghwan Han für verschiedene Beiträge. Hier Ihr Name und Ihre Organisation für Ihren Beitrag 1 Bitcoin: https://bitcoin.org/bitcoin.pdf 2 ZeroCash: http://zerocash-project.org/paper 3 Ethereum: https://github.com/ethereum/wiki/wiki/WhitePaper 4 DieDAO: https://download.slock.it/public/DAO/WhitePaper.pdf 5 Getrennter Zeuge: https://github.com/bitcoin/bips/blob/master/bip0141.mediawiki 6 BitcoinNG: https://arxiv.org/pdf/1510.02037v2.pdf 7 Lightning-Netzwerk: https://lightning.network/lightningnetwork-paper-DRAFT-0.5.pdf 8 Tendermint: https://github.com/tendermint/tendermint/wiki 9 FLP-Unmöglichkeit: https://groups.csail.mit.edu/tds/papers/Lynch/jacm85.pdf 10 Slasher: https://blog.ethereum.org/2014/01/15/slasher-apunitive-proof-of-stake-algorithm/ 11 PBFT: http://pmg.csail.mit.edu/papers/osdi99.pdf 12 BitShares: https://bitshares.org/technology/delegatedproof-of-stake-consensus/
13 Stellar: https://www.stellar.org/papers/stellar-consensusprotocol.pdf 14 Zwischenbuch: https://interledger.org/rfcs/0001-interledgerarchitecture/ 15 Seitenketten: https://blockstream.com/sidechains.pdf 16 Casper: https://blog.ethereum.org/2015/08/01/introducing-casperfriendly-ghost/ 17 ABCI: https://github.com/tendermint/abci 18 Ethereum Sharding: https://github.com/ethereum/EIPs/issues/53 19 LibSwift: http://www.ds.ewi.tudelft.nl/yleadmin/pds/papers/Performa nceAnalysisOfLibswift.pdf 20 DLS: http://groups.csail.mit.edu/tds/papers/Lynch/jacm88.pdf 21 Thin Client-Sicherheit: https://en.bitcoin.it/wiki/Thin_Client_Security 22 Ethereum 2,0 Mauve-Papier: http://vitalik.ca/yles/mauve_paper.html https://www.docdroid.net/ec7xGzs/314477721-ethereumplatform-review-opportunities-and-challenges-for-privateand-consortium-blockchains.pdf.html
³ è