Cosmos: una red de libros de contabilidad distribuidos
導入
オープンソース エコシステムの総合的な成功により、 分散型ファイル共有とパブリック暗号通貨は、 分散型インターネットプロトコルという理解を促した 社会経済インフラを根本的に改善するために使用できます。 Bitcoin [1] のような特殊な blockchain アプリケーションを見てきました ( 暗号通貨)、Zerocash [2] (プライバシーのための暗号通貨)、および Ethereum [3] などの一般化された smart contract プラットフォーム、 Ethereum Virtual 用の無数の分散アプリケーション Augur (予測市場) や TheDAO などのマシン (EVM) [4] (投資クラブ)。 しかし、これまでに、これらのblockchainは数多くの被害を受けてきました。 総エネルギー効率の悪さ、貧弱な、または パフォーマンスが限られており、ガバナンスメカニズムが未熟です。 Bitcoin のトランザクション スループットを拡張するための提案。たとえば、 Segregated-Witness [5] および BitcoinNG [6] は垂直スケーリングです 単一の物理的な容量によって依然として制限されるソリューション 完全な監査可能性の特性を確保するために、マシン。 ライトニング ネットワーク [7] は、Bitcoin トランザクションのスケールアップに役立ちます
一部の取引を台帳から完全に除外することで取引量を削減し、 少額決済やプライバシー保護に適しています。 支払いレールを備えていますが、より一般化された用途には適していない可能性があります スケーリングのニーズ。 理想的なソリューションは、複数の blockchain を並列に実行できるソリューションです。 セキュリティ特性を維持しながら相互運用できます。これには、 proof-of-work では、不可能ではないにしても、難しいことが証明されています。合併しました たとえば、マイニングでは、親を確保するために行われる作業が可能になります。 チェーンは子チェーンで再利用されますが、トランザクションは依然として 各ノードによって順番に検証され、マージマイニングされた blockchain hash の電源の大部分がオンになっている場合、攻撃に対して脆弱になります。 親は子を積極的にマージマイニングしていません。学術的なレビュー 代替 blockchain ネットワーク アーキテクチャが提供されています 追加のコンテキスト、および他の提案の概要を提供します とその欠点を関連作品で説明します。 ここでは、新しい blockchain ネットワーク アーキテクチャである Cosmos を紹介します。 これらすべての問題に対処します。 Cosmos は多くのネットワークです ゾーンと呼ばれる独立した blockchain。ゾーンの電源は次のとおりです。 高性能を提供する Tendermint Core [8]、 一貫性のある安全な PBFT のようなコンセンサス エンジン。悪意のある者の行動に対して厳格な責任追及保証が保持されます。 俳優たち。 Tendermint Core の BFT コンセンサス アルゴリズムが最適です パブリック proof-of-stake blockchains のスケーリング用。 Cosmos の最初のゾーンは、Cosmos ハブと呼ばれます。 Cosmos Hub は、シンプルな機能を備えたマルチアセット proof-of-stake 暗号通貨です。 ネットワークの適応を可能にするガバナンス メカニズム アップグレードします。さらに、Cosmos ハブは次のように拡張できます。 他のゾーンを接続します。 Cosmos ネットワークのハブとゾーンは以下と通信します。 blockchain 間通信 (IBC) プロトコルを介して相互に、 blockchain の一種の仮想 UDP または TCP。トークンは次のことができます あるゾーンから別のゾーンに安全かつ迅速に転送ゾーン間で流動性を交換する必要はありません。代わりに、 すべてのゾーン間の token 転送は Cosmos ハブを経由します。 各ゾーンが保持する token の合計量を追跡します。の ハブは、各ゾーンを他のゾーンの障害から隔離します。なぜなら 誰でも新しいゾーンを Cosmos ハブに接続できます。ゾーンでは許可されています 新しい blockchain イノベーションとの将来の互換性を実現します。 このセクションでは、Tendermint コンセンサス プロトコルについて説明します。 およびそれを使用してアプリケーションを構築するために使用されるインターフェイス。さらに詳しく 詳細については、付録を参照してください。 古典的なビザンチン フォールト トレラント (BFT) アルゴリズムでは、各ノード 同じ重さです。 Tendermint では、ノードには非負の値があります。 投票権の量と肯定的な投票を持つノード 電力はvalidatorと呼ばれます。バリデーターは 暗号署名をブロードキャストすることによるコンセンサス プロトコル、または 次のブロックに同意するために投票します。 バリデーターの投票権は生成時に決定されるか、 に応じて、blockchain によって決定的に変更されます。 アプリケーション。たとえば、次のような proof-of-stake アプリケーションでは、 Cosmos ハブ、投票力は次によって決定される場合があります。 staking token が担保として保証されます。 注: 2/3 や 1/3 などの端数は、投票総数の端数を指します。 すべての validator を除く、validator の合計数ではありません。 等しい重みを持っています。 >2/3 は「2/3 以上」を意味し、≥1/3 は「少なくとも」を意味します ⅓」。 Tendermint は部分同期 BFT コンセンサス プロトコルです DLS コンセンサス アルゴリズム [20] から派生しました。テンダーミントは
そのシンプルさ、パフォーマンス、フォークの説明責任で注目に値します。 このプロトコルには、固定された既知の validator セットが必要です。 validator は公開鍵によって識別されます。バリデータは次のことを試みます 一度に 1 つのブロックについて合意に達します (ブロックはリストです) 取引の。ブロックのコンセンサスに対する投票は次の手順で行われます。 ラウンドします。各ラウンドにはラウンドリーダー、つまり提案者がいます。 ブロックを提案します。次に、validator は、次のいずれかについて段階的に投票します。 提案されたブロックを受け入れるか、次のラウンドに進みます。の ラウンドの提案者は、順序付けられたものから決定的に選択されます。 投票力に比例した validator のリスト。 プロトコルの完全な詳細はここで説明されています。 Tendermint のセキュリティは、最適な Byzantine の使用に由来します。 超過半数 (>2/3) の投票とロックによるフォールト トレランス 仕組み。これらは連携して次のことを保証します。 違反を引き起こすには 1/3 以上の投票権がビザンチンでなければなりません 安全性。2 つ以上の値がコミットされます。 validator のセットが安全性の侵害に成功した場合、あるいは そうしようとすると、プロトコルによって識別される可能性があります。これ 競合するブロックへの投票とブロードキャストの両方が含まれます 不当な投票。 その強力な保証にもかかわらず、Tendermint は例外的なサービスを提供します パフォーマンス。 7 つのノードに分散された 64 ノードのベンチマーク 5 大陸のデータセンター、コモディティ クラウド インスタンス、 Tendermint コンセンサスは、1 回あたり数千のトランザクションを処理できます。 2 番目は、コミットの遅延が 1 ~ 2 秒程度です。 特に、1 回あたり 1,000 件をはるかに超えるトランザクションのパフォーマンスが優れています。 過酷な敵対状況でも秒速が維持されます。 validator は、悪意を持って作成された投票をクラッシュまたはブロードキャストします。参照 詳細については、以下の図を参照してください。

Tendermint のコンセンサス アルゴリズムの大きな利点は、簡素化されることです。 クライアントのセキュリティが軽いため、モバイルおよび モノのインターネットの使用例。 Bitcoin ライトクライアントは同期する必要がありますが、 ブロックヘッダーのチェーンを検索し、最も証拠のあるものを見つけます。 Tendermint ライト クライアントは変更に対応するだけで済みます。 validator セットに追加し、>2/3 PreCommit を確認します。 最新の状態を判断するための最新ブロック。 簡潔なライト クライアント証明により、inter-blockchain も有効になります コミュニケーション。 Tendermint には、特定の現象を防ぐための保護手段があります。 長距離の何も賭けない二重支払いなどの注目すべき攻撃 そして検閲。これらについては、付録で詳しく説明します。Tendermint コンセンサス アルゴリズムは、 Tendermint Coreと呼ばれるプログラム。テンダーミントコアは、 アプリケーションに依存しない「コンセンサスエンジン」により、あらゆるものを変えることができます。 決定論的なブラックボックス アプリケーションを分散複製される blockchain。 Tendermint Core は blockchain アプリケーションに接続します アプリケーション ブロックチェーン インターフェイス (ABCI) [17] 経由。したがって、ABCI blockchain アプリケーションを任意の形式でプログラムできるようにします コンセンサスが得られるプログラミング言語だけでなく、 さらに、ABCI を使用すると、簡単に 既存の blockchain スタックのコンセンサス層を交換します。 私たちは、よく知られた暗号通貨 Bitcoin から類推します。 Bitcoin は、各ノードが維持する暗号通貨 blockchain です。 完全に監査された未使用トランザクション出力 (UTXO) データベース。もし ある人は、ABCI の上に Bitcoin のようなシステムを作成したいと考えていました。 Tendermint Core が担当するのは、 ノード間でブロックとトランザクションを共有する トランザクションの正規/不変順序の確立 ( blockchain) 一方、ABCI アプリケーションは次のことを担当します。 UTXO データベースの保守 トランザクションの暗号化署名の検証 トランザクションによる存在しない資金の使用を防止する クライアントが UTXO データベースにクエリできるようにする Tendermint は、blockchain デザインを次のように分解できます。 アプリケーションプロセスとの間に非常にシンプルな API を提供します。 コンセンサスプロセス。
Introducción
El éxito combinado del ecosistema de código abierto, El intercambio de archivos descentralizado y las criptomonedas públicas han inspiró la comprensión de que los protocolos descentralizados de Internet puede utilizarse para mejorar radicalmente la infraestructura socioeconómica. Hemos visto aplicaciones especializadas blockchain como Bitcoin [1] (una criptomoneda), Zerocash [2] (una criptomoneda para la privacidad), y plataformas smart contract generalizadas como Ethereum [3], con innumerables aplicaciones distribuidas para Etherium Virtual Máquina (EVM) como Augur (un mercado de predicción) y TheDAO [4] (un club de inversiones). Sin embargo, hasta la fecha, estos blockchain han sufrido una serie de de desventajas, entre ellas su grave ineficiencia energética, su mala o mala calidad desempeño limitado y mecanismos de gobernanza inmaduros. Propuestas para escalar el rendimiento de transacciones de Bitcoin, como Testigo segregado [5] y BitcoinNG [6], son escalamiento vertical Soluciones que siguen limitadas por la capacidad de un único espacio físico. máquina, con el fin de garantizar la propiedad de completa auditabilidad. Lightning Network [7] puede ayudar a escalar la transacción Bitcoin
volumen dejando algunas transacciones fuera del libro mayor por completo, y es muy adecuado para micropagos y preservación de la privacidad carriles de pago, pero puede no ser adecuado para más generalizados necesidades de escalamiento. Una solución ideal es aquella que permite que múltiples blockchains paralelos interoperar conservando sus propiedades de seguridad. esto tiene resultó difícil, si no imposible, con proof-of-work. Fusionado la minería, por ejemplo, permite que el trabajo realizado para asegurar una matriz cadena para ser reutilizada en una cadena secundaria, pero las transacciones aún deben ser validado, en orden, por cada nodo, y un blockchain extraído por fusión es vulnerable a un ataque si la mayoría del hashing poder en el El padre no está fusionando activamente al niño. Una reseña académica de arquitecturas de red alternativas blockchain se proporciona para contexto adicional y proporcionamos resúmenes de otras propuestas y sus inconvenientes en el Trabajo Relacionado. Aquí presentamos Cosmos, una novedosa arquitectura de red blockchain que aborda todos estos problemas. Cosmos es una red de muchos blockchains independientes, llamados zonas. Las zonas están alimentadas por Tendermint Core [8], que proporciona un alto rendimiento, motor de consenso consistente y seguro similar a PBFT, donde la estricta responsabilidad de forka garantiza el control del comportamiento de malware actores. El algoritmo de consenso BFT de Tendermint Core es muy adecuado para escalar proof-of-stake blockchains públicos. La primera zona en Cosmos se llama Cosmos Hub. El Cosmos Hub es una criptomoneda proof-of-stake multiactivo con un simple mecanismo de gobernanza que permite a la red adaptarse y actualizar. Además, el concentrador Cosmos se puede ampliar mediante conectando otras zonas. El hub y las zonas de la red Cosmos se comunican con entre sí a través de un protocolo de comunicación inter-blockchain (IBC), una especie de UDP o TCP virtual para blockchains. Las fichas pueden ser transferido de una zona a otra de forma segura y rápidasin necesidad de liquidez cambiaria entre zonas. En cambio, todas las transferencias entre zonas token pasan por el concentrador Cosmos, que realiza un seguimiento de la cantidad total de tokens en poder de cada zona. el hub aísla cada zona del fallo de otras zonas. porque cualquiera puede conectar una nueva zona al Cosmos Hub, las zonas lo permiten para compatibilidad futura con las nuevas innovaciones blockchain. En esta sección describimos el protocolo de consenso de Tendermint. y la interfaz utilizada para crear aplicaciones con él. Para más detalles, consulte el apéndice. En los algoritmos bizantinos clásicos tolerantes a fallos (BFT), cada nodo tiene el mismo peso. En Tendermint, los nodos tienen un valor no negativo. cantidad de poder de voto y nodos que tienen voto positivo potencia se llaman validators. Los validadores participan en el protocolo de consenso mediante la difusión de firmas criptográficas, o votos, para acordar el siguiente bloque. Los poderes de voto de los validadores se determinan en la génesis o se cambiado de manera determinista por el blockchain, dependiendo del aplicación. Por ejemplo, en una aplicación proof-of-stake como el Centro Cosmos, el poder de voto puede ser determinado por el monto de staking tokens garantizados como garantía. NOTA: Fracciones como ⅔ y ⅓ se refieren a fracciones del total de la votación. potencia, nunca el número total de validators, a menos que todos los validators tienen igual peso. >⅔ significa “más de ⅔”, ≥⅓ significa “al menos ⅓”. Tendermint es un protocolo de consenso BFT parcialmente sincrónico derivado del algoritmo de consenso DLS [20]. La menta tierna es
destaca por su simplicidad, rendimiento y responsabilidad de bifurcación. El protocolo requiere un conjunto conocido yxed de validators, donde cada validator se identifica por su clave pública. Los validadores intentan llegar a un consenso sobre un bloque a la vez, donde un bloque es una lista de transacciones. La votación por el consenso sobre un bloque se lleva a cabo en rondas. Cada ronda tiene un líder de ronda, o proponente, que propone un bloque. Los validators luego votan, por etapas, sobre si aceptar el bloque propuesto o pasar a la siguiente ronda. el El proponente de una ronda se elige de forma determinista entre los ordenados. lista de validators, en proporción a su poder de voto. Los detalles completos del protocolo se describen aquí. La seguridad de Tendermint se deriva de su uso de bizantino óptimo Tolerancia a fallos mediante votación supermayoría (>⅔) y bloqueo. mecanismo. Juntos, aseguran que: ≥⅓ del poder de voto debe ser bizantino para causar una violación de seguridad, donde se comprometen más de dos valores. si algún conjunto de validator alguna vez logra violar la seguridad, o incluso Si intenta hacerlo, podrá identificarlo mediante el protocolo. esto Incluye tanto la votación de los bloques conflictivos como la retransmisión. Votos injustificados. A pesar de sus sólidas garantías, Tendermint ofrece servicios excepcionales. rendimiento. En benchmarks de 64 nodos distribuidos en 7 centros de datos en 5 continentes, en instancias de nube de productos básicos, El consenso de Tendermint puede procesar miles de transacciones por segundo, con latencias de confirmación del orden de uno o dos segundos. En particular, el desempeño de más de mil transacciones por segundo se mantiene incluso en duras condiciones adversas, con validators fallan o transmiten votos elaborados con fines malintencionados. Ver Consulte la siguiente figura para obtener más detalles.

Un beneficio importante del algoritmo de consenso de Tendermint es la simplificación. seguridad ligera para el cliente, lo que lo convierte en un candidato ideal para dispositivos móviles y Casos de uso de Internet de las cosas. Mientras que un cliente ligero Bitcoin debe sincronizarse cadenas de encabezados de bloque y encuentre el que tenga la mayor prueba de funcionan, los clientes ligeros de Tendermint sólo necesitan mantenerse al día con los cambios al conjunto validator y luego verifique >⅔ PreCommits en el último bloque para determinar el último estado. Las pruebas de cliente ligeras y sucintas también permiten inter-blockchain comunicación. Tendermint tiene medidas de protección para prevenir ciertos ataques notables, como gastos dobles de largo alcance sin nada en juego y censura. Estos se analizan con más detalle en el apéndice.El algoritmo de consenso Tendermint se implementa en un programa llamado Tendermint Core. Tendermint Core es un “motor de consenso” independiente de la aplicación que puede convertir cualquier aplicación determinista de caja negra en una replicación distribuida blockchain. Tendermint Core se conecta a blockchain aplicaciones a través de la interfaz Blockchain de aplicaciones (ABCI) [17]. Por lo tanto, ABCI permite programar aplicaciones blockchain en cualquier lenguaje, no sólo el lenguaje de programación que el consenso motor está escrito. Además, ABCI hace posible fácilmente cambie la capa de consenso de cualquier pila blockchain existente. Hacemos una analogía con la conocida criptomoneda Bitcoin. Bitcoin es una criptomoneda blockchain donde cada nodo mantiene una base de datos de resultados de transacciones no gastadas (UTXO) totalmente auditada. si uno quería crear un sistema similar a Bitcoin encima de ABCI, Tendermint Core sería responsable de Compartir bloques y transacciones entre nodos Establecer un orden canónico/inmutable de transacciones (el blockchain) Mientras tanto, la aplicación ABCI sería responsable de Mantenimiento de la base de datos UTXO Validar firmas criptográficas de transacciones. Evitar que las transacciones gasten fondos inexistentes Permitir a los clientes consultar la base de datos UTXO Tendermint es capaz de descomponer el diseño blockchain mediante ofreciendo una API muy simple entre el proceso de solicitud y proceso de consenso.
Cosmos アーキテクチャ
Cosmos は、独立した並列 blockchain のネットワークです。 それぞれは、次のような古典的な BFT コンセンサス アルゴリズムを利用しています。 テンダーミント1. このネットワークの最初の blockchain が Cosmos ハブになります。の Cosmos ハブは、他の多くの blockchain (またはゾーン) に経由で接続します。 新しいblockchain間通信プロトコル。 Cosmos ハブ 多数の token タイプを追跡し、合計の記録を保持します 接続された各ゾーン内の token の数。トークンは次のことができます あるゾーンから別のゾーンに安全かつ迅速に転送 ゾーン間で液体を交換する必要はありません。 ゾーン間のコイン転送は、Cosmos ハブを経由します。 このアーキテクチャは、blockchain スペースが抱える多くの問題を解決します。 アプリケーションの相互運用性、スケーラビリティ、 シームレスなアップグレード可能。たとえば、Bitcoind から派生したゾーン、 Go-Ethereum、CryptoNote、ZCash、または任意の blockchain システムは、 Cosmos ハブに接続してください。これらのゾーンにより、Cosmos は次のことを行うことができます。 世界的なトランザクション需要に合わせて無限に拡張できます。ゾーンも 分散型取引所にとっては素晴らしい yt であり、次のようにサポートされます。 まあ。 Cosmos は単なる単一の分散台帳ではなく、Cosmos ハブは壁に囲まれた庭園や世界の中心ではありません。私たちは 分散型台帳のオープンネットワーク用のプロトコルの設計 将来の金融システムの新たな基盤として機能する可能性があります。 暗号化、健全な経済学、合意の原則に基づく 理論、透明性、説明責任。 Cosmos ハブは、Cosmos における最初のパブリック blockchain です。 Tendermint の BFT コンセンサス アルゴリズムを利用したネットワーク。の Tendermint オープンソース プロジェクトは、次のような問題に対処するために 2014 年に誕生しました。 Bitcoin のproof-of-workコンセンサスアルゴリズムの速度、スケーラビリティ、環境問題。実績のあるものを使用および改善することにより、
BFT アルゴリズムは 1988 年に MIT で開発されました [20]、Tendermint チームは、proof-of-stake を概念的に実証した最初の人物でした 何も問題がない問題に対処する暗号通貨 第 1 世代 proof-of-stake 暗号通貨の被害 NXT および BitShares1.0 として。 現在、事実上すべての Bitcoin モバイル ウォレットは信頼できるサーバーを使用して、 取引の検証を提供します。これは、proof-of-work では、作業の前に多くの確認を待つ必要があるためです。 トランザクションは不可逆的にコミットされたと見なすことができます。二重支払い攻撃は、次のようなサービスですでに実証されています。 コインベース。 他の blockchain コンセンサス システムとは異なり、Tendermint は以下を提供します 即時かつ確実に安全なモバイルクライアントの支払い検証。 Tendermint は決してフォークしないように設計されているため、モバイル ウォレットは即座にトランザクション確認を受け取ることができるため、 トラストレスで実用的な支払いがスマートフォン上で実現します。これ モノのインターネット アプリケーションに重大な影響を与える まあ。 Cosmos のバリデーターは Bitcoin マイナーと同様の役割を果たしますが、 代わりに暗号署名を使用して投票します。バリデーターは コミットを担当する安全な専用マシン ブロック。 validator 以外のユーザーは、staking token (と呼ばれる) を委任できます。 「アトム」) を任意の validator に送信して、ブロック手数料とアトムの一部を獲得します 報酬は得られますが、次の場合には罰せられる(切り捨てられる)リスクが伴います。 デリゲート validator がハッキングされたか、プロトコルに違反しました。証明された Tendermint BFT コンセンサスの安全性の保証と担保 利害関係者の保証金 – validator および委任者 – が提供する ノードとライトクライアントのための証明可能かつ定量化可能なセキュリティ。 分散型公開台帳には憲法と ガバナンスシステム。 Bitcoin は Bitcoin 財団に依存しており、アップグレードを調整するためにマイニングを行いますが、これには時間がかかります。 Ethereum ハードフォークしてアドレス指定した後、ETH と ETC に分割 DAO ハッキング、主に事前の社会契約がなかったため そのような決定を下すためのメカニズムもありません。 Cosmos ハブの検証者と委任者は、次の項目に投票できます。 システムのプリセットパラメータを変更できる提案 自動的に (ブロックガス制限など)、アップグレードを調整します。 人間が読める憲法の修正案に投票する Cosmos ハブのポリシーを管理します。憲法 などの問題に関して利害関係者間の団結が可能になります。 盗難やバグ (TheDAO インシデントなど) により、より迅速かつ迅速な対応が可能になります。 よりクリーンな解像度。 各ゾーンは独自の憲法と統治を持つこともできます 仕組みも。たとえば、Cosmos ハブには ハブで不変性を強制する構成 (ロールバックなし、 Cosmos ハブ ノード実装のバグを除いて)、 各ゾーンはロールバックに関して独自のポリシーを設定できます。 異なるポリシー ゾーン間の相互運用性を有効にすることで、 Cosmos ネットワークはユーザーに究極の自由と可能性を与えます。 無許可の実験。 ここでは、分散化とスケーラビリティの新しいモデルについて説明します。 Cosmos は、多くの blockchain を搭載したネットワークです。 テンダーミント。既存の提案は「単一の」を作成することを目的としていますが、 blockchain」、グローバル トランザクションの合計順序付け、Cosmos 多数の blockchain を相互に同時に実行できるようにします 相互運用性を維持しながら。 基本的に、Cosmos ハブは多くの独立したものを管理します。 blockchain 「ゾーン」と呼ばれる (以下では「シャード」と呼ばれることもあります) 「シャーディング」として知られるデータベース スケーリング技術を指します)。
に投稿されたゾーンからの最近のブロックコミットの継続的なストリーム ハブにより、ハブは各ゾーンの状態を常に把握できるようになります。 同様に、各ゾーンはハブの状態を常に把握します(ただし、ゾーンは を介して間接的に行われる場合を除いて、互いに連絡を取り合わないでください。 ハブ)。その後、情報のパケットが一方から通信されます。 マークルプルーフを証拠として投稿することで、別のゾーンにゾーンします。 情報が送受信されました。このメカニズムはと呼ばれます blockchain 間通信、または略して IBC。 どのゾーンもそれ自体をハブとして非循環グラフを形成できます。 しかし、明確にするために、簡単なことだけを説明します。 ハブが 1 つだけあり、ハブ以外のものが多数ある構成 ゾーン。 Cosmos ハブは、マルチアセットをホストする blockchain です。 分散型台帳。token は個々のユーザーが保持できます。 ゾーン自体によって。これらのtokenは1つのゾーンから移動できます 「コイン パケット」と呼ばれる特別な IBC パケットで別のパケットに送信します。ハブは 合計の大域的不変性を維持する責任がある ゾーン全体の各 token の量。 IBC コイン パケット トランザクションは送信者、ハブ、受信者によってコミットされる必要があります blockchain秒。Cosmos ハブは全体の中央台帳として機能するため、 システムでは、ハブのセキュリティが最も重要です。その間 各ゾーンは、次のように保護される Tendermint blockchain である可能性があります。 4 つほど少ない (BFT コンセンサスが必要ない場合はさらに少ない)、ハブ グローバルに分散された validator のセットによって保護される必要があります。 などの最も厳しい攻撃シナリオに耐えることができます。 大陸ネットワークの分割または国家支援による攻撃。 Cosmos ゾーンは、IBC を交換する独立した blockchain です。 ハブとのメッセージ。ハブの観点から見ると、ゾーンは マルチアセット ダイナミック メンバーシップ マルチシグネチャ アカウント IBC パケットを使用して token を送受信できます。のように 暗号通貨アカウントでは、ゾーンは token を超えて転送することはできません 持っていますが、token を持っている他のユーザーから token を受け取る可能性があります。ゾーン 1 つ以上の token タイプの「ソース」として指定できます。 token 電源を注入する電力を与えます。 Cosmos ハブのアトムは、ゾーンの validator によってステーキングされる可能性があります ハブに接続されています。これらのゾーンへの二重攻撃攻撃中 その結果、投票権の 2/3 を超えるゾーンであるテンダーミントの責任追及の責任が大幅に削減されることになるでしょう。 Byzantine は無効な状態をコミットする可能性があります。 Cosmos ハブは、 他のゾーンでコミットされたトランザクションを検証または実行するため、 ユーザーは、信頼するゾーンに token を送信する責任があります。 将来的には、Cosmos ハブのガバナンス システムがハブを追い越す可能性があります。 ゾーンの障害を考慮した改善提案。のために たとえば、一部 (またはすべて) ゾーンからのアウトバウンド token 転送は、 ゾーンの緊急サーキットブレークを可能にするためにスロットルされる (token 転送の一時停止) 攻撃が検出されたとき。 ここで、ハブとゾーンがそれぞれとどのように通信するかを見てみましょう。 その他。たとえば、「Zone1」、「Zone2」という 3 つの blockchain がある場合、

と「ハブ」。「ゾーン 1」が次の宛先のパケットを生成することを望みます。 「Hub」を経由する「Zone2」の場合。パケットをあるものから移動するには blockchain を別のユーザーに送信すると、プルーフが受信チェーンに投稿されます。 証拠は、送信チェーンがパケットをパブリッシュしたことを示しています。 疑わしい目的地。受信チェーンがこの証明をチェックするには、 送信者のブロックヘッダーを追跡できる必要があります。これ このメカニズムはサイドチェーンで使用されるものと似ています。 相互作用する 2 つのチェーンが、 存在証明データグラムの双方向ストリーム (トランザクション)。 IBC プロトコルは、当然のことながら 2 種類の トランザクション: IBCBlockCommitTx トランザクション。 blockchain は、最新のブロック hash を観察者に証明します。 IBCPacketTx トランザクションにより、blockchain は 指定されたパケットが実際にパブリッシュされたことをオブザーバーに証明する 送信者のアプリケーションによる、最近のメールに対するマークルプルーフを介した ブロック-hash。 IBC メカニズムを 2 つの別々のトランザクションに分割することで、 受信チェーンのネイティブ料金市場メカニズムを許可します。 どのパケットがコミットされるか (つまり、確認応答されるか) を決定します。 どのように送信するかについて、送信チェーン上で完全な自由を許可します。 多くの送信パケットが許可されます。 上記の例では、「Zone1」のブロック-hashを更新するには 「ハブ」(または「Zone2」の「ハブ」)上、IBCBlockCommitTxトランザクションは、ブロック-hash を使用して「ハブ」に投稿する必要があります。 「ゾーン 1」 (または「ハブ」のブロック hash を持つ「ゾーン 2」)。 詳細については、IBCBlockCommitTx および IBCPacketTx を参照してください。 2 つの IBC トランザクション タイプについて。 Bitcoin が分散型であることで安全性が高まるのと同じように、 台帳を大量に複製することで、取引所の脆弱性を軽減できます。 blockchain で実行することで、外部および内部のハッキングを実行できます。私たち これを分散型交換と呼びます。 暗号通貨コミュニティが分散型と呼ぶもの 今日の取引所は、「アトミック クロスチェーン」(AXC)トランザクションと呼ばれるものに基づいています。 AXC トランザクションでは、2 人のユーザーが 2 つの異なるチェーンは 2 つの転送トランザクションを実行できます。 両方の台帳で一緒にコミットされるか、まったくコミットされない(すなわち、 原子的に)。たとえば、2 人のユーザーがビットコインをイーサ (または 2 つの異なる台帳上の任意の 2 つの token)、AXC トランザクションを使用し、 Bitcoin と Ethereum がそれぞれに接続されていない場合でも その他。 AXC トランザクションで取引所を運営する利点は次のとおりです。 どちらのユーザーもお互いを信頼する必要も、トレードマッチングを信頼する必要もありません サービス。欠点は、双方がオンラインである必要があることです。 起こる貿易。 もう 1 つのタイプの分散型取引所は、大量複製です。 独自の blockchain で実行される分散型交換。上のユーザー この種の取引所は指値注文を発行して、 コンピュータの電源をオフにすると、ユーザーが操作しなくても取引を実行できます。 オンライン。 blockchain が一致し、代わりに取引を完了します トレーダーの。
Cosmos Arquitectura
Cosmos es una red de blockchain paralelos independientes que están cada uno impulsado por algoritmos de consenso clásicos BFT como Menta tierna 1. El primer blockchain en esta red será el Cosmos Hub. el Cosmos El concentrador se conecta a muchos otros blockchains (o zonas) a través de un Nuevo protocolo de comunicación inter-blockchain. El centro Cosmos rastrea numerosos tipos token y mantiene un registro del total número de tokens en cada zona conectada. Las fichas pueden ser transferido de una zona a otra de forma segura y rápida sin necesidad de un intercambio líquido entre zonas, porque todos Las transferencias de monedas entre zonas pasan por el centro Cosmos. Esta arquitectura resuelve muchos problemas que el espacio blockchain enfrenta hoy en día, como la interoperabilidad de aplicaciones, la escalabilidad y capacidad de actualización perfecta. Por ejemplo, zonas derivadas de Bitcoind, Go-Ethereum, CryptoNote, ZCash o cualquier sistema blockchain pueden debe conectarse al concentrador Cosmos. Estas zonas permiten que Cosmos escalar infinitamente para satisfacer la demanda de transacciones globales. Las zonas también son un gran yt para un intercambio distribuido, que será compatible como bueno. Cosmos no es solo un libro mayor distribuido, y el Cosmos Hub no es un jardín amurallado ni el centro de su universo. somos Diseño de un protocolo para una red abierta de libros de contabilidad distribuidos. que puede servir como una nueva base para futuros sistemas financieros, basado en principios de criptografía, economía sólida, consenso teoría, transparencia y rendición de cuentas. El Cosmos Hub es el primer blockchain público en Cosmos Red, impulsada por el algoritmo de consenso BFT de Tendermint. el El proyecto de código abierto Tendermint nació en 2014 para abordar la velocidad, escalabilidad y problemas ambientales del algoritmo de consenso de prueba de trabajo de Bitcoin. Utilizando y mejorando productos probados
BFT algoritmos desarrollados en el MIT en 1988 [20], el Tendermint El equipo fue el primero en demostrar conceptualmente un proof-of-stake criptomoneda que aborda el problema de nada en juego sufrido por las criptomonedas proof-of-stake de primera generación, como como NXT y BitShares1.0. Hoy en día, prácticamente todas las billeteras móviles Bitcoin utilizan servidores confiables para proporcionarles verificación de transacciones. Esto se debe a que la prueba de trabajo requiere esperar muchas confirmaciones antes de La transacción puede considerarse irreversiblemente comprometida. Los ataques de doble gasto ya se han demostrado en servicios como CoinBase. A diferencia de otros sistemas de consenso blockchain, Tendermint ofrece Verificación de pagos de clientes móviles instantánea y demostrablemente segura. Dado que Tendermint está diseñado para no bifurcarse nunca, el móvil Las billeteras pueden recibir confirmación instantánea de la transacción, lo que hace que Los pagos prácticos y sin confianza son una realidad en los teléfonos inteligentes. esto tiene ramificaciones significativas para las aplicaciones de Internet de las cosas como bueno. Los validadores en Cosmos tienen una función similar a la de los mineros Bitcoin, pero en su lugar, utilice firmas criptográficas para votar. Los validadores son máquinas seguras y dedicadas que son responsables de cometer bloques. Los que no son validators pueden delegar sus staking tokens (llamados “átomos”) a cualquier validator para ganar una parte de las tarifas de bloque y átomo recompensas, pero corren el riesgo de ser castigados (recortados) si el delegado validator es pirateado o viola el protocolo. lo probado garantías de seguridad del consenso de Tendermint BFT, y la garantía depósito de partes interesadas–validators y delegados–proporcionar Seguridad demostrable y cuantificable para nodos y clientes ligeros. Los libros públicos distribuidos deben tener una constitución y un sistema de gobernanza. Bitcoin depende de la Fundación Bitcoin yminería para coordinar las actualizaciones, pero este es un proceso lento. Ethereum se dividió en ETH y ETC después de realizar una bifurcación para abordar El hack DAO, en gran parte porque no existía un contrato social previo ni mecanismo para tomar tales decisiones. Los validadores y delegados en el Cosmos Hub pueden votar en Propuestas que pueden cambiar parámetros preestablecidos del sistema. automáticamente (como el límite de gas de bloque), coordinar actualizaciones, como así como votar sobre enmiendas a la constitución legible por humanos que rigen las políticas del Cosmos Hub. la constitucion permite la cohesión entre las partes interesadas en temas como robos y errores (como el incidente TheDAO), lo que permite una solución más rápida y resolución más limpia. Cada zona también puede tener su propia constitución y gobernanza. mecanismo también. Por ejemplo, el concentrador Cosmos podría tener un constitución que impone la inmutabilidad en el Hub (sin retrocesos, salvo errores de la implementación del nodo Hub Cosmos), mientras que Cada zona puede establecer sus propias políticas con respecto a las reversiones. Al permitir la interoperabilidad entre diferentes zonas políticas, el La red Cosmos ofrece a sus usuarios la máxima libertad y potencial para experimentación sin permiso. Aquí describimos un modelo novedoso de descentralización y escalabilidad. Cosmos es una red de muchos blockchains impulsados por Menta tierna. Si bien las propuestas existentes apuntan a crear una “zona única blockchain” con pedido de transacciones globales totales, Cosmos permite que muchos blockchains se ejecuten simultáneamente entre sí manteniendo la interoperabilidad. En la base, el Cosmos Hub gestiona muchos blockchains llamadas “zonas” (a veces denominadas “fragmentos”, en referencia a la técnica de escalado de bases de datos conocida como “sharding”).
Un flujo constante de confirmaciones de bloques recientes de zonas publicadas en el Hub le permite mantenerse al día con el estado de cada zona. Asimismo, cada zona se mantiene al día con el estado del Hub (pero las zonas No se mantienen al día entre sí excepto indirectamente a través del Centro). Luego se comunican paquetes de información desde uno zona a otra publicando pruebas de Merkle como evidencia de que el Se envió y recibió información. Este mecanismo se llama comunicación inter-blockchain, o IBC para abreviar. Cualquiera de las zonas puede ser en sí misma centros para formar un gráfico acíclico, pero en aras de la claridad sólo describiremos los simples configuración donde solo hay un centro y muchos no centros zonas. El Cosmos Hub es un blockchain que aloja un multiactivo libro mayor distribuido, donde tokens pueden ser mantenidos por usuarios individuales o por zonas propias. Estos tokens se pueden mover de una zona a otro en un paquete especial IBC llamado "paquete de monedas". El centro es responsable de preservar la invariancia global del total cantidad de cada token en todas las zonas. IBC paquete de monedas las transacciones deben ser confirmadas por el remitente, el centro y el receptor blockchains.Dado que el Cosmos Hub actúa como el libro mayor central para todo sistema, la seguridad del Hub es de suma importancia. mientras cada zona puede ser un Tendermint blockchain que está asegurado por tan solo 4 (o incluso menos si no se necesita el consenso BFT), el Hub debe estar protegido por un conjunto globalmente descentralizado de validators que puede resistir los escenarios de ataque más severos, como un partición de la red continental o un ataque patrocinado por un estado-nación. Una zona Cosmos es una blockchain independiente que intercambia IBC mensajes con el Hub. Desde la perspectiva del Hub, una zona es un cuenta multi-activos, membresía dinámica y múltiples firmas que Puede enviar y recibir tokens usando IBC paquetes. como un cuenta de criptomonedas, una zona no puede transferir más tokens que lo tiene, pero puede recibir tokens de otras personas que los tengan. una zona puede ser designado como una "fuente" de uno o más tipos token, otorgándole el poder de inzate ese suministro token. Los átomos del concentrador Cosmos pueden ser apostados por validators de una zona conectado al concentrador. Mientras que los ataques de doble gasto en estas zonas resultaría en la reducción de átomos con la responsabilidad de Tendermint, una zona donde >⅔ del poder de voto están Los bizantinos pueden cometer un estado inválido. El concentrador Cosmos no verificar o ejecutar transacciones comprometidas en otras zonas, por lo que es Es responsabilidad de los usuarios enviar tokens a zonas en las que confían. En el futuro, el sistema de gobernanza del Cosmos Hub puede aprobar el Hub propuestas de mejora que den cuenta de las fallas de la zona. Para Por ejemplo, las transferencias salientes token desde algunas (o todas) zonas pueden estrangulado para permitir el corte de circuito de emergencia de zonas (una interrupción temporal de las token transferencias) cuando se detecta un ataque. Ahora veremos cómo el Hub y las zonas se comunican entre sí. otro. Por ejemplo, si hay tres blockchains, “Zona1”, “Zona2”,

y "Hub", y deseamos que "Zone1" produzca un paquete destinado para “Zone2” pasando por “Hub”. Para mover un paquete de uno blockchain a otro, se publica una prueba en la cadena de recepción. La prueba afirma que la cadena de envío publicó un paquete para el supuesto destino. Para que la cadena receptora pueda comprobar esta prueba, debe poder mantenerse al día con los encabezados de bloque del remitente. esto El mecanismo es similar al utilizado por las cadenas laterales, que requiere dos cadenas que interactúan para ser conscientes una de la otra a través de un flujo bidireccional de datagramas de prueba de existencia (transacciones). El protocolo IBC se puede definir naturalmente utilizando dos tipos de transacciones: una transacción IBCBlockCommitTx , que permite una blockchain para demostrarle a cualquier observador de su bloque más reciente-hash, y una transacción IBCPacketTx , que permite que un blockchain demostrar a cualquier observador que el paquete dado fue efectivamente publicado por la aplicación del remitente, a través de una prueba de Merkle a la reciente bloque-hash. Al dividir la mecánica IBC en dos transacciones separadas, podemos permitir que el mecanismo de mercado de tarifas nativo de la cadena receptora determinar qué paquetes se confirman (es decir, se reconocen), mientras permitiendo total libertad en la cadena de envío en cuanto a cómo Se permiten muchos paquetes salientes. En el ejemplo anterior, para actualizar el bloque-hash de "Zona1" en "Hub" (o de "Hub" en "Zone2"), un IBCBlockCommitTxLa transacción debe publicarse en "Hub" con el bloque-hash de “Zona1” (o en “Zona2” con el bloque-hash de “Hub”). Consulte IBCBlockCommitTx y IBCPacketTx para obtener más información. en los dos tipos de transacciones IBC. De la misma manera que Bitcoin es más seguro al ser distribuido, libro mayor replicado masivamente, podemos hacer que los intercambios sean menos vulnerables a hacks externos e internos ejecutándolo en el blockchain. nosotros Llame a esto un intercambio distribuido. Lo que la comunidad de criptomonedas llama descentralizado El intercambio actual se basa en algo llamado transacciones de "cadena cruzada atómica" (AXC). Con una transacción AXC, dos usuarios en dos cadenas diferentes pueden realizar dos transacciones de transferencia que son comprometidos juntos en ambos libros mayores, o ninguno en absoluto (es decir, atómicamente). Por ejemplo, dos usuarios pueden intercambiar bitcoins por ether (o dos tokens cualesquiera en dos libros de contabilidad diferentes) utilizando transacciones AXC, aunque Bitcoin y Ethereum no están conectados entre sí otro. El beneficio de ejecutar un intercambio en transacciones AXC es que ninguno de los usuarios necesita confiar entre sí ni en el intercambio comercial servicio. La desventaja es que ambas partes deben estar en línea para que se produzca el comercio. Otro tipo de intercambio descentralizado es el replicado masivamente. intercambio distribuido que se ejecuta por sí solo blockchain. Usuarios en este tipo de intercambio puede enviar una orden limitada y convertir su computadora apagada y la operación se puede ejecutar sin que el usuario sea en línea. El blockchain coincide y completa la operación en nombre del comerciante.
アプリケーション
集中型取引所は、指値の深いオーダーブックを作成できる 注文を増やし、それによってより多くのトレーダーを引き寄せます。流動性がさらに高まる 取引所の世界には流動性があり、強力なネットワークが存在します。 交換における効果(または少なくとも勝者総取り効果) ビジネス。現在の仮想通貨取引所のリーダー Poloniex は 24 時間の出来高が 2,000 万ドルで、2 位は Bitynex の 24 時間取引高は 500 万ドルです。これほど強力なネットワークがあると、 その影響で、AXC ベースの分散型取引所が影響を受ける可能性は低いです。 集中型取引所よりもボリュームを獲得します。分散型の場合 集中型取引所と競合するには、取引所が必要になります。 指値注文によるディープオーダーブックをサポートします。配布のみ blockchain の Exchange がそれを提供します。 Tendermint はトランザクションの高速化による追加のメリットを提供します コミットします。犠牲にすることなく高速性を優先することで 一貫性を保つため、Cosmos のゾーンはトランザクションを高速に処理できます。 為替注文トランザクションと IBC token への送金の両方 そして他のゾーンからも。 今日の暗号通貨取引所の状況を考えると、 Cosmos のアプリケーションは分散型交換 (別名、 Cosmos DEX)。トランザクションのスループット容量と コミットのレイテンシは集中型のレイテンシと同等になる可能性があります 交換。トレーダーは実行可能な指値注文を送信できます 双方がオンラインである必要はありません。そしてテンダーミントと一緒に、 Cosmos ハブと IBC では、トレーダーは資金を出入りできます。 他のゾーンとの間のやり取りをスピーディーに行います。 特権ゾーンは、ブリッジされた token のソースとして機能できます。 別の暗号通貨。橋は関係に似ています Cosmos ハブとゾーンの間。両方ともそれに追いつく必要があります token が持っている証拠を検証するために、他のブロックの最新ブロック 一方からもう一方へ移動しました。 Cosmos の「ブリッジゾーン」 ネットワークはハブおよび他のハブとの通信を維持します
暗号通貨。ブリッジゾーンを介した間接化により、 シンプルであり、他のものにとらわれないハブのロジック blockchain コンセンサス戦略 (Bitcoin の proof-of-work など) 採掘。 各ブリッジゾーン validator は、Tendermint を利用した blockchain と特別な ABCI ブリッジ アプリだけでなく、 「起源」blockchain。 新しいブロックがオリジン、ブリッジゾーンでマイニングされると、 validator は、署名することでコミットされたブロックについて合意します。 そして、オリジンのblockchainについてのそれぞれのローカルな見解を共有します ヒント。ブリッジゾーンがオリジンで支払いを受け取ったとき(そして この事件では十分な確認が見られたことが合意された Ethereum や Bitcoin などの PoW チェーンの)、対応する アカウントはその残高を使用してブリッジ ゾーンに作成されます。 Ethereum の場合、ブリッジ ゾーンは同じものを共有できます。 validator - Cosmos ハブとして設定されます。 Ethereum 側 ( オリジン)、ブリッジコントラクトにより、イーサ所有者はイーサを送信できるようになります 上のブリッジコントラクトに送信することでブリッジゾーンに送信します。 Ethereum。イーサがブリッジコントラクトによって受信されると、 適切な IBC パケットが送信されない限り、イーサを引き出すことはできません。 ブリッジゾーンからブリッジコントラクトによって受信されます。の Bridge-contract は、ブリッジ ゾーンの validator-set を追跡します。 Cosmos ハブの validator セットと同一である可能性があります。 Bitcoin の場合、概念は似ていますが、次の点が異なります。 単一のブリッジ コントラクトの場合、各 UTXO は マルチシグネチャ P2SH 公開スクリプトのしきい値。の制限により、 P2SH システムでは、署名者が Cosmos と同一であってはなりません ハブ validator セット。ブリッジゾーン上のイーサ (「ブリッジイーサ」) は、 ハブから送信され、その後、トランザクションによって破棄されます。 Ethereum の特定の出金アドレスに送信します。 IBC トランザクションがブリッジゾーンで発生したことを証明するパケット Ethereum ブリッジ コントラクトに投稿して、イーサを許可することができます 撤回されること。 Bitcoin の場合、制限されたスクリプト システムにより、 IBC コイン転送メカニズムを反映するのは困難です。それぞれ UTXO には独自の独立した pubscript があるため、すべての UTXO は のセットに変更があると、新しい UTXO に移行されます。 Bitcoin エスクロー署名者。解決策の 1 つは、圧縮して、 必要に応じて UTXO セットを解凍して合計数を維持します UTXO 件ダウンしました。 このようなブリッジ契約のリスクは、不正な validator セットです。 ≥1/3 ビザンチンの投票権によりフォークが発生し、イーサが撤退する可能性がある ブリッジゾーンにブリッジデザーを維持しながら、Ethereum のブリッジ契約から。さらに悪いことに、2/3 を超えるビザンチンの投票権は、 ブリッジコントラクトにイーサを送った人から完全にイーサを盗む ブリッジ ゾーンの元のブリッジング ロジックから逸脱することによって。 ブリッジを次のように設計することで、これらの問題に対処することが可能です。 完全に責任がある。たとえば、ハブからのすべての IBC パケットと、 発信元は、ブリッジ ゾーンによる確認を必要とする場合があります。 これにより、ブリッジ ゾーンのすべての状態遷移が可能になります。 ハブまたはオリジンのいずれかによって効率的に挑戦され、検証される ブリッジ契約。ハブとオリジンでは、ブリッジゾーン validator が担保をポストし、token がブリッジゾーンから転送できるようにする必要があります。 ブリッジ契約は遅らせる必要がある(そして担保解除) 十分に長い期間) 独立監査人。仕様のデザインはお任せしますので、 このシステムの実装は将来的にオープンです Cosmos
改善提案、Cosmos ハブによって可決される予定 ガバナンスシステム。 スケーリングの問題の解決は、Ethereum にとって未解決の問題です。 現在、Ethereum ノードはすべてのトランザクションを処理し、 すべての状態も保存します。リンク。 Tendermint は Ethereum よりもはるかに速くブロックをコミットできるため、 Tendermint コンセンサスを活用した proof-of-work、EVM ゾーンと ブリッジイーサ上で動作すると、より高いパフォーマンスを提供できます。 Ethereum blockchain 秒。さらに、Cosmos ハブと IBC パケットの仕組みでは、任意のコントラクト ロジックが許可されていません 実行自体は、token の動きを調整するために使用できます。 異なるゾーンで実行されているEthereumコントラクト間、 token 中心の Ethereum スケーリングの基盤を提供します。 シャーディング。 Cosmos ゾーンは、任意のアプリケーション ロジックを実行します。 ゾーンの寿命の始まりであり、更新される可能性があります 時間の経過とともにガバナンスによって。このような zexibility により、Cosmos ゾーンは次のことを行うことができます。 Ethereum や Bitcoin、およびそれらの blockchain の派生物も許可されます。 同じコードベースを利用しますが、異なる validator セットを使用し、 初期配布。これにより、多くの既存の暗号通貨が利用可能になります。 Ethereum、Zerocash、Bitcoin などのフレームワーク、 Tendermint Core で使用する CryptoNote など。 共通のネットワーク上の、より高性能なコンセンサス エンジン、 相互運用性の大きな機会を開く プラットフォーム。さらに、マルチアセット blockchain として、単一の トランザクションには複数の入力と出力が含まれる場合があります。 入力は任意の token タイプにすることができ、Cosmos を直接として機能させることができます。 注文が前提となりますが、分散型取引所のプラットフォーム他のプラットフォーム経由でマッチングされます。あるいは、ゾーンでサービスを提供することもできます。 分散型フォールトトレラント取引所 (オーダーブック付き) として、 既存の集中型を大幅に改善できる 時間の経過とともにハッキングされる傾向にある暗号通貨取引所。 ゾーンは、blockchain をサポートするエンタープライズ バージョンとしても機能します 政府システムでは、特定のサービスの一部が 伝統的に組織または組織のグループによって運営されている 代わりに、特定のゾーンで ABCI アプリケーションとして実行されます。 パブリックのセキュリティと相互運用性を継承できるようにします。 Cosmos 基盤となるネットワークの制御を犠牲にすることなくネットワークを構築 サービス。したがって、Cosmos は、両方の長所を提供する可能性があります。 blockchain テクノロジーの利用を検討しているが、どのような組織が利用を検討しているのか 分散したサードパーティに制御を完全に手放すことには慎重である パーティー。 一貫性を重視することに大きな問題があると主張する人もいます Tendermint のようなコンセンサス アルゴリズムは、どのネットワークでも
2/3 の単一パーティションが存在しないパーティション 投票力(例:1/3以上の議決権)があれば、コンセンサスは完全に停止します。 Cosmos アーキテクチャは、次のようにしてこの問題を軽減できます。 地域自治区を備えたグローバルハブであり、そこに投票権がある 各ゾーンは共通の地理に基づいて分散されます 地域。たとえば、共通のパラダイムは個人向けのものかもしれません。 都市や地域は、ゾーンを共有しながら独自のゾーンを運営することができます。 共通ハブ (例: Cosmos ハブ)、地方自治体の活動を可能にします。 一時的なネットワークが原因でハブが停止した場合でも持続します。 パーティション。これにより、実際の地質学的、政治的、および 堅牢な設計で考慮すべきネットワーク トポロジーの特徴 フェデレーテッド・フォールト・トレラント・システム。
NameCoin は、問題の解決を試みた最初の blockchain の 1 つです。 Bitcoin blockchain を適応させることによる名前解決の問題。 残念ながら、このアプローチにはいくつかの問題がありました。 Namecoin を使用すると、たとえば @さとし が 過去のある時点で特定の公開鍵を使用して登録されている、 しかし、公開鍵がその後に作成されたかどうかはわかりません。 前回以降のすべてのブロックをダウンロードしない限り、最近更新されました その名前の更新。これは、Bitcoin の制限によるものです。 UTXO トランザクション マークル化モデル。 トランザクション (ただし変更可能なアプリケーション状態ではない) はマークル化されています ブロック-hashに。これにより、名前の存在は証明できますが、その後の名前の更新が存在しないことは証明できません。したがって、私たちはそれを知ることができません 完全な名前を信頼せずに、名前の最新の値を確認する ノードを削除したり、ダウンロードによって帯域幅に多大なコストが発生したりする blockchain 全体。 たとえマークル化された検索木がNameCoinに実装されたとしても、 proof-of-work への依存性により、クライアント検証が軽量になります 問題のある。ライトクライアントは、完全なコピーをダウンロードする必要があります。 blockchain 全体 (または少なくともすべてのブロック) のすべてのブロックのヘッダー 名前の最後の更新以降のヘッダー)。これは、 帯域幅要件は時間に応じて直線的に増加します [21]。さらに、proof-of-work blockchain の名前変更 追加の proof-of-work 確認ブロックを待つ必要があります。 Bitcoin では最大 1 時間かかる場合があります。 Tendermint を使用する場合、必要なのは最新のブロックだけです-hash validators の定足数 (投票権による) およびマークルによって署名されています。 名前に関連付けられた現在の値を証明します。これでできます 簡潔、迅速、安全なライトクライアントが可能 名前の値の検証。 Cosmos では、この概念をさらに拡張できます。それぞれ Cosmos の名前登録ゾーンには、「.com」や「.org」などのトップレベル ドメイン (TLD) 名を関連付けることができます。
登録ゾーンは独自のガバナンスと登録を持つことができます ルール。
Aplicaciones
Un intercambio centralizado puede crear una cartera de pedidos profunda y limitada pedidos y así atraer a más comerciantes. La liquidez engendra más liquidez en el mundo cambiario, por lo que existe una fuerte red efecto (o al menos un efecto de que el ganador se lleva la mayor parte) en el intercambio negocio. El líder actual en intercambios de criptomonedas en la actualidad. es Poloniex con un volumen de 24 horas de $20M, y en segundo lugar está Bitynex con un volumen de 5 millones de dólares en 24 horas. Dada una red tan fuerte efectos, es poco probable que los intercambios descentralizados basados en AXC ganar volumen sobre los intercambios centralizados. Por una descentralización intercambio para competir con un intercambio centralizado, necesitaría para soportar carteras de pedidos profundas con órdenes limitadas. Sólo un distribuido El intercambio en un blockchain puede proporcionar eso. Tendermint proporciona beneficios adicionales para transacciones más rápidas se compromete. Priorizando la finalización rápida sin sacrificar coherencia, las zonas en Cosmos pueden analizar transacciones rápidamente, por tanto transacciones de orden de cambio como IBC token transferencias a y de otras zonas. Dado el estado actual de los intercambios de criptomonedas, una gran La aplicación para Cosmos es el intercambio distribuido (también conocido como el CosmosDEX). La capacidad de rendimiento de transacciones, así como La latencia de confirmación puede ser comparable a la de la centralizada. intercambios. Los comerciantes pueden enviar órdenes limitadas que se pueden ejecutar sin que ambas partes tengan que estar en línea. Y con Tendermint, el centro Cosmos y IBC, los operadores pueden mover fondos dentro y fuera de el intercambio hacia y desde otras zonas con rapidez. Una zona privilegiada puede actuar como fuente de un token puenteado de Otra criptomoneda. Un puente es similar a la relación. entre un centro y una zona Cosmos; ambos deben mantenerse al día con el últimos bloques del otro para verificar las pruebas de que tokens tienen pasó de uno a otro. Una "zona puente" en la Cosmos La red se mantiene al día con el Hub y con los demás.
criptomoneda. La dirección indirecta a través de la zona del puente permite La lógica del Hub es permanecer simple y agnóstica con respecto a otros. blockchain estrategias de consenso como Bitcoin proof-of-work minería. Cada zona puente validator ejecutaría un sistema impulsado por Tendermint blockchain con una aplicación puente especial ABCI, pero también un nodo completo de el “origen” blockchain. Cuando se extraen nuevos bloques en el origen, la zona del puente validators llegarán a un acuerdo sobre los bloques comprometidos firmando y compartir su respectiva visión local del blockchain del origen. propina. Cuando una zona puente recibe el pago en el origen (y Se acordó haber visto suficientes confirmaciones en el caso. de una cadena PoW como Ethereum o Bitcoin), un correspondiente Se crea una cuenta en la zona puente con ese saldo. En el caso de Ethereum, la zona puente puede compartir la misma validator: establecido como el concentrador Cosmos. En el lado Ethereum (el origen), un contrato puente permitiría a los titulares de ether enviar ether a la zona puente enviándolo al contrato puente en Ethereum. Una vez que el contrato puente recibe el éter, el El éter no se puede retirar a menos que se envíe un paquete IBC apropiado. recibido por el contrato puente de la zona puente. el El contrato-puente rastrea el conjunto validator de la zona-puente, que puede ser idéntico al conjunto validator del Cosmos Hub. En el caso de Bitcoin, el concepto es similar excepto que en lugar de un único contrato puente, cada UTXO estaría controlado por un umbral de pubscript P2SH multifirma. Debido a las limitaciones de En el sistema P2SH, los firmantes no pueden ser idénticos al Cosmos. Buje validator-conjunto.El éter en la zona del puente (“éter puenteado”) se puede transferir a y desde el Hub, y luego ser destruido con una transacción que lo envía a una dirección de retiro particular en Ethereum. Un IBC paquete que prueba que la transacción ocurrió en la zona puente se puede publicar en el contrato puente Ethereum para permitir que el éter para ser retirado. En el caso de Bitcoin, el sistema de secuencias de comandos restringido hace que sea Es difícil reflejar el mecanismo de transferencia de monedas IBC. Cada UTXO tiene su propio pubscript independiente, por lo que cada UTXO debe ser migrado a un nuevo UTXO cuando hay un cambio en el conjunto de Bitcoin firmantes del depósito de garantía. Una solución es comprimir y descomprima el conjunto UTXO según sea necesario para mantener el número total de UTXOs caídos. El riesgo de un contrato puente de este tipo es un conjunto validator deshonesto. ≥⅓ El poder de voto bizantino podría provocar una bifurcación y retirar el éter del contrato de puente en Ethereum mientras se mantiene el puente en la zona del puente. Peor aún, >⅔ del poder de voto bizantino puede robar éter directamente de quienes lo enviaron al contrato puente desviándose de la lógica de puenteo original de la zona del puente. Es posible abordar estos problemas diseñando el puente para que sea totalmente responsable. Por ejemplo, todos los paquetes IBC, desde el concentrador y el origen, podría requerir el reconocimiento por parte de la zona del puente en de tal manera que todas las transiciones de estado de la zona del puente puedan ser desafiado y verificado eficientemente por el centro o por el origen contrato-puente. El Hub y el origen deben permitir que la zona puente validators publique garantías y token transferencias fuera de la El contrato puente debe retrasarse (y la desvinculación de la garantía período lo suficientemente largo) para permitir que cualquier impugnación sea realizada por auditores independientes. Dejamos el diseño de la especificación y Implementación de este sistema abierto como futuro Cosmos
propuesta de mejora, que será aprobada por el Cosmos Hub sistema de gobernanza. Resolver el problema de escala es un tema abierto para Ethereum. Actualmente, los nodos Ethereum procesan cada transacción y También almacena todos los estados. enlace. Dado que Tendermint puede confirmar bloques mucho más rápido que los de Ethereum Zonas proof-of-work, EVM impulsadas por el consenso de Tendermint y operar con éter puenteado puede proporcionar un mayor rendimiento a Ethereum blockchains. Además, aunque el Cosmos Hub y IBC la mecánica de paquetes no permite una lógica de contrato arbitraria ejecución per se, se puede utilizar para coordinar token movimientos entre Ethereum contratos que se ejecutan en diferentes zonas, proporcionando una base para el escalamiento centrado en token Ethereum a través de fragmentación. Las zonas Cosmos ejecutan una lógica de aplicación arbitraria, que se define en el comienzo de la vida de la zona y potencialmente puede actualizarse a lo largo del tiempo por la gobernanza. Esta flexibilidad permite que Cosmos zonas actuar como puentes hacia otras criptomonedas como Ethereum o Bitcoin, y también permite derivados de esos blockchains, utilizando la misma base de código pero con un conjunto validator diferente y distribución inicial. Esto permite que muchas criptomonedas existentes frameworks, como los de Ethereum, Zerocash, Bitcoin, CryptoNote, etc., para usar con Tendermint Core, que es un motor de consenso de mayor rendimiento, en una red común, abriendo una tremenda oportunidad para la interoperabilidad entre plataformas. Además, como multiactivo blockchain, un único La transacción puede contener múltiples entradas y salidas, donde cada una La entrada puede ser de cualquier tipo token, lo que permite que Cosmos sirva directamente como una plataforma para el intercambio descentralizado, aunque se asumen pedidospara ser emparejado a través de otras plataformas. Alternativamente, una zona puede servir como un intercambio distribuido tolerante a fallas (con libros de pedidos), que Puede ser una mejora estricta con respecto a la centralizada existente. intercambios de criptomonedas que tienden a ser pirateados con el tiempo. Las zonas también pueden servir como versiones empresariales respaldadas por blockchain y sistemas gubernamentales, donde partes de un servicio particular que tradicionalmente están dirigidos por una organización o grupo de organizaciones en su lugar, se ejecutan como una aplicación ABCI en una zona determinada, que le permite heredar la seguridad y la interoperabilidad del público Cosmos red sin sacrificar el control sobre la red subyacente servicio. Por lo tanto, Cosmos puede ofrecer lo mejor de ambos mundos para organizaciones que buscan utilizar la tecnología blockchain pero que están desconfiado de ceder completamente el control a un tercero distribuido fiesta. Algunos afirman que un problema importante con las políticas que favorecen la coherencia algoritmos de consenso como Tendermint es que cualquier red partición que hace que no haya una sola partición con >⅔ el poder de voto (por ejemplo, ≥⅓ salir de una revista) detendrá el consenso por completo. La arquitectura Cosmos puede ayudar a mitigar este problema mediante el uso un centro global con zonas autónomas regionales, donde el poder de voto para cada zona se distribuyen en base a una zona geográfica común región. Por ejemplo, un paradigma común puede ser el de individuos ciudades o regiones para operar sus propias zonas mientras comparten una eje común (por ejemplo, el Cosmos Hub), que permite que la actividad municipal persistir en caso de que el concentrador se detenga debido a una red temporal partición. Tenga en cuenta que esto permite una verdadera geología, política y Características topológicas de la red que se deben considerar al diseñar sistemas robustos. Sistemas federados tolerantes a fallos.
NameCoin fue uno de los primeros blockchains en intentar resolver el problema de resolución de nombres adaptando el Bitcoin blockchain. Lamentablemente, ha habido varios problemas con este enfoque. Con Namecoin podemos comprobar que, por ejemplo, @satoshi fue registrado con una clave pública particular en algún momento en el pasado, pero no sabríamos si la clave pública había sido desde entonces actualizado recientemente a menos que descarguemos todos los bloques desde el último actualización de ese nombre. Esto se debe a la limitación de Bitcoin UTXO transacción Modelo de merkle-ización, donde solo el las transacciones (pero no el estado de la aplicación mutable) están adaptadas a Merkle en el bloque-hash. Esto nos permite probar la existencia, pero no la inexistencia de actualizaciones posteriores de un nombre. Por lo tanto, no podemos saber por seguro el valor más reciente de un nombre sin confiar en un completo nodo, o incurrir en costos significativos en ancho de banda al descargar todo el blockchain. Incluso si se implementara un árbol de búsqueda tipo Merkle en NameCoin, su dependencia de proof-of-work facilita la verificación del cliente problemático. Los clientes Light deben descargar una copia completa del encabezados para todos los bloques en todo el blockchain (o al menos todos los encabezados desde la última actualización de un nombre). Esto significa que el Los requisitos de ancho de banda aumentan linealmente con la cantidad de tiempo. [21]. Además, cambios de nombre en un proof-of-work blockchain requiere esperar proof-of-work bloques de confirmación adicionales, lo que puede tardar hasta una hora el Bitcoin. Con Tendermint, todo lo que necesitamos es el bloque más reciente: hash firmado por un quórum de validators (por poder de voto) y un Merkle prueba del valor actual asociado con el nombre. Esto lo hace Es posible tener un cliente ligero conciso, rápido y seguro. verificación de valores de nombres. En Cosmos, podemos tomar este concepto y ampliarlo más. cada uno La zona de registro de nombres en Cosmos puede tener un nombre de dominio de nivel superior (TLD) asociado, como “.com” o “.org”, y cada nombre-
La zona de registro puede tener su propia gobernanza y registro. reglas.
ガバナンスと経済
Cosmos ハブは複数資産の分散台帳ですが、 アトムと呼ばれる特別なネイティブ token。原子は唯一の staking Cosmos ハブの token。アトムは所有者にとってのライセンスです。 投票、検証、または他の validator への委任。 Ethereum のように イーサ、アトムは取引手数料の支払いにも使用できます。 スパムを軽減します。追加のインザショナルアトムとブロックトランザクション 料金はvalidator と委任者に報酬として支払われます。 validator秒。 BurnAtomTx トランザクションを使用すると、あらゆるデータを復元できます。 リザーブ プールから比例量の token を取得します。 Genesis 上のアトム tokens および validators の初期配布 Cosmos 募金活動の寄付者 (75%)、主要寄付者に寄付されます (5%)、Cosmos Network Foundation (10%)、ALL IN BITS, Inc (10%)。創世記以降、原子の総量の 1/3 が 絆を結んだvalidatorと委任者に毎年報酬が与えられます。 詳細については、Cosmos 計画を参照してください。 Bitcoin や他の proof-of-work blockchain とは異なり、Tendermint blockchain は、validator が増えると遅くなります。 コミュニケーションの複雑さ。幸いなことに、私たちは十分なサポートができます validators により、堅牢なグローバル分散型 blockchain トランザクション確認時間が非常に速く、帯域幅として、
ストレージと並列計算能力が増加すると、 将来的にはさらに多くの validator をサポートする予定です。 創世記の日に、validator の最大数は次のように設定されます。 100 とすると、この数字は 10 年間で 13% の割合で増加します。 300 validator秒で解決します。 まだアトム所有者になっていない人は、次の方法で validator になれます。 BondTx トランザクションに署名して送信します。の量 担保として提供される原子はゼロ以外でなければなりません。誰でもなれる 現在のサイズが変更された場合を除き、いつでも validator validator セットは validator の最大数を超えています 許可されています。その場合、取引は以下の金額を満たした場合にのみ有効です。 原子が保持する有効原子の量よりも多い 最小の validator。有効なアトムには委任されたアトムが含まれます。 このような方法で新しい validator が既存の validator を置き換えると、 既存の validator は非アクティブになり、すべての原子と 委任された原子は非結合状態になります。 validator には、何らかのペナルティが課せられる必要があります。 認可された基準からの意図的または非意図的な逸脱 プロトコル。いくつかの証拠はすぐに認められます。 同じ高さで丸められた二重記号、または違反 0 年: 100 1 年目: 113 2 年目: 127 3 年目: 144 4 年目: 163 5 年目: 184 6 年目: 208 7年目: 235 8年目: 265 9 年目: 300 10年目: 300 ...
「prevote-the-lock」(Tendermint コンセンサス プロトコルのルール)。 このような証拠により、validator は良好な地位を失うことになります およびその結合原子とそれに比例する token の割合 リザーブプール(総称して「ステーク」と呼ばれます)は削減されます。 地域によっては、validator が利用できない場合があります。 ネットワークの中断、停電、またはその他の理由。もし、いずれにしても 過去の ValidatorTimeoutWindow ブロック、validator のポイント コミット投票は blockchain に含まれていません ValidatorTimeoutMaxAbsent 回、validator になります 非アクティブになり、ValidatorTimeoutPenalty (デフォルト 1%) が失われます。 賭け金。 一部の「悪意のある」動作は、明らかに識別できるものを生成しない blockchain に関する証拠。このような場合、validator は次のことができます。 帯域外を調整して、これらの悪意のあるメッセージを強制的にタイムアウトさせます。 validators、超過半数の合意がある場合。 Cosmos ハブが 1/3 以上の連合により停止した場合 議決権が失われるか、連立政権が 1/3 以上になる状況 投票力が悪意のある行動の証拠を検閲する blockchain に入ると、ハブはハードフォークで回復する必要があります 再編成提案。 (「フォークと検閲攻撃」へのリンク)。 Cosmos ハブ validator は、任意の token タイプまたは組み合わせを受け入れることができます 取引を処理するための手数料としての種類。それぞれのvalidatorは、 希望する為替レートを主観的に設定し、選択する BlockGasLimit が設定されている限り、どのようなトランザクションでも可能です。 超えていない。徴収された料金から以下に指定される税金を差し引いたもの、 に比例して保税利害関係者に再分配されます。 それらの結合原子、すべての ValidatorPayoutPeriod (デフォルト 1) 時間)。徴収された取引手数料のうち、ReserveTax(デフォルト 2%)は、 リザーブプールに向かってリザーブプールを増やし、 Cosmos ネットワークのセキュリティと価値を高めます。これら 決定に従って資金を分配することもできる ガバナンスシステムによって作られます。 投票権を他の validator に委任する Atom 保有者 委任されたvalidatorに手数料を支払います。委員会ができることは、 各 validator によって設定されます。 Cosmos ハブのセキュリティは、ハブのセキュリティの関数です。 基礎となる validator と委任者による委任の選択。 発見物の発見と早期通報を促すため Cosmos ハブはハッカーに脆弱性を公開することを奨励しています ReportHackTx トランザクションによるエクスプロイトの成功。 validator がハッキングされました。このアドレスに報奨金を送ってください。」次第 このようなエクスプロイトでは、validator と委任者が非アクティブになります。 全員の原子の HackPunishmentRatio (デフォルト 5%) が取得されます。 スラッシュ、および全員のアトムの HackRewardRatio (デフォルトは 5%) ハッカーの報奨金アドレスに報酬が与えられます。 validator バックアップ キーを使用して残りの原子を回復する必要があります。 この機能を悪用して転送することを防ぐため 権利確定されていないアトム、権利確定済みアトムと権利確定されていないアトムの部分 ReportHackTx の前後の validator と委任者は、 変更はなく、ハッカーの報奨金にはいくらかが含まれます 権利が付与されていない原子 (存在する場合)。 Cosmos ハブは、分散組織によって運営されています。 そのためには綿密なガバナンスメカニズムが必要です 変数など、blockchain に対するさまざまな変更を調整します。
システムのパラメータ、ソフトウェアのアップグレード、 憲法改正。 すべての validator は、すべての提案に投票する責任があります。失敗 提案に適時に投票すると、validator となります。 と呼ばれる一定期間、自動的に非アクティブ化されます。 欠勤ペナルティ期間(デフォルトは 1 週間)。 委任者は、委任された人の投票を自動的に継承します。 validator。この投票は手動で上書きできます。結合していない原子 票が得られない。 各提案には MinimumProposalDeposit のデポジットが必要です token、1 つ以上の token の組み合わせである場合があります 原子も含めて。各提案について、有権者は賛成票を投じることができます。 預金。有権者の半数以上が採用を選択した場合、 デポジット (例: 提案がスパムであったため)、デポジットは次の宛先に送られます。 燃焼する原子を除いたリザーブプール。 各提案について、有権者は次のオプションを選択して投票できます。 そうだね そう、フォースとともに いや ノーウィズフォース 棄権する 賛成票または YeaWithForce 票の厳密過半数 (または反対票、または 提案が次のように決定されるには、NayWithForce 票)が必要です。 可決された(または不合格と決定された)が、1/3 以上が過半数を拒否できる 「強制力」による投票による決定。厳密多数派が拒否権を発動すると、 拒否権ペナルティフィーブロックを失うと全員が罰せられます (デフォルトの 1 日分のブロック) 相当の料金 (税金を除く) 影響を受けません)、および過半数を拒否権を発動した政党
この決定は、VetoPenaltyAtoms を失うことでさらに罰せられます。 (デフォルトでは 0.1%) の原子。 ここで定義されているパラメータはどれも、 ParameterChangeProposal を渡す。 アトムを注入し、プール資金を使用してリザーブすることができます。 BountyProposal の可決。 プロトコルをアップグレードする提案など、他のすべての提案は、 一般的な TextProposal を介して調整されます。 計画を参照してください。 blockchain コンセンサスには多くの革新があり、 過去数年間の拡張性。このセクションでは概要を説明します 選ばれた数の重要なものについての調査。 悪意のある参加者がいる場合の合意形成が問題となる レスリー・ランポートが造語した1980年代初頭に遡ります。 「ビザンチン障害」というフレーズは、任意のプロセスの動作を指します。 「クラッシュ障害」とは対照的に、意図した動作から逸脱します。 この場合、プロセスは単にクラッシュします。早期の解決策が発見されました 上限がある同期ネットワークの場合メッセージ遅延、ただし実際の使用は非常に限られていました 飛行機の管制官などの制御された環境 データセンターは原子時計によって同期されます。まではそうではありませんでした 90 年代後半、実用的なビザンチン フォールト トレランス (PBFT) [11] は 効率的な部分同期コンセンサスとして導入 最大 1/3 のプロセスの動作を許容できるアルゴリズム 勝手に。 PBFT は標準アルゴリズムとなり、多くのアルゴリズムが生成されました バリエーションの一部として IBM によって作成された最新のものを含む 彼らの Hyperledger への貢献。 PBFT に対する Tendermint のコンセンサスの主な利点は、 Tendermint の基本構造は改良され、簡素化されています。 その一部は、blockchain パラダイムを採用した結果です。 Tendermint ブロックは順番にコミットする必要があるため、 PBFT に関連する複雑さと通信オーバーヘッド 視点の変化。 Cosmos および多くの暗号通貨では、 ブロック N の場合、ブロック N+i (i >= 1) のコミットを許可する必要がある それ自体はまだコミットしていません。帯域幅が N をブロックする理由の場合 Cosmos ゾーンでコミットしていない場合は、使用しても役に立ちません ブロック N+i に対する帯域幅共有投票。ネットワークパーティションまたは ofzine ノードがブロック N がコミットされていない理由である場合、 N+i はとにかくコミットしません。 さらに、トランザクションをブロックにバッチ処理することで、 アプリケーション状態の定期的な Merkle-hashing PBFT のチェックポイント設定スキームと同様に、定期的なダイジェスト。これにより、 ライトクライアント向けの証明可能なトランザクションコミットを高速化するため、 blockchain 間通信。 Tendermint Core には多くの最適化と機能も含まれています PBFT で指定されている内容を超えたもの。たとえば、 validators によって提案されたブロックは部分に分割され、マークル化され、 放送を改善するような方法で噂話をした パフォーマンス (インスピレーションについては、LibSwift [19] を参照してください)。あとテンダーミントも Core はポイントツーポイントについて何も想定していません
接続性、および P2P ネットワークが存在する限り機能します。 弱く接続されています。 proof-of-stake (PoS) を導入したのは初めてではありませんが、BitShares1.0 [12] PoSの研究と導入に大きく貢献 blockchain、特に「委任された」PoS として知られるもの。で BitShares、利害関係者は注文の責任を負う「証人」を選出 トランザクションのコミット、および責任を負う「代理人」 ソフトウェアのアップデートやパラメータの変更を調整します。 BitShares2.0 は、高性能 (100k tx/s、1s) の達成を目指しています。 レイテンシ)、理想的な状態では、各ブロックは単一の署名によって署名されます。 署名者、およびトランザクションの性質に比べてかなり長い時間がかかります ブロック間隔。正規の仕様はまだ開発中です。 利害関係者は、不正行為を行った証人を削除または置き換えることができます。 日常的に行われているが、証人や重要な証拠は存在しない。 Tendermint PoS に似たデリゲータが切り込まれる 二重支出攻撃が成功した場合。 リップルが開拓したアプローチに基づいて、Stellar [13] は プロセスが行われる連邦ビザンチン協定のモデル コンセンサスへの参加は、yxed を構成せず、グローバルに行われます。 既知のセット。むしろ、各プロセス ノードは 1 つ以上のプロセスをキュレートします。 「クォーラム スライス」。それぞれが信頼できるプロセスのセットを構成します。あ Stellar の「クォーラム」は、以下を含むノードのセットであると定義されています。 セット内のノードごとに少なくとも 1 つのクォーラム スライス。 合意に達することができる。 Stellar メカニズムのセキュリティは次の仮定に依存しています。 任意の 2 つの定足数の共通部分が空ではないこと、 ノードの可用性には、少なくとも 1 つのクォーラム スライスが必要です。 完全に正しいノードで構成されているため、 バランスを取るのが難しい大小のクォーラム スライスを使用する 信頼について重大な仮定を課すことなく。最終的には、ノードは何らかの方法で適切なクォーラム スライスを選択する必要があります。 十分なフォールト トレランス (またはすべての「無傷のノード」) であること 論文の結果の多くはそれに依存します)、そして唯一の このような構成が階層的であることを保証するために提供された戦略 ボーダー ゲートウェイ プロトコル (BGP) に似ています。インターネット上の一流 ISP がグローバル ルーティング テーブルを確立するために使用します。 TLS 証明書を管理するためにブラウザによって使用されるもの。どちらも悪名高い 彼らの不安のために。 Tendermint ベースのプルーフオブステーク システムに対する Stellar 論文の批判は、説明されている token 戦略によって軽減されます。 ここでは、アトムと呼ばれる新しいタイプの token が発行されます。 料金および報酬の将来の部分に対する請求を表します。の したがって、Tendermint ベースの proof-of-stake の利点は相対的なものになります。 シンプルでありながら、十分かつ証明可能なセキュリティを提供します 保証します。 BitcoinNG は、Bitcoin に対する改善提案です。 ブロックサイズの増加などの垂直方向のスケーラビリティの形式の場合、 通常伴う経済的悪影響を伴うことなく、 このような変化により、不釣り合いに大きな影響が生じる場合 小規模な鉱山労働者について。この改善は、分離することで達成されます。 トランザクション ブロードキャストからのリーダー選挙: リーダーは初めてです 「マイクロブロック」内のproof-of-workによって選出され、次のことが可能になります 新しいマイクロブロックまでコミットされるブロードキャスト トランザクション が見つかりました。これにより、必要な帯域幅要件が軽減されます。 PoW レースに勝利し、小規模マイナーがより公平に競争できるようになり、 そして、トランザクションをより定期的にコミットできるようになります。 マイクロブロックを見つけた最後のマイナー。 Casper [16] は、提案されている proof-of-stake コンセンサス アルゴリズムです。 Ethereum。その主要な動作モードは「コンセンサス・バイ・ベット」です。によって validator に、どのブロックがそうなると信じているかを繰り返し賭けさせます。
他の賭けに基づいて blockchain にコミットするようになる 彼らがこれまでに見てきたことを踏まえれば、最終的にはイナリティが達成されるでしょう。リンク。 これは、Casper チームによる活発な研究分野です。の 課題は、 進化的に安定した戦略であることが証明されています。主なメリットは Tendermint と比較した Casper は、「可用性」を提供している可能性があります。 「一貫性を超えています」 – コンセンサスには 2/3 を超える定足数は必要ありません 投票力 – おそらくコミット速度や 実装の複雑さ。 Interledger Protocol [14] は、厳密にはスケーラビリティ ソリューションではありません。それ 異なる台帳間のアドホックな相互運用を提供します 疎結合された二国間関係ネットワークを介したシステム。 ライトニング ネットワークと同様に、ILP の目的は、 支払いですが、特に異種間での支払いに焦点を当てています 台帳タイプを定義し、アトミック トランザクション メカニズムを次のように拡張します。 hash ロックだけでなく、公証人の定足数 (と呼ばれる) も含まれます。 原子輸送プロトコル)。後者のメカニズムは、 台帳間トランザクションにアトミック性を強制することは、 Tendermint のライトクライアント SPV メカニズムの図 ILP と Cosmos/IBC の区別は保証されています。 以下に提供されます。 1. ILP のコネクターの公証人はメンバーシップをサポートしていません 変化し、その間のゼクシブルな重み付けは許可されません。 公証人。一方、IBC は、特に次の目的のために設計されています。 blockchains、validators は異なる重みを持つことができます。 途中でメンバーが変更される可能性がある場合 blockchain。 2. ライトニングネットワークと同様に、ILP での支払いの受取人 送信者に確認を返信するにはオンラインである必要があります。でtoken は、受信機の validator セットである IBC 経由で転送します。 blockchain は確認を提供する責任を負います。 受信側ユーザー。 3. 最も顕著な違いは、ILP のコネクタが 支払いに関して責任を負う、または権威ある状態を維持する、 一方、Cosmos では、ハブの validator が権限を持ちます。 IBC token の州と権限が移転します。 各ゾーンが保持する token の量 (ただし、 token はゾーン内の各アカウントによって保持されます)。これは、 安全な非対称を可能にする根本的な革新 ゾーンからゾーンへの token の転送。 ILP に類似したもの Cosmos のコネクタは永続的で最大限に安全です blockchain 台帳、Cosmos ハブ。 4. ILP での台帳間支払いは、 非対称転送がないため、オーダーブックを交換します。 ある台帳から別の台帳へのコイン、価値の移動のみ、または 市場同等品。 サイドチェーン [15] は、Bitcoin をスケーリングするために提案されたメカニズムです。 「双方向にペグ」された代替 blockchain を介したネットワーク Bitcoin blockchain。 (双方向ペギングは以下と同等です) 橋渡し。 Cosmos では、市場ペギングと区別するために「ブリッジ」と呼びます)。サイドチェーンにより、ビットコインが効率的に移動できるようになります。 Bitcoin blockchain をサイドチェーンとバックに接続し、 サイドチェーン上の新機能の実験。のように、 Cosmos ハブ、サイドチェーン、および Bitcoin は、 お互いに、SPV プルーフを使用してコインをいつ発行すべきかを決定します。 サイドチェーンに転送されて戻ってきます。もちろん、Bitcoin 以来 proof-of-work を使用すると、Bitcoin を中心とするサイドチェーンが影響を受けます proof-of-work の多くの問題とリスクから、 コンセンサスメカニズム。さらに、これはBitcoin-マキシマリストです さまざまな token をネイティブにサポートしていないソリューション
Cosmos のようなゾーン間ネットワーク トポロジ。とは言え、核心は ツーウェイペグの仕組みは原理的には同じです Cosmos ネットワークによって採用されています。 Ethereum は現在、さまざまな戦略を研究中です Ethereum blockchain の状態をシャーディングしてアドレス指定する スケーラビリティのニーズ。これらの取り組みには、 現在の Ethereum 仮想マシンによって提供される抽象化レイヤー 共有状態空間全体にわたって。複数の研究活動が行われており、 現時点では進行中です。 [18][22] Cosmos と Ethereum 2.0 Mauve [22] には、異なる設計目標があります。 Cosmos は、具体的には token 秒に関するものです。モーブはスケーリングに関するものです 一般的な計算。 Cosmos は EVM にバインドされていないため、異なる VM であってもバインドできます。 相互運用します。 Cosmos ゾーン作成者は、ゾーンを誰が検証するかを決定できます。 ゾーン。 誰でも Cosmos で新しいゾーンを開始できます (ガバナンスがない限り) それ以外の場合は判断します)。 ハブはゾーン障害を分離するため、グローバル token 不変条件は 保存されています。 ライトニング ネットワークは、提案されている token 転送ネットワークです Bitcoin blockchain (および他のパブリック blockchains)、桁違いの改善が可能になります トランザクションの大部分を移動することにより、トランザクション スループットが低下します コンセンサス台帳の外にある、いわゆる「支払いチャネル」にアクセスします。これは、オンチェーンの暗号通貨スクリプトによって可能になります。 当事者が二国間でステートフルな契約を締結できるようにします。 デジタル署名と契約を共有することで状態を更新できます 最終的に証拠をblockchainに公開することで解決できます。 このメカニズムはクロスチェーンアトミックスワップによって初めて普及しました。によって 多くの関係者や参加者との決済チャネルを開く ライトニング ネットワークは、ルーティングの中心となることができます。 他者の支払い、完全に接続された支払いチャネルにつながる 資本が支払いチャネルに拘束されるという代償を払って、ネットワークにアクセスできなくなります。 ライトニング ネットワークは、さまざまな場所に簡単に拡張することもできます。 値の転送を可能にする複数の独立した blockchain 為替市場を介して非対称的に使用することはできません。 token を blockchain から別の blockchain に転送します。主なメリット ここで説明する Cosmos ネットワークのは、そのような直接を有効にすることです。 token は転送します。とはいえ、私たちは支払いチャネルと ライトニングネットワークは当社の token 転送メカニズム。コスト削減とプライバシー上の理由から。 Segregated Witness は Bitcoin 改善提案リンクです。 ブロックごとのトランザクション スループットを 2 倍または 3 倍に向上させることを目的としています。 同時に新しいノードのブロック同期を高速化します。 このソリューションの優れた点は、それがどのように機能するかにあります。 Bitcoin の現在のプロトコルの制限とソフトフォークが可能 アップグレード (つまり、古いバージョンのソフトウェアを使用しているクライアントは、 アップグレード後も機能し続けます)。テンダーミント、新登場 プロトコルには設計上の制限がないため、スケーリングが異なります 優先順位。主に、Tendermint は BFT ラウンドロビン アルゴリズムを使用します。 マイニングではなく暗号署名に基づいています。 複数の並列処理による水平方向のスケーリングが簡単に可能になります blockchains、定期的でより頻繁なブロック コミットにより、 垂直方向のスケーリングも可能です。
Gobernanza y economía
Si bien el Cosmos Hub es un libro mayor distribuido de activos múltiples, existe un token nativo especial llamado átomo. Los átomos son los únicos staking token del concentrador Cosmos. Los átomos son una licencia para que su poseedor pueda votar, validar o delegar en otros validators. Me gusta Ethereum éter, los átomos también se pueden utilizar para pagar las tarifas de transacción para mitigar el spam. Átomos inzacionarios adicionales y transacción en bloque. las tarifas se recompensan a validators y a los delegados que delegan en validators. La transacción BurnAtomTx se puede utilizar para recuperar cualquier cantidad proporcional de tokens del fondo de reserva. La distribución inicial del átomo tokens y validators en Génesis se destinará a los donantes de la recaudación de fondos Cosmos (75%), donantes principales (5%), Cosmos Network Foundation (10%) y ALL IN BITS, Inc. (10%). Desde la génesis en adelante, 1/3 de la cantidad total de átomos Se recompensará a los validators vinculados y a los delegados cada año. Consulte el Plan Cosmos para obtener detalles adicionales. A diferencia de Bitcoin u otros proof-of-work blockchains, un Tendermint blockchain se vuelve más lento con más validator debido al aumento Complejidad de la comunicación. Afortunadamente, podemos apoyar lo suficiente validators para crear un blockchain robusto distribuido globalmente con tiempos de confirmación de transacciones muy rápidos y, como ancho de banda,
almacenamiento y capacidad de computación paralela, podremos para admitir más validators en el futuro. El día de la génesis, el número máximo de validators se establecerá en 100, y este número aumentará a una tasa del 13% durante 10 años, y liquidarse en 300 validators. Los poseedores de átomos que aún no lo son pueden convertirse en validators al firmar y enviar una transacción BondTx . la cantidad de Los átomos proporcionados como garantía deben ser distintos de cero. Cualquiera puede convertirse a validator en cualquier momento, excepto cuando el tamaño del actual El conjunto validator es mayor que el número máximo de validators permitido. En ese caso, la transacción sólo es válida si el monto de átomos es mayor que la cantidad de átomos efectivos que contiene el más pequeño validator, donde los átomos efectivos incluyen átomos delegados. Cuando un nuevo validator reemplaza un validator existente de tal manera, el validator existente se vuelve inactivo y todos los átomos y Los átomos delegados entran en el estado desligado. Debe imponerse alguna sanción a los validators por cualquier Desviación intencional o no intencional de lo sancionado. protocolo. Algunas pruebas son inmediatamente admisibles, como una doble señal a la misma altura y vuelta, o una violación de Año 0: 100 Año 1: 113 Año 2: 127 Año 3: 144 Año 4: 163 Año 5: 184 Año 6: 208 Año 7: 235 Año 8: 265 Año 9: 300 Año 10: 300 ...
“prevote-the-lock” (una regla del protocolo de consenso de Tendermint). Dicha evidencia resultará en que el validator pierda su buena reputación. y sus átomos enlazados, así como su participación proporcional de tokens en el fondo de reserva –llamado colectivamente su “participación”– se reducirá drásticamente. A veces, los validators no estarán disponibles, ya sea debido a cuestiones regionales interrupciones de la red, cortes de energía u otras razones. Si, en cualquier punto en los últimos bloques ValidatorTimeoutWindow , un validator El voto de confirmación no está incluido en el blockchain más de ValidatorTimeoutMaxAbsent veces, ese validator se convertirá en inactivo y perderá ValidatorTimeoutPenalty (POR PREDETERMINADO 1%) de su estaca. Algunos comportamientos “maliciosos” no producen resultados evidentemente discernibles. evidencia sobre el blockchain. En estos casos, los validators pueden coordinar fuera de banda para forzar el tiempo de espera de estos maliciosos validators, si hay un consenso de supermayoría. En situaciones en las que el Centro Cosmos se detiene debido a una coalición ≥⅓ de el poder de voto sale de la revista, o en situaciones en las que una coalición ≥⅓ del poder de voto censurar evidencia de comportamiento malicioso por parte de ingresando al blockchain, el hub debe recuperarse con un hard-fork propuesta de reorganización. (Enlace a “Bifurcaciones y ataques de censura”). Cosmos Hub validators puede aceptar cualquier token tipo o combinación de tipos como tarifas por procesar una transacción. Cada validator puede establecer subjetivamente el tipo de cambio que desee y elegir cualquier transacción que desee, siempre y cuando el BlockGasLimit sea no superado. Las tarifas cobradas, menos los impuestos que se especifican a continuación, se redistribuyen entre los accionistas vinculados en proporción a sus átomos enlazados, cada ValidatorPayoutPeriod (POR PREDETERMINADO 1 hora).De las tarifas de transacción cobradas, se aplicará el impuesto de reserva (2 % POR DEFECTO). ir hacia el grupo de reserva para aumentar el grupo de reserva y aumentar la seguridad y el valor de la red Cosmos. estos Los fondos también se pueden distribuir de acuerdo con las decisiones. realizadas por el sistema de gobierno. Poseedores de átomos que delegan su poder de voto a otros validators pagar una comisión al delegado validator. La comisión puede ser establecido por cada validator. La seguridad del Cosmos Hub es una función de la seguridad del validators subyacentes y la elección de delegación por parte de los delegados. Para fomentar el descubrimiento y la notificación temprana de los hallazgos vulnerabilidades, el Cosmos Hub alienta a los piratas informáticos a publicar exploits exitosos a través de una transacción ReportHackTx que dice: "Este validator fue pirateado. Por favor envíe la recompensa a esta dirección”. sobre tal exploit, el validator y los delegados quedarán inactivos, HackPunishmentRatio (predeterminado 5%) de los átomos de todos obtendrán cortado y HackRewardRatio (5 %) de los átomos de todos será recompensado en la dirección de recompensa del hacker. El validator debe recuperar los átomos restantes utilizando su clave de respaldo. Para evitar que se abuse de esta característica para transferir átomos no adquiridos, la porción de átomos adquiridos frente a los no adquiridos de validators y delegados antes y después del ReportHackTx siguen siendo los mismos, y la recompensa por hackers incluirá algunos átomos no adquiridos, si los hay. El Cosmos Hub es operado por una organización distribuida que requiere un mecanismo de gobernanza bien definido para coordinar varios cambios en el blockchain, como la variable
parámetros del sistema, así como actualizaciones de software y enmiendas constitucionales. Todos los validator son responsables de votar todas las propuestas. No poder votar una propuesta de manera oportuna resultará en el validator siendo desactivado automáticamente durante un período de tiempo llamado Período de penalización por ausentismo (POR PREDETERMINADO, 1 semana). Los delegados heredan automáticamente el voto del delegado. validator. Esta votación puede anularse manualmente. Átomos no enlazados no obtener ningún voto. Cada propuesta requiere un depósito de MinimumProposalDeposit tokens, que puede ser una combinación de uno o más tokens incluyendo los átomos. Para cada propuesta, los votantes pueden votar para tomar el depósito. Si más de la mitad de los votantes optan por tomar la depósito (por ejemplo, porque la propuesta era spam), el depósito va a reserva, excepto los átomos que se queman. Para cada propuesta, los votantes podrán votar con las siguientes opciones: si Sí con fuerza No No con fuerza abstenerse Una mayoría estricta de votos Sí o SíConFuerza (o No o votos NayWithForce) es necesario para que la propuesta se decida como aprobado (o decidido como fallido), pero 1/3+ puede vetar la mayoría decisión votando “con fuerza”. Cuando se veta por mayoría estricta, todos son castigados con la pérdida de VetoPenaltyFeeBlocks (POR DEFECTO el valor de 1 día de bloques) valor de tarifas (excepto impuestos que no se verá afectado), y el partido que vetó la mayoría
La decisión será castigada adicionalmente con la pérdida de VetoPenaltyAtoms. (POR DEFECTO 0,1%) de sus átomos. Cualquiera de los parámetros definidos aquí se puede cambiar con el paso de una ParameterChangeProposal . Los átomos pueden ser inzatados y los fondos del fondo de reserva gastados con el aprobación de una BountyProposal . Todas las demás propuestas, como la propuesta para mejorar el protocolo, se coordinará a través de la TextProposal genérica. Ver el plano. Ha habido muchas innovaciones en el consenso blockchain y escalabilidad en los últimos años. Esta sección proporciona una breve encuesta de un número selecto de importantes. El consenso en presencia de participantes malintencionados es un problema que se remonta a principios de la década de 1980, cuando Leslie Lamport acuñó el frase “falla bizantina” para referirse al comportamiento arbitrario del proceso que se desvía del comportamiento previsto, a diferencia de un "fallo de accidente", donde un proceso simplemente falla. Se descubrieron las primeras soluciones para redes síncronas donde hay un límite superior enlatencia del mensaje, aunque el uso práctico se limitó a niveles altamente entornos controlados, como controladores de aviones y Centros de datos sincronizados mediante relojes atómicos. No fue hasta el A finales de los 90 se creó la Tolerancia práctica a fallos bizantinos (PBFT) [11]. presentado como un consenso eficiente parcialmente sincrónico algoritmo capaz de tolerar hasta ⅓ de los procesos que se comportan arbitrariamente. PBFT se convirtió en el algoritmo estándar, generando muchos variaciones, incluida la más reciente creada por IBM como parte de su contribución a Hyperledger. El principal beneficio del consenso de Tendermint sobre PBFT es que Tendermint tiene una estructura subyacente mejorada y simplificada, algo de lo cual es el resultado de adoptar el paradigma blockchain. Los bloques de Tendermint deben comprometerse en orden, lo que evita la complejidad y sobrecarga de comunicación asociados con PBFT cambios de vista. En Cosmos y muchas criptomonedas, no existe Es necesario permitir que el bloque N+i donde i >= 1 se confirme, cuando el bloque N en sí aún no se ha comprometido. Si el ancho de banda es la razón por la cual bloquear N no se ha comprometido en una zona Cosmos, entonces no ayuda usar Votos para compartir ancho de banda por los bloques N+i. Si una partición de red o Los nodos de ofzine son la razón por la cual el bloque N no se ha comprometido, entonces N+i no me comprometeré de todos modos. Además, la agrupación de transacciones en bloques permite Merkle-hashing regular del estado de la aplicación, en lugar de resúmenes periódicos como con el esquema de puntos de control de PBFT. Esto permite para compromisos de transacciones demostrables más rápidos para clientes ligeros y más rápidos comunicación inter-blockchain. Tendermint Core también incluye muchas optimizaciones y características que van más allá de lo especificado en PBFT. Por ejemplo, los bloques propuestos por validators están divididos en partes, Merkle-izados, y chismear de tal manera que mejore la difusión rendimiento (consulte LibSwift [19] para inspirarse). Además, menta Core no hace ninguna suposición sobre el punto a punto
conectividad y funciones mientras la red P2P esté débilmente conectado. Si bien no es el primero en implementar proof-of-stake (PoS), BitShares1.0 [12] contribuyó considerablemente a la investigación y adopción de PoS blockchains, particularmente aquellos conocidos como PoS “delegados”. en BitShares, las partes interesadas eligen "testigos", responsables de realizar pedidos y realizar transacciones, y "delegados", responsables de Coordinar actualizaciones de software y cambios de parámetros. BitShares2.0 tiene como objetivo lograr un alto rendimiento (100k tx/s, 1s latencia) en condiciones ideales, con cada bloque firmado por un único firmante y la duración de la transacción tardan bastante más que el intervalo de bloque. Aún se está desarrollando una especificación canónica. Las partes interesadas pueden eliminar o reemplazar a los testigos que se portan mal en un diariamente, pero no hay ninguna garantía significativa de testigos o delegados a semejanza de Tendermint PoS que son cortados el caso de un ataque de doble gasto exitoso. Basándose en un enfoque iniciado por Ripple, Stellar [13] creó un modelo de Acuerdo Bizantino Federado en el que los procesos participar en el consenso no constituye un acuerdo fijo y global. conjunto conocido. Más bien, cada nodo de proceso selecciona uno o más “porciones de quórum”, cada una de las cuales constituye un conjunto de procesos confiables. un “quórum” en Stellar se define como un conjunto de nodos que contienen al menos al menos un segmento de quórum para cada nodo del conjunto, de modo que se puede llegar a un acuerdo. La seguridad del mecanismo Stellar se basa en la suposición que la intersección de dos quórums cualesquiera no esté vacía, mientras que la La disponibilidad de un nodo requiere que al menos uno de sus sectores de quórum constan enteramente de nodos correctos, creando un equilibrio entre Usar porciones de quórum grandes o pequeñas que pueden ser difíciles de equilibrar. sin imponer supuestos significativos sobre la confianza. Al final,los nodos deben de alguna manera elegir porciones de quórum adecuadas para que ser suficiente tolerancia a fallas (o cualquier "nodo intacto", de los cuales dependen gran parte de los resultados del artículo), y el único La estrategia proporcionada para garantizar que dicha configuración sea jerárquica. y similar al Border Gateway Protocol (BGP), utilizado por los principales ISP de Internet para establecer tablas de enrutamiento globales, y por el utilizado por los navegadores para gestionar certificados TLS; ambos notorios por su inseguridad. La crítica en el artículo Stellar a los sistemas de prueba de participación basados en Tendermint se ve mitigada por la estrategia token descrita. aquí, donde se emite un nuevo tipo de token llamado átomo que representan reclamaciones sobre porciones futuras de honorarios y recompensas. el La ventaja de proof-of-stake basado en Tendermint, entonces, es su relativo simplicidad, sin dejar de proporcionar seguridad suficiente y demostrable garantías. BitcoinNG es una mejora propuesta para Bitcoin que permitiría para formas de escalabilidad vertical, como aumentar el tamaño del bloque, sin las consecuencias económicas negativas típicamente asociadas con tal cambio, como el impacto desproporcionadamente grande sobre los pequeños mineros. Esta mejora se consigue separando elección de líder a partir de la transmisión de transacciones: los líderes son los primeros elegido por proof-of-work en “microbloques”, y luego capaz de transmitir transacciones que se confirmarán hasta un nuevo microbloque se encuentra. Esto reduce los requisitos de ancho de banda necesarios para ganar la carrera de PoW, permitiendo a los pequeños mineros competir de manera más justa, y permitir que las transacciones se realicen con mayor regularidad por parte del último minero en encontrar un microbloque. Casper [16] es un algoritmo de consenso propuesto proof-of-stake para Ethereum. Su modo principal de operación es el “consenso por apuesta”. Por dejar que validators apuesten iterativamente sobre qué bloque creen que será
comprometerse con el blockchain según las otras apuestas que han visto hasta ahora, eventualmente se podrá lograr la ynalidad. enlace. Esta es un área activa de investigación por parte del equipo de Casper. el El desafío está en construir un mecanismo de apuestas que pueda ser ha demostrado ser una estrategia evolutivamente estable. El principal beneficio de Casper, en comparación con Tendermint, puede ofrecer "disponibilidad exceso de coherencia” – el consenso no requiere > 2/3 de quórum de poder de voto, tal vez a costa de la velocidad de compromiso o complejidad de implementación. El protocolo Interledger [14] no es estrictamente una solución de escalabilidad. eso Proporciona una interoperación ad hoc entre diferentes libros de contabilidad. sistemas a través de una red de relaciones bilaterales poco acopladas. Al igual que Lightning Network, el propósito de ILP es facilitar pagos, pero se centra específicamente en pagos en diferentes tipos de libro mayor y extiende el mecanismo de transacciones atómicas a incluir no sólo hash-candados, sino también un quórum de notarios (llamado el Protocolo de Transporte Atómico). Este último mecanismo para hacer cumplir la atomicidad en las transacciones entre libros mayores es similar a El mecanismo SPV de cliente ligero de Tendermint, por lo que una ilustración del se justifica la distinción entre ILP y Cosmos/IBC, y proporcionado a continuación. 1. Los notarios de un conector en ILP no admiten membresía cambios y no permiten ponderaciones flexibles entre notarios. Por otro lado, IBC está diseñado específicamente para blockchains, donde validators pueden tener diferentes pesos, y donde la membresía puede cambiar en el transcurso del blockchain. 2. Al igual que en Lightning Network, el receptor del pago en ILP debe estar en línea para enviar una confirmación al remitente. en untoken transferencia sobre IBC, el conjunto validator del receptor blockchain es responsable de proporcionar confirmación, no el usuario receptor. 3. La diferencia más sorprendente es que los conectores del ILP no son responsable o mantener un estado autoritario sobre los pagos, mientras que en Cosmos, los validators de un hub son la autoridad de el estado de las transferencias IBC token así como la autoridad del cantidad de tokens retenidos por cada zona (pero no la cantidad de tokens mantenidos por cada cuenta dentro de una zona). Este es el innovación fundamental que permite una seguridad asimétrica transferencia de tokens de zona a zona; el análogo de ILP El conector en Cosmos es persistente y de máxima seguridad. blockchain libro mayor, el Cosmos Hub. 4. Los pagos entre libros contables en ILP deben estar respaldados por un libro de órdenes de intercambio, ya que no hay transferencia asimétrica de monedas de un libro mayor a otro, sólo la transferencia de valor o equivalentes de mercado. Las cadenas laterales [15] son un mecanismo propuesto para escalar el Bitcoin red a través de blockchains alternativos que están "vinculados en dos direcciones" a el Bitcoin blockchain. (La vinculación bidireccional equivale a puente. En Cosmos decimos "puente" para distinguirlo de la vinculación al mercado). Las cadenas laterales permiten que los bitcoins se muevan efectivamente desde el Bitcoin blockchain a la cadena lateral y viceversa, y permita Experimentación de nuevas funciones en la cadena lateral. Como en el Cosmos Hub, la cadena lateral y Bitcoin sirven como clientes ligeros de entre sí, utilizando pruebas SPV para determinar cuándo se deben transferido a la cadena lateral y viceversa. Por supuesto, desde Bitcoin usa proof-of-work, las cadenas laterales centradas alrededor de Bitcoin sufren de los muchos problemas y riesgos de proof-of-work como mecanismo de consenso. Además, este es un Bitcoin-maximalista solución que no admite de forma nativa una variedad de token y
topología de red entre zonas como lo hace Cosmos. Dicho esto, el núcleo El mecanismo de la clavija de dos vías es en principio el mismo que el empleado por la red Cosmos. Ethereum actualmente está investigando varias estrategias diferentes. para fragmentar el estado de Ethereum blockchain para abordar necesidades de escalabilidad. Estos esfuerzos tienen como objetivo mantener la capa de abstracción que ofrece la máquina virtual Ethereum actual a través del espacio estatal compartido. Múltiples esfuerzos de investigación son en marcha en este momento. [18][22] Cosmos y Ethereum 2.0 Mauve [22] tienen diferentes objetivos de diseño. Cosmos se trata específicamente de tokens. Mauve se trata de escalar cálculo general. Cosmos no está vinculado a EVM, por lo que incluso diferentes VM pueden interoperar. Cosmos permite al creador de la zona determinar quién valida la zona. Cualquiera puede iniciar una nueva zona en Cosmos (a menos que la gobernanza decide lo contrario). El concentrador aísla las fallas de zona para que las invariantes token globales sean conservado. Lightning Network es una red de transferencia propuesta token operando en una capa por encima del Bitcoin blockchain (y otros blockchains), permitiendo mejoras de muchos órdenes de magnitud en el rendimiento de las transacciones al mover la mayoría de las transacciones fuera del libro de consenso hacia los llamados "canales de pago".Esto es posible gracias a los scripts de criptomonedas en cadena, que permitir a las partes celebrar contratos estatales bilaterales donde el El estado se puede actualizar compartiendo firmas digitales y contratos. se puede cerrar publicando finalmente evidencia en el blockchain, un Mecanismo popularizado por primera vez mediante intercambios atómicos entre cadenas. Por abriendo canales de pago con muchas partes, participantes en el Lightning Network puede convertirse en puntos focales para enrutar el pagos de otros, lo que lleva a un canal de pago totalmente conectado red, a costa de que el capital quede inmovilizado en los canales de pago. Si bien Lightning Network también puede extenderse fácilmente a través de Múltiples blockchains independientes para permitir la transferencia de valor. a través de un mercado de cambios, no se puede utilizar para negociar asimétricamente transferir tokens de un blockchain a otro. El principal beneficio de la red Cosmos descrita aquí es para permitir dicha conexión directa token transferencias. Dicho esto, esperamos que los canales de pago y la Lightning Network será ampliamente adoptada junto con nuestra token mecanismo de transferencia, por motivos de ahorro de costes y privacidad. Testigo Segregado es un enlace de propuesta de mejora Bitcoin que tiene como objetivo aumentar el rendimiento de las transacciones por bloque 2X o 3X, y al mismo tiempo acelera la sincronización de bloques para nuevos nodos. La brillantez de esta solución está en cómo funciona dentro del limitaciones del protocolo actual de Bitcoin y permite una bifurcación suave actualización (es decir, los clientes con versiones anteriores del software seguirá funcionando después de la actualización). Tendermint, al ser nuevo protocolo, no tiene restricciones de diseño, por lo que tiene un escalado diferente prioridades. Principalmente, Tendermint utiliza un algoritmo de operación por turnos BFT basado en firmas criptográficas en lugar de minería, lo que trivialmente permite el escalado horizontal a través de múltiples paralelos blockchains, mientras que las confirmaciones de bloque regulares y más frecuentes permiten escala vertical también.
コンセンサスと技術的詳細
適切に設計されたコンセンサスプロトコルは、いくつかの機能を提供する必要があります。 許容範囲を超えた場合の保証 そしてコンセンサスは失敗します。これは経済面で特に必要です ビザンチンの行動が重大な経済的影響を与える可能性があるシステム 報酬。このような保証の中で最も重要なのは、責任追及の一形態であり、コンセンサスを引き起こしたプロセスが 失敗 (つまり、プロトコルのクライアントが異なる値を受け入れる原因となった - フォーク)は特定され、規則に従って処罰される可能性があります。 議定書、あるいは場合によっては法制度。法制度が整うと、 validators は信頼性が低いか、呼び出しコストが高すぎるため、 参加するために保証金の預け入れを強制される、および 悪意のある行為があった場合、預金は取り消されるか、削減される可能性があります。 [10] が検出されました。 これは、フォークが定期的に発生する Bitcoin とは異なることに注意してください。 ネットワークの非同期性と ynding の確率的性質によるもの 部分的なhash衝突。多くの場合、悪意のあるフォークは Bitcoin は非同期のためフォークと区別できません。 暗黙的なもの以外のフォーク責任を確実に実装する 孤立したブロックをマイニングするためにマイナーが支払う機会コスト。 投票ステージを PreVote および PreCommit と呼びます。投票できるのは、 特定のブロックまたは Nil の場合。 2/3 を超える PreVote のコレクションを呼び出します 同じラウンド内の単一ブロックの場合はポルカ、および >2/3 のコレクション コミットと同じラウンド内の単一ブロックの PreCommit。 >2/3の場合 同じラウンドで Nil を PreCommit すると、次のラウンドに進みます。 丸い。 プロトコルの厳密な決定論は脆弱性を招くことに注意してください。 欠陥のあるリーダーを検出する必要があるため、同期性を仮定し、
スキップしました。したがって、validator はある程度の時間待機します。 TimeoutPropose、Prevote Nil の前、および の値 TimeoutPropose はラウンドごとに増加します。進行状況 ラウンドの残りの部分は完全に非同期であり、進行状況だけが表示されます。 validator がネットワークの 2/3 以上からの信号を受信すると行われます。実際には、 それを際限なく阻止するには極めて強力な敵が必要となるだろう 弱い同期性の仮定 (コンセンサスの失敗を引き起こす) ブロックをコミットすることはありません)、そうすることでさらに多くのことを行うことができます それぞれの TimeoutPropose のランダムな値を使用して、difycult を実行します。 validator。 追加の制約セットまたはロック ルールにより、 ネットワークは最終的に各高さで 1 つのブロックだけをコミットします。どれでも 複数のブロックをコミットさせる悪意のある試み 特定の高さで識別できます。まず、ブロックの PreCommit そのブロックのポルカの形で、正当性を示す必要があります。 validator がラウンド R_1 ですでにブロックを PreCommit している場合、 彼らはそのブロックに閉じ込められていると言い、ポルカはそれを正当化するために使用されていました ラウンド R_2 の新しい PreCommit はラウンド R_polka に含まれる必要があります ここで、R_1 < R_polka <= R_2。第二に、validator は提案する必要があります および/またはロックオンされているブロックを事前投票します。これらを合わせて、 条件により、validator が事前コミットされないことが保証されます。 正当性として十分な証拠があり、validator が すでに PreCommit は PreCommit に証拠を提供できません 何か他のもの。これにより、安全性と生存性の両方が確保されます。 コンセンサスアルゴリズム。 プロトコルの完全な詳細はここで説明されています。 TendermintPoS では、代替チェーン (フォーク) の存在が 1/3 以上のブロック ヘッダーを同期することを意味するため、すべてのブロック ヘッダーを同期する必要がなくなります。 結合された杭は切断することができます。もちろん、斬撃には必要なものがあるので、 誰かがフォークの証拠を共有した場合、ライトクライアントは保存する必要があります 表示されるブロック hash のコミット。さらに、ライトクライアントvalidator セットへの変更を定期的に同期し続けることができます。 長距離攻撃を避けるため(ただし、他の解決策は 可能です)。 Ethereum と同様の精神で、Tendermint はアプリケーションで次のことを可能にします。 各ブロックにグローバル マークル ルート hash を埋め込み、簡単に許可します 口座残高や金額などの非常に詳細な状態クエリ 契約に保存されているか、または未使用のトランザクションの存在 アプリケーションの性質に応じて出力します。 ブロードキャスト ネットワークのコレクションが十分に復元力があると仮定する および静的 validator セットの場合、blockchain 内の任意のフォークを が検出され、違反したvalidatorの預金が削減されました。これ 2014 年初めに Vitalik Buterin によって最初に提案されたイノベーションは、問題を解決します 他の proof-of-stake の何も問題がない問題 暗号通貨 (関連作品を参照)。ただし、validator が設定されているため、 長期間にわたって元の状態を変更できなければなりません validator はすべて結合解除される可能性があるため、自由に ジェネシスブロックから新しいチェーンを作成し、コストはかかりません 彼らはもう預金をロックされていません。この攻撃はこうなった ショート攻撃とは対照的に、ロングレンジ攻撃(LRA)として知られています。 範囲攻撃。現在結合している validator 人が フォークであるため、罰せられることになります (フォークの責任があると仮定します BFT Tendermint コンセンサスのようなアルゴリズム)。遠距離攻撃は、 proof-of-stake にとって致命的な打撃となると考えられています。 幸いなことに、LRA は次のように軽減できます。まず、 validator を解除する (それにより担保預金を回収する) コンセンサスに参加するための手数料を得ることができなくなります)、 デポジットは一定期間譲渡不能にしなければなりません これは「結合解除期間」として知られており、 数週間または数か月。次に、ライト クライアントを安全にするためには、まず ネットワークに接続するときに、最近のブロックを確認する必要があります-hash 信頼できるソース、またはできれば複数のソースに対して。これ
この状態は「主観性が弱い」と呼ばれることもあります。最後に、 安全を確保するには、次の場所に設定された最新の validator と同期する必要があります。 少なくとも結合解除期間の長さと同じくらいの頻度で。これ ライト クライアントが validator への変更を確実に認識できるようにします。 validator の資本が結合解除され、資本が結合されなくなる前に設定された 危険にさらされているため、次のことを実行してクライアントを欺くことが可能になります。 新しいブロックを作成して遠距離攻撃を開始します。 接着された高さ (十分に制御できると仮定) 初期の秘密鍵の多く)。 この方法で LRA を克服するには、 proof-of-work のオリジナルのセキュリティ モデル。 PoWでは、それは ライトクライアントが現在の高さに同期できることを前提としています。 すべてのブロックヘッダーでproofof workを処理するだけで、いつでも信頼できるジェネシスブロックを作成できます。しかし、LRAを克服するには、 ライトクライアントが一定の規則性を持ってオンラインになることを要求する validator セットの変更を追跡し、最初に変更したとき オンラインになると認証に特に注意する必要があります 信頼できるソースに対してネットワークから聞いたこと。の もちろん、この後者の要件は Bitcoin の要件と似ています。 プロトコルとソフトウェアも信頼できる機関から入手する必要があります。 ソース。 LRA を防止する上記の方法は、validator に適しています。 Tendermint を利用した blockchain のフル ノードは、次のとおりです。 ノードはネットワークに接続されたままになるように設計されています。の この方法は、次のような効果が期待できるライト クライアントにも適しています。 ネットワークと頻繁に同期します。ただし、ライトクライアントの場合は、 インターネットや blockchain ネットワーク、さらに別のソリューションを使用して克服することができます LRA。 validator 以外の token 所有者は、token を次の名前で投稿できます 非常に長い解放期間を持つ担保 (例: 非常に長い) validators の結合解除期間よりも)、ライトクライアントにサービスを提供します 現在のデータの有効性を証明する二次的な方法と 過去のブロック-hashes。これらのtokenは、 blockchain のコンセンサスの安全性が確保されているにもかかわらず、彼らは次のことを行うことができます。ライトクライアントに強力な保証を提供します。過去のブロックの場合-hash クエリは Ethereum でサポートされており、誰でも自分のデータを結合できます。 token を特別に設計された smart contract で提供し、 有料の認証サービスにより、ライトクライアント LRA セキュリティの市場が効果的に創出されます。 ブロックコミットの定義により、すべての ≥1/3 連合は、 投票権は、オフラインになるかどうかによって、blockchain を停止できる可能性があります 彼らの投票をブロードキャストします。このような連合は検閲も行うことができる 特定のトランザクションを含むブロックを拒否することにより、 ただし、これはかなりの割合を占めることになります 拒否されるブロック提案の割合、これにより速度が低下する blockchain のブロック コミットが減少し、その有用性と価値が減少します。 悪意のある連合は、投票を少しずつ放送する可能性もあります。 blockchain ブロックを粉砕する場合、ほぼ停止するか、または開始します。 これらの攻撃のあらゆる組み合わせ。最後に、次のような問題を引き起こす可能性があります。 blockchain は二重署名またはロック違反によりフォークします ルール。 世界的に活動する敵も関与した場合、分断される可能性があります 間違っているように見えるような方法でネットワークに接続する validator のサブセットが速度低下の原因でした。これはそうではありません これは Tendermint の単なる制限ではなく、すべての制限です ネットワークが潜在的に制御されているコンセンサス プロトコル 積極的な敵。 このようなタイプの攻撃の場合、validator のサブセットは次のようにする必要があります。 外部手段を通じて調整し、以下の再編成提案に署名する。 フォーク (およびその証拠) と最初のサブセットを選択します。 validator と署名。このような再組織化提案に署名した検証者は、他のすべてのフォークでの担保を放棄します。クライアントは次のことを行う必要があります。 再編成提案書の署名を検証し、証拠を検証します。 そしてエンドユーザーに判断を下したり、決定を促したりします。のために たとえば、携帯電話のウォレット アプリはユーザーにセキュリティを要求する場合があります。
警告、一方、冷蔵庫はあらゆる再編成提案を受け入れる可能性があります 投票権により元の validator の +1/2 が署名しました。 非同期ビザンチン フォールト トレラント アルゴリズムは実現できません 投票権の 1/3 以上が不正であるにもかかわらず、フォークである場合に合意を形成する 投票権の 1/3 以上が既に不正行為を受けていると仮定します。 正当な理由なく二重署名またはロックを変更すること。ということで、サイン会 reorg-proposal は調整の問題であり、調整することはできません。 非同期プロトコルによって解決されます(つまり、自動的に、 信頼性について仮定を置くことなく、 基礎となるネットワーク)。今のところ、再組織化提案の調整の問題は、社会的合意を介した人間の調整に任せます。 インターネットメディアで。バリデータは、 2 つの再組織提案が同時に署名される状況を避けるため、再組織提案に署名する前にネットワーク パーティションが残っていないこと。 外部調整メディアとプロトコルが 堅牢であるため、フォークは検閲よりも懸念されるということになります。 攻撃します。 フォークと検閲に加えて、1/3 以上の Byzantine が必要です 投票権がある場合、2/3 を超える投票権を有する連合が関与する可能性がある 任意の無効な状態。これはあらゆるものの特徴です (BFT) コンセンサスシステム。フォークを作成する二重署名とは異なります。 簡単に検証できる証拠を用いて、犯罪者の関与を検出します。 無効な状態では、非検証ピアがブロック全体を検証する必要があります。 これは、状態のローカルコピーを保持して実行することを意味します。 各トランザクションでは、ステート ルートを個別に計算します。 自分たち自身。一旦検出されると、そのような障害に対処する唯一の方法 それは社会的合意によるものです。たとえば、Bitcoin のような状況では、 ソフトウェアのバグによるフォークかどうかにかかわらず、失敗しました(3 月の場合と同様) 2013)、またはビザンチン動作による無効な状態のコミット マイナー (2015 年 7 月時点)、よくつながったコミュニティ 企業、開発者、マイナー、その他の組織 手動行為とは何かについての社会的コンセンサスを確立した参加者がネットワークを修復するために必要とするもの。さらに、以来、 テンダーミントの validator blockchain は、 識別可能ですが、無効な状態のコミットメントは、 必要に応じて、法律または外部の判例によって罰せられる可能性があります。 ABCI は、配信される 3 つの主要なメッセージ タイプで構成されます。 アプリケーションのコア。アプリケーションは次のように応答します。 対応する応答メッセージ。 AppendTx メッセージはアプリケーションの主力製品です。それぞれ blockchain のトランザクションは、このメッセージとともに配信されます。の アプリケーションは、受信した各トランザクションを検証する必要があります。 現在の状態、アプリケーション プロトコル、 およびトランザクションの暗号化資格情報。検証済み その後、トランザクションはアプリケーションの状態を更新する必要があります。 値をキー値ストアにバインドするか、UTXO を更新します。 データベース。 CheckTx メッセージは AppendTx に似ていますが、目的は次のとおりです。 トランザクションの検証。 Tendermint Core の mempool の最初のチェック CheckTx によるトランザクションの有効性を確認し、有効なリレーのみを確認します。 ピアへのトランザクション。アプリケーションは増分をチェックする場合があります トランザクション内で nonce が発生し、次の場合は CheckTx でエラーを返します。 nonce は古いです。 Commit メッセージは、暗号化を計算するために使用されます。 現在のアプリケーションの状態に対するコミットメント。 次のブロックヘッダー。これには便利なプロパティがいくつかあります。 その状態を更新する際の不一致は、次のように表示されます。 blockchain プログラミングのクラス全体をキャッチするフォーク エラー。これにより、安全で軽量なシステムの開発も簡素化されます。 Merkle-hash の証明は、クライアントと照合することで検証できます。 ブロック-hashとブロック-hashは定足数によって署名されています。 validators (投票権による)。
追加の ABCI メッセージにより、アプリケーションは次のメッセージを追跡できるようになります。 validator セットを変更し、アプリケーションが 高さやコミット投票などのブロック情報。 ABCI リクエスト/レスポンスは単純な Protobuf メッセージです。チェックする スキーマファイルを外します。 引数: Data ([]byte) : リクエスト トランザクション バイト 戻り値: コード (uint32) : 応答コード Data ([]byte) : 結果のバイト (存在する場合) ログ (文字列) : デバッグまたはエラー メッセージ 使用法:
トランザクションを追加して実行します。トランザクションが有効であれば、 CodeType.OK を返します 引数: Data ([]byte) : リクエスト トランザクション バイト 戻り値: コード (uint32) : 応答コード Data ([]byte) : 結果のバイト (存在する場合) ログ (文字列) : デバッグまたはエラー メッセージ 使用法:
トランザクションを検証します。このメッセージは、 状態。トランザクションはまず CheckTx を介して実行されます。 mempool 層のピアにブロードキャストします。作ることができます CheckTx セミステートフルで、コミット時に状態をクリアするか、 BeginBlock 、トランザクションの依存シーケンスを許可します。 同じブロック内にあります。
戻り値: データ ([] バイト) : マークル ルート hash ログ (文字列) : デバッグまたはエラー メッセージ 使用法:
アプリケーション状態のマークル ルート hash を返します。 引数: Data ([]byte) : クエリリクエストのバイト数 戻り値: コード (uint32) : 応答コード Data ([]byte) : クエリ応答バイト ログ (文字列) : デバッグまたはエラー メッセージ 使用法:
応答キューをフラッシュします。実装するアプリケーション types.Application はこのメッセージを実装する必要はありません。 プロジェクトが担当します。 戻り値: Data ([]byte) : 情報バイト 使用法:
アプリケーションの状態に関する情報を返します。アプリケーション 特定の。 引数: Key (string) : 設定するキー
値(文字列) : キーに設定する値 戻り値: ログ (文字列) : デバッグまたはエラー メッセージ 使用法:
アプリケーションのオプションを設定します。例えば。 Key = “mode”、Value = “mempool” メモリプール接続、または Key=“mode”、Value=“consensus” コンセンサス接続。他のオプションはアプリケーション固有です。 引数: バリデーター ([]バリデーター) : 初期の起源 - validators 使用法:
創世記に一度呼ばれた 引数: Height (uint64) : 開始するブロックの高さ 使用法:
新しいブロックの始まりを知らせます。事前に呼び出される AppendTxs。 引数: Height (uint64) : 終了したブロックの高さ 戻り値: バリデータ ([]バリデータ) : validator を新しいものに変更しました 投票権 (削除するには 0) 使用法:
ブロックの終わりを知らせます。結局、各コミットの前に呼び出されます トランザクション 詳細については、ABCI リポジトリを参照してください。送信者が 受信チェーンによるパケットの配信の確認。 たとえば、送信者はメッセージのステータスを知らない可能性があります。 宛先チェーンに障害があると予想される場合。または、送信者は パケットにタイムアウトを課したい(MaxHeight を使用) パケット イールド)、宛先チェーンは受信パケット数の突然の急増によるサービス拒否攻撃を受ける可能性があります。 パケット。 このような場合、送信者は配送確認を要求できます。 パケットの初期ステータスを「AckPending」に設定します。それから、それは、 受領チェーンには、 アプリ Merkle hash では、IBCPacket と略されます。 まず、IBCBlockCommit と IBCPacketTx が「ハブ」に投稿されます これは、「Zone1」に IBCPacket が存在することを証明します。そう言ってください IBCPacketTx には次の値があります。 FromChainID : “Zone1” FromBlockHeight : 100 (たとえば) パケット: IBCパケット:
ヘッダー: IBCPacketHeader: SrcChainID:「ゾーン1」 DstChainID:「ゾーン2」 数 : 200 (例) ステータス : 確認保留中 種類:「コイン」 MaxHeight : 350 (「ハブ」が現在高さ 300 であるとします) ペイロード : <「コイン」ペイロードのバイト数> 次に、IBCBlockCommit と IBCPacketTx が「Zone2」に投稿されます。 これは、「ハブ」上にIBCパケットが存在することを証明します。そう言ってください IBCPacketTx には次の値があります。 FromChainID : 「ハブ」 ブロックからの高さ : 300 パケット: IBCパケット: ヘッダー: IBCPacketHeader: SrcChainID:「ゾーン1」 DstChainID:「ゾーン2」 数 : 200 ステータス : 確認保留中 種類:「コイン」 最大高さ : 350 ペイロード : <「コイン」ペイロードの同じバイト> 次に、「Zone2」はアプリに短縮パケットを含める必要があります-hash これは、「AckSent」の新しいステータスを示しています。 IBCBlockCommit と IBCPacketTx は存在を証明する「ハブ」にポストバックされます 「Zone2」上の短縮型 IBCパケット 。 IBCPacketTx と言ってください には次の値があります。 FromChainID : “Zone2”
FromBlockHeight : 400 (たとえば) パケット: IBCパケット: ヘッダー : IBCPacketHeader : SrcChainID:「ゾーン1」 DstChainID:「ゾーン2」 数 : 200 ステータス : 送信済み 種類:「コイン」 最大高さ : 350 PayloadHash : <同じ「コイン」ペイロードの hash バイト> 最後に、「ハブ」はパケットのステータスを更新する必要があります。 AckPending から AckReceived まで。この新たな状況の証拠 「Zone2」に戻る必要があります。 IBCPacketTx に次のものがあるとします。 値: FromChainID : 「ハブ」 ブロックの高さから: 301 パケット: IBCパケット: ヘッダー: IBCPacketHeader: SrcChainID:「ゾーン1」 DstChainID:「ゾーン2」 数 : 200 ステータス : 受信確認済み 種類:「コイン」 最大高さ : 350 PayloadHash : <同じ「コイン」ペイロードの hash バイト> 一方、「Zone1」は配信が成功すると楽観的に考える可能性がある 反対の証拠が証明されない限り、「コイン」パケットの 「ハブ」。上の例では、「ハブ」が AckSent を受信していなかった場合
ブロック 350 によって「Zone2」からステータスを取得すると、ステータスが設定されます。 自動的にタイムアウトになります。このタイムアウトの証拠は、 「Zone1」にポストバックされ、token を返すことができます。 では 2 種類の Merkle tree がサポートされています。 Tendermint/Cosmos エコシステム: シンプル ツリーと IAVL+ 木。 シンプル ツリーは、要素の静的リストの Merkle tree です。もし 項目の数は 2 の累乗ではありません。一部の葉は次のようになります。 さまざまなレベル。シンプル ツリーはツリーの両側を維持しようとします。 高さは同じですが、左の方が一つ大きいかもしれません。このMerkle treeは ブロックのトランザクションをマークル化するために使用され、トップレベル アプリケーション状態ルートの要素。IAVL+ データ構造の目的は、永続的なデータ構造を提供することです。 アプリケーション状態のキーと値のペアのストレージ。 決定論的なマークルルート hash を効率的に計算できます。の ツリーは AVL アルゴリズムのバリアントを使用してバランスがとられており、すべて 操作は O(log(n)) です。 AVL ツリーでは、任意のノードの 2 つの子サブツリーの高さ 最大でも 1 つ違います。この条件に違反するたびに、 更新すると、O(log(n)) 個の新しいノードを作成することによってツリーが再バランスされます。 古いツリーの変更されていないノードを指します。オリジナルのAVLでは アルゴリズムでは、内部ノードもキーと値のペアを保持できます。 AVL+ アルゴリズム (プラスに注意してください) すべてを維持するために AVL アルゴリズムを変更します キーを保存するためにブランチノードのみを使用しながら、リーフノードに値を格納します。 これにより、マークル hash の証跡を維持しながらアルゴリズムが簡素化されます。 短い。 AVL+ ツリーは、Ethereum のパトリシアの試みに似ています。あります トレードオフ。キーを挿入する前に hash する必要はありません。 IAVL+ ツリーにより、キー内の順序付けされた反復が高速化されます。 一部のアプリケーションに役立つ可能性のあるスペース。ロジックはもっと簡単です 内部ノードと内部ノードの 2 種類のノードのみが必要な実装です。 葉のノード。マークル証明は平均して短く、 * / \ / \ / \ / \ * * / \ / \ / \ / \ / \ / \ * * * h6 / \ / \ / \ h0 h1 h2 h3 h4 h5 7 つの要素を持つ SimpleTree
バランスの取れた二分木。一方、次のマークル根は、 IAVL+ ツリーは更新の順序に依存します。 次のような追加の効率的な Merkle tree をサポートします。 Ethereum のパトリシア トライは、バイナリ バリアントが次の場合に発生します。 利用可能です。 正規の実装では、トランザクションは Cosmos ハブ アプリケーション (ABCI インターフェイス経由)。 Cosmos ハブは、多数のプライマリ トランザクションを受け入れます タイプ(SendTx、BondTx、UnbondTx、ReportHackTx など)、 SlashTx、BurnAtomTx、ProposalCreateTx、ProposalVoteTx、 これらは非常に一目瞭然であり、次の文書に記載されています。 この文書の将来の改訂。ここでは 2 つの主要な点を文書化します。 IBC のトランザクション タイプ: IBCBlockCommitTx および IBCPacketTx。 IBCBlockCommitTx トランザクションは次のもので構成されます。 ChainID (文字列) : blockchain の ID BlockHash ([]byte) : block-hash バイト、マークル ルート これにはアプリ hash が含まれます BlockPartsHeader (PartSetHeader) : ブロック パーツ セット ヘッダー バイト、投票署名を検証する場合にのみ必要 BlockHeight (int) : コミットの高さ BlockRound (int) : コミットのラウンド Commit ([]Vote) : >2/3 の Tendermint プレコミットが次のことに投票します。 ブロックコミットを構成する ValidatorsHash ([]byte) : 新しいマークルツリー ルート hash validator セット
ValidatorsHashProof (SimpleProof) : BlockHash に対して ValidatorsHash を証明するための SimpleTree Merkleproof
AppHash ([]byte) : の IAVLTree マークルツリー ルート hash
アプリケーションの状態
AppHashProof(SimpleProof):SimpleTree Merkle-proof
AppHash を BlockHash に対して証明する
IBCパケットは以下で構成されます:
ヘッダー (IBCPacketHeader) : パケット ヘッダー
Payload ([]byte) : パケット ペイロードのバイト数。オプション
PayloadHash ([]byte) : パケットのバイトを表す hash。
オプション
Payload または PayloadHash のいずれかが存在する必要があります。 hash
IBCPacket の は、ヘッダーという 2 つの項目の単純なマークル ルートです。
および ペイロード 。完全なペイロードを含まないIBCパケットは、
短縮されたパケット。
IBCPacketHeader は次のもので構成されます。
SrcChainID (文字列) : ソース blockchain ID
DstChainID (文字列) : 宛先 blockchain ID
Number (int) : すべてのパケットの一意の番号
Status (enum) : AckPending 、 AckSent 、
AckReceived 、 NoAck 、または Timeout
Type (string) : タイプはアプリケーションに依存します。 Cosmos
「コイン」パケットタイプを予約します
MaxHeight (int) : ステータスが NoAckWanted または AckReceived でない場合
この高さになるとステータスは Timeout になります。オプション
IBCPacketTx トランザクションは次のもので構成されます。FromChainID (文字列) : blockchain の ID
このパケットを提供する。必ずしもソースではない
FromBlockHeight (int) : blockchain の高さ
次のパケットがブロック hash に含まれています (マークル化されています)。
ソースチェーン
パケット (IBCPacket) : データのパケット。ステータスは 1 です。
AckPending 、 AckSent 、 AckReceived 、 NoAck 、または Timeout のいずれか
PacketProof (IAVLProof) : 証明用の IAVLTree Merkle-proof
パケットの hash とソース チェーンの AppHash の照合
与えられた高さ
「Zone1」から「Zone2」へパケットを送信するシーケンス
「ハブ」を介した様子を {図 X} に示します。まず、IBCPacketTx
パケットがアプリ状態に含まれていることを「ハブ」に証明します。
「ゾーン1」。次に、別の IBCPacketTx が「Zone2」に対して、
パケットは「Hub」のアプリ状態に含まれます。この間
この手順では、IBCPacket の出力は同一です。SrcChainID は次のとおりです。
常に「Zone1」、DstChainID は常に「Zone2」です。
PacketProof には、次のように正しいマークルプルーフ パスが必要です。
以下に続きます:
「Zone1」が「Hub」を介して「Zone2」にパケットを送信したい場合、
IBCPacket データは、パケットが「Zone1」、「Hub」、または「Zone2」でマークル化されているかどうかに関係なく同一です。唯一変更可能なyieldは、
配送追跡のステータス。
概念化に協力してくれた友人や同僚に感謝します。
Tendermint との取り組みをレビューし、サポートを提供する
そしてCosmos。
IBC/
SkuChain の Zaki Manian は、フォーマットと 特にABCIセクションの下の文言 アルテアのジェハン・トレンバックとダスティン・バイイントンが協力してくれた 初期反復 Honey Badger の Andrew Miller がコンセンサスについてのフィードバックを寄せてくれました Greg Slepak によるコンセンサスと文言に関するフィードバック また、Bill Gleim 氏と Seunghwan Han 氏、さまざまなご協力に感謝します。 貢献。 あなたの名前と組織をここに投稿してください 1 Bitcoin: https://bitcoin.org/bitcoin.pdf 2 ゼロキャッシュ: http://zerocash-project.org/paper 3 Ethereum: https://github.com/ethereum/wiki/wiki/WhitePaper 4DAO: 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 PBFT: 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 nceAnalysisOfLibswift.pdf 20 DLS: 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
�� えー
Consenso y detalles técnicos
Un protocolo de consenso bien diseñado debería proporcionar algunas Garantías en caso de que se supere la capacidad de tolerancia. y el consenso falla. Esto es especialmente necesario en el ámbito económico. sistemas, donde el comportamiento bizantino puede tener importantes consecuencias financieras. recompensa. La garantía más importante de este tipo es una forma de rendición de cuentas, en la que los procesos que provocaron que se alcanzara el consenso fallar (es decir, provocó que los clientes del protocolo aceptaran valores diferentes; tenedor) puede ser identificado y castigado de acuerdo con las reglas de la protocolo o, posiblemente, el sistema jurídico. Cuando el sistema legal es poco confiable o excesivamente costoso invocar, los validators pueden ser obligados a realizar depósitos de seguridad para poder participar, y aquellos Los depósitos pueden ser revocados o recortados cuando se detecta un comportamiento malicioso. detectado [10]. Tenga en cuenta que esto es diferente a Bitcoin, donde la bifurcación es algo habitual debido a la asincronía de la red y la naturaleza probabilística de ynding colisiones parciales hash. Dado que en muchos casos se produce una bifurcación maliciosa indistinguible de una bifurcación debido a la asincronía, Bitcoin no puede implementar de manera confiable la responsabilidad fork, aparte de la implícita Costo de oportunidad pagado por los mineros por extraer un bloque huérfano. A las etapas de votación las llamamos PreVote y PreCommit. Un voto puede ser a favor un bloque en particular o para Nil. Llamamos a una colección de >⅔ PreVotes para un solo bloque en la misma ronda, una polca y una colección de >⅔ PreCommits para un solo bloque en la misma ronda un Commit. Si >⅔ PreCommit for Nil en la misma ronda, pasan a la siguiente redondo. Tenga en cuenta que el determinismo estricto en el protocolo incurre en una débil Se debe detectar el supuesto de sincronía como líderes defectuosos y
saltado. Por lo tanto, validators esperan un tiempo, TimeoutPropose, antes de que Prevote Nil, y el valor de TimeoutPropose aumenta con cada ronda. Progresión a través de el resto de una ronda es completamente asincrónica, en el sentido de que el progreso es sólo realizado una vez que un validator escucha desde >⅔ de la red. En la práctica, Se necesitaría un adversario extremadamente fuerte para frustrar indefinidamente el supuesto de sincronía débil (lo que hace que el consenso no logre alguna vez comete un bloqueo), y hacerlo puede ser aún más difícil mediante el uso de valores aleatorios de TimeoutPropose en cada validator. Un conjunto adicional de restricciones, o reglas de bloqueo, garantiza que el La red eventualmente comprometerá solo un bloque en cada altura. Cualquiera Intento malicioso de provocar que se cometa más de un bloque. a una altura determinada se puede identificar. Primero, un PreCommit para un bloque. debe venir con justificación, en forma de polca para ese bloque. Si validator ya ha confirmado previamente un bloque en la ronda R_1, dicen que están encerrados en ese bloque, y la Polka solía justificar el El nuevo PreCommit en la ronda R_2 debe realizarse en una ronda R_polka donde R_1 < R_polka <= R_2. En segundo lugar, validators deben proponer y/o PreVote el bloque en el que están bloqueados. Juntos, estos condiciones garantizan que un validator no realice una confirmación previa sin evidencia suficiente como justificación, y que validators que tienen PreCommit ya no puede contribuir con evidencia al PreCommit algo más. Esto garantiza tanto la seguridad como la vitalidad del algoritmo de consenso. Los detalles completos del protocolo se describen aquí. La necesidad de sincronizar todos los encabezados de los bloques se elimina en TendermintPoS ya que la existencia de una cadena alternativa (una bifurcación) significa ≥⅓ de la participación en condiciones de servidumbre puede reducirse drásticamente. Por supuesto, dado que cortar requiere que alguien comparta evidencia de una bifurcación, los clientes ligeros deben almacenar cualquier bloque-hash confirma que ve. Además, los clientes ligerospodría permanecer sincronizado periódicamente con los cambios en el conjunto validator, en para evitar ataques de largo alcance (pero otras soluciones son posible). En espíritu similar a Ethereum, Tendermint permite que las aplicaciones incrustar una raíz global de Merkle hash en cada bloque, lo que permite consultas de estado verificables para cosas como saldos de cuentas, el valor almacenado en un contrato, o la existencia de una transacción no gastada salida, dependiendo de la naturaleza de la aplicación. Suponiendo un conjunto de redes de difusión suficientemente resiliente y un conjunto estático validator, cualquier bifurcación en el blockchain puede ser detectado y los depósitos de los validators infractores cortados. esto La innovación, sugerida por primera vez por Vitalik Buterin a principios de 2014, resuelve el problema de nada en juego de otros proof-of-stake criptomonedas (ver Trabajo Relacionado). Sin embargo, dado que validator establece debe poder cambiar, durante un largo período de tiempo, el original validators pueden desvincularse y, por lo tanto, serían libres de crear una nueva cadena a partir del bloque de génesis, sin incurrir en ningún coste ya que ya no tienen depósitos bloqueados. Este ataque llegó a ser conocido como ataque de largo alcance (LRA), en contraste con un ataque de corto alcance. Range Attack, donde los validators que actualmente están vinculados causan un fork y, por lo tanto, son punibles (suponiendo que un BFT responsable de fork algoritmo como el consenso de Tendermint). Los ataques de largo alcance son A menudo se piensa que es un golpe crítico para proof-of-stake. Afortunadamente, el LRA se puede mitigar de la siguiente manera. Primero, por un validator para desvincularse (recuperando así su depósito de garantía) y ya no gana honorarios por participar en el consenso), el El depósito debe hacerse intransferible por un período de tiempo. conocido como “período de desvinculación”, que puede ser del orden de semanas o meses. En segundo lugar, para que un cliente ligero esté seguro, el primer vez que se conecta a la red debe verificar un bloque reciente-hash contra una fuente confiable, o preferiblemente múltiples fuentes. esto
Esta condición a veces se denomina “subjetividad débil”. Finalmente, Para permanecer seguro, debe sincronizarse con la última versión validator configurada en menos con tanta frecuencia como la duración del período de desvinculación. esto garantiza que el cliente ligero conozca los cambios en validator establecido antes de que un validator tenga su capital no vinculado y, por lo tanto, ya no en juego, lo que le permitiría engañar al cliente realizando un ataque de largo alcance creando nuevos bloques comenzando en un altura donde fue adherido (suponiendo que tenga control de suficiente muchas de las primeras claves privadas). Tenga en cuenta que superar al LRA de esta manera requiere una revisión de el modelo de seguridad original de proof-of-work. En PoW, es Se supone que un cliente ligero puede sincronizarse con la altura actual desde el bloque de génesis confiable en cualquier momento simplemente procesando la prueba de trabajo en cada encabezado de bloque. Sin embargo, para superar al LRA debemos requieren que un cliente ligero se conecte con cierta regularidad para realizar un seguimiento de los cambios en el conjunto validator y que la primera vez que se conectan, deben tener especial cuidado al autenticarse lo que escuchan de la red contra fuentes confiables. de Por supuesto, este último requisito es similar al de Bitcoin, donde El protocolo y el software también deben obtenerse de un proveedor de confianza. fuente. El método anterior para prevenir LRA es muy adecuado para validators y nodos completos de un blockchain impulsado por Tendermint porque estos Los nodos están destinados a permanecer conectados a la red. el El método también es adecuado para clientes ligeros de los que se puede esperar que sincronizar con la red con frecuencia. Sin embargo, para clientes ligeros que No se espera que tengan acceso frecuente a Internet o a la red. blockchain red, se puede utilizar otra solución para superar el ERS. Los titulares que no sean validator token pueden publicar sus token como garantía con un período de desvinculación muy largo (por ejemplo, mucho más largo que el período de desvinculación para validators) y atender a clientes ligeros con un método secundario para dar fe de la validez de la información actual y pasado bloque-hashes. Si bien estos tokens no cuentan para el seguridad del consenso de blockchain, no obstante puedenProporcionar fuertes garantías para clientes ligeros. Si bloque histórico-hash Las consultas fueron admitidas en Ethereum, cualquiera podría vincular sus tokens en un smart contract especialmente diseñado y proporcionar servicios de certificación de pago, creando efectivamente un mercado para la seguridad LRA de clientes ligeros. Debido a la definición de compromiso en bloque, cualquier ≥⅓ coalición de El poder de voto puede detener el blockchain si sale de la revista o no. difundir sus votos. Una coalición así también puede censurar transacciones particulares rechazando bloques que incluyen estos transacciones, aunque esto resultaría en una proporción significativa de propuestas en bloque que serán rechazadas, lo que ralentizaría el ritmo de confirmaciones de bloque del blockchain, reduciendo su utilidad y valor. La maliciosa coalición también podría difundir los votos a cuentagotas, de modo que en cuanto a moler el bloque blockchain se compromete a detenerse casi por completo o participar en cualquier combinación de estos ataques. Finalmente, puede provocar la blockchain a bifurcar, mediante doble firma o violando el bloqueo reglas. Si también estuviera involucrado un adversario globalmente activo, podría dividirse la red de tal manera que pueda parecer que el error El subconjunto de validators fue responsable de la desaceleración. esto no es solo una limitación de Tendermint, sino más bien una limitación de todos protocolos de consenso cuya red está potencialmente controlada por un adversario activo. Para este tipo de ataques, un subconjunto de validators debería coordinar a través de medios externos para firmar una propuesta de reorganización que elige una bifurcación (y cualquier evidencia de la misma) y el subconjunto inicial de validators con sus firmas. Los validadores que firman dicha propuesta de reorganización renuncian a su garantía en todas las demás bifurcaciones. Los clientes deben verificar las firmas en la propuesta de reorganización, verificar cualquier evidencia, y emitir un juicio o solicitar una decisión al usuario final. Para Por ejemplo, una aplicación de billetera telefónica puede solicitar al usuario una información de seguridad.
advertencia, mientras que un refrigerador puede aceptar cualquier propuesta de reorganización firmado por +½ de los validators originales por poder de voto. No puede surgir ningún algoritmo bizantino tolerante a fallas no síncrono al consenso cuando ≥⅓ del poder de voto es deshonesto, pero un tenedor supone que ≥⅓ del poder de voto ya ha sido deshonesto al doble firma o cambio de cerradura sin justificación. Entonces, firmando La propuesta de reorganización es un problema de coordinación que no puede solucionarse. resuelto por cualquier protocolo no síncrono (es decir, automáticamente, y sin hacer suposiciones sobre la confiabilidad de la red subyacente). Por ahora, dejamos el problema de la coordinación de propuestas de reorganización a la coordinación humana a través del consenso social. en los medios de internet. Los validadores deben tener cuidado de garantizar que haya No quedan particiones de red restantes antes de firmar una propuesta de reorganización, para evitar situaciones en las que se firmen dos propuestas de reorganización contradictorias. Suponiendo que el medio y protocolo de coordinación externa sea robusto, se deduce que las bifurcaciones son menos preocupantes que la censura ataques. Además de las bifurcaciones y la censura, que requieren ≥⅓ bizantinos poder de voto, una coalición de >⅔ de poder de voto puede comprometerse Estado arbitrario e inválido. Esto es característico de cualquier (BFT) sistema de consenso. A diferencia de la doble firma, que crea bifurcaciones con evidencia fácilmente verificable, detectando la comisión de un el estado no válido requiere pares no validadores para verificar bloques completos, lo que implica que guardan una copia local del estado y ejecutan cada transacción, calculando la raíz del estado de forma independiente para ellos mismos. Una vez detectado, la única manera de manejar tal falla es a través del consenso social. Por ejemplo, en situaciones donde Bitcoin ha fallado, ya sea que se haya bifurcado debido a errores de software (como en marzo 2013), o cometer un estado inválido debido al comportamiento bizantino de mineros (como en julio de 2015), la comunidad bien conectada de empresas, desarrolladores, mineros y otras organizaciones estableció un consenso social sobre qué acciones manuales eranrequerido por los participantes para sanar la red. Además, desde Se puede esperar que validators de un Tendermint blockchain sean identificable, el compromiso de un estado inválido puede incluso ser punible por la ley o alguna jurisprudencia externa, si así se desea. ABCI consta de 3 tipos de mensajes principales que se entregan desde el núcleo de la aplicación. La aplicación responde con mensajes de respuesta correspondientes. El mensaje AppendTx es el caballo de batalla de la aplicación. cada uno La transacción en el blockchain se entrega con este mensaje. el La aplicación necesita validar cada transacción recibida con el Mensaje AppendTx contra el estado actual, protocolo de aplicación, y las credenciales criptográficas de la transacción. Un validado La transacción luego necesita actualizar el estado de la aplicación, mediante vinculando un valor en un almacén de valores clave o actualizando el UTXO base de datos. El mensaje CheckTx es similar a AppendTx, pero es solo para validar transacciones. Primeros controles de mempool de Tendermint Core la validez de una transacción con CheckTx, y solo los relés son válidos transacciones con sus pares. Las aplicaciones pueden comprobar un incremento nonce en la transacción y devolver un error en CheckTx si el nonce es viejo. El mensaje Commit se utiliza para calcular una criptografía compromiso con el estado actual de la aplicación, que se colocará en el encabezado del siguiente bloque. Esto tiene algunas propiedades útiles. Las inconsistencias en la actualización de ese estado ahora aparecerán como blockchain bifurcaciones que captan toda una clase de programación errores. Esto también simplifica el desarrollo de sistemas ligeros y seguros. clientes, ya que las pruebas de Merkle-hash se pueden verificar cotejándolas el bloque-hash, y el bloque-hash está firmado por un quórum de validators (por poder de voto).
Los mensajes ABCI adicionales permiten que la aplicación realice un seguimiento de y cambiar el conjunto validator, y para que la aplicación reciba el información del bloque, como la altura y los votos de confirmación. ABCI solicitudes/respuestas son mensajes simples de Protobuf. comprobar fuera del esquema yle. Argumentos: Datos ([]byte): los bytes de la transacción de solicitud. Devoluciones: Código (uint32): código de respuesta Datos ([]byte): bytes de resultado, si los hay Registro (cadena): mensaje de error o depuración Uso:
Adjunte y ejecute una transacción. Si la transacción es válida, devuelve CodeType.OK Argumentos: Datos ([]byte): los bytes de la transacción de solicitud. Devoluciones: Código (uint32): código de respuesta Datos ([]byte): bytes de resultado, si los hay Registro (cadena): mensaje de error o depuración Uso:
Validar una transacción. Este mensaje no debe mutar el estado. Las transacciones se ejecutan por primera vez a través de CheckTx antes transmitir a pares en la capa de mempool. puedes hacer CheckTx semi-estado y borre el estado al confirmar o BeginBlock, para permitir secuencias dependientes de transacciones en el mismo bloque.
Devoluciones: Datos ([]byte): La raíz de Merkle hash Registro (cadena): mensaje de error o depuración Uso:
Devuelve una raíz de Merkle hash del estado de la aplicación. Argumentos: Datos ([]byte): los bytes de solicitud de consulta. Devoluciones: Código (uint32): código de respuesta Datos ([]byte): los bytes de respuesta a la consulta. Registro (cadena): mensaje de error o depuración Uso:
Vacíe la cola de respuestas. Aplicaciones que implementan tipos. La aplicación no necesita implementar este mensaje: es manejado por el proyecto. Devoluciones: Datos ([]byte): los bytes de información Uso:
Devuelve información sobre el estado de la aplicación. Solicitud específico. Argumentos: Clave (cadena): clave para configurar
Valor (cadena): valor que se establecerá para la clave Devoluciones: Registro (cadena): mensaje de error o depuración Uso:
Establecer opciones de aplicación. P.ej. Clave = “modo”, Valor = “mempool” para una conexión de mempool, o Clave=“modo”, Valor=“consenso” para una conexión de consenso. Otras opciones son específicas de la aplicación. Argumentos: Validadores ([]Validador): Génesis inicial-validators Uso:
Llamado una vez sobre la génesis Argumentos: Altura (uint64): la altura del bloque que comienza Uso:
Señala el comienzo de un nuevo bloque. Llamado antes de cualquier AnexarTxs. Argumentos: Altura (uint64): la altura del bloque que finalizó Devoluciones: Validadores ([]Validador): validators modificados con nuevos poderes de voto (0 para eliminar) Uso:
Señala el final de un bloque. Después de todo, se llama antes de cada compromiso. transacciones Consulte el repositorio ABCI para obtener más detalles.Hay varias razones por las que un remitente puede querer el acuse de recibo de la entrega de un paquete por parte de la cadena receptora. Por ejemplo, es posible que el remitente no conozca el estado del cadena de destino, si se espera que esté defectuosa. O bien, el remitente puede desea imponer un tiempo de espera al paquete (con el parámetro MaxHeight rendimiento del paquete), mientras que cualquier cadena de destino puede sufrir un ataque de denegación de servicio con un aumento repentino en el número de mensajes entrantes. paquetes. En estos casos, el remitente puede exigir acuse de entrega configurando el estado del paquete inicial en AckPending . Entonces, es el responsabilidad de la cadena receptora de confirmar la entrega incluyendo un abreviado IBCPacket en la aplicación Merkle hash. Primero, se publican IBCBlockCommit y IBCPacketTx en "Hub". que prueba la existencia de un IBCPaquete en “Zona1”. di eso IBCPacketTx tiene el siguiente valor: DeChainID: "Zona1" FromBlockHeight: 100 (digamos) Paquete: un IBCPaquete:
Encabezado: un IBCPacketHeader:
SrcChainID: “Zona1”
DstChainID: “Zona2”
Número: 200 (digamos)
Estado: Confirmación pendiente
Tipo: “moneda”
MaxHeight: 350 (digamos que "Hub" está actualmente a una altura de 300)
Carga útil:
FromBlockHeight: 400 (digamos)
Paquete: un IBCPaquete:
Encabezado: un IBCPacketHeader:
SrcChainID: “Zona1”
DstChainID: “Zona2”
Número : 200
Estado: Acuse de recibo
Tipo: “moneda”
Altura máxima: 350
PayloadHash:
estado de “Zona2” por el bloque 350, habría establecido el estado automáticamente al Tiempo de espera . Esta evidencia de un tiempo de espera puede obtener se vuelve a publicar en "Zona1" y se puede devolver cualquier token. Hay dos tipos de Merkle trees admitidos en el Ecosistema Tendermint/Cosmos: El árbol simple y el IAVL+ Árbol. El árbol simple es un Merkle tree para una lista estática de elementos. si el número de elementos no es una potencia de dos, algunas hojas estarán en diferentes niveles. Simple Tree intenta mantener ambos lados del árbol misma altura, pero la izquierda puede ser una mayor. Este Merkle tree es utilizado para Merkle-izar las transacciones de un bloque, y el nivel superior elementos de la raíz del estado de la aplicación.El propósito de la estructura de datos IAVL+ es proporcionar información persistente almacenamiento para pares clave-valor en el estado de la aplicación, de modo que La raíz determinista de Merkle hash se puede calcular de manera eficiente. el El árbol se equilibra utilizando una variante del algoritmo AVL, y todos las operaciones son O (log (n)). En un árbol AVL, las alturas de los dos subárboles secundarios de cualquier nodo difieren como máximo en uno. Siempre que se viole esta condición por una actualización, el árbol se reequilibra creando O(log(n)) nuevos nodos que señalar los nodos no modificados del árbol viejo. En el AVL original algoritmo, los nodos internos también pueden contener pares clave-valor. El AVL+ algoritmo (tenga en cuenta el signo más) modifica el algoritmo AVL para mantener todos valores en los nodos hoja, mientras que solo se utilizan nodos de rama para almacenar claves. Esto simplifica el algoritmo manteniendo el rastro merkle hash corto. El árbol AVL+ es análogo a los intentos de Patricia de Ethereum. hay compensaciones. No es necesario hashed las claves antes de insertarlas en Árboles IAVL+, por lo que esto proporciona una iteración ordenada más rápida en la clave espacio que puede beneficiar algunas aplicaciones. La lógica es más sencilla implementar, requiriendo sólo dos tipos de nodos: nodos internos y nodos de las hojas. La prueba de Merkle es en promedio más corta, siendo una * / \ / \ / \ / \ * * / \ / \ / \ / \ / \ / \ * * * h6 / \ / \ / \ h0 h1 h2 h3 h4 h5 Un SimpleTree con 7 elementos
árbol binario equilibrado. Por otro lado, la raíz Merkle de un El árbol IAVL+ depende del orden de las actualizaciones. Admitiremos Merkle trees eficientes adicionales, como Patricia Trie de Ethereum cuando la variante binaria se convierte en disponible. En la implementación canónica, las transacciones se transmiten al Cosmos aplicación central a través de la interfaz ABCI. El Cosmos Hub aceptará una cantidad de transacciones principales tipos, incluidos SendTx , BondTx , UnbondTx , ReportHackTx , SlashTx , BurnAtomTx , ProposalCreateTx y ProposalVoteTx , que se explican por sí solos y se documentarán en un revisión futura de este documento. Aquí documentamos los dos principales tipos de transacciones para IBC: IBCBlockCommitTx y IBCPacketTx . Una transacción IBCBlockCommitTx se compone de: ChainID (cadena): el ID del blockchain BlockHash ([]byte): el bloque-hash bytes, la raíz de Merkle que incluye la aplicación-hash BlockPartsHeader (PartSetHeader): el encabezado del conjunto de piezas del bloque bytes, sólo necesarios para verificar las firmas de los votos BlockHeight (int): la altura de la confirmación BlockRound (int): la ronda de confirmación Comprometerse ([]Vote): El >⅔ Precommit de Tendermint vota que Comprende un compromiso de bloque. ValidatorsHash ([]byte): una raíz del árbol Merkle hash del nuevo validator conjunto
ValidatorsHashProof (SimpleProof): un SimpleTree Merkleproof para probar ValidatorsHash contra BlockHash
AppHash ([]byte): una raíz del árbol IAVLTree Merkle hash del
estado de la aplicación
AppHashProof (SimpleProof): un SimpleTree Merkle a prueba de
probando AppHash contra BlockHash
Un IBCPaquete se compone de:
Encabezado (IBCPacketHeader): el encabezado del paquete.
Carga útil ([]byte): los bytes de la carga útil del paquete. Opcional
PayloadHash ([]byte): el hash para los bytes del paquete.
Opcional
Debe estar presente uno de los tipos Payload o PayloadHash . El hash
de un IBCPaquete es una raíz Merkle simple de los dos elementos, Encabezado
y carga útil . Un IBCPacket sin la carga útil completa se denomina
paquete abreviado.
Un IBCPacketHeader se compone de:
SrcChainID (cadena): la fuente blockchain ID
DstChainID (cadena): el ID de destino blockchain
Número (int): un número único para todos los paquetes
Estado (enum): puede ser uno de AckPending, AckSent,
Confirmación recibida, No confirmación o tiempo de espera
Tipo (cadena): los tipos dependen de la aplicación. Cosmos
reserva el tipo de paquete "moneda"
MaxHeight (int): si el estado no es NoAckWanted o AckReceived
a esta altura, el estado pasa a ser Timeout. Opcional
Una transacción IBCPacketTx se compone de:FromChainID (cadena): el ID del blockchain que es
proporcionar este paquete; no necesariamente la fuente
FromBlockHeight (int): la altura blockchain en la que se
El siguiente paquete está incluido (Merkle-izado) en el bloque-hash de
la cadena de origen
Paquete (IBCPaquete): un paquete de datos, cuyo estado puede ser uno
de AckPending, AckSent, AckReceived, NoAck o Timeout
PacketProof (IAVLProof): un IAVLTree Merkle a prueba de pruebas
el hash del paquete contra el AppHash de la cadena de origen en
altura dada
La secuencia para enviar un paquete de “Zona1” a “Zona2”
a través del "Hub" se muestra en la {Figura X}. Primero, un IBCPacketTx
demuestra al "Hub" que el paquete está incluido en el estado de la aplicación de
“Zona1”. Luego, otro IBCPacketTx le demuestra a "Zone2" que el
El paquete está incluido en el estado de la aplicación de "Hub". Durante este
procedimiento, los rendimientos del IBCPacket son idénticos: el SrcChainID es
siempre "Zona1" y DstChainID siempre es "Zona2".
El PacketProof debe tener la ruta correcta a prueba de Merkle, como
sigue:
Cuando “Zone1” quiere enviar un paquete a “Zone2” a través de “Hub”,
los datos del IBCPacket son idénticos ya sea que el paquete esté Merkleizado en "Zone1", el "Hub" o "Zone2". El único yeld mutable es
Estado para el seguimiento de la entrega.
Agradecemos a nuestros amigos y pares por su ayuda en la conceptualización,
Revisar y brindar apoyo para nuestro trabajo con Tendermint.
y Cosmos.
IBC/
Zaki Manian de SkuChain brindó mucha ayuda para formatear y redacción, especialmente en la sección ABCI Jehan Tremback de Althea y Dustin Byington por ayudar con iteraciones iniciales Andrew Miller de Honey Badger por sus comentarios sobre el consenso Greg Slepak por sus comentarios sobre el consenso y la redacción También gracias a Bill Gleim y Seunghwan Han por varios contribuciones. Su nombre y organización aquí por su contribución. 1 Bitcoin: https://bitcoin.org/bitcoin.pdf 2CeroCash: http://zerocash-project.org/paper 3 Ethereum: https://github.com/ethereum/wiki/wiki/WhitePaper 4 ElDAO: https://download.slock.it/public/DAO/WhitePaper.pdf 5 Testigo Segregado: https://github.com/bitcoin/bips/blob/master/bip0141.mediawiki 6 BitcoinNG: https://arxiv.org/pdf/1510.02037v2.pdf 7 Red Lightning: https://lightning.network/lightningnetwork-paper-DRAFT-0.5.pdf 8 menta tierna: https://github.com/tendermint/tendermint/wiki 9 FLP Imposibilidad: https://groups.csail.mit.edu/tds/papers/Lynch/jacm85.pdf 10 Asesino: https://blog.ethereum.org/2014/01/15/slasher-apunitive-proof-of-stake-algorithm/ 11 PBFT: http://pmg.csail.mit.edu/papers/osdi99.pdf 12 bits compartidos: https://bitshares.org/technology/delegatedproof-of-stake-consensus/
13 Stellar: https://www.stellar.org/papers/stellar-consensusprotocol.pdf 14 Libro interior: https://interledger.org/rfcs/0001-interledgerarchitecture/ 15 cadenas laterales: https://blockstream.com/sidechains.pdf 16 Casper: https://blog.ethereum.org/2015/08/01/introducing-casperfriendly-ghost/ 17 ABCI: https://github.com/tendermint/abci 18 Ethereum Fragmentación: https://github.com/ethereum/EIPs/issues/53 19LibSwift: 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 Seguridad del cliente ligero: https://en.bitcoin.it/wiki/Thin_Client_Security 22 Ethereum 2.0 Papel Malva: http://vitalik.ca/yles/mauve_paper.html https://www.docdroid.net/ec7xGzs/314477721-ethereumplatform-review-opportunities-and-challenges-for-privateand-consortium-blockchains.pdf.html
½ è