非ブロックチェーンブロックチェーンの詳細
時が経つにつれ、ブロックチェーンの世界はXNUMXつの異なる部分に分かれています。 一方では、関連する暗号通貨を備えたパブリックブロックチェーンが注目を集める最近の復活を享受しており、多くの億万長者を鋳造しています。 一方、許可されたブロックチェーンまたはエンタープライズブロックチェーンの使用は静かに、しかし着実に増加しており、 ライブ展開 2017年中に複数の業界にわたって。
考慮すべき興味深い質問のXNUMXつは、これらXNUMXつのタイプのチェーン間の類似性の適切なレベルです。 どちらも、ピアツーピアネットワーキング、公開鍵と秘密鍵の暗号化、トランザクションルール、および悪意のある攻撃者が生き残ることができるコンセンサスメカニズムを使用して、共有データベースを実装しています。 それは多くの共通点です。 それにもかかわらず、パブリックブロックチェーンとプライベートブロックチェーンには、機密性、スケーラビリティ、およびガバナンスの点で異なる要件があります。 おそらく、これらの違いは、根本的に異なるデザインの必要性を示しています。
ロープ によって開発されたプラットフォーム R3 銀行コンソーシアムは、この質問に対して明確なスタンスを採用しています。 いくつかの側面はパブリックブロックチェーンに触発されましたが、CordaはR3のメンバーのニーズに基づいてゼロから設計されました。 確かに、R3はまだ「ブロックチェーン」という言葉を使用していますが 広く 彼らの製品を市場に出すのを助けるために、Cordaはブロックのチェーンをまったく持っていません。 私が知っている他のどの「分散型台帳」プラットフォームよりも、Cordaは従来のブロックチェーンのアーキテクチャから根本的に離れています。
この作品の私の目標は、これらの違いを説明し、それらの意味について、良い面と悪い面について議論することです。 実際、良い点と悪い点は間違った言い方です。より興味深い質問は「良い点と悪い点は何か」です。 この記事は決して短いものではありません。 しかし、それが終わるまでに、読者がCordaの違いとその結果としてのトレードオフについてある程度理解してくれることを願っています。 Cordaは、その設計上の決定によってエンタープライズブロックチェーンのジレンマの多くが大幅に緩和されるため、重要です。
始める前に最後にもうXNUMXつ。背後にある会社のCEOとして マルチチェーン、人気のあるエンタープライズブロックチェーンプラットフォームですが、競合製品と思われる製品についてなぜそんなに深く書いているのですか? 標準的な理由は、MultiChainの優位性を主張することですが、それはここでは私の動機ではありません。 実際、CordaとMultiChainは、デザイン、アーキテクチャ、およびオーディエンスの点で根本的に異なるため、競合他社とは見なされません。 CordaとMultiChainは、クルーズライナーやジェットスキーと同じように競争します。どちらも海で人を輸送しますが、どちらも使用できる現実の状況はほとんどありません。
より個人的なメモとして、私は過去数年間、Cordaの技術的リーダーシップから、会議、通信、またはそれらの公開文書を通じて、R3に加わる前にその多くが学んだことを多く学びました。 Cordaに対する私の関心の一部は、このチームに対する私からの尊敬に由来します。この理由だけで、Cordaは、分散型台帳フィールドの理解を求める人にとっては勉強する価値があります。
ブロックチェーンの紹介
Cordaを理解するには、従来のブロックチェーンから始めると役に立ちます。 ブロックチェーンの目的は、データベースまたは元帳を信頼できない関係者が直接かつ安全に共有できるようにすることです。 これは、単一の組織によって格納および制御される集中型データベースとは対照的です。 ブロックチェーンには複数の「ノード」があり、それぞれにデータベースのコピーが格納され、異なる組織に属することができます。 ノードは、「ゴシッププロトコル」を使用して密なピアツーピア方式で相互に接続します。「ゴシッププロトコル」では、各ノードが学習するすべての情報を常にピアに伝えます。 その結果、どのノードでも多くの代替パスを介してネットワーク全体にメッセージを迅速にブロードキャストできます。
データベースは、集中型でもブロックチェーンでも、空の状態で始まり、「トランザクション」によって更新されます。 トランザクションは、「アトミック」である一連のデータベース変更として定義されます。つまり、トランザクションは全体として成功または失敗します。 アカウントごとに10行の財務台帳を表すデータベースを想像してみてください。 アリスがボブに$ 1を支払うトランザクションには10つのステップがあります。(2)アリスのアカウントに少なくとも$ 10が含まれていることを確認し、(3)アリスのアカウントから$ 10を減算し、(XNUMX)ボブのアカウントに$ XNUMXを加算します。 基本的な要件として、どのデータベースプラットフォームでも、トランザクションが他のトランザクションに干渉しないようにする必要があります。 この「分離」は、支払いの実行中にアリスとボブの両方の行をロックすることで実現されます。 これらの行を含む他のトランザクションは、このトランザクションが完了するまで待機する必要があります。
ブロックチェーンでは、すべてのノードが独自のデータベースのコピーですべてのトランザクションを個別に処理します。 トランザクションはネットワーク上の任意の場所で作成され、他のすべてのノードに自動的に伝播されます。 ノードを実行している組織は異なる(または相反する)関心事を持っている可能性があるため、公正に取引することを互いに信頼することはできません。 したがって、ブロックチェーンには、特定のトランザクションが有効かどうかを定義するルールが必要です。 共有の財務台帳では、これらのルールにより、ユーザーがお互いのお金を費やしたり、空から資金を調達したりすることができなくなります。
多くの場合、この順序付けは重要であるため、トランザクションの有効性を決定するルールに加えて、ブロックチェーンはトランザクションの順序付け方法も定義する必要があります。 アリスが$ 15を持っていて、10つの別々のトランザクションでボブとチャーリーの両方に$ XNUMXを送ろうとした場合、これらの支払いのうちXNUMXつだけが成功します。 最初のトランザクションが優先されると言いたいかもしれませんが、ピアツーピアネットワークには「最初の」という客観的な定義はありません。メッセージが異なる順序で異なるノードに到着する可能性があるためです。
取引ルール
一般的な意味では、どのデータベースの情報もレコードまたは「行」に分けられ、トランザクションは行の削除、行の作成、および/または行の変更という15つの異なることを実行できます。 行を変更することは、その行を削除してその場所に新しい行を作成することと同じであるため、これらをさらに10つに減らすことができます。 ボブへのアリスの支払いに戻るために、$ 5を含む彼女の行が削除され、XNUMXつの新しい行が作成されます。XNUMXつはボブの$ XNUMXを含み、もうXNUMXつはアリスの「変更」に$ XNUMXを含みます。
ビットコインとCordaの用語に従い、トランザクションによって削除された行を「入力」、作成された行を「出力」と呼びます。 トランザクションによって削除された行は、前のトランザクションによって作成されたものでなければなりません。 したがって、各トランザクション入力は前のトランザクションの出力を消費(または「消費」)します。 データベースの最新のコンテンツは、「未使用のトランザクション出力」または「UTXO」のセットによって定義されます。
ブロックチェーンでは、トランザクションは次のXNUMXつの条件を満たす場合に有効です。
- 正しさ。 トランザクションは、入力から出力への正当な変換を表す必要があります。 たとえば、財務台帳では、お金が魔法のように現れたり消えたりするのを防ぐために、入力の資金の合計量が出力の合計と一致している必要があります。 唯一の例外は、資金が明示的に追加または削除される特別な「発行」または「退職」取引です。
- 承認。 トランザクションは、その入力によって消費されるすべての出力の所有者によって承認される必要があります。 財務台帳では、これにより、参加者が許可なしにお互いのお金を使うことができなくなります。 トランザクションの承認は、非対称(または公開/秘密キー)暗号化を使用して管理されます。 すべての行には、対応する秘密鍵が秘密に保たれている公開鍵で識別される所有者がいます。 承認を受けるためには、トランザクションはその各入力の所有者によってデジタル署名されている必要があります。 (行には、たとえば、XNUMXつのパーティーのうちXNUMXつが使用を許可できるような、より複雑な「マルチシグニチャー」の所有者もいることに注意してください。)
- 独自性。 トランザクションが特定の出力を消費する場合、他のトランザクションはその出力を再び消費できません。 これは、アリスがボブとチャーリーの両方に相反する支払いをするのを防ぐ方法です。 これらの両方の支払いのトランザクションは正しく承認される可能性がありますが、一意性ルールにより、データベースによって処理されるのはXNUMXつだけです。
従来のブロックチェーンでは、すべてのノードがこれらのXNUMXつのルールに関してすべてのトランザクションをチェックします。 後で、Cordaがこの責任を異なる方法で分割する方法を説明します。
ビルディングブロック
ブロックチェーンは文字通りブロックのチェーンであり、すべてのブロックはその内容を一意に識別する「ハッシュ」を介して前のブロックにリンクしています。 各ブロックには、相互に、または前のブロックのトランザクションと競合してはならない順序付けられたトランザクションのセットと、タイムスタンプおよびその他の情報が含まれています。 トランザクションと同様に、ブロックはネットワーク全体に急速に伝播し、すべてのノードによって個別に検証されます。 トランザクションがブロックに表示されると、それは「確認済み」になり、ノードが競合するトランザクションを拒否します。
これらのブロックを作成する責任があるのは誰ですか?また、すべてのノードが信頼できるチェーンに同意することをどのように確認できますか? この「コンセンサスアルゴリズム」の問題は、それ自体が大きな主題であり、PoW(Proof of Work)、PBFT(Practical Byzantine Fault Tolerance)、およびDPoS(Delegated Proof of Stake)などの驚くべき頭字語でいっぱいです。 ここではそのすべてを説明することはしません。 企業の許可されたブロックチェーンは、ある種の投票方式を使用していると言うだけで十分です。投票方式は、集合的に責任がある「バリデーターノード」に投票が許可されます。 このスキームにより、妥当性検査ノードの大多数が正しくかつ正直に機能している限り、トランザクションは(ほぼ)公正な順序でチェーンに入り、タイムスタンプは(ほぼ)正しく、確認されたトランザクションは後で取り消すことができません。
ブロックチェーンの課題のいくつかを説明する前に、XNUMXつの追加ポイントを明確にしたいと思います。 まず、この記事全体で例として財務台帳を使用していますが、トランザクションの入出力モデルは、はるかに幅広いユースケースをサポートしています。 各行には、さまざまな種類の情報を含む豊富なデータオブジェクト(JSONなど)を含めることができます。このため、Cordaは「行」ではなく「状態」という単語を使用しています。 よりリッチな状態では、トランザクションルールに関する基本的な変更は何もありません。正確性は引き続き入力と出力の観点から定義されており、すべての入力に承認が必要であり、一意性により、各出力はXNUMX回しか使用できません。
次に、行がデータベースでのみ作成され、削除されないブロックチェーンの使用例が多数あります。 これらのアプリケーションは、流動的なある種の台帳を維持するのではなく、一般的なデータストレージ、タイムスタンプ、公証に関連しています。 これらのデータのみのアプリケーションでは、トランザクションによって出力にデータが追加されますが、入力ではデータが消費されないため、正確性、承認、一意性のルールを簡素化できます。 データのみのユースケースは、MultiChainでの私たち自身の開発でますます注目されていますが、Cordaは明らかにそれらを考慮して設計されていなかったため、ここではそれらについてのみ言及します。
最後に、一部のブロックチェーンプラットフォームは入出力モデルを使用しないことに注意してください。 イーサリアムは、チェーンが「契約」によって管理されるグローバルな状態で仮想コンピューターを制御し、トランザクションが明示的に相互に接続しない、別のパラダイムを提示します。 許可されたブロックチェーンにおけるイーサリアムのモデルの議論はここでは私たちの範囲を超えていますが、 この記事 詳細な説明と批評については。 入出力パラダイムの主な利点のXNUMXつは、ほとんどのトランザクションを並行して互いに独立して処理できることです。 このプロパティは、後で説明するように、Cordaにとって重要です。
ブロックチェーンの課題
世界の銀行がさまざまな金融資産の所有権、移転、交換を表す共有元帳を作成したとしましょう。 理論的には、これは上記のように通常のブロックチェーンで実装できます。 各行にはXNUMXつの列(GOOGやUSDなどのアセットID、所有数量、所有者の公開鍵)が含まれます。 各トランザクションは、XNUMXつ以上の資産を入力から出力に転送しますが、発行と廃棄の特別なケースがあります。
ネットワーク内のすべての銀行は、他のノードに接続するXNUMXつ以上のノードを実行し、トランザクションを伝播および検証します。 シニアメンバーは、トランザクションの確認、注文、タイムスタンプの一括責任を持つ検証者として機能します。 バリデーターの不正行為はネットワーク内のすべてのノードに表示され、非難、追放および/または法的手続きにつながります。 これらすべてが整っていると、正確性、承認、一意性のルールにより台帳の整合性が保証され、金融資産を数秒で世界中に移動できます。
この写真の何が問題になっていますか? 実際、スケーラビリティ、機密性、相互運用性のXNUMXつの問題があります。 スケーラビリティの問題は非常に単純です。 私たちが提案する銀行間ブロックチェーンでは、世界中のすべての銀行が実行するすべてのトランザクションを検証、処理、および保存する必要があります。 これが最大の金融機関にとって技術的に実現可能であるとしても、計算とストレージのコストは多くの人にとって重大な障壁となるでしょう。 確かに、参加者が直接関与しているトランザクションだけを見るシステムが望ましいです。
ただし、スケーラビリティはさておき、高価なコンピュータと巧妙なエンジニアリングを使用して最終的に解決できるため、それはさておきましょう。 より根本的な問題は機密性です。 すべてのトランザクションがどこにでも見えることはユートピア的であるように聞こえるかもしれませんが、現実の世界では、このような根本的な透明性は、競争と規制の観点から見て、出発点ではありません。 JPモルガンとHSBCがXNUMX組の資産を交換する場合、彼らがシティと中国銀行に彼らが何をしたかを見てほしくないでしょう。 取引がこれらの銀行の顧客に代わって行われた場合、彼らがこの方法でそれを公開することは違法となる可能性があります。
機密性の問題に対するXNUMXつの提案された解決策は、Hyperledger Fabricに実装されている「チャネル」です。 各チャネルには、ネットワーク全体のノードのサブセットである特定のメンバーがあります。 チャネルのトランザクションはメンバーにのみ表示されるため、各チャネルは個別のブロックチェーンとして効果的に機能します。 これは機密保持には役立ちますが、演習全体の要点を損なうことにもなります。 アセットは、両方でアクティブな信頼できる仲介者の助けを借りずに、あるチャネルから別のチャネルに移動することはできません。 このアプローチの難しさは、最近SWIFTの 照合の概念実証、これは100,000を超えるチャネルが本番環境で必要になると推定しました。 これは100,000の島であり、その間でアセットを直接移動することはできません。
トランザクションが入力でデータを消費しないデータのみの使用例では、機密データの問題は、出力でデータを暗号化またはハッシュ化し、復号化キーまたはハッシュされていないデータをチェーンの外に配信することで回避できます。 しかし、入力が他のトランザクションの出力を消費するトランザクションの場合、トランザクションを検証するために、すべてのノードがそれらの入力と出力を確認する必要があります。 高度な暗号化技術など 機密資産 & ゼロ知識証明 財務元帳のこの問題を部分的または完全に解決するために開発されました。これらはパフォーマンスに大きな負担をかけるか、正確性ルールに一般化できません。
最後に、相互運用性について話しましょう。 理想的な世界では、すべての銀行は、ローンチされた日にすぐにグローバルブロックチェーンに参加します。 ただし、実際には、地理的条件または既存の関係に基づいて、複数のブロックチェーンが異なる銀行グループによって採用されます。 時間の経過とともに、あるグループのメンバーは、チェーン間でアセットを転送することにより、別のグループのメンバーとの取引を開始したいと思う場合があります。 チャネルと同様に、これは信頼できる仲介者の助けを借りてのみ達成でき、ブロックチェーンの目的を打ち破ります。
Cordaは、分散型台帳がどのように機能するかを根本的に再考することにより、スケーラビリティ、機密性、相互運用性のこれらの相互に関連する問題を解決することを目的としています。
Cordaの部分ビュー
Cordaの根本的な違いは簡単に説明できます。各ノードは、ネットワーク上で処理されたトランザクションのすべてではなく一部のみを認識します。 単一の論理的および概念的な元帳がこれらすべてのトランザクションによって定義されますが、個々のノードはその元帳全体を認識しません。 比較を行うために、いつでも、世界中のすべてのドル紙幣は特定の場所にありますが、誰もがそれらがどこにあるのかわかりません。
Cordaノードはどのトランザクションを見るのでしょうか? まず、トランザクションの入力または出力の15つを所有しているため、直接関与しているもの。 財務元帳では、これにはノードが資金を送信または受信しているすべてのトランザクションが含まれます。 アリスが入力で彼女の$ 10を消費し、5つの出力があるトランザクションを作成するとします。XNUMXつは私に$ XNUMXを、もうXNUMXつは彼女の "変更"に$ XNUMXを使用します。 アリスが私にこのトランザクションを送った後、私はそれが正しいことと承認のためにそれをチェックして、入力と出力のバランスとアリスが署名したことを確認できます。
ただし、このトランザクションだけでは十分ではありません。 私はまた、アリスの15ドルの入力状態が本当に存在することを確認する必要があります。 つまり、この状態を作成したトランザクションを確認し、正当性と承認についても確認する必要があります。 Aliceに$ 15を送ったこの以前のトランザクションにDenzelに属する$ 10の入力とEricからの別の$ 5の入力がある場合、それらを作成したトランザクションも確認する必要があります。 そして、その後も、資産が作成された元の「発行」トランザクションまでさかのぼります。 確認する必要のあるトランザクションの数は、アセットが変更された回数と後方分岐の程度によって異なります。
Cordaノードはすべてのトランザクションを自動的に認識しないため、どのようにして必要なトランザクションを取得できますか? 答えは、各新しいトランザクションの送信者からです。 アリスは15ドルを消費するトランザクションを作成する前に、それを受け取ったトランザクションをすでに確認している必要があります。 また、アリスは上記の再帰的手法を適用している必要があるため、この検証に必要なすべてのトランザクションのコピーを取得します。 ボブは、対話の一部としてこれらのトランザクションをアリスに要求するだけです。 アリスが適切に応答しない場合、ボブはアリスが彼をだまそうとしていると結論し、入金を拒否します。 Bobに入力に複数の所有者がいる新しいトランザクションが送信された場合、Bobはそれぞれから必要な証拠を取得できます。
公証人の紹介
ここまでは、ボブが入力トランザクションの起点を再帰的に追跡するなど、着信トランザクションの正当性と承認をどのように検証できるかについて説明しました。 しかし、私たちが考慮しなければならないもう10つのルールがあります。それは一意性です。 アリスが悪意があるとしましょう。 彼女は、ボブに$ 10を支払うトランザクションと、チャーリーに同じ$ XNUMXを支払う別のトランザクションを生成できます。 彼女は、これらのトランザクションを、それぞれの正当性と承認の完全な証明とともに、ボブとチャーリーにそれぞれ送信できます。 両方のトランザクションは同じ状態を消費することによって互いに競合しますが、ボブとチャーリーがこれを知る方法はありません。
従来のブロックチェーンは、すべてのノードがすべてのトランザクションを確認することでこの問題を解決し、競合を簡単に検出して拒否できます。 では、部分的なトランザクションの可視性を備えたCordaは、同じ問題にどのように対処しますか? その答えは「公証人」の助けを借りることです。 公証人とは、特定の状態がXNUMX回だけ消費されることを保証する信頼できる当事者(または当事者)です。 各状態には特定の公証があり、その状態が使用されるトランザクションに署名する必要があります。 公証人がこれを行ったら、同じ状態の別のトランザクションに署名してはなりません。 公証人は、ネットワークのトランザクションの一意性の保護者です。
すべての状態は異なる公証を持つことができますが、特定のトランザクションによって消費されるすべての状態は、同じものに割り当てられる必要があります。 これにより、分散データベースの経験を積んでいる人にはおなじみのデッドロックと同期に関連する問題を回避できます。 アリスとボブがアリスの10ドルをボブの7ポンドに交換することに同意したとしましょう。 この交換のトランザクションは両方の州の公証人によって署名されている必要がありますが、どちらが最初に行くのですか? アリスの公証人のサインが、何らかの理由でボブのサインに失敗した場合、アリスは不完全な取引を残され、再び彼女の$ 10を使用することはできません。 ボブの兆候が最初にある場合、ボブは同様に公開されます。 公証人が単に協力することを望むかもしれませんが、実際には、これには相互の信頼とコンセンサスプロトコルの使用が必要です。
単一のトランザクションへの入力として異なる公証人の状態が必要な場合、その所有者は最初に特別な「公証変更」トランザクションを実行します。 したがって、当事者が複数の入力を使用してトランザクションを構築する場合、使用する公証人について最初に合意してから、必要な公証変更を実行する必要があります。 私の開発者はこの回避策について読んだときに少しの痛みを感じましたが、公証人が一緒にプレイしない限りそれが機能しない理由はありません。
また、各公証人はトランザクションの署名に関して単一の論理的な主体であるが、単一の当事者の管理下にある必要はないことも明確にされるべきである。 組織のグループは、参加者の大多数が有効な署名を生成する必要がある適切なコンセンサスプロトコルを使用して、公証人を集合的に運営することができます。 これは、競合するトランザクションに署名することにより、単一の悪意のある当事者が一意性を損なうことを防ぎます。 理論的には、ネットワーク内のすべてのノードがこの種の共有公証に参加することを許可することもできますが、その場合は、多かれ少なかれ従来のブロックチェーンに戻ることになります。
採点
Cordaと従来のブロックチェーンの主な違いを要約してみましょう。 Cordaには、確認されたすべてのトランザクションを含む統一されたブロックチェーンはありません。 ノードは、直接関与しているトランザクション、または履歴に依存しているトランザクションのみを表示します。 ノードはトランザクションの正確性と承認の確認を担当しますが、信頼性のある公証人に依存して一意性を確認します。
もちろん、Cordaにはこれ以外にも多くの機能があります。IDを認証するためのデジタル証明書の使用、ノードがお互いを見つけて信頼するのに役立つ「ネットワークマップ」、各州の観点から正確さを定義する州ごとの「契約」、これらのコントラクトを実行するJava Virtual Machineの確定バージョン、トランザクションネゴシエーションを自動化する「フロー」、トランザクションを時間で制限する「タイムウィンドウ」、外部の事実を証明する「オラクル」、配布を容易にするために多くのものをバンドルする「CorDapps」 。 これらの機能はそれぞれ興味深いものですが、他のブロックチェーンプラットフォームでも同等の機能を見つけることができます。 この記事の私の目標は、Cordaをユニークなものにすることに焦点を当てることです。
それで、Cordaはその約束を果たしていますか? ブロックチェーンのスケーラビリティ、機密性、相互運用性の問題を解決しますか? そして、その特定の選択をする際に、Cordaはいくら価格を支払いますか?
時々よりスケーラブル
スケーラビリティから始めましょう。 ここでは、ノードがネットワーク内の一部のトランザクションしか認識しないため、Cordaの利点は明らかです。 通常のブロックチェーンでは、最大スループットは、トランザクションの処理における最も遅いノードの速度によって制限されます。 対照的に、CordaネットワークはXNUMX秒あたりXNUMX万のトランザクションを処理できますが、各ノードはそのごく一部しか表示しません。 スケーラビリティは公証人にも適用されます。一意性のためにトランザクションに署名するタスクは多くの異なる公証人に分散できるため、それぞれの公証人がネットワークの状態のごく一部を担っています。
そうは言っても、Cordaがブロックチェーンよりもはるかに悪いパフォーマンスをする10つの状況があります。 これは、ノードが以前に見たことのない他の多くのトランザクションに依存する新しいトランザクションを受信したときに発生します。 1000年前に発行され、約17分ごとに手を変える非常に流動的な資産を想像してみてください。 新規の取引からこの資産の発行までの道のりは、XNUMX万回を超える取引になります。 ノードがこのアセットを初めて受信するとき、送信者からこれらのXNUMX万のトランザクションを取得し、各トランザクションを順番に検証する必要があります。 XNUMX秒あたりXNUMXトランザクションの(かなり楽観的な)レートでは、受信者がアセットを送信できるようになるまでにXNUMX分の遅延が生じます。
ブロックチェーンがこの問題に悩まされないのはなぜですか? ノードは発生するすべてのトランザクションを確認および確認するため、元帳の状態を常に更新しており、現時点で誰がすべての資産を所有しているかを正確に把握しています。 ノードが特定のアセットを以前に保持したことがない場合でも、ノードはそれを受信するトランザクションを即座に確認し、すぐに送信できます。 別の言い方をすると、ブロックチェーンノードは、それらに関連しない可能性のあるトランザクションを検証する必要がありますが、そうすることで、今後発生する可能性のあるトランザクションをチェックするコストを前払いします。Cordaノードは全体的にビジーではありませんが、すぐに大量の作業を行う必要があるリスク。 それについてスケーラブルなことは何もありません。
やや機密性が高い
秘密保持に移りましょう。 Cordaでは、ノードはネットワークのトランザクションの一部のみを認識します。これは、紛れもなく従来のブロックチェーンよりも優れたプライバシーを意味します。 それにもかかわらず、ノードがまだ彼らのビジネスではないいくつかのトランザクションを見ているので、Cordaは機密性の問題を解決するのにはほど遠いです。 簡単な例を挙げると、アリスがボブに10ドルを支払った場合、ボブがその10ドルをチャーリーに送金すると、チャーリーのノードは、アリスとボブの間のトランザクションを示していなければなりません。 アリスがボブに支払った当時、彼女は誰がいつこの取引を見る可能性があるかを知る方法がなく、だれでもいつでもそれを送られる可能性があります。
公平を期すために、Cordaの開発者はこの問題を認識しており、彼らの15章で議論しています。 E-Book。 このホワイトペーパーでは、エンティティごとに複数の公開キーを使用するか、再発行のために資産を発行者に返却することでトレーサビリティを削減するなどの簡単な戦略を提案しています(暗号通貨「コインミキサー」と同様)。 また、Torのような匿名化ネットワークを使用して参加者のIPアドレスを隠し、知識ゼロの証拠やIntelの知識を活用するなど、より高度な将来の可能性についても触れています。 安全な飛び地 内容を明かさずにトランザクションを検証する。 これらの提案はすべて有効ですが、入出力モデルを使用して通常のブロックチェーンに適用することもでき、実際にDash、Zcash、Vergeなどの暗号通貨で使用されています。 したがって、Cordaの機密性に関する唯一の利点は、トランザクションの可視性の低下、つまり不完全なソリューションでしかありません。
繁殖のすべて
Cordaのスケーラビリティと機密性の利点をよりよく理解するには、これがトランザクション間の関係の密度と重複にどのように依存するかに注意する必要があります。 ネットワークで実行されるトランザクションの「家系図」を想像してください。各トランザクションの親は、すぐに依存する以前の親です。 具体的には、あるトランザクションの出力が別のトランザクションの入力によって消費される場合、親から子への関係を表す矢印を描画します。 トランザクションには、親と子をいくつでも含めることができますが、ほとんどの場合、トランザクションは少数です。
この家系図を前提として、トランザクションの祖先をその親、祖父母、曾祖父母などとして定義します。 私たちのツリーの「アダムとイブ」は、資産を作成し、自分の親を持たない発行トランザクションです。 通常の家系図と同様に、XNUMXつのトランザクションは互いに祖先にすることはできません。 正式なコンピュータサイエンス用語では、これは 有向非循環グラフ または、DAG。祖先は、親関係の推移的な閉鎖として定義されます。
Cordaノードがトランザクションを処理するとき、以前に見たものを除いて、そのトランザクションのすべての祖先をダウンロードして検証する必要があることを思い出してください。 したがって、家系図が深い場合、新しい着信トランザクションには、検証が必要な多数の祖先が含まれる可能性があり、Cordaのスケーラビリティの問題を引き起こします。 さらに、家系図に高度な交配が含まれている場合、新しいトランザクションの祖先には、ネットワーク内の多くのまたは最も過去のトランザクションが含まれる可能性があります。 この場合、Cordaはプライバシーに関してほとんど利点を提供しません。
対照的に、トランザクションの家系図が浅く、相互に作用しない多数の切り離された島が含まれている場合、Cordaの利点が前面に出ます。 ノードは一度に多数のトランザクションを検証する必要がなく、自分のトランザクションとは関係のない大部分のトランザクションについて、暗闇の中で保つことができます。 財務台帳として使用する場合、Cordaは、資産がめったに変更されない、非常に断片化された市場に最適であると言えます。
勝利のための相互運用性
ここに、Cordaが本当に輝くXNUMXつのエリアがあります。 アセットと参加者のセットが異なるXNUMXつの個別のCordaネットワークを想像してください。 ある時点で、あるネットワークの参加者が別のネットワークの誰かにアセットを送信したいと考えています。 従来のブロックチェーンとは異なり、ノードが過去のすべてのトランザクションを検証することは期待されていないため、この新しいアセットを受信するノードは異常なことは何もありません。 トランザクションが発生すると、関連する履歴を要求して検証するだけで、これが「個別のネットワーク」からのものであることに気づきません。 決まり文句を伸ばすために、Cordaには見知らぬ人はいないと言うかもしれません。まだ会っていない友達だけです。
実際には、物事はそれほど単純ではありません。 Cordaノードは、信頼すべき公証人を明示的に決定します。 さらに、ランダムなパブリックメンバーがノードに接続してリソースを浪費することを許可できないため、ノードは「ドアマン」からネットワーク内の他のノードに接続するための「証明書」を必要とします。 そのため、あるネットワーク上のノードが別のネットワークからのトランザクションの要求と検証を開始する前に、信頼できる公証人のリストに追加して、適切な証明書を取得する必要があります。 これには手動による構成と管理が含まれますが、この性質のシステムに期待できる最低限のことです。 全体として、相互運用性は従来のブロックチェーンに対するCordaの大きな勝利であると結論付けるのは公平です。
再仲介
さあ、中世の、コルダの部屋にいる象について話しましょう。 ブロックチェーンのコンテキストでは、仲介とは、サードパーティの良好な動作に依存することなく、すべての参加者がすべてのトランザクションを自分で検証できることを意味します。 に 私の見解、中間処理は、すべての参加者がそのデータベースの所有者に完全に依存している、集中型データベースに対するブロックチェーンの主要な利点です。 ネットワークの参加者が信頼できる仲介者がいて、仲介者を排除するためのビジネスまたは規制のケースがない場合、 意味が無い ブロックチェーンを使用する上で。 一元化されたデータベースはより高速で効率的であり、トランザクションの機密性の問題を回避します。
それでは、Cordaネットワークの参加者は中傷を実現しますか? ええ、はい、はい、はい、しかしいいえ。 トランザクション配信の場合、Cordaはボックスにチェックマークを付けます。これは、トランザクションに関与するノードが互いに直接対話するためです。 各ノードはこれらのプロパティをそれ自体でチェックできるため、正確さと承認の観点からも、ノードの状態は良好です。 ただし、トランザクションの一意性を検証する場合、Cordaは中間テストに失敗します。 ノードはネットワーク内のすべてのトランザクションを確認できないため、ノードは自身の一意性を確認できず、タスクは信頼できる公証人にアウトソーシングされます。
Cordaの参加者は、さまざまな方法で公証人のなすがままになっています。 まず、公証人は、入力が以前に使用されたことのない出力を消費する場合でも、トランザクションへの署名を拒否することがあります。 財務台帳では、これは誰かが資産を送ったり交換したりするのを防ぎます。 第XNUMXに、公証人は、同じ出力を消費するXNUMXつの競合するトランザクションに署名し、XNUMXつの当事者が同じものを受け取ったと信じることができます。 重複した資産の両方の受信者がそれ以降のトランザクションでそれを送信または交換すると、感染が広がり、元帳全体の整合性がすぐに損なわれる可能性があります。 最後に、公証人は、「公証人変更」トランザクションに署名することを拒否して、状態を競合他社に転送し、資産所有者を人質に実質的に保持することができます。 公証人の異なる州が関与する取引の場合、Cordaは 一元化されたデータベースよりも仲介、いくつかの第三者が管理しているため。
このリスクを全体的に見ると、Corda公証人が単一の組織によって管理される必要がないことを思い出しておく価値があります。 それらは、悪いアクターを許容できるコンセンサスアルゴリズムを実行するノードのグループで構成することもできます。 この場合、メンバーノードのほとんどがルールに従っている限り、公証人は問題なく機能します。 表面的には、これはブロックチェーンのように聞こえます。これは、大部分のバリデーターが適切に動作していることに依存しています。 ただし、Cordaではリスクが大幅に高くなります。 ブロックチェーンバリデーターの大部分が実行できる最悪の事態は、一部のトランザクションが確認されないようにすることです。 悪意のあるCorda公証人は、矛盾するトランザクションに署名し、元帳を矛盾した奈落の底に送ることもできます。
奇妙な動物
スケーラビリティ、機密性、相互運用性、および中立性をまとめると、Cordaの代替案について単純な判断を下すことは困難です。 全体として、このブロックチェーンプラットフォーム開発者の観点からは、まあ…説得力がありますが奇妙です。 スケーラビリティと機密性の主要な問題を解決するように設計されたCordaのソリューションは不完全であり、トランザクションの「家系図」の形状に大きく依存します。 しかし、これらの部分的な勝利を達成するために、Cordaはブロックチェーンのコアプロパティ、つまりトランザクション仲介者の削除を失います。 Cordaは間違いなく相互運用性に優れていますが、それで十分ですか?
懐疑的になりたければ、CordaのチームはR3に資金を提供する銀行に適したブロックチェーンのフレーバーを設計するという不可能なタスクを課されたと言えるかもしれません。 しかし、集中型データベースに対するブロックチェーンの主な利点は、機密性の低下という代償を払って仲介を行わないことです。 このトレードオフは、仲介者として行動することで金を稼ぎ、プライバシーに非常に敏感な金融機関にとってどのように意味があるのでしょうか。 この観点から見ると、Cordaを英雄的であると称賛するかもしれませんが、R3のメンバーがブロックチェーンを実行したいという願望と、それらが存在する商業的および規制上の制約との間の結局は不十分な妥協点です。
カストディアン2.0
しかし、私はより積極的なアプローチを採用することを好みます。 ブロックチェーンとの比較に焦点を当てるのではなく、Cordaを財務状況の主要な技術的アップグレードと見なすことができます。 「公証人」という言葉を「カストディアン」に置き換えるだけで、すべてがきちんと整えられます。 (A カストディアン は、他人のために資産を保持する金融機関です。)はい、公証人は仲介者であり、取引をブロックし、紛争の発生を許可することができますが、これは今日のカストディアンにも当てはまります。 「公証変更トランザクション」は、あるカストディアンから別のカストディアンへの資産の移動と見なすことができます。 また、Cordaトランザクションは、資産交換がXNUMXか所で行われるのと同じ理由で、どちらかの当事者がポケットに入れられないようにするために、XNUMX人の公証人だけが署名します。
このようにCordaを見ると、従来の保管モデルでそれがどのように改善されているかがわかります。
- 金融資産やその他の契約上のコミットメントを表現するための標準的な計算パラダイムとフォーマットを定義しています。
- これらのコミットメントを解釈および実行するためのオープンソースソフトウェアを提供し、取引当事者とカストディアンがすべてのトランザクションの結果について合意することを保証します。
- フォールトトレラントコンセンサスアルゴリズムを活用することで、不正行為から保護する複雑なマルチパーティカストディアンを作成できます(ソフトウェアのみを使用して!)。
- 標準プロセス(「公証変更」)は、カストディアン間の資産の移動に対して定義されており、カストディアンが拒否することはできません。
- カストディアンは、トランザクションも入力の所有者によって署名される必要があるため、所有者の同意なしに管理下の資産を使用することはできません。
私は銀行家とは程遠いですが、私にはこれはかなり有望に聞こえます。 そして恐らく、Cordaは保険や海運などの保管構造が複雑な他の産業にも同様に適用できるでしょう。 Cordaの設計はブロックチェーンの完全な中立性を提供しないかもしれませんが、仲介者が重要な役割を果たす産業に強力な変革を提案します。
この考えに沿って進むと、必然的に疑問が生じます。すでに一意性を検証するという生と死の仕事で公証人を信頼している場合は、正当性と承認についても公証人に頼ってみませんか? Cordaにはすでに「検証公証人」の概念があり、署名を追加する前にトランザクションを完全に検証します。 通常のCordaノードがトランザクションの祖先をダウンロードしてチェックする代わりに、代わりに公証人に尋ねてみませんか? ほとんどのノードは自分のトランザクション以外のトランザクションを認識しないため、これはスケーラビリティと機密性に役立ちます。 ネットワークの公証人がお互いを完全に信頼することを提案することさえあるかもしれないので、祖先について心配する必要はありません。 各州の公証人はその有効性を保証し、他の公証人の助けを借りてそれを作成したトランザクションのみを検証できます。
CordaをCordaにしましょう
これですべてが始まったところに戻ります。Cordaは、マルチチェーンを含む従来のブロックチェーンの競合相手ではありません。 Corda is Corda –興味深い新しいタイプの分散型台帳であり、資金を提供する人々のニーズに合わせて最適化されています。 Cordaが最終的に成功するか失敗するかはわかりません。現在のやり方と比較して、実際のコストとメリットがわからないからです。 しかし、将来何が起こっても、哲学とデザインの観点から学ぶことは確かに価値があります。
マルチチェーンに関しては、別のアプローチを取っています。 からラインを盗むために ウエストウイング、「ブロックチェーンをブロックチェーンにしよう」と決意しました。 ブロックチェーンはそれらが何であるかであり、私たちはそれらを別のものに変える計画はありません。 共有アプリケーションのデータインフラストラクチャとして、ブロックチェーンは、集中型データベースと比較した場合の特定のトレードオフを表します–機密性の低下を犠牲にして、中傷の増加。 そして、私たちはMultiChain 2.0を可能な限り最高にするために懸命に取り組んでいます ブロックチェーン アプリケーション開発者が使用するプラットフォーム。
コメントを投稿してください LinkedInの上に.
出典:https://www.multichain.com/blog/2018/05/r3-corda-deep-dive-and-technical-review/
- 略語
- アクティブ
- NEW
- 利点
- アルゴリズム
- アルゴリズム
- 申し込み
- 建築
- AREA
- 記事
- 資産
- 資産
- 聴衆
- 承認
- 銀行
- 中国銀行
- バンキング
- 銀行
- BEST
- ビル
- ブロックチェーン
- ボックス
- 建物
- 一式販売
- ビジネス
- 例
- 原因となる
- 最高経営責任者(CEO)
- 証明書
- 証明書
- 変化する
- チャンネル
- 点検
- 小切手
- 子
- 子供達
- 中国
- シティ
- 閉鎖
- 注釈
- コマーシャル
- コマンドと
- 会社
- コンペ
- 競合他社
- コンピュータサイエンス
- コンピューター
- 紛争
- コンセンサス
- 同意
- 消費する
- コンテンツ
- 中身
- 契約
- ロープ
- コスト
- 作成
- クルーズ
- 暗号通貨
- cryptocurrency
- 暗号
- 電流プローブ
- 親権
- Customers
- DAG
- ダッシュ
- データ
- データストレージ
- データベース
- データベースを追加しました
- 中
- 取引
- 遅らせる
- 配信する
- 配達
- 設計
- Developer
- 開発者
- 開発
- DID
- デジタル
- 分散元帳
- ドル
- 象
- エンジニアリング
- Enterprise
- イーサリアム
- 交換
- 交換について
- 運動
- ファブリック
- フェア
- 家族
- ファッション
- 特徴
- 最後に
- ファイナンシャル
- 金融機関
- 終わり
- 名
- 初回
- フォーカス
- 形式でアーカイブしたプロジェクトを保存します.
- フル
- 資金調達
- 資金
- 未来
- グローバル
- グローバルブロックチェーン
- 良い
- ガバナンス
- 素晴らしい
- グループ
- 成長
- こちら
- 隠す
- ハイ
- 強調表示された
- history
- 認定条件
- HTTPS
- 巨大な
- アイデア
- アイデンティティ
- 違法
- 含めて
- 産業
- 情報
- インフラ
- 機関
- 機関
- 保険
- 相互作用
- 関心
- 相互運用性(インターオペラビリティ)
- 関係する
- IP
- 発行
- 問題
- IT
- Java
- ジョブ
- join
- キー
- キー
- 知識
- 大
- つながる
- リーダーシップ
- 主要な
- 学んだ
- 元帳
- リーガルポリシー
- レベル
- 光
- LINE
- 液体
- リスト
- 長い
- 主要な
- 大多数
- 作成
- 市場
- マーケット
- 一致
- ミーティング
- メンバー
- 言及
- 百万
- お金
- マルチチェーン
- ネットワーク
- ネットワーキング
- ネットワーク
- ノード
- 概念
- 開いた
- オープンソース
- 注文
- 受注
- その他
- その他
- 所有者
- 所有者
- 痛み
- 紙素材
- パラダイム
- 両親
- 支払う
- 支払い
- 支払い
- のワークプ
- パフォーマンス
- 視点
- 哲学
- 画像
- プラットフォーム
- プラットフォーム
- 人気
- 現在
- ブランド
- プライバシー
- プライベート
- プロダクト
- 生産
- 証明
- 財産
- 守る
- 公共
- R3
- 読者
- リーディング
- 現実
- 再生タイヤ
- 記録
- 規制
- の関係
- 救済
- 要件
- リソース
- 退職
- レビュー
- リスク
- ルール
- ラン
- ランニング
- スケーラビリティ
- 科学
- SEA
- 見て
- センス
- セッションに
- shared
- 発送
- ショート
- サイン
- 簡単な拡張で
- 小さい
- So
- ソフトウェア
- ソリューション
- 解決する
- スピード
- 支出
- 広がる
- 利害関係
- start
- 開始
- 都道府県
- 米国
- Status:
- ストレージ利用料
- 店舗
- 店舗
- サポート
- 表面
- 技術的
- test
- 未来
- 考え
- 第三者
- 時間
- 公差
- トレーサビリティ
- トランザクション
- 取引
- 変換
- 透明性
- 輸送
- 信頼
- ハッシュされていない
- us
- USD
- users
- 寸前
- Verification
- 詳しく見る
- バーチャル
- バーチャルマシン
- 視認性
- 投票
- wait
- ウェスト
- 誰
- Wikipedia
- win
- 仕事
- 世界
- 価値
- 書き込み
- 年
- Zcash
- ゼロ