Cosmos: شبكة من دفاتر الأستاذ الموزعة
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.
مقدمة
النجاح المشترك للنظام البيئي مفتوح المصدر، المشاركة اللامركزية، والعملات المشفرة العامة ألهمت فهم بروتوكولات الإنترنت اللامركزية يمكن استخدامها لتحسين البنية التحتية الاجتماعية والاقتصادية بشكل جذري. لقد رأينا تطبيقات blockchain متخصصة مثل Bitcoin [1] (أ العملة المشفرة)، Zerocash [2] (عملة مشفرة للخصوصية)، و منصات smart contract المعممة مثل Ethereum [3]، مع عدد لا يحصى من التطبيقات الموزعة لـ Etherium Virtual الآلة (EVM) مثل Augur (سوق التنبؤ) وTheDAO [4] (نادي استثماري). ومع ذلك، حتى الآن، عانى هؤلاء blockchain من عدد من المشاكل من العيوب، بما في ذلك عدم كفاءة الطاقة الإجمالية، أو الفقراء أو الأداء المحدود، وآليات الحوكمة غير الناضجة. مقترحات لتوسيع نطاق معاملات Bitcoin، مثل الشاهد المنفصل [5] و BitcoinNG [6]، عبارة عن مقياس رأسي الحلول التي تظل محدودة بقدرة جسدية واحدة الآلة، وذلك لضمان خاصية المراجعة الكاملة. يمكن أن تساعد الشبكة المسرّعة [7] في توسيع نطاق المعاملات Bitcoin
الحجم عن طريق ترك بعض المعاملات خارج دفتر الأستاذ تمامًا، وهو مناسب تمامًا للمدفوعات الصغيرة والحفاظ على الخصوصية قضبان الدفع، ولكنها قد لا تكون مناسبة لمزيد من التعميم احتياجات التحجيم. الحل المثالي هو الذي يسمح بتعدد blockchains المتوازية التفاعل مع الاحتفاظ بخصائصها الأمنية. هذا قد ثبت أنه صعب، إن لم يكن مستحيلاً، مع proof-of-work. تم الدمج التعدين، على سبيل المثال، يسمح بالعمل المنجز لتأمين أحد الوالدين السلسلة ليتم إعادة استخدامها في سلسلة فرعية، ولكن يجب أن تظل المعاملات كذلك تم التحقق من صحتها، بالترتيب، بواسطة كل عقدة، وتم الدمج blockchain يكون عرضة للهجوم إذا كانت أغلبية hashing السلطة على لا يقوم الوالد بدمج تعدين الطفل بشكل نشط. مراجعة أكاديمية يتم توفير بنيات الشبكة البديلة blockchain سياق إضافي، ونقدم ملخصات للمقترحات الأخرى وعيوبها في الأعمال ذات الصلة. نقدم هنا Cosmos، بنية شبكة جديدة blockchain الذي يعالج كل هذه المشاكل. Cosmos عبارة عن شبكة تضم الكثيرين blockchains مستقلة، تسمى المناطق. يتم تشغيل المناطق بواسطة Tendermint Core [8]، والذي يوفر أداءً عاليًا، محرك إجماع متسق وآمن يشبه PBFT، حيث تضمن المساءلة الصارمة للفرعية التحكم في سلوك البرامج الضارة الجهات الفاعلة. تعتبر خوارزمية الإجماع BFT الخاصة بـ Tendermint Core مناسبة تمامًا لتوسيع النطاق العام proof-of-stake blockchains. المنطقة الأولى في Cosmos تسمى Cosmos Hub. Cosmos Hub عبارة عن عملة مشفرة متعددة الأصول proof-of-stake ذات قيمة بسيطة آلية الحوكمة التي تمكن الشبكة من التكيف و ترقية. بالإضافة إلى ذلك، يمكن تمديد المحور Cosmos بواسطة ربط مناطق أخرى. يتواصل مركز ومناطق شبكة Cosmos معها بعضهما البعض عبر بروتوكول اتصال inter-blockchain (IBC)، نوع UDP أو TCP افتراضي لـ blockchains. يمكن أن تكون الرموز يتم نقلها من منطقة إلى أخرى بشكل آمن وسريعدون الحاجة إلى سيولة التبادل بين المناطق. بدلا من ذلك، جميع عمليات النقل بين المناطق token تمر عبر مركز Cosmos، والذي يتتبع المبلغ الإجمالي لـ tokens الذي تحتفظ به كل منطقة. ال يعزل المحور كل منطقة عن فشل المناطق الأخرى. لان يمكن لأي شخص توصيل منطقة جديدة بمركز Cosmos، كما تسمح المناطق بذلك من أجل التوافق المستقبلي مع ابتكارات blockchain الجديدة. في هذا القسم نصف بروتوكول توافق Tendermint والواجهة المستخدمة لبناء التطبيقات بها. للمزيد التفاصيل، انظر الملحق. في الخوارزميات البيزنطية الكلاسيكية المتسامحة مع الأخطاء (BFT)، كل عقدة له نفس الوزن. في Tendermint، العقد لها قيمة غير سلبية مقدار قوة التصويت، والعقد التي لها تصويت إيجابي تسمى الطاقة validators. يشارك المصادقون في بروتوكول الإجماع عن طريق بث التوقيعات المشفرة، أو الأصوات، للاتفاق على الكتلة التالية. يتم تحديد صلاحيات التصويت للمصادقين عند النشأة، أو يتم تحديدها تم تغييره بشكل حتمي بواسطة blockchain، اعتمادًا على application. على سبيل المثال، في تطبيق proof-of-stake مثل مركز Cosmos، قد يتم تحديد قوة التصويت بواسطة مبلغ staking tokens مرهون كضمان. ملاحظة: تشير الكسور مثل ⅔ و⅓ إلى أجزاء من إجمالي التصويت الطاقة، لا العدد الإجمالي لـ validators أبدًا، ما لم يكن كل validators لها وزن متساوي. >⅔ تعني "أكثر من ⅔"، ≥⅓ تعني "على الأقل". ⅓". Tendermint هو بروتوكول إجماع BFT متزامن جزئيًا مشتقة من خوارزمية إجماع DLS [20]. النعناع هو
يتميز ببساطته وأدائه ومسؤوليته. يتطلب البروتوكول مجموعة yxed المعروفة من validators، حيث يكون كل منها يتم التعرف على validator بواسطة مفتاحهم العام. يحاول المدققون القيام بذلك التوصل إلى توافق في الآراء بشأن كتلة واحدة في كل مرة، حيث تكون الكتلة عبارة عن قائمة من المعاملات. يستمر التصويت للتوافق على الكتلة جولات. كل جولة لها قائد مستدير أو مقترح يقترح كتلة. ثم يصوت validators، على مراحل، على ما إذا كان ذلك أم لا لقبول الكتلة المقترحة أو الانتقال إلى الجولة التالية. ال يتم اختيار مقدم العرض للجولة بشكل حتمي من الأمر قائمة validators، بما يتناسب مع قوة التصويت الخاصة بهم. يتم وصف التفاصيل الكاملة للبروتوكول هنا. أمان Tendermint مستمد من استخدامه للبيزنطية المثالية التسامح مع الخطأ من خلال التصويت بالأغلبية العظمى (>⅔) والقفل آلية. ويضمنون معًا ما يلي: ≥⅓ قوة التصويت يجب أن تكون بيزنطية للتسبب في انتهاك السلامة، حيث يتم الالتزام بأكثر من قيمتين. إذا نجحت أي مجموعة من validators في انتهاك السلامة، أو حتى محاولات القيام بذلك، يمكن التعرف عليهم من خلال البروتوكول. هذا يشمل كلا من التصويت للكتل conzicting والبث أصوات غير مبررة على الرغم من ضماناته القوية، يقدم Tendermint منتجات استثنائية الأداء. في معايير 64 عقدة موزعة على 7 مراكز البيانات في 5 قارات، في المثيلات السحابية للسلع الأساسية، يمكن لتوافق Tendermint معالجة آلاف المعاملات لكل ثانيًا، مع فترات استجابة للالتزام تتراوح من ثانية إلى ثانيتين. والجدير بالذكر أن أداء ما يزيد عن ألف معاملة لكل يتم الحفاظ على الثانية حتى في ظروف الخصومة القاسية validators يعطل أو يبث أصواتًا ضارة. انظر ygur أدناه للحصول على التفاصيل.

تم تبسيط إحدى المزايا الرئيسية لخوارزمية الإجماع الخاصة بـ Tendermint أمان العميل الخفيف، مما يجعله مرشحًا مثاليًا للهواتف المحمولة و حالات استخدام إنترنت الأشياء. بينما يجب على العميل الخفيف Bitcoin المزامنة سلاسل رؤوس الكتل والسلسلة التي تحتوي على أكبر دليل على ذلك في العمل، يحتاج عملاء Tendermint Light فقط إلى مواكبة التغييرات إلى مجموعة validator، ثم تحقق من >⅔ PreCommits في أحدث كتلة لتحديد أحدث حالة. تعمل أيضًا أدلة العميل الخفيفة المقتضبة على تمكين inter-blockchain الاتصالات. لدى Tendermint إجراءات وقائية لمنع حدوث بعض الأمراض الهجمات الملحوظة، مثل عمليات الإنفاق المزدوجة بعيدة المدى التي لا تنطوي على أي شيء على المحك والرقابة. وتناقش هذه بشكل كامل في الملحق.يتم تنفيذ خوارزمية إجماع Tendermint في ملف برنامج يسمى Tendermint الأساسية. Tendermint Core هو "محرك الإجماع" الحيادي للتطبيق والذي يمكنه تشغيل أي تطبيق تطبيق الصندوق الأسود الحتمي في نسخة متماثلة موزعة blockchain. يتصل Tendermint Core بتطبيقات blockchain عبر واجهة Blockchain للتطبيق (ABCI) [17]. وبالتالي، ABCI يسمح ببرمجة تطبيقات blockchain في أي اللغة، وليس فقط لغة البرمجة التي تم الإجماع عليها تمت كتابة المحرك. بالإضافة إلى ذلك، ABCI يجعل من الممكن بسهولة قم بتبديل طبقة الإجماع لأي مكدس blockchain موجود. نرسم تشبيهًا بالعملة المشفرة المعروفة Bitcoin. Bitcoin هي عملة مشفرة blockchain حيث تحتفظ كل عقدة قاعدة بيانات لمخرجات المعاملات غير المنفقة (UTXO) المدققة بالكامل. إذا أراد أحدهم إنشاء نظام يشبه Bitcoin أعلى ABCI، سيكون Tendermint Core مسؤولاً عن مشاركة الكتل والمعاملات بين العقد إنشاء ترتيب قانوني/غير قابل للتغيير للمعاملات ( blockchain) وفي الوقت نفسه، سيكون تطبيق ABCI مسؤولاً عن ذلك صيانة قاعدة البيانات UTXO التحقق من صحة التوقيعات المشفرة للمعاملات منع المعاملات من صرف أموال غير موجودة السماح للعملاء بالاستعلام عن قاعدة البيانات UTXO Tendermint قادر على تحليل تصميم blockchain بواسطة تقديم واجهة برمجة تطبيقات بسيطة جدًا بين عملية تقديم الطلب و عملية الإجماع.
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 الهندسة المعمارية
Cosmos عبارة عن شبكة متوازية مستقلة blockchains كل منها مدعوم بخوارزميات الإجماع الكلاسيكية BFT مثل النعناع 1. سيكون blockchain الأول في هذه الشبكة هو Cosmos Hub. ال Cosmos يتصل المحور بالعديد من blockchains (أو المناطق) عبر بروتوكول اتصال جديد بين blockchain. المركز Cosmos يتتبع العديد من أنواع token ويحتفظ بسجل للمجموع عدد tokens في كل منطقة متصلة. يمكن أن تكون الرموز يتم نقلها من منطقة إلى أخرى بشكل آمن وسريع دون الحاجة إلى تبادل السوائل بين المناطق، لأن جميعها تتم عمليات تحويل العملات بين المناطق عبر مركز Cosmos. تعمل هذه البنية على حل العديد من المشكلات المتعلقة بمساحة blockchain يواجه اليوم، مثل قابلية التشغيل البيني للتطبيقات، وقابلية التوسع، و إمكانية الترقية السلسة. على سبيل المثال، المناطق المشتقة من Bitcoind، يمكنك الانتقال إلى Ethereum أو CryptoNote أو ZCash أو أي نظام blockchain يتم توصيله بمركز Cosmos. تسمح هذه المناطق لـ Cosmos بذلك التوسع بشكل لا نهائي لتلبية الطلب على المعاملات العالمية. المناطق هي أيضا يعد خيارًا رائعًا للتبادل الموزع، والذي سيتم دعمه كـ حسنا. Cosmos ليس مجرد دفتر أستاذ موزع، وCosmos Hub ليس حديقة مسورة أو مركز الكون. نحن كذلك تصميم بروتوكول لشبكة مفتوحة من دفاتر الأستاذ الموزعة والتي يمكن أن تكون بمثابة أساس جديد للأنظمة المالية المستقبلية، على أساس مبادئ التشفير والاقتصاد السليم والإجماع النظرية والشفافية والمساءلة. يعد مركز Cosmos هو المركز العام الأول blockchain في Cosmos الشبكة، مدعومة بخوارزمية الإجماع BFT الخاصة بـ Tendermint. ال تم إنشاء مشروع Tendermint مفتوح المصدر في عام 2014 لمعالجة المشكلة السرعة وقابلية التوسع والمشكلات البيئية المتعلقة بخوارزمية إجماع إثبات العمل الخاصة بـ Bitcoin. باستخدام وتحسين ما ثبت
BFT خوارزميات تم تطويرها في معهد ماساتشوستس للتكنولوجيا في عام 1988 [20]، Tendermint كان الفريق أول من قدم عرضًا مفاهيميًا لـ proof-of-stake عملة مشفرة تعالج مشكلة عدم وجود شيء على المحك عانى الجيل الأول من العملات المشفرة proof-of-stake مثل مثل NXT وBitShares1.0. اليوم، تستخدم جميع محافظ الهاتف المحمول Bitcoin تقريبًا خوادم موثوقة تزويدهم بالتحقق من المعاملة. وذلك لأن إثبات العمل يتطلب انتظار العديد من التأكيدات قبل يمكن اعتبار المعاملة ملتزمة بشكل لا رجعة فيه. لقد تم بالفعل عرض هجمات Doublespend على خدمات مثل CoinBase. على عكس أنظمة الإجماع blockchain الأخرى، تقدم Tendermint التحقق من الدفع عبر الهاتف المحمول بشكل فوري وآمن. نظرًا لأن Tendermint مصمم بحيث لا يتشعب أبدًا على الإطلاق، فهو متنقل يمكن أن تتلقى المحافظ تأكيدًا فوريًا للمعاملات، مما يجعل المدفوعات غير الموثوقة والعملية حقيقة واقعة على الهواتف الذكية. هذا له تأثيرات كبيرة على تطبيقات إنترنت الأشياء مثل حسنا. يتمتع المدققون في Cosmos بدور مماثل لعمال المناجم Bitcoin، ولكن بدلاً من ذلك استخدم التوقيعات المشفرة للتصويت. المصادقون هم آلات آمنة ومخصصة مسؤولة عن الالتزام كتل. يمكن لغير validators تفويض staking tokens (يُسمى "الذرات") إلى أي validator لكسب جزء من رسوم الكتلة والذرة المكافآت، لكنهم يتعرضون لخطر العقاب (القطع) إذا تم اختراق المندوب validator أو انتهاك البروتوكول. ثبت ضمانات سلامة Tendermint BFT الإجماع والضمانات إيداع أصحاب المصلحة – validator والمفوضين – تقديم أمان يمكن إثباته وقابل للقياس للعقد والعملاء الخفيفين. يجب أن تحتوي الدفاتر العامة الموزعة على دستور و نظام الحكم. Bitcoin يعتمد على Bitcoin الأساس والتعدين لتنسيق الترقيات، ولكن هذه عملية بطيئة. تم تقسيم Ethereum إلى ETH وETC بعد التفرع الصعب للمعالجة يعود سبب الاختراق DAO إلى حد كبير إلى عدم وجود عقد اجتماعي مسبق ولا آلية لاتخاذ مثل هذه القرارات. يمكن للمصادقين والمفوضين في Cosmos التصويت عليهم المقترحات التي يمكن أن تغير المعلمات المحددة مسبقًا للنظام تلقائيا (مثل حد الغاز كتلة)، وتنسيق الترقيات، كما وكذلك التصويت على تعديلات الدستور الذي يمكن قراءته بواسطة الإنسان التي تحكم سياسات Cosmos Hub. الدستور يسمح بالتماسك بين أصحاب المصلحة بشأن قضايا مثل السرقة والأخطاء (مثل حادثة DAO)، مما يسمح بإجراء أسرع وأسرع دقة أنظف. يمكن أن يكون لكل منطقة أيضًا دستورها ونظام حكمها الخاص آلية كذلك. على سبيل المثال، يمكن أن يحتوي المركز Cosmos على الدستور الذي يفرض الثبات في المركز (لا يوجد تراجع، حفظ الأخطاء في تنفيذ العقدة المركزية Cosmos)، بينما يمكن لكل منطقة وضع سياساتها الخاصة فيما يتعلق بالتراجع. ومن خلال تمكين إمكانية التشغيل البيني بين مناطق السياسة المختلفة، فإن تمنح شبكة Cosmos مستخدميها الحرية المطلقة والإمكانات تجريب غير مسموح به. نحن هنا نصف نموذجًا جديدًا للامركزية وقابلية التوسع. Cosmos عبارة عن شبكة تضم العديد من blockchains التي يتم تشغيلها بواسطة النعناع. بينما تهدف المقترحات الحالية إلى إنشاء "فردية". blockchain" مع إجمالي طلب المعاملات العالمية، Cosmos يسمح للعديد من blockchains بالعمل بشكل متزامن مع بعضها البعض مع الاحتفاظ بإمكانية التشغيل البيني. في الأساس، يدير Cosmos Hub العديد من المستقلين blockchains تسمى "المناطق" (يشار إليها أحيانًا باسم "الأجزاء"، في إشارة إلى تقنية قياس قاعدة البيانات المعروفة باسم "التقسيم").
دفق مستمر من عمليات الحظر الأخيرة من المناطق المنشورة عليها يسمح Hub للمركز بمواكبة حالة كل منطقة. وبالمثل، فإن كل منطقة تواكب حالة المحور (لكن المناطق لا يواكبون بعضهم البعض إلا بشكل غير مباشر من خلال المحور). ثم يتم إرسال حزم المعلومات من واحدة منطقة إلى أخرى عن طريق نشر أدلة Merkle كدليل على أن تم إرسال المعلومات واستلامها. وتسمى هذه الآلية التواصل بين blockchain، أو IBC للاختصار. يمكن لأي من المناطق أن تكون في حد ذاتها محاورًا لتكوين رسم بياني غير دوري، ولكن من أجل الوضوح سنصف فقط ما هو بسيط conyguration حيث لا يوجد سوى محور واحد، والعديد من غير المحور المناطق. مركز Cosmos هو blockchain الذي يستضيف أصولًا متعددة دفتر الأستاذ الموزع، حيث يمكن الاحتفاظ بـ tokens بواسطة مستخدمين فرديين أو حسب المناطق نفسها. يمكن نقل هذه tokens من منطقة واحدة إلى أخرى في حزمة خاصة IBC تسمى "حزمة العملات المعدنية". المحور هو مسؤولة عن الحفاظ على الثبات العالمي للمجموع مقدار كل token عبر المناطق. IBC حزمة العملات المعدنية يجب أن يتم تنفيذ المعاملات من قبل المرسل والمركز والمتلقي blockchains.نظرًا لأن Cosmos Hub يعمل بمثابة دفتر الأستاذ المركزي للكل النظام، فإن أمن المركز له أهمية قصوى. بينما قد تكون كل منطقة عبارة عن Tendermint blockchain مؤمنة بواسطة as عدد قليل يصل إلى 4 (أو حتى أقل إذا لم يكن هناك حاجة إلى إجماع BFT)، المحور يجب تأمينها من خلال مجموعة لامركزية عالميًا من validators يمكن أن تصمد أمام سيناريوهات الهجوم الأكثر خطورة، مثل تقسيم الشبكة القارية أو هجوم ترعاه الدولة القومية. منطقة Cosmos هي منطقة blockchain مستقلة تتبادل IBC الرسائل مع المحور. من وجهة نظر المحور، المنطقة هي أ حساب متعدد التوقيع للعضوية الديناميكية المتعددة الأصول يمكن إرسال واستقبال tokens باستخدام IBC الحزم. مثل أ حساب العملة المشفرة، لا يمكن للمنطقة نقل أكثر من tokens من إنه موجود بالفعل، ولكن يمكنه تلقي tokens من الآخرين الذين لديهم تلك الرسائل. منطقة قد يتم تعيينه كـ "مصدر" لواحد أو أكثر من أنواع token، ومنحها القدرة على تعزيز هذا العرض token. قد يتم تثبيت ذرات المركز Cosmos بواسطة validators في المنطقة متصل بالمحور. بينما تشن الهجمات المزدوجة الإنفاق على هذه المناطق من شأنه أن يؤدي إلى خفض الذرات مع المسؤولية الجزئية لـ Tendermint، وهي منطقة حيث يكون >⅔ من قوة التصويت يمكن للبيزنطيين ارتكاب حالة باطلة. مركز Cosmos لا يفعل ذلك التحقق من أو تنفيذ المعاملات المرتكبة في مناطق أخرى، لذلك هو عليه مسؤولية المستخدمين عن إرسال tokens إلى المناطق التي يثقون بها. في المستقبل، قد يجتاز نظام إدارة Cosmos Hub Hub مقترحات التحسين التي تفسر فشل المنطقة. ل على سبيل المثال، قد تكون عمليات النقل الصادرة token من بعض (أو جميع) المناطق يتم خنقها للسماح بقطع دائرة الطوارئ للمناطق (وقف مؤقت لعمليات نقل token) عند اكتشاف هجوم. الآن ننظر إلى كيفية تواصل المركز والمناطق مع كل منهما أخرى. على سبيل المثال، إذا كان هناك ثلاثة blockchains، "Zone1"، "Zone2"،

و"Hub"، ونتمنى أن تقوم "Zone1" بإنتاج حزمة متجهة بالنسبة لـ "Zone2" التي تمر عبر "Hub". لنقل حزمة من واحد blockchain إلى آخر، يتم نشر إثبات على سلسلة الاستلام. يشير الدليل إلى أن سلسلة الإرسال نشرت حزمة لـ الوجهة المزعومة لكي تتحقق السلسلة المتلقية من هذا الإثبات، يجب عليها يجب أن يكون قادرًا على مواكبة رؤوس كتلة المرسل. هذا الآلية مشابهة لتلك المستخدمة في السلاسل الجانبية، الأمر الذي يتطلب سلسلتين متفاعلتين لتكون على علم ببعضهما البعض عبر أ تيار ثنائي الاتجاه من مخططات بيانات إثبات الوجود (المعاملات). من الطبيعي أن يتم فك بروتوكول IBC باستخدام نوعين من المعاملات: معاملة IBCBlockCommitTx ، والتي تسمح بـ blockchain لإثبات لأي مراقب أحدث كتلة لها-hash، ومعاملة IBCPacketTx، والتي تسمح لـ blockchain بـ أثبت لأي مراقب أن الحزمة المحددة قد تم نشرها بالفعل عن طريق تطبيق المرسل، عبر خاصية Merkle-proof للأحدث كتلة-hash. من خلال تقسيم آليات IBC إلى معاملتين منفصلتين، فإننا السماح لآلية سوق الرسوم المحلية لسلسلة الاستقبال بذلك تحديد الحزم التي سيتم الالتزام بها (أي تم الاعتراف بها)، بينما السماح بالحرية الكاملة لسلسلة الإرسال فيما يتعلق بكيفية ذلك يُسمح بالعديد من الحزم الصادرة. في المثال أعلاه، من أجل تحديث الكتلة-hash الخاصة بـ "Zone1" على "Hub" (أو "Hub" في "Zone2")، IBCBlockCommitTxيجب نشر المعاملة على "المركز" مع الكتلة-hash من "Zone1" (أو على "Zone2" مع الكتلة-hash من "Hub"). راجع IBCBlockCommitTx وIBCPacketTx لمزيد من المعلومات على نوعي المعاملات IBC. بنفس الطريقة التي يكون بها Bitcoin أكثر أمانًا من خلال كونه موزعًا، يمكننا أن نجعل التبادلات أقل عرضة للخطر اختراقات خارجية وداخلية عن طريق تشغيله على blockchain. نحن نسمي هذا التبادل الموزع. ما يسميه مجتمع العملات المشفرة اللامركزية تعتمد البورصة اليوم على ما يسمى معاملات "السلسلة الذرية" (AXC). مع معاملة AXC، هناك مستخدمان قيد التشغيل يمكن لسلسلتين مختلفتين إجراء معاملتي تحويل ملتزمة معًا في كلا الدفترين، أو لا شيء على الإطلاق (أي: ذرياً). على سبيل المثال، يمكن لاثنين من المستخدمين تداول عملات البيتكوين مقابل الأثير (أو أي اثنين من tokens في دفتري أستاذ مختلفين) باستخدام معاملات AXC، على الرغم من أن Bitcoin وEthereum غير متصلين ببعضهما أخرى. إن فائدة تشغيل البورصة على معاملات AXC هي أنه لا يحتاج المستخدمون إلى الثقة ببعضهم البعض أو في مطابقة التجارة الخدمة. الجانب السلبي هو أن كلا الطرفين يجب أن يكونا متصلين بالإنترنت التجارة أن تحدث. نوع آخر من التبادل اللامركزي هو التبادل الجماعي التبادل الموزع الذي يعمل من تلقاء نفسه blockchain. المستخدمين على يمكن لهذا النوع من التبادل إرسال أمر محدد وتحويله إيقاف تشغيل الكمبيوتر، ويمكن تنفيذ التجارة دون أن يكون المستخدم موجودًا على الانترنت. يطابق blockchain ويكمل التداول نيابةً عنه من التاجر.
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.
التطبيقات
يمكن للبورصة المركزية إنشاء سجل أوامر عميق للحدود الأوامر وبالتالي جذب المزيد من المتداولين. السيولة تولد المزيد السيولة في عالم الصرف، وبالتالي هناك شبكة قوية التأثير (أو على الأقل الفائز يأخذ أكبر قدر من التأثير) في التبادل عمل. الزعيم الحالي لتبادل العملات المشفرة اليوم هو Poloniex بحجم تداول على مدار 24 ساعة بقيمة 20 مليون دولار، وفي المركز الثاني Bitynex بحجم تداول على مدار 24 ساعة بقيمة 5 ملايين دولار. ونظرا لهذه الشبكة القوية من غير المرجح أن تقوم البورصات اللامركزية القائمة على AXC بذلك الفوز بالحجم عبر البورصات المركزية. من أجل اللامركزية تبادل للتنافس مع تبادل مركزي، فإنه سوف تحتاج لدعم دفاتر الطلبات العميقة مع أوامر الحد. فقط موزعة التبادل على blockchain يمكن أن يوفر ذلك. يوفر Tendermint فوائد إضافية للمعاملات الأسرع يرتكب. من خلال إعطاء الأولوية للسرعة دون التضحية الاتساق، يمكن للمناطق الموجودة في Cosmos إجراء المعاملات بسرعة - من أجل كلاً من معاملات أوامر الصرف وكذلك IBC token التحويلات إلى ومن مناطق أخرى. بالنظر إلى حالة بورصات العملات المشفرة اليوم، يعد هذا أمرًا رائعًا تطبيق Cosmos هو التبادل الموزع (المعروف أيضًا باسم Cosmos ديكس). القدرة الإنتاجية للمعاملة كذلك يمكن أن يكون وقت استجابة الالتزام مشابهًا لتلك المركزية التبادلات. يمكن للمتداولين تقديم أوامر محددة يمكن تنفيذها دون أن يكون كلا الطرفين متصلين بالإنترنت. ومع تندرمينت، مركز Cosmos وIBC، يمكن للمتداولين نقل الأموال داخل وخارج التبادل من وإلى المناطق الأخرى بسرعة. يمكن أن تعمل المنطقة المميزة كمصدر لـ token من عملة مشفرة أخرى. الجسر يشبه العلاقة بين المركز والمنطقة Cosmos؛ كلاهما يجب أن يواكبا أحدث الكتل للآخر من أجل التحقق من الأدلة التي يمتلكها tokens انتقلت من واحدة إلى أخرى. "منطقة الجسر" على Cosmos تواكب الشبكة المحور بالإضافة إلى الآخر
عملة مشفرة. يسمح الاتجاه غير المباشر عبر منطقة الجسر منطق المحور ليظل بسيطًا ومحايدًا للآخرين blockchain إستراتيجيات الإجماع مثل Bitcoin proof-of-work التعدين. سيتم تشغيل كل منطقة جسر validator بواسطة Tendermint blockchain مع تطبيق جسر خاص ABCI، ولكن أيضًا عقدة كاملة لـ "الأصل" blockchain. عندما يتم استخراج كتل جديدة في الأصل، منطقة الجسر سوف يتوصل validators إلى اتفاق بشأن الكتل الملتزم بها من خلال التوقيع ومشاركة وجهة نظرهم المحلية الخاصة بالأصل blockchain نصيحة. عندما تتلقى منطقة الجسر الدفع على الأصل (و وقد تم الاتفاق على ما يكفي من التأكيدات في هذه القضية لسلسلة PoW مثل Ethereum أو Bitcoin)، المقابلة يتم إنشاء الحساب في منطقة الجسر بهذا الرصيد. في حالة Ethereum، يمكن لمنطقة الجسر مشاركة نفس الشيء validator-تم تعيينه كمركز Cosmos. على الجانب Ethereum ( Origin)، سيسمح عقد الجسر لحاملي الأثير بإرسال الأثير إلى منطقة الجسر عن طريق إرسالها إلى عقد الجسر Ethereum. بمجرد استلام الأثير من خلال عقد الجسر، فإن لا يمكن سحب الأثير إلا إذا كانت هناك حزمة IBC مناسبة تم استلامها بموجب عقد الجسر من منطقة الجسر. ال يتتبع عقد الجسر مجموعة validator لمنطقة الجسر، والتي قد تكون مطابقة لمجموعة Cosmos Hub validator. في حالة Bitcoin، المفهوم مشابه باستثناء أنه بدلاً من ذلك عقد جسر واحد، سيتم التحكم في كل UTXO بواسطة أ عتبة متعددة التوقيعات P2SH. بسبب القيود في نظام P2SH، لا يمكن أن يكون الموقعون متطابقين مع Cosmos المحور validator-مجموعة.يمكن نقل الأثير الموجود في منطقة الجسر ("الأثير الجسري") إلى ومن المحور، ويتم تدميرها لاحقًا بمعاملة ذلك يرسلها إلى عنوان سحب معين على Ethereum. IBC حزمة تثبت أن المعاملة حدثت في منطقة الجسر يمكن نشرها على عقد الجسر Ethereum للسماح بالأثير ليتم سحبها. في حالة Bitcoin، يقوم نظام البرمجة النصية المقيدة بذلك من الصعب عكس آلية نقل العملة IBC. كل UTXO لديه منشور مستقل خاص به، لذلك يجب أن يكون كل UTXO تم الترحيل إلى UTXO الجديد عندما يكون هناك تغيير في مجموعة Bitcoin موقعي الضمان. أحد الحلول هو الضغط و قم بفك ضغط مجموعة UTXO حسب الضرورة للحفاظ على العدد الإجمالي من UTXOs لأسفل. إن خطر مثل هذا العقد التجسيري هو مجموعة validator المارقة. ≥⅓ يمكن أن تتسبب قوة التصويت البيزنطية في حدوث شوكة وسحب الأثير من عقد الجسر على Ethereum مع الحفاظ على جسر الجسر في منطقة الجسر. والأسوأ من ذلك أن قوة التصويت البيزنطية يمكنها ذلك سرقة الأثير مباشرة من أولئك الذين أرسلوه إلى عقد الجسر بالانحراف عن منطق التجسير الأصلي لمنطقة الجسر. من الممكن معالجة هذه المشكلات من خلال تصميم الجسر مسؤولة تماما. على سبيل المثال، كافة الحزم IBC من المركز و الأصل، قد يتطلب الاعتراف من قبل منطقة الجسر في بهذه الطريقة يمكن أن تكون جميع التحولات الحكومية في منطقة الجسر يتم تحديها والتحقق منها بكفاءة سواء من خلال المركز أو الأصل عقد الجسر. يجب أن يسمح المركز والأصل لمنطقة الجسر validators بنشر الضمانات، وtoken عمليات النقل خارج يجب تأخير عقد الجسر (وفك الضمانات فترة طويلة بما فيه الكفاية) للسماح بأية تحديات مدققين مستقلين. نترك تصميم المواصفات و تنفيذ هذا النظام مفتوح كمستقبل Cosmos
مقترح التحسين، ليتم تمريره من خلال مركز Cosmos نظام الحكم. يعد حل مشكلة القياس مشكلة مفتوحة لـ Ethereum. حاليًا، تقوم عقد Ethereum بمعالجة كل معاملة و أيضا تخزين جميع الدول. وصلة. نظرًا لأن Tendermint يمكنها تنفيذ الكتل بشكل أسرع بكثير من Ethereum proof-of-work، EVM المناطق المدعومة بإجماع Tendermint و يمكن أن يوفر التشغيل على الأثير الجسري أداءً أعلى Ethereum blockchains. بالإضافة إلى ذلك، على الرغم من أن Cosmos Hub و IBC لا تسمح آليات الحزم بمنطق العقد التعسفي التنفيذ في حد ذاته، يمكن استخدامه لتنسيق حركات token بين Ethereum العقود الجاري تنفيذها في مناطق مختلفة، توفير أساس للتوسع token المتمركز حول Ethereum عبر مشاركة. تعمل مناطق Cosmos على تشغيل منطق التطبيق التعسفي، والذي تم تحديده عند بداية حياة المنطقة ويمكن تحديثها مع مرور الوقت من قبل الحكم. تسمح هذه القابلية للمناطق بـ Cosmos بمثابة جسور إلى العملات المشفرة الأخرى مثل Ethereum أو Bitcoin، كما أنه يسمح بمشتقات تلك blockchains، باستخدام نفس قاعدة التعليمات البرمجية ولكن مع مجموعة validator مختلفة و التوزيع الأولي. وهذا يسمح للعديد من العملات المشفرة الموجودة أطر العمل، مثل تلك الخاصة بـ Ethereum، وZerocash، وBitcoin، CryptoNote وما إلى ذلك، لاستخدامها مع Tendermint Core، وهو محرك توافقي عالي الأداء، على شبكة مشتركة، فتح فرصة هائلة للتشغيل البيني عبر المنصات. علاوة على ذلك، باعتباره أصلًا متعددًا blockchain، واحدًا قد تحتوي المعاملة على مدخلات ومخرجات متعددة، حيث يكون كل منها يمكن أن يكون الإدخال من أي نوع token، مما يتيح لـ Cosmos العمل مباشرةً كـ منصة للتبادل اللامركزي، على الرغم من افتراض الأوامرلتتم مطابقتها عبر منصات أخرى. بدلا من ذلك، يمكن للمنطقة أن تخدم كتبادل موزع متسامح مع الأخطاء (مع دفاتر الطلبات)، والذي يمكن أن يكون هناك تحسن صارم على المركزية الموجودة بورصات العملات المشفرة التي تميل إلى الاختراق مع مرور الوقت. يمكن أن تعمل المناطق أيضًا كإصدارات مدعومة من المؤسسة blockchain والأنظمة الحكومية، حيث أجزاء من خدمة معينة تدار تقليديا من قبل منظمة أو مجموعة من المنظمات يتم تشغيلها بدلاً من ذلك كتطبيق ABCI في منطقة معينة، والتي يسمح لها بوراثة الأمن وقابلية التشغيل البيني للجمهور Cosmos الشبكة دون التضحية بالتحكم في الشبكة الأساسية الخدمة. وبالتالي، قد يقدم Cosmos أفضل ما في العالمين المنظمات التي تتطلع إلى الاستفادة من تقنية blockchain ولكن من هي؟ الحذر من التخلي عن السيطرة بالكامل للثلث الموزع حزب. يدعي البعض أن هناك مشكلة كبيرة في تفضيل الاتساق خوارزميات الإجماع مثل Tendermint هي أن أي شبكة القسم الذي يتسبب في عدم وجود قسم واحد به >⅔ قوة التصويت (على سبيل المثال ≥⅓ الذهاب للخارج) ستوقف الإجماع تمامًا. يمكن أن تساعد بنية Cosmos في تخفيف هذه المشكلة باستخدام مركز عالمي مع مناطق الحكم الذاتي الإقليمية، حيث قوة التصويت لكل منطقة يتم توزيعها على أساس جغرافي مشترك المنطقة. على سبيل المثال، قد يكون النموذج المشترك للفرد المدن أو المناطق لتشغيل مناطقها الخاصة أثناء مشاركة أ المركز المشترك (على سبيل المثال، المركز Cosmos)، مما يتيح للنشاط البلدي تستمر في حالة توقف المحور بسبب شبكة مؤقتة التقسيم. لاحظ أن هذا يسمح بالجيولوجية والسياسية الحقيقية الميزات الطوبولوجية للشبكة التي يجب مراعاتها عند التصميم القوي الأنظمة الموحدة المتسامحة مع الأخطاء.
كانت NameCoin واحدة من أوائل blockchains التي حاولت حل مشكلة مشكلة تحليل الاسم عن طريق تكييف Bitcoin blockchain. لسوء الحظ كانت هناك العديد من المشاكل مع هذا النهج. باستخدام Namecoin، يمكننا التحقق من أن @satoshi، على سبيل المثال، كان كذلك مسجلة بمفتاح عام معين في وقت ما في الماضي، لكننا لا نعرف ما إذا كان المفتاح العام موجودًا منذ ذلك الحين تم تحديثه مؤخرًا ما لم نقم بتنزيل جميع الكتل منذ آخر مرة تحديث لهذا الاسم. ويرجع ذلك إلى القيود المفروضة على Bitcoin UTXO نموذج تحويل المعاملة Merkle، حيث فقط المعاملات (ولكن ليست حالة التطبيق القابلة للتغيير) هي من نوع Merkle في الكتلة-hash. وهذا يتيح لنا إثبات الوجود، ولكن ليس عدم وجود تحديثات لاحقة للاسم. وبالتالي، لا يمكننا أن نعرف تأكد من أحدث قيمة للاسم دون الثقة الكاملة العقدة، أو تكبد تكاليف كبيرة في النطاق الترددي عن طريق التنزيل كله blockchain. حتى لو تم تنفيذ شجرة بحث بحجم Merkle في NameCoin، اعتماده على proof-of-work يجعل عملية التحقق من العميل سهلة إشكالية. يجب على عملاء Light تنزيل نسخة كاملة من رؤوس جميع الكتل في blockchain بالكامل (أو على الأقل كل الرؤوس منذ آخر تحديث للاسم). وهذا يعني أن تتغير متطلبات عرض النطاق الترددي بشكل خطي مع مقدار الوقت [21]. بالإضافة إلى ذلك، يتغير الاسم على proof-of-work blockchain يتطلب انتظار كتل تأكيد إضافية proof-of-work، والذي يمكن أن يستغرق ما يصل إلى ساعة على Bitcoin. مع Tendermint، كل ما نحتاجه هو أحدث كتلة-hash موقعة من قبل نصاب قانوني قدره validators (بواسطة قوة التصويت)، وميركل دليل على القيمة الحالية المرتبطة بالاسم. هذا يجعلها من الممكن أن يكون لديك عميل خفيف مقتضب وسريع وآمن التحقق من قيم الاسم. في Cosmos، يمكننا أن نأخذ هذا المفهوم ونوسعه إلى أبعد من ذلك. كل يمكن أن تحتوي منطقة تسجيل الاسم في Cosmos على اسم نطاق المستوى الأعلى (TLD) مرتبط مثل ".com" أو ".org"، وكل اسم-
منطقة التسجيل يمكن أن يكون لها الإدارة والتسجيل الخاصة بها القواعد.
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.
الحكم والاقتصاد
في حين أن Cosmos Hub عبارة عن دفتر أستاذ موزع متعدد الأصول، إلا أنه يوجد أصل خاص token يسمى الذرة. الذرات هي staking الوحيدة token للمركز Cosmos. الذرات هي رخصة لحاملها التصويت أو التحقق من الصحة أو التفويض إلى validators أخرى. مثل Ethereum الأثير، يمكن أيضًا استخدام الذرات لدفع رسوم المعاملات تخفيف البريد العشوائي. ذرات إنزاتيوناري إضافية ومعاملة كتلة تتم مكافأة الرسوم إلى validator والمفوضين الذين يفوضون ذلك validators. ويمكن استخدام معاملة BurnAtomTx لاسترداد أي منها مبلغ متناسب من tokens من المجمع الاحتياطي. التوزيع الأولي للذرة tokens و validators في سفر التكوين سيذهب إلى الجهات المانحة لجمع التبرعات Cosmos (75%)، الجهات المانحة الرئيسية (5%)، Cosmos مؤسسة الشبكة (10%)، وALL IN BITS, Inc (10%). ومن لحظة التكوين فصاعدًا، سوف يصبح ثلث إجمالي كمية الذرات سيتم مكافأتك للمستعبدين validator والمفوضين كل عام. راجع خطة Cosmos للحصول على تفاصيل إضافية. على عكس Bitcoin أو غيره من proof-of-work blockchains، فإن Tendermint blockchain يصبح أبطأ مع المزيد من validators بسبب الزيادة تعقيد الاتصالات. ولحسن الحظ، يمكننا دعم ما يكفي validators لإنشاء blockchain قوي وموزع عالميًا مع أوقات تأكيد المعاملات السريعة جدًا، وعرض النطاق الترددي،
التخزين، وزيادة سعة الحوسبة الموازية، سنكون قادرين لدعم المزيد من validators في المستقبل. في يوم التكوين، سيتم تعيين الحد الأقصى لعدد validators إلى 100، وسيزداد هذا العدد بمعدل 13% لمدة 10 سنوات، و استقر عند 300 validators. يمكن لحاملي الذرة الذين ليسوا بالفعل أن يصبحوا validators بحلول التوقيع على معاملة BondTx وإرسالها. كمية الذرات المقدمة كضمان يجب أن تكون غير صفرية. يمكن لأي شخص أن يصبح validator في أي وقت، إلا عندما يكون حجم التيار مجموعة validator أكبر من الحد الأقصى لعدد validators مسموح به. في هذه الحالة، تكون المعاملة صالحة فقط إذا كان المبلغ الذرات أكبر من كمية الذرات الفعالة التي يحتفظ بها الأصغر validator، حيث تشمل الذرات الفعالة الذرات المفوضة. عندما يحل validator الجديد محل validator الحالي بهذه الطريقة، validator الموجود يصبح غير نشط وجميع الذرات و تدخل الذرات المفوضة إلى حالة فك الارتباط. يجب أن يتم فرض بعض العقوبات على validators لأي منها الانحراف المقصود أو غير المقصود عن العقوبة البروتوكول. يتم قبول بعض الأدلة على الفور، مثل أ علامة مزدوجة على نفس الارتفاع والدائرية، أو انتهاكا السنة 0: 100 السنة الأولى: 113 السنة الثانية: 127 السنة 3: 144 السنة الرابعة: 163 السنة 5: 184 السنة 6: 208 السنة 7: 235 السنة 8: 265 السنة 9: 300 السنة 10: 300 ...
"prevote-the-lock" (قاعدة من بروتوكول إجماع Tendermint). سيؤدي مثل هذا الدليل إلى فقدان validator لوضعه الجيد وذراتها المرتبطة بالإضافة إلى حصتها التناسبية البالغة tokens في سيتم تخفيض مجموع الاحتياطي - الذي يطلق عليه مجتمعًا "حصته" -. في بعض الأحيان، لن يكون validators متاحًا، إما بسبب المنطقة انقطاع الشبكة أو انقطاع التيار الكهربائي أو لأسباب أخرى. إذا، في أي نقطة في كتل ValidatorTimeoutWindow السابقة، validator لم يتم تضمين التصويت الالتزام في blockchain أكثر من مرات ValidatorTimeoutMaxAbsent، سيصبح validator غير نشط، وتفقد ValidatorTimeoutPenalty (الافتراضي 1%) من قيمته حصة. بعض السلوكيات "الخبيثة" لا يمكن تمييزها بشكل واضح الأدلة على blockchain. في هذه الحالات، يمكن لـ validators التنسيق خارج النطاق لفرض انتهاء مهلة هذه البرامج الضارة validators، إذا كان هناك إجماع بأغلبية ساحقة. في المواقف التي يتوقف فيها Cosmos Hub بسبب تحالف ≥⅓ من تختفي قوة التصويت، أو في الحالات التي يكون فيها ائتلاف ≥⅓ دليل رقابي على قوة التصويت على السلوك الخبيث من عند إدخال blockchain، يجب أن يتعافى المحور باستخدام شوكة صلبة اقتراح إعادة التنظيم. (رابط إلى "هجمات الشوكات والرقابة"). Cosmos يمكن للمحور validators قبول أي نوع أو مجموعة token أنواعها كرسوم معالجة معاملة. كل validator يمكن قم بتعيين سعر الصرف الذي تريده بشكل شخصي، ثم اختر مهما كانت المعاملات التي تريدها، طالما أن BlockGasLimit هو كذلك لم يتم تجاوزها. الرسوم المحصلة، ناقص أي ضرائب محددة أدناه، يتم إعادة توزيعها على أصحاب المصلحة المستعبدين بما يتناسب مع ذراتها المرتبطة، كل ValidatorPayoutPeriod (الافتراضي 1 ساعة).من بين رسوم المعاملات المحصلة، سيتم تطبيق ReserveTax (الافتراضي 2%) اذهب نحو تجمع الاحتياطي لزيادة تجمع الاحتياطي و زيادة أمان وقيمة شبكة Cosmos. هذه ويمكن أيضًا توزيع الأموال وفقًا للقرارات صنعها نظام الحكم. أصحاب الذرة الذين يفوضون سلطة التصويت الخاصة بهم إلى validators آخرين دفع عمولة للمفوض validator. يمكن للجنة يتم تعيينها بواسطة كل validator. يعد أمان Cosmos Hub إحدى وظائف أمان validators واختيار التفويض من قبل المفوضين. من أجل تشجيع الاكتشاف والإبلاغ المبكر عما تم العثور عليه الثغرات الأمنية، يشجع مركز Cosmos المتسللين على النشر عمليات استغلال ناجحة عبر معاملة ReportHackTx التي تنص على أن "هذا تم اختراق validator. من فضلك أرسل المكافأة إلى هذا العنوان". على مثل هذا الاستغلال، سيصبح validator والمفوضون غير نشطين، HackPunishmentRatio (الافتراضي 5%) من ذرات الجميع سيحصلون عليها مقطوعة، و HackRewardRatio (افتراضي 5%) من ذرات الجميع سوف تحصل على مكافأة على عنوان مكافأة المتسلل. validator يجب استعادة الذرات المتبقية باستخدام مفتاح النسخ الاحتياطي الخاص بهم. من أجل منع إساءة استخدام هذه الميزة للنقل الذرات غير المكتسبة، جزء من الذرات المكتسبة مقابل الذرات غير المكتسبة validators والمفوضون قبل وبعد ReportHackTx سوف تظل كما هي، وستتضمن مكافأة الهاكر بعضًا منها الذرات غير المستثمرة، إن وجدت. يتم تشغيل مركز Cosmos بواسطة مؤسسة موزعة يتطلب آلية حوكمة جيدة التصميم من أجل تنسيق التغييرات المختلفة على blockchain، مثل المتغير
معلمات النظام، بالإضافة إلى ترقيات البرامج و التعديلات الدستورية. جميع validator مسؤولون عن التصويت على جميع المقترحات. الفشل في سيؤدي التصويت على الاقتراح في الوقت المناسب إلى validator يتم إلغاء التنشيط تلقائيًا لفترة من الوقت تسمى عقوبة الغياب (أسبوع واحد افتراضيًا). يرث المفوضون صوت المفوض تلقائيًا validator. قد يتم تجاوز هذا التصويت يدويًا. الذرات غير المرتبطة لا تحصل على أي تصويت. يتطلب كل اقتراح إيداع مبلغ MinimumProposalDeposit tokens، والتي قد تكون مزيجًا من واحد أو أكثر من tokens بما في ذلك الذرات. بالنسبة لكل اقتراح، يجوز للناخبين التصويت لاتخاذه الوديعة. إذا اختار أكثر من نصف الناخبين التصويت الإيداع (على سبيل المثال، لأن الاقتراح كان غير مرغوب فيه)، يذهب الإيداع إلى المجمع الاحتياطي، باستثناء أي ذرات يتم حرقها. لكل مقترح، يمكن للناخبين التصويت بالخيارات التالية: نعم نعم مع القوة كلا NayWithForce امتنع عن التصويت أغلبية صارمة من أصوات نعم أو YeaWithForce (أو لا أو أصوات NayWithForce) مطلوبة حتى يتم تحديد الاقتراح تم إقراره (أو تقرر فشله)، ولكن يمكن لـ 1/3+ استخدام حق النقض ضد الأغلبية القرار بالتصويت "بالقوة". عندما يتم نقض الأغلبية الصارمة، تتم معاقبة الجميع بخسارة VetoPenaltyFeeBlocks (قيمة افتراضية للكتل ليوم واحد) بقيمة الرسوم (باستثناء الضرائب والتي لن تتأثر)، والحزب الذي اعترض على الأغلبية
ستتم معاقبة القرار أيضًا بخسارة VetoPenaltyAtoms (الافتراضي 0.1%) من ذراته. يمكن تغيير أي من المعلمات المحددة هنا باستخدام تمرير ParameterChangeProposal. يمكن تجميد الذرات واحتجاز أموال المجمع التي يتم إنفاقها باستخدام تمرير اقتراح المكافأة. جميع المقترحات الأخرى، مثل اقتراح ترقية البروتوكول، سيتم تنسيقه عبر TextProposal العام. انظر الخطة. لقد كان هناك العديد من الابتكارات في إجماع blockchain و قابلية التوسع في العامين الماضيين. يقدم هذا القسم نبذة مختصرة مسح لعدد مختار من المهم. الإجماع في وجود مشاركين خبيثين يمثل مشكلة يعود تاريخها إلى أوائل الثمانينيات، عندما صاغ ليزلي لامبورت عبارة "خطأ بيزنطي" للإشارة إلى سلوك العملية التعسفية ينحرف عن السلوك المقصود، على عكس "خطأ التصادم"، حيث تتعطل العملية ببساطة. تم اكتشاف الحلول المبكرة للشبكات المتزامنة حيث يوجد حد أعلىزمن وصول الرسالة، على الرغم من أن الاستخدام العملي كان يقتصر على درجة عالية البيئات الخاضعة للرقابة مثل وحدات التحكم في الطائرات و مراكز البيانات متزامنة عبر الساعات الذرية. ولم يكن حتى أواخر التسعينيات أن التسامح مع الخطأ البيزنطي العملي (PBFT) [11] كان تم تقديمه كإجماع متزامن فعال جزئيًا خوارزمية قادرة على تحمل ما يصل إلى ثلث العمليات التي تتصرف تعسفا. أصبحت PBFT هي الخوارزمية القياسية، مما أدى إلى ظهور العديد منها الاختلافات، بما في ذلك أحدثها التي تم إنشاؤها بواسطة IBM كجزء من مساهمتهم في Hyperledger. الميزة الرئيسية لإجماع Tendermint على PBFT هي ذلك يحتوي Tendermint على بنية أساسية محسنة ومبسطة، بعضها نتيجة لتبني نموذج blockchain. يجب أن تلتزم كتل Tendermint بالترتيب، مما يتجنب التعقيد وحمل الاتصالات المرتبط بـ PBFT تغييرات العرض. في Cosmos والعديد من العملات المشفرة، لا يوجد بحاجة إلى السماح للكتلة N+i حيث i >= 1 بالالتزام، عند الكتلة N نفسها لم تلتزم بعد. إذا كان عرض النطاق الترددي هو السبب وراء حظر N لم يتم الالتزام به في منطقة Cosmos، فلا يساعد في الاستخدام أصوات مشاركة النطاق الترددي للكتل N+i. إذا كان قسم الشبكة أو عقد ofzine هي السبب وراء عدم التزام الكتلة N N + لن ألتزم على أي حال. بالإضافة إلى ذلك، فإن تجميع المعاملات في كتل يسمح بذلك Merkle-hashing العادي لحالة التطبيق، بدلاً من الملخصات الدورية كما هو الحال مع مخطط نقاط التفتيش PBFT. هذا يسمح من أجل تنفيذ معاملات أسرع يمكن إثباتها للعملاء الخفيفين وبشكل أسرع التواصل بين blockchain. يتضمن Tendermint Core أيضًا العديد من التحسينات والميزات التي تتجاوز ما هو محدد في PBFT. على سبيل المثال، يتم تقسيم الكتل المقترحة بواسطة validators إلى أجزاء، بحجم Merkle، والنميمة بطريقة تعمل على تحسين البث الأداء (راجع LibSwift [19] للإلهام). أيضا، تندرمينت لا يقدم Core أي افتراضات حول نقطة إلى نقطة
الاتصال والوظائف طالما أن شبكة P2P موجودة متصلة بشكل ضعيف. على الرغم من أنها ليست أول من نشر proof-of-stake (PoS)، إلا أن BitShares1.0 [12] ساهم بشكل كبير في البحث واعتماد إثبات الحصة (PoS). blockchains، وخاصة تلك المعروفة باسم نقاط البيع "المفوضة". في BitShares، أصحاب المصلحة ينتخبون "الشهود"، المسؤولين عن الطلب وارتكاب المعاملات و"المندوبين" المسؤولين عنها تنسيق تحديثات البرامج وتغييرات المعلمات. يهدف BitShares2.0 إلى تحقيق أداء عالي (100k tx/s, 1s الكمون) في ظروف مثالية، مع كل كتلة موقعة من قبل واحد المُوقع، وتستغرق عملية المعاملة وقتًا أطول قليلاً من الفاصل الزمني للكتلة. لا تزال المواصفات الأساسية قيد التطوير. يمكن لأصحاب المصلحة إزالة أو استبدال الشهود الذين يسيئون التصرف على بشكل يومي، ولكن لا يوجد ضمانات هامة من الشهود أو المندوبون على غرار Tendermint PoS الذين تم اقتطاعهم حالة نجاح هجوم الإنفاق المزدوج. بناءً على النهج الذي ابتكرته شركة Ripple، Stellar [13] رينيد أ نموذج للاتفاقية البيزنطية الموحدة حيث تتم العمليات المشاركة في الإجماع لا تشكل yxed وعالميا مجموعة معروفة. بدلاً من ذلك، تقوم كل عقدة عملية برعاية واحدة أو أكثر "شرائح النصاب"، يشكل كل منها مجموعة من العمليات الموثوقة. أ "النصاب القانوني" في Stellar مصمم ليكون مجموعة من العقد التي تحتوي على شريحة نصاب واحدة على الأقل لكل عقدة في المجموعة، بحيث يمكن التوصل إلى اتفاق. يعتمد أمان آلية Stellar على الافتراض أن تقاطع أي نصابين غير فارغ، في حين أن يتطلب توفر العقدة شريحة واحدة على الأقل من شرائح النصاب القانوني الخاصة بها تتكون بالكامل من العقد الصحيحة، مما يخلق مفاضلة بين استخدام شرائح النصاب الكبيرة أو الصغيرة التي قد يكون من الصعب تحقيق التوازن فيها دون فرض افتراضات هامة حول الثقة. أخيرًا،يجب أن تختار العقد بطريقة أو بأخرى شرائح النصاب القانوني المناسبة لذلك أن يكون كافيًا للتسامح مع الأخطاء (أو أي "عقد سليمة" على الإطلاق، منها الكثير من نتائج الورقة تعتمد على)، والوحيد الإستراتيجية المقدمة لضمان مثل هذا التكوين هي تسلسل هرمي وهو مشابه لبروتوكول بوابة الحدود (BGP)، الذي يستخدمه مزودو خدمة الإنترنت من الدرجة الأولى على الإنترنت لإنشاء جداول التوجيه العالمية، ومن خلال التي تستخدمها المتصفحات لإدارة شهادات TLS؛ كلاهما سيئ السمعة لانعدام الأمن لديهم. تم تخفيف الانتقادات الواردة في ورقة Stellar الخاصة بأنظمة إثبات الملكية القائمة على Tendermint من خلال استراتيجية token الموضحة هنا، حيث يتم إصدار نوع جديد من token يسمى الذرة تمثل المطالبات بالأجزاء المستقبلية من الرسوم والمكافآت. ال إن ميزة proof-of-stake المستندة إلى Tendermint هي قريبها البساطة، مع الاستمرار في توفير الأمان الكافي والقابل للإثبات الضمانات. BitcoinNG هو تحسين مقترح لـ Bitcoin من شأنه أن يسمح لأشكال قابلية التوسع الرأسي، مثل زيادة حجم الكتلة، دون العواقب الاقتصادية السلبية المرتبطة عادة مع مثل هذا التغيير، مثل التأثير الكبير بشكل غير متناسب على عمال المناجم الصغيرة. ويتحقق هذا التحسن عن طريق الانفصال انتخاب القائد من بث المعاملات: القادة هم الأولون تم انتخابه بواسطة proof-of-work في "الكتل الصغيرة"، ثم أصبح قادرًا على ذلك يجب الالتزام بمعاملات البث حتى يتم إنشاء كتلة صغيرة جديدة تم العثور عليه. وهذا يقلل من متطلبات عرض النطاق الترددي اللازمة ل الفوز بسباق إثبات العمل (PoW)، مما يسمح لصغار عمال المناجم بالمنافسة بشكل أكثر عدالة، والسماح بإجراء المعاملات بشكل أكثر انتظامًا بواسطة آخر عامل منجم يعثر على كتلة صغيرة. Casper [16] عبارة عن خوارزمية إجماع proof-of-stake مقترحة لـ Ethereum. أسلوب عملها الأساسي هو "الإجماع على الرهان". بواسطة السماح لـ validators بالمراهنة بشكل متكرر على الكتلة التي يعتقدون أنها ستفعل
تصبح ملتزمًا بـ blockchain بناءً على الرهانات الأخرى كما رأوه حتى الآن، يمكن تحقيق النزعة الجنسية في نهاية المطاف. وصلة. يعد هذا مجال بحث نشط بواسطة فريق Casper. ال التحدي يكمن في بناء آلية الرهان التي يمكن أن تكون ثبت أنها استراتيجية مستقرة تطوريا. الفائدة الرئيسية من قد يكون Casper مقارنةً بـ Tendermint في تقديم "التوافر". "على الاتساق" - لا يتطلب الإجماع أكثر من ⅔ النصاب القانوني قوة التصويت - ربما على حساب سرعة الالتزام أو تعقيد التنفيذ. لا يعد بروتوكول Interledger [14] حلاً قابلاً للتوسع بشكل صارم. ذلك يوفر التشغيل البيني المخصص بين دفاتر الأستاذ المختلفة الأنظمة من خلال شبكة علاقات ثنائية مترابطة بشكل فضفاض. مثل شبكة Lightning Network، فإن الغرض من ILP هو التسهيل المدفوعات، لكنه يركز بشكل خاص على المدفوعات عبر متباينة أنواع دفتر الأستاذ، وتمتد آلية المعاملات الذرية إلى لا تتضمن فقط hash-الأقفال، ولكن أيضًا النصاب القانوني لكتاب العدل (يسمى بروتوكول النقل الذري). الآلية الأخيرة ل إن فرض الذرية في المعاملات بين دفاتر الأستاذ يشبه آلية SPV العميلة الخفيفة الخاصة بـ Tendermint، مثال توضيحي لـ التمييز بين ILP و Cosmos/IBC أمر مضمون، و المنصوص عليها أدناه. 1. لا يدعم كتاب العدل للموصل في ILP العضوية التغييرات، ولا تسمح بالترجيح بين كتاب العدل. من ناحية أخرى، تم تصميم IBC خصيصًا لـ blockchains، حيث يمكن أن يكون لـ validators أوزان مختلفة، و حيث يمكن أن تتغير العضوية على مدار blockchain. 2. كما هو الحال في Lightning Network، متلقي الدفع في ILP يجب أن يكون متصلاً بالإنترنت لإرسال رسالة تأكيد إلى المرسل. في أtoken نقل عبر IBC، مجموعة validator لجهاز الاستقبال blockchain هو المسؤول عن توفير التأكيد، وليس استقبال المستخدم. 3. الفرق الأكثر لفتًا للانتباه هو أن موصلات ILP ليست كذلك مسؤولاً أو يحتفظ بحالة موثوقة بشأن المدفوعات، بينما في Cosmos، validators للمحور هي سلطة حالة IBC token عمليات النقل بالإضافة إلى سلطة كمية tokens التي تحتفظ بها كل منطقة (ولكن ليس مقدار tokens التي يحتفظ بها كل حساب داخل المنطقة). هذا هو الابتكار الأساسي الذي يسمح بأمان غير متماثل نقل tokens من منطقة إلى أخرى؛ التناظرية لـ ILP الموصل في Cosmos هو موصل ثابت وآمن إلى أقصى حد blockchain دفتر الأستاذ، مركز Cosmos. 4. يجب أن تكون المدفوعات بين دفاتر الأستاذ في ILP مدعومة بـ دفتر أوامر الصرف، حيث لا يوجد نقل غير متماثل لـ عملات معدنية من دفتر أستاذ إلى آخر، فقط نقل القيمة أو معادلات السوق. السلاسل الجانبية [15] هي آلية مقترحة لتوسيع نطاق Bitcoin الشبكة عبر blockchains البديلة "المرتبطة في اتجاهين". Bitcoin blockchain. (الربط في اتجاهين يعادل التجسير. في Cosmos نقول "جسر" للتمييز عن ربط السوق). تسمح السلاسل الجانبية لعملات البيتكوين بالانتقال بشكل فعال من Bitcoin blockchain إلى السلسلة الجانبية والظهر، والسماح بـ تجربة الميزات الجديدة على السلسلة الجانبية. كما في Cosmos Hub والسلسلة الجانبية وBitcoin بمثابة عملاء خفيفين لـ بعضها البعض، باستخدام أدلة SPV لتحديد متى يجب أن تكون العملات المعدنية نقل إلى Sidechain والعودة. بالطبع منذ Bitcoin الاستخدامات proof-of-work، تعاني السلاسل الجانبية المتمركزة حول Bitcoin من مشاكل ومخاطر proof-of-work العديدة كما أ آلية الإجماع. علاوة على ذلك، هذا هو الحد الأقصى Bitcoin الحل الذي لا يدعم أصلاً مجموعة متنوعة من tokens و
طوبولوجيا الشبكة بين المناطق كما يفعل Cosmos. وقيل: جوهر آلية الربط في الاتجاهين هي من حيث المبدأ نفس تلك الآلية يعمل لدى شبكة Cosmos. يقوم Ethereum حاليًا بالبحث في عدد من الاستراتيجيات المختلفة لتقسيم حالة Ethereum blockchain لمعالجة احتياجات قابلية التوسع. وتهدف هذه الجهود إلى الحفاظ على طبقة التجريد التي تقدمها الآلة الافتراضية Ethereum الحالية عبر مساحة الدولة المشتركة. الجهود البحثية المتعددة هي الجارية في هذا الوقت. [18][22] Cosmos وEthereum 2.0 بنفسجي [22] لهما أهداف تصميمية مختلفة. Cosmos يتعلق بشكل خاص بـ tokens. البنفسجي يدور حول القياس الحساب العام. Cosmos غير مرتبط بـ EVM، لذلك يمكن حتى للأجهزة الافتراضية المختلفة التفاعل. Cosmos يتيح لمنشئ المنطقة تحديد من يقوم بالتحقق من صحة المنطقة. يمكن لأي شخص أن يبدأ منطقة جديدة في Cosmos (ما لم تكن الإدارة يقرر خلاف ذلك). يقوم المحور بعزل حالات فشل المنطقة بحيث تكون الثوابت العالمية token كذلك محفوظ. الشبكة المسرّعة هي شبكة نقل مقترحة token تعمل في طبقة أعلى Bitcoin blockchain (وغيرها من الطبقات العامة blockchains)، مما يتيح تحسين العديد من أوامر الحجم في إنتاجية المعاملات عن طريق نقل غالبية المعاملات خارج دفتر الأستاذ الإجماعي إلى ما يسمى "قنوات الدفع".أصبح هذا ممكنًا بفضل البرامج النصية للعملات المشفرة الموجودة على السلسلة، والتي تمكين الأطراف من الدخول في عقود ثنائية الحالة حيث يمكن تحديث الحالة من خلال مشاركة التوقيعات الرقمية والعقود يمكن إغلاقه عن طريق نشر الأدلة بشكل صريح على blockchain، أ الآلية التي تم نشرها لأول مرة عن طريق المقايضة الذرية عبر السلسلة. بواسطة فتح قنوات الدفع مع العديد من الأطراف والمشاركين في يمكن أن تصبح الشبكة المسرّعة نقاطًا محورية لتوجيه الشبكة مدفوعات الآخرين، مما يؤدي إلى قناة دفع متصلة بالكامل الشبكة، على حساب رأس المال الذي يتم ربطه بقنوات الدفع. بينما يمكن للشبكة المسرّعة أيضًا أن تمتد بسهولة عبرها عدة blockchains مستقلة للسماح بنقل القيمة عبر سوق الصرف، لا يمكن استخدامه بشكل غير متماثل نقل tokens من blockchain إلى آخر. الفائدة الرئيسية الغرض من شبكة Cosmos الموصوفة هنا هو تمكين هذا التوجيه المباشر token التحويلات. ومع ذلك، فإننا نتوقع قنوات الدفع و سيتم اعتماد شبكة Lightning Network على نطاق واسع جنبًا إلى جنب مع شبكتنا token آلية النقل، لتوفير التكاليف ولأسباب تتعلق بالخصوصية. الشاهد المنفصل هو رابط مقترح تحسين Bitcoin يهدف إلى زيادة إنتاجية المعاملات لكل كتلة 2X أو 3X، مع جعل مزامنة الكتلة أسرع للعقد الجديدة في نفس الوقت. يكمن تألق هذا الحل في كيفية عمله داخل قيود بروتوكول Bitcoin الحالي وتسمح بالشوكة الناعمة الترقية (أي أن العملاء الذين لديهم إصدارات أقدم من البرنامج سوف يقومون بذلك الاستمرار في العمل بعد الترقية). تندرمينت، كونها جديدة البروتوكول ليس له قيود على التصميم، لذلك له مقياس مختلف الأولويات. في المقام الأول، يستخدم Tendermint خوارزمية BFT المستديرة على أساس التوقيعات التشفير بدلا من التعدين، والتي يسمح بشكل تافه بالتحجيم الأفقي من خلال التوازي المتعدد blockchains، بينما تسمح عمليات الحظر المنتظمة والمتكررة بذلك التحجيم العمودي كذلك.
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
³ è
الإجماع والتفاصيل الفنية
ينبغي لبروتوكول الإجماع المصمم جيدًا أن يوفر بعضًا من ذلك الضمانات في حالة تجاوز قدرة التسامح ويفشل الإجماع. وهذا ضروري بشكل خاص في المجال الاقتصادي الأنظمة، حيث يمكن أن يكون للسلوك البيزنطي قدر كبير من المال مكافأة. وأهم هذه الضمانات هو شكل من أشكال المساءلة، حيث تتم العمليات التي تسببت في الإجماع الفشل (أي جعل عملاء البروتوكول يقبلون قيمًا مختلفة - أ fork) يمكن تحديد هويته ومعاقبته وفقًا لقواعد البروتوكول، أو ربما النظام القانوني. عندما يكون النظام القانوني يمكن أن يكون استدعاء validators غير موثوق به أو باهظ التكلفة اضطروا إلى تقديم ودائع ضمان من أجل المشاركة، وهؤلاء يمكن إلغاء الودائع أو تخفيضها عند حدوث سلوك ضار تم اكتشاف [10]. لاحظ أن هذا يختلف عن Bitcoin، حيث يكون التفرع حدثًا منتظمًا بسبب عدم تزامن الشبكة والطبيعة الاحتمالية للنهاية الاصطدامات الجزئية hash. نظرًا لأنه في كثير من الحالات يكون هناك شوكة ضارة لا يمكن تمييزه عن الشوكة بسبب عدم التزامن، Bitcoin لا يمكن تنفيذ مسؤولية الشوكة بشكل موثوق، بخلاف الضمنية تكلفة الفرصة البديلة التي يدفعها عمال المناجم لتعدين كتلة معزولة. نحن نطلق على مرحلتي التصويت PreVote وPreCommit. يمكن التصويت ل كتلة معينة أو لا شيء. نحن نطلق على مجموعة من >⅔ الأصوات المسبقة لكتلة واحدة في نفس الجولة رقصة البولكا، ومجموعة من >⅔ الالتزام المسبق لكتلة واحدة في نفس جولة الالتزام. إذا> ⅔ الالتزام المسبق لـ Nil في نفس الجولة، ينتقلون إلى الجولة التالية جولة. لاحظ أن الحتمية الصارمة في البروتوكول تنطوي على ضعف يجب اكتشاف افتراض التزامن كقادة خاطئين
تم تخطيه. ومن ثم، ينتظر validators بعض الوقت، TimeoutPropose، قبل أن يصوتوا على Nil، وقيمة TimeoutPropose يزيد مع كل جولة. التقدم من خلال بقية الجولة غير متزامنة تمامًا، في هذا التقدم فقط يتم إجراؤه بمجرد سماع validator من >⅔ الشبكة. في الممارسة العملية، سوف يتطلب الأمر وجود خصم قوي للغاية لإحباطه إلى أجل غير مسمى افتراض التزامن الضعيف (مما يتسبب في فشل الإجماع من أي وقت مضى ارتكاب كتلة)، والقيام بذلك يمكن أن يتم أكثر من ذلك من الصعب استخدام القيم العشوائية لـ TimeoutPropose في كل منها validator. هناك مجموعة إضافية من القيود، أو قواعد القفل، تضمن أن ستلتزم الشبكة في النهاية بكتلة واحدة فقط عند كل ارتفاع. أي محاولة خبيثة للتسبب في ارتكاب أكثر من كتلة واحدة على ارتفاع معين يمكن تحديدها. أولاً، الالتزام المسبق للكتلة يجب أن يأتي مع مبرر، في شكل رقصة البولكا لتلك الكتلة. إذا كان validator قد قام بالفعل بتنفيذ كتلة في الجولة R_1، فإننا ويقول أنهم مقفلون على تلك الكتلة، ويستخدم رقصة البولكا لتبرير يجب أن يأتي الالتزام المسبق الجديد في الجولة R_2 في جولة R_polka حيث R_1 < R_polka <= R_2. ثانيًا، يجب أن يقترح validators و/أو قم بالتصويت المسبق على الكتلة التي تم قفلها عليها. معا، هؤلاء تضمن الشروط أن validator لا يتم الالتزام المسبق بدونه أدلة كافية لتبرير ذلك، وأن validators التي لديها بالفعل لا يمكن لـ PreCommit المساهمة في الأدلة المقدمة إلى PreCommit شيء آخر. وهذا يضمن سلامة وحيوية الجسم خوارزمية الإجماع. يتم وصف التفاصيل الكاملة للبروتوكول هنا. يتم التخلص من الحاجة إلى مزامنة جميع رؤوس الكتل في TendermintPoS حيث أن وجود سلسلة بديلة (شوكة) يعني ≥⅓ من يمكن خفض الحصة المستعبدة. بالطبع، لأن القطع يتطلب أن يشارك شخص ما دليلاً على الشوكة، يجب على العملاء الخفيفين تخزينها أي كتلة-hash ترتكب ما تراه. بالإضافة إلى العملاء الخفيفينيمكن أن تظل متزامنة بشكل دوري مع التغييرات التي يتم إجراؤها على مجموعة validator، في لتجنب الهجمات بعيدة المدى (ولكن الحلول الأخرى هي ممكن). بروح مشابهة لـ Ethereum، يتيح Tendermint للتطبيقات القيام بذلك قم بتضمين جذر Merkle العالمي hash في كل كتلة، مما يسمح بذلك بسهولة استعلامات حالة يمكن التحقق منها لأشياء مثل أرصدة الحسابات، والقيمة المخزنة في العقد، أو وجود معاملة غير منفقة الإخراج، اعتمادا على طبيعة التطبيق. بافتراض وجود مجموعة مرنة بما فيه الكفاية من شبكات البث ومجموعة validator ثابتة، أي شوكة في blockchain يمكن أن تكون تم اكتشافها وخفض رواسب validators المخالفة. هذا الابتكار، الذي اقترحه فيتاليك بوتيرين لأول مرة في أوائل عام 2014، يحل المشكلة مشكلة عدم وجود شيء على المحك للآخرين proof-of-stake العملات المشفرة (انظر الأعمال ذات الصلة). ومع ذلك، منذ validator مجموعات يجب أن تكون قادرة على تغيير الأصل، على مدى فترة طويلة من الزمن قد يصبح جميع validators غير مقيدين، وبالتالي سيكونون أحرارًا في ذلك إنشاء سلسلة جديدة من كتلة التكوين، دون تحمل أي تكلفة لم يعد لديهم ودائع مقفلة. وجاء هذا الهجوم ليكون المعروف باسم الهجوم بعيد المدى (LRA)، على عكس الهجوم القصير هجوم النطاق، حيث يتسبب validators المرتبطين حاليًا في حدوث أ شوكة ومن ثم يعاقب عليها (بافتراض وجود شوكة مسؤولة BFT خوارزمية مثل إجماع Tendermint). الهجمات بعيدة المدى هي غالبًا ما يُعتقد أنها بمثابة ضربة حاسمة لـ proof-of-stake. ولحسن الحظ، يمكن التخفيف من حدة جيش الرب للمقاومة على النحو التالي. أولا بالنسبة ل validator لإلغاء الارتباط (وبالتالي استرداد وديعة الضمان الخاصة بهم ولم يعد يكسب رسوم المشاركة في الإجماع). يجب أن تكون الوديعة غير قابلة للتحويل لفترة من الوقت المعروفة باسم "فترة التفكيك"، والتي قد تكون في حدود أسابيع أو أشهر. ثانيًا، لكي يكون العميل الخفيف آمنًا، الأول عند اتصاله بالشبكة، يجب عليه التحقق من الحظر الأخير-hash ضد مصدر موثوق به، أو يفضل عدة مصادر. هذا
يُشار إلى الحالة أحيانًا باسم "الذاتية الضعيفة". وأخيرا، لكي يظل آمنًا، يجب أن تتم مزامنته مع أحدث validator المعين في على الأقل بشكل متكرر مثل طول فترة فك الارتباط. هذا يضمن أن العميل الخفيف يعرف التغييرات التي تم إجراؤها على validator تم تعيينه قبل validator وقد تم إلغاء رأس ماله وبالتالي لم يعد كذلك على المحك، مما يسمح لها بخداع العميل بتنفيذها هجوم بعيد المدى عن طريق إنشاء كتل جديدة تبدأ من مرة أخرى الارتفاع حيث تم ربطه (بافتراض أنه يتحكم بشكل كافٍ العديد من المفاتيح الخاصة المبكرة). لاحظ أن التغلب على جيش الرب للمقاومة بهذه الطريقة يتطلب إصلاحًا شاملاً نموذج الأمان الأصلي لـ proof-of-work. في إثبات العمل، هو كذلك من المفترض أن العميل الخفيف يمكنه المزامنة مع الارتفاع الحالي من كتلة التكوين الموثوق بها في أي وقت ببساطة عن طريق معالجة إثبات العمل في كل رأس كتلة. ولكن للتغلب على جيش الرب للمقاومة، علينا تتطلب أن يأتي العميل الخفيف عبر الإنترنت مع بعض الانتظام تتبع التغييرات في مجموعة validator، وذلك في المرة الأولى التي يتم فيها ذلك متصلين بالإنترنت ويجب عليهم أن يكونوا حريصين بشكل خاص على المصادقة ما يسمعونه من الشبكة ضد مصادر موثوقة. من بالطبع، هذا المتطلب الأخير مشابه لمتطلب Bitcoin، حيث ويجب أيضًا الحصول على البروتوكول والبرمجيات من جهة موثوقة المصدر. الطريقة المذكورة أعلاه لمنع جيش الرب للمقاومة مناسبة تمامًا لـ validators والعقد الكاملة لـ blockchain التي تعمل بنظام Tendermint لأن هذه من المفترض أن تظل العقد متصلة بالشبكة. ال الطريقة مناسبة أيضًا للعملاء الخفيفين الذين يمكن توقعهم المزامنة مع الشبكة بشكل متكرر. ومع ذلك، بالنسبة للعملاء الخفيفين ليس من المتوقع أن يكون لديك إمكانية الوصول المتكرر إلى الإنترنت أو blockchain الشبكة، ولكن يمكن استخدام حل آخر للتغلب عليها جيش الرب للمقاومة. يمكن لحاملي غير validator token نشر tokens باسمهم الضمانات ذات فترة فك الارتباط طويلة جدًا (على سبيل المثال، أطول بكثير من فترة إلغاء الارتباط لـ validators) وخدمة العملاء الخفيفين مع طريقة ثانوية لإثبات صحة التيار و الكتلة الماضية-hashes. في حين أن هذه tokens لا يتم احتسابها ضمن أمان إجماع blockchain، ومع ذلك يمكنهم ذلكتقديم ضمانات قوية للعملاء الخفيفين. إذا كانت الكتلة التاريخية-hash تم دعم الاستعلام في Ethereum، ويمكن لأي شخص ربطه tokens في smart contract المصممة خصيصًا وتقديمها خدمات التصديق مقابل الأجر، مما يؤدي بشكل فعال إلى إنشاء سوق لأمن LRA من عملاء Lightclient. نظرًا لتعريف التزام الكتلة، فإن أي ≥⅓ تحالف من يمكن لقوة التصويت أن توقف blockchain بالذهاب إلى الخارج أم لا بث أصواتهم يمكن لمثل هذا التحالف أيضًا فرض الرقابة معاملات معينة عن طريق رفض الكتل التي تتضمن هذه المعاملات المعاملات، على الرغم من أن هذا من شأنه أن يؤدي إلى نسبة كبيرة من مقترحات الكتلة التي سيتم رفضها، الأمر الذي من شأنه أن يبطئ المعدل من عمليات تنفيذ الحظر لـ blockchain، مما يقلل من فائدته وقيمته. قد يقوم التحالف الخبيث أيضًا ببث الأصوات بشكل متقطع كما أن طحن كتلة blockchain تلتزم بالتوقف القريب أو الانخراط أي مزيج من هذه الهجمات. وأخيرا، يمكن أن يسبب blockchain إلى الشوكة، بالتوقيع المزدوج أو انتهاك القفل القواعد. وإذا شارك أيضًا خصم نشط عالميًا، فيمكنه التقسيم الشبكة بطريقة قد تبدو خاطئة كانت مجموعة فرعية من validators مسؤولة عن التباطؤ. هذا ليس كذلك مجرد قيود على Tendermint، بل هي قيود على الجميع بروتوكولات الإجماع التي من المحتمل أن يتم التحكم في شبكتها بواسطة الخصم النشط. بالنسبة لهذه الأنواع من الهجمات، ينبغي لمجموعة فرعية من validators التنسيق من خلال وسائل خارجية للتوقيع على مقترح إعادة التنظيم يختار شوكة (وأي دليل على ذلك) والمجموعة الفرعية الأولية من validators مع توقيعاتهم. يتخلى المصادقون الذين يوقعون على مقترح إعادة التنظيم هذا عن ضماناتهم على جميع الشوكات الأخرى. يجب على العملاء التحقق من التوقيعات على مقترح إعادة التنظيم، والتحقق من أي دليل، وإصدار حكم أو مطالبة المستخدم النهائي باتخاذ قرار. ل على سبيل المثال، قد يطلب تطبيق محفظة الهاتف من المستخدم توفير الأمان
تحذير، في حين أن الثلاجة قد تقبل أي اقتراح لإعادة التنظيم موقعة من +½ من أصل validators بقوة التصويت. لا يمكن أن تأتي خوارزمية بيزنطية غير متزامنة متسامحة مع الأخطاء إلى الإجماع عندما يكون ≥⅓ من قوة التصويت غير شريفة، ومع ذلك فهو شوكة يفترض أن ≥⅓ من قوة التصويت كانت غير شريفة بالفعل التوقيع المزدوج أو تغيير القفل دون مبرر. لذلك، التوقيع إن اقتراح إعادة التنظيم يمثل مشكلة تنسيق لا يمكن حلها يتم حلها بواسطة أي بروتوكول غير متزامن (أي تلقائيًا، و دون وضع افتراضات حول موثوقية الشبكة الأساسية). في الوقت الحالي، نترك مشكلة تنسيق إعادة التنظيم للتنسيق البشري من خلال الإجماع الاجتماعي على وسائل الإعلام عبر الإنترنت. يجب على المصادقين الحرص على التأكد من ذلك لا توجد أقسام شبكة متبقية قبل التوقيع على اقتراح إعادة التنظيم، لتجنب المواقف التي يتم فيها التوقيع على اقتراحين متعارضين لإعادة التنظيم. على افتراض أن وسيلة التنسيق الخارجي والبروتوكول قوية، ويترتب على ذلك أن الشوكات أقل إثارة للقلق من الرقابة الهجمات. بالإضافة إلى الشوكة والرقابة التي تتطلب ≥⅓ البيزنطية قوة التصويت، قد يلتزم ائتلاف من >⅔ قوة التصويت حالة تعسفية وغير صالحة. وهذه هي سمة أي (BFT) نظام الإجماع. على عكس التوقيع المزدوج الذي يخلق الشوكات بأدلة يمكن التحقق منها بسهولة، والكشف عن ارتكاب جريمة ما تتطلب الحالة غير الصالحة أن يقوم أقران لم يتم التحقق من صحتهم بالتحقق من الكتل بأكملها، مما يعني أنهم يحتفظون بنسخة محلية من الدولة وينفذونها كل معاملة، وحساب جذر الدولة بشكل مستقل ل أنفسهم. وبمجرد الكشف عنها، فإن الطريقة الوحيدة للتعامل مع مثل هذا الفشل يتم عن طريق الإجماع الاجتماعي. على سبيل المثال، في المواقف التي يكون فيها Bitcoin قد فشل، سواء كان التفرع بسبب أخطاء برمجية (كما في مارس 2013)، أو ارتكاب حالة باطلة بسبب السلوك البيزنطي عمال المناجم (كما في يوليو 2015)، مجتمع متصل جيدًا بـ الشركات والمطورين وعمال المناجم وغيرها من المنظمات أنشأ إجماعًا اجتماعيًا حول ماهية الإجراءات اليدويةالمطلوبة من قبل المشاركين لشفاء الشبكة. وعلاوة على ذلك، منذ من المتوقع أن يكون validators من النعناع blockchain يمكن تحديدها، بل قد يكون التزام دولة غير صالحة يعاقب عليها القانون أو بعض الاجتهادات القضائية الخارجية، إذا رغبت في ذلك. ABCI يتكون من 3 أنواع رسائل أساسية يتم تسليمها منها جوهر التطبيق. التطبيق يجيب ب رسائل الرد المقابلة. تعتبر رسالة AppendTx بمثابة العمود الفقري للتطبيق. كل يتم تسليم المعاملة في blockchain مع هذه الرسالة. ال يحتاج التطبيق إلى التحقق من صحة كل المعاملات الواردة مع رسالة AppendTx مقابل الحالة الحالية، وبروتوكول التطبيق، وبيانات اعتماد التشفير للمعاملة. تم التحقق من صحتها تحتاج المعاملة بعد ذلك إلى تحديث حالة التطبيق — بواسطة ربط قيمة في مخزن القيم الأساسية، أو عن طريق تحديث UTXO قاعدة البيانات. تشبه رسالة CheckTx رسالة AppendTx، ولكنها مخصصة فقط لـ التحقق من صحة المعاملات. الشيكات الأولى لذاكرة Tendermint Core صلاحية المعاملة مع CheckTx، والمرحلات صالحة فقط المعاملات لأقرانها. قد تحقق التطبيقات زيادة nonce في المعاملة وإرجاع خطأ عند CheckTx إذا كان nonce قديم. يتم استخدام رسالة Commit لحساب التشفير الالتزام بحالة التطبيق الحالية، ليتم وضعها في رأس الكتلة التالي. هذا له بعض الخصائص المفيدة. ستظهر الآن التناقضات في تحديث تلك الحالة blockchain شوكات تلتقط فئة كاملة من البرمجة أخطاء. وهذا أيضًا يبسط عملية تطوير آمنة وخفيفة الوزن العملاء، حيث يمكن التحقق من أدلة Merkle-hash عن طريق التحقق منها الكتلة-hash، والكتلة-hash تم توقيعها بنصاب قانوني validators (حسب قوة التصويت).
تسمح رسائل ABCI الإضافية للتطبيق بتتبعها وقم بتغيير مجموعة validator، ولكي يحصل التطبيق على معلومات الحظر، مثل الارتفاع وأصوات الالتزام. ABCI الطلبات/الردود هي رسائل Protobuf بسيطة. تحقق خارج المخطط. الحجج: البيانات ([]بايت): بايتات معاملة الطلب العوائد: الرمز (uint32): رمز الاستجابة البيانات ([]بايت): بايتات النتيجة، إن وجدت السجل (سلسلة): تصحيح الأخطاء أو رسالة الخطأ الاستخدام:
إلحاق المعاملة وتشغيلها. إذا كانت الصفقة صحيحة ترجع CodeType.OK الحجج: البيانات ([]بايت): بايتات معاملة الطلب العوائد: الرمز (uint32): رمز الاستجابة البيانات ([]بايت): بايتات النتيجة، إن وجدت السجل (سلسلة): تصحيح الأخطاء أو رسالة الخطأ الاستخدام:
التحقق من صحة المعاملة. لا ينبغي أن تتحور هذه الرسالة الدولة. يتم تشغيل المعاملات لأول مرة من خلال CheckTx من قبل البث إلى أقرانهم في طبقة mempool. يمكنك صنع CheckTx شبه حالة ومسح الحالة عند الالتزام أو BeginBlock، للسماح بتسلسلات المعاملات التابعة في نفس الكتلة.
العوائد: البيانات ([]بايت): جذر Merkle hash السجل (سلسلة): تصحيح الأخطاء أو رسالة الخطأ الاستخدام:
قم بإرجاع جذر Merkle hash لحالة التطبيق. الحجج: البيانات ([]بايت): بايتات طلب الاستعلام العوائد: الرمز (uint32): رمز الاستجابة البيانات ([]بايت): بايت استجابة الاستعلام السجل (سلسلة): تصحيح الأخطاء أو رسالة الخطأ الاستخدام:
مسح قائمة انتظار الاستجابة. التطبيقات التي تنفذ أنواع.لا يحتاج التطبيق إلى تنفيذ هذه الرسالة - إنه كذلك يعالجها المشروع. العوائد: البيانات ([]بايت): بايت المعلومات الاستخدام:
إرجاع معلومات حول حالة التطبيق. التطبيق com.speciyc. الحجج: المفتاح (سلسلة): مفتاح للضبط
القيمة (سلسلة): القيمة المطلوب تعيينها للمفتاح العوائد: السجل (سلسلة): تصحيح الأخطاء أو رسالة الخطأ الاستخدام:
ضبط خيارات التطبيق. على سبيل المثال. المفتاح = "الوضع"، القيمة = "mempool" لـ اتصال mempool، أو المفتاح = "الوضع"، القيمة = "الإجماع" لـ اتصال توافقي. الخيارات الأخرى هي تطبيق محدد. الحجج: أدوات التحقق من الصحة ([] أداة التحقق من الصحة): التكوين الأولي-validators الاستخدام:
دعا مرة واحدة في سفر التكوين الحجج: الارتفاع (uint64) : ارتفاع الكتلة الذي يبدأ الاستخدام:
يشير إلى بداية كتلة جديدة. دعا قبل أي إلحاقTxs. الحجج: الارتفاع (uint64) : ارتفاع الكتلة الذي انتهى العوائد: أدوات التحقق ([]أداة التحقق) : تم تغيير validators بأخرى جديدة صلاحيات التصويت (0 لإزالة) الاستخدام:
إشارات نهاية الكتلة. تم الاتصال به قبل كل التزام بعد كل شيء المعاملات راجع مستودع ABCI لمزيد من التفاصيل.هناك عدة أسباب وراء رغبة المرسل في الحصول على إقرار بتسليم الحزمة من خلال سلسلة الاستقبال. على سبيل المثال، قد لا يعرف المرسل حالة الملف سلسلة الوجهة، إذا كان من المتوقع أن تكون معيبة. أو يجوز للمرسل تريد فرض مهلة على الحزمة (باستخدام MaxHeight packet yeld)، في حين أن أي سلسلة وجهة قد تعاني من هجوم رفض الخدمة مع ارتفاع مفاجئ في عدد الرسائل الواردة الحزم. في هذه الحالات، يمكن للمرسل أن يطلب إقرار التسليم من خلال تعيين حالة الحزمة الأولية على AckPending. ثم، هو مسؤولية سلسلة الاستلام عن التسليم عن طريق تضمين يُختصر IBCPacket في تطبيق Merkle hash. أولاً، تم نشر IBCBlockCommit و IBCPacketTx على "Hub" مما يثبت وجود IBCPacket على "Zone1". قل ذلك IBCPacketTx له القيمة التالية: من معرف السلسلة: "المنطقة 1" من بلوك الارتفاع: 100 (على سبيل المثال) الحزمة : IBC الحزمة :
الرأس: IBCرأس الحزمة: معرف SrcChain: "المنطقة 1" معرف DstChain: "المنطقة 2" الرقم: 200 (قل) الحالة: قيد الانتظار النوع: "عملة" MaxHeight : 350 (قل "Hub" حاليًا على ارتفاع 300) الحمولة: <بايتات الحمولة "العملة"> بعد ذلك، يتم نشر IBCBlockCommit و IBCPacketTx على "Zone2" مما يثبت وجود IBCPacket على "Hub". قل ذلك IBCPacketTx له القيمة التالية: FromChainID: "المركز" من ارتفاع الكتلة: 300 الحزمة : IBC الحزمة : الرأس: IBCPacketHeader: معرف SrcChain: "المنطقة 1" معرف DstChain: "المنطقة 2" العدد : 200 الحالة: قيد الانتظار النوع: "عملة" أقصى ارتفاع: 350 الحمولة: <نفس وحدات البايت لحمولة "العملة"> بعد ذلك، يجب أن تتضمن "Zone2" في تطبيقها-hash حزمة مختصرة الذي يوضح الحالة الجديدة لـ AckSent. IBCBlockCommit و IBCPacketTx تم نشرها مرة أخرى على "Hub" مما يثبت وجودها من IBCPacket المختصرة في "Zone2". قل ذلك IBCPacketTx له القيمة التالية: من معرف السلسلة: "المنطقة 2"
من بلوك الارتفاع: 400 (على سبيل المثال) الحزمة : IBC الحزمة : الرأس: IBCرأس الحزمة: معرف SrcChain: "المنطقة 1" معرف DstChain: "المنطقة 2" العدد : 200 الحالة: تم الإرسال النوع: "عملة" أقصى ارتفاع: 350 PayloadHash : <البايتات hash من نفس الحمولة النافعة "للعملة"> وأخيرًا، يجب على "Hub" تحديث حالة الحزمة من "AckPending" إلى "AckReceived". دليل على هذا الوضع الجديد ynalized يجب أن يعود إلى "المنطقة 2". لنفترض أن IBCPacketTx يحتوي على ما يلي القيمة: FromChainID: "المركز" من ارتفاع الكتلة: 301 الحزمة : IBC الحزمة : الرأس: IBCرأس الحزمة: معرف SrcChain: "المنطقة 1" معرف DstChain: "المنطقة 2" العدد : 200 الحالة: تم الاستلام النوع: "عملة" أقصى ارتفاع: 350 PayloadHash : <البايتات hash من نفس الحمولة النافعة "للعملة"> وفي الوقت نفسه، قد تفترض "المنطقة 1" بشكل متفائل التسليم الناجح حزمة "النقود المعدنية" ما لم يثبت خلاف ذلك "المحور". في المثال أعلاه، إذا لم يتلق "Hub" رسالة AckSent
الحالة من "المنطقة 2" بواسطة الكتلة 350، كانت ستحدد الحالة تلقائيًا إلى المهلة. يمكن الحصول على هذا الدليل على المهلة تم نشرها مرة أخرى على "Zone1"، ويمكن إرجاع أي tokens. هناك نوعان من Merkle trees مدعومان في النظام البيئي Tendermint/Cosmos: الشجرة البسيطة وIAVL+ شجرة. الشجرة البسيطة هي Merkle tree لقائمة ثابتة من العناصر. إذا عدد العناصر ليس قوة اثنين، وبعض الأوراق ستكون في مستويات مختلفة. تحاول Simple Tree الحفاظ على جانبي الشجرة نفس الارتفاع، ولكن اليسار قد يكون أكبر من ذلك. هذا Merkle tree هو يستخدم لـ Merkle-ize معاملات الكتلة والمستوى الأعلى عناصر جذر حالة التطبيق.الغرض من بنية بيانات IAVL+ هو توفير الدعم المستمر تخزين أزواج القيمة الرئيسية في حالة التطبيق بحيث يكون أ يمكن حساب جذر Merkle الحتمي hash بكفاءة. ال تتم موازنة الشجرة باستخدام البديل من خوارزمية AVL، وجميع العمليات هي O(log(n)). في شجرة AVL، ارتفاعات الشجرتين الفرعيتين لأي عقدة تختلف بواحدة على الأكثر. كلما تم انتهاك هذا الشرط على التحديث، يتم إعادة توازن الشجرة عن طريق إنشاء العقد الجديدة O(log(n)) التي أشر إلى العقد غير المعدلة من الشجرة القديمة. في AVL الأصلي الخوارزمية، يمكن للعقد الداخلية أيضًا الاحتفاظ بأزواج القيمة الرئيسية. ايه في ال+ الخوارزمية (لاحظ الزائد) تقوم بتعديل خوارزمية AVL للاحتفاظ بكل شيء القيم على العقد الطرفية، مع استخدام العقد الفرعية فقط لتخزين المفاتيح. يؤدي هذا إلى تبسيط الخوارزمية مع الحفاظ على مسار Merkle hash قصيرة. تشبه شجرة AVL+ محاولات باتريشيا Ethereum. هناك المقايضات. لا يلزم أن تكون المفاتيح hashed قبل إدراجها أشجار IAVL+، مما يوفر تكرارًا مرتبًا بشكل أسرع في المفتاح المساحة التي قد تفيد بعض التطبيقات. المنطق هو أبسط ل تنفيذ، يتطلب نوعين فقط من العقد - العقد الداخلية و العقد الورقية. إن برهان ميركل أقصر في المتوسط، كونه أ * / \ / \ / \ / \ * * / \ / \ / \ / \ / \ / \ * * * h6 / \ / \ / \ h0 h1 h2 h3 h4 h5 شجرة بسيطة تحتوي على 7 عناصر
شجرة ثنائية متوازنة من ناحية أخرى، جذر ميركل ل تعتمد شجرة IAVL+ على ترتيب التحديثات. سوف ندعم المزيد من Merkle trees، مثل Ethereum باتريشيا تري عندما يصبح المتغير الثنائي متاح. في التنفيذ الأساسي، يتم تدفق المعاملات إلى Cosmos تطبيق المحور عبر واجهة ABCI. سيقبل Cosmos Hub عددًا من المعاملات الأساسية الأنواع، بما في ذلك SendTx ، BondTx ، UnbondTx ، ReportHackTx ، SlashTx، وBurnAtomTx، وProposalCreateTx، وProposalVoteTx، والتي لا تحتاج إلى شرح إلى حد ما وسيتم توثيقها في ملف المراجعة المستقبلية لهذه الورقة. هنا نقوم بتوثيق الأمرين الأساسيين أنواع المعاملات لـ IBC: IBCBlockCommitTx و IBCPacketTx . تتكون معاملة IBCBlockCommitTx من: ChainID (سلسلة): معرف blockchain BlockHash ([]بايت): الكتلة-hash بايت، جذر Merkle والذي يتضمن التطبيق-hash BlockPartsHeader (PartSetHeader): رأس مجموعة أجزاء الكتلة البايتات، مطلوبة فقط للتحقق من توقيعات التصويت BlockHeight (int) : ارتفاع الالتزام BlockRound (int): جولة الالتزام الالتزام ([]تصويت) : يصوت >⅔ Tendermint Precommit على ذلك تتضمن التزامًا بالكتلة ValidatorsHash ([]بايت): جذر شجرة ميركل hash للجديد validator مجموعة
ValidatorsHashProof (SimpleProof): SimpleTree Merkleproof لإثبات ValidatorsHash مقابل BlockHash
AppHash ([]بايت): جذر شجرة IAVLTree Merkle hash لـ
حالة التطبيق
AppHashProof (SimpleProof): أداة SimpleTree Merkle-proof لـ
إثبات AppHash مقابل BlockHash
تتكون الحزمة IBCPacket من:
Header (IBCPacketHeader): رأس الحزمة
الحمولة ([]بايت): بايتات حمولة الحزمة. اختياري
PayloadHash ([]بايت): hash لبايتات الحزمة.
اختياري
يجب أن يكون أي من Payload أو PayloadHash موجودًا. hash
IBCPacket هو جذر Merkle البسيط للعنصرين، الرأس
و الحمولة. يُطلق على IBCPacket بدون الحمولة الكاملة اسم
الحزمة المختصرة.
يتكون IBCPacketHeader من:
SrcChainID (سلسلة): معرف المصدر blockchain
DstChainID (سلسلة): معرف الوجهة blockchain
الرقم (int) : رقم فريد لجميع الحزم
الحالة (التعداد): يمكن أن تكون واحدة من AckPending أو AckSent أو
AckReceived أو NoAck أو Timeout
النوع (سلسلة): تعتمد الأنواع على التطبيق. Cosmos
يحتفظ بنوع الحزمة "العملة المعدنية".
MaxHeight (int) : إذا كانت الحالة ليست NoAckWanted أو AckReceived
وبهذا الارتفاع، تصبح الحالة Timeout . اختياري
تتكون معاملة IBCPacketTx من:FromChainID (سلسلة): معرف blockchain وهو
توفير هذه الحزمة؛ ليس بالضرورة المصدر
FromBlockHeight (int) : الارتفاع blockchain الذي يوجد فيه
تم تضمين الحزمة التالية (بحجم Merkle) في الكتلة-hash من
سلسلة المصدر
الحزمة (IBCPacket): حزمة من البيانات، قد تكون حالتها واحدة
AckPending أو AckSent أو AckReceived أو NoAck أو Timeout
PacketProof (IAVLProof): IAVLTree Merkle-proof للإثبات
الحزمة hash مقابل AppHash لسلسلة المصدر في
ارتفاع معين
تسلسل إرسال الحزمة من "Zone1" إلى "Zone2"
من خلال "المحور" كما هو موضح في {الشكل X}. أولاً، IBCPacketTx
يثبت لـ "Hub" أن الحزمة مضمنة في حالة التطبيق
"المنطقة 1". بعد ذلك، يثبت IBCPacketTx آخر لـ "Zone2" أن
يتم تضمين الحزمة في حالة التطبيق "Hub". خلال هذا
الإجراء، تكون حقول IBCPacket متطابقة: SrcChainID هو
دائمًا "Zone1"، ويكون DstChainID دائمًا "Zone2".
يجب أن يشتمل PacketProof على المسار الصحيح لـ Merkle-proof، مثل
يلي:
عندما يريد "Zone1" إرسال حزمة إلى "Zone2" من خلال "Hub"،
تكون بيانات IBCPacket متطابقة سواء كانت الحزمة Merkleized على "Zone1" أو "Hub" أو "Zone2". الحقل الوحيد القابل للتغيير هو
الحالة لتتبع التسليم.
ونشكر أصدقائنا وزملائنا الذين ساعدونا في وضع المفهوم،
مراجعة وتقديم الدعم لعملنا مع Tendermint
و Cosmos.
IBC/
قدم زكي مانيان من SkuChain الكثير من المساعدة في التنسيق والتنسيق الصياغة، خاصة ضمن القسم ABCI جيهان تريمباك من ألثيا وداستن بينجتون للمساعدة التكرارات الأولية أندرو ميلر من Honey Badger للحصول على تعليقات حول الإجماع جريج سليباك للحصول على تعليقات بشأن الإجماع والصياغة شكرًا أيضًا لبيل جليم وسيونغهوان هان على جهودهما المتنوعة المساهمات. اسمك ومنظمتك هنا لمساهمتك 1 Bitcoin: https://bitcoin.org/bitcoin.pdf 2 زيرو كاش: http://zerocash-project.org/paper 3 Ethereum: https://github.com/ethereum/wiki/wiki/WhitePaper 4 DAO: https://download.slock.it/public/DAO/WhitePaper.pdf 5 الشاهد المنفصل: https://github.com/bitcoin/bips/blob/master/bip0141.mediawiki 6 BitcoinNG: https://arxiv.org/pdf/1510.02037v2.pdf 7 شبكة البرق: https://lightning.network/lightningnetwork-paper-DRAFT-0.5.pdf 8 النعناع: https://github.com/tendermint/tendermint/wiki 9 استحالة FLP: https://groups.csail.mit.edu/tds/papers/Lynch/jacm85.pdf 10 المشرح: https://blog.ethereum.org/2014/01/15/slasher-apunitive-proof-of-stake-algorithm/ 11 فBFT: http://pmg.csail.mit.edu/papers/osdi99.pdf 12 بت: https://bitshares.org/technology/delegatedproof-of-stake-consensus/
13 Stellar: https://www.stellar.org/papers/stellar-consensusprotocol.pdf 14 دفتر الأستاذ: https://interledger.org/rfcs/0001-interledgerarchitecture/ 15 سلسلة جانبية: https://blockstream.com/sidechains.pdf 16 كاسبر: https://blog.ethereum.org/2015/08/01/introducing-casperfriendly-ghost/ 17 ABCI: https://github.com/tendermint/abci 18 Ethereum المشاركة: https://github.com/ethereum/EIPs/issues/53 19 ليب سويفت: http://www.ds.ewi.tudelft.nl/yleadmin/pds/papers/Performa nceAnalysOfLibswift.pdf 20 دي إل إس: http://groups.csail.mit.edu/tds/papers/Lynch/jacm88.pdf 21 أمان العميل الرقيق: https://en.bitcoin.it/wiki/Thin_Client_Security 22 Ethereum 2.0 ورق بنفسجي: http://vitalik.ca/yles/mauve_paper.html https://www.docdroid.net/ec7xGzs/314477721-ethereumplatform-review-opportunities-and-challenges-for-privateand-consortium-blockchains.pdf.html
Ó ه