ブロックチェーンPlatoBlockchainデータインテリジェンスでの配信と支払い。 垂直検索。 愛。

ブロックチェーンでの配達と支払い

本の中で最も古い問題をブロックチェーンが解決する方法

人と人との取引は、人類そのものと同じくらい古いものです。 それは、穴居人オッグが穴居人ウッグに言った瞬間に始まりました:「私はあなたにロックを与え、あなたは私にベリーを与えます」。 しかし、取引には根本的な問題が伴います。 信頼。 Oggが岩を使ってUggを叩き、その後両方の岩をつかむのを止めるもの & 逃げる前にベリー? 口頭の交換協定を、双方が約束を守ることを保証する執行メカニズムにどのように変換しますか?

現代の例を挙げると、数年前に中古市場で車を販売しました。 私はインターネットでバイヤーを見つけました、私たちは直接会って、彼は車をテストしてもらい、価格に同意しました。 それで、彼は銀行に行き、レジの小切手を受け取りました。これは、よりコンパクトな形の現金です。 私たちは一緒に郵便局に行き、そこで車の法的所有権を譲渡する公式の政府フォームに署名して提出できます。

それで、私たちは郵便局の窓に立っていて、厄介な行き詰まりに達しています。 小切手はまだ彼のポケットにあり、私は署名されたフォームを持っています。 私たちは数時間前に会ったが、お互いを信頼する理由はない。 最初にフォームを提出してから、逃げるのではなく、小切手を渡してくれるといいのですが? または、彼は私に小切手を渡し、それから私がフォームで与えることを望みますか? いずれにせよ、誰かが裏切りのリスクに身をさらしています。

それから、心配するのをやめ、フォームを渡すだけでよいと気づきました。 どうして? 次のXNUMXつのことが発生する可能性があるためです。 バイヤーのどちらかが小切手を私に手渡します。その場合、誰もが幸せで、交換は完了です。 しかし、代わりに彼が逃げたらどうなりますか? その場合、郵便局の店員が見て、私がちょうど彼に与えたフォームを引き裂きます。 ビンゴ、私たちは自分自身を安全に交換しています。

そこで何が起こったのを見ましたか? 私たちのジレンマは、仲介者、この場合は郵便局員を使用することによって解決されました。 店員は、公正な取引が行われるか、まったく行われないようにします。 仲介者だけがこのサービスを提供できるわけではありません。 それは両方の当事者から信頼された誰かでなければなりません。 政府が所有する郵便局の従業員の場合、これは政府自体に対する私たちの信頼に由来します。 郵便局の店員が賄賂を受け取る可能性がある場合、私またはバイヤーのどちらかが現金と車の両方で終わる状況を設計することができます。 確かに、 多くの国々、このような腐敗は繁栄の巨大な流出になりかねません。

穴居人と自動車はXNUMXつのものですが、金融の世界に焦点を移してみましょう。 中心的役割。 もちろん、銀行は他の誰かの株を使い果たすために従業員に支払いません。 しかし、取引の参加者が約束を守ることができないという漫画的な方法が少ないため、金融資産の安全な交換は依然として重要な問題です。 たとえば、一方の当事者が破産したり、市場の状況が突然変化したりすると、資産を確保できなくなる可能性があります。 彼らは、事務的なミスやノックオン効果に苦しむことができます 会計詐欺 別の取引先で。

これらの結果として決済リスク」、ほとんどの金融取引は、 配達と支払い (DvP)。 これは、上で説明した郵便局のプロセスの単なる高級な用語です。 DvPは、トランザクションの一方の当事者が約束されたものを提供しない場合でも、他方の当事者が提供した資産を引き換えに維持できることを保証します。

そして、金融の世界では、配達と支払いはどのように実装されていますか? 信頼できる仲介者を介して、それを推測しました。 これらは他の銀行、手形交換所、または 中央証券保管所。 今日の取引のほとんどはデジタルで行われるため、これは物理的な証明書や現金の転送を管理する問題ではありません。 むしろ、DvPは、仲介者がデータベース内の多数のレコードを同時に更新したり、他の機関に指示を送信したりすることで実現されます。

ブロックチェーンによる配達と支払い

データベースについて話すと、ブロックチェーンのテーマにきちんとつながります。 ブロックチェーンにより、台帳またはデータベースを多数の関係者間で共有および同期することができます。 ただし、通常のデータベースとは異なり、ブロックチェーンデータベースは、互いに激しい競争を繰り広げている場合でも、複数のユーザーが安全かつ直接変更できます。 企業のIT部門で作業している場合は、その文の意味を考えてみてください。

ブロックチェーンでの配信と支払いの仕組みを理解するには、ビットコインのトランザクションモデルを理解することから始める必要があります。 ここで、他のブロックチェーン設計ではトランザクションに異なるモデルを使用していることに注意してください。これらの違いについては、後で詳しく説明します。

ビットコイントランザクションには、一連の入力と出力があります。 各入力は、前のトランザクションのXNUMXつの出力に接続され、前の出力からのすべてのビットコインが流入します。次に、トランザクションの入力のビットコインは、書き込まれた量に従ってその出力全体に再分配されます。 さらに、各トランザクション出力には、新しい所有者の公開識別子が含まれています。その所有者は、対応する秘密鍵を保持しています。 ビットコイン取引は、次の場合にのみ有効です。

  • トランザクションの入力に含まれるビットコインの合計量は、その出力に書き込まれた量以上です。 差額は、トランザクションをブロックで確認する「マイナー」が料金として収集し、トランザクションが確認のために入札できる市場メカニズムを作成します。
  • トランザクションは、そのトランザクションが「費やす」以前のすべての出力の所有者によって承認されます。 この承認は、新しいトランザクションのコンテンツの暗号化署名によって表されます。 以前の出力の署名は、公開識別子と一致する秘密鍵を使用してのみ作成できます。

これらのルールはどちらも、非信頼関係者間で共有される財務元帳では非常に重要です。 最初のものがないと、誰もが薄い空気からビットコインを作成することができます。 そして、秒がなければ、誰もが他の人のビットコインを使うことができるでしょう。 ただし、XNUMX番目のルールも必要です。これは、個々のトランザクション内ではなくグローバルに適用されます。

  • 各トランザクション出力は、後続のXNUMXつのトランザクションでのみ使用できます。 これにより、次のような攻撃を防ぎます 二重支出 同じビットコインが複数の受信者に送信されます。

このルールを適用するために、ブロックチェーンには互いに競合しない有効なトランザクションの時系列ログが含まれており、このログはネットワーク内のすべてのノードによって個別に検証されます。

ビットコインのトランザクションモデルは、あらゆる金融資産を表すように簡単に拡張できます。 ビットコインを含むトランザクション出力の代わりに、資産の識別子と数量を保持できます。 ビットコイン取引をカバーするすべてのルールが引き続き適用され、参加者が(a)薄い空気から資産を作成する、(b)他の人の資産を使う、(c)同じ資産をXNUMX回使うのを防ぎます。 非暗号通貨資産の場合、鉱山労働者が差異を収集できるようにするのではなく、入力と出力の量が正確にバランスするように主張する傾向があります。

では、このモデルを使用して、安全な配達と支払いの取引をどのように作成するのでしょうか。 アリスとボブがアリスの10ポンドをボブの15ドルに交換することに合意したとしましょう。 便宜上、アリスはすでに10つのトランザクション出力にきちんと15ポンドを置いており、ボブも同様にXNUMXドル持っていると仮定します。 (これが当てはまらない場合、彼らは簡単に資金を移動させてそうすることができます。)

まず、いずれかの当事者が10つの入力と15つの出力を持つトランザクションを構築します。 15つの入力は、Aliceの£10とBobの$ XNUMXをそれぞれ含む以前の出力を使用します。 出力に関しては、最初のものはアリスの識別子と$ XNUMXを含み、XNUMXつ目は£XNUMXを含むボブに行きます。 両方の通貨の入力量と出力量がバランスするため、このトランザクションは上記の最初の条件を満たしています。 XNUMX番目の条件を満たすには、アリスとボブの両方がトランザクションに署名する必要があります。これは、それぞれに属する以前の出力を使用するためです。

これで、ブロックチェーンに含めることでトランザクションを確定できますが、二重支出の問題を考慮する必要があります。 アリスが同じ£10を、より良い取引を提供した別の取引相手と交換する矛盾する取引を作成した場合はどうなりますか? ここで、10番目のルールが機能します。ブロックチェーンでは、各出力が15回だけ使用されることが保証されます。 ボブとのアリスの交換がブロックチェーン上にある後に競合するトランザクションが送信される場合、それは単に確認されません。 そして、競合するトランザクションが最初に確認された場合、アリスとボブとの交換は失敗します。 どちらの方法でも、ブロックチェーンは、アリスとボブの交換、およびその他の交換の配信と支払いを保証します。 ボブがアリスの£XNUMXを受け取っていない場合、アリスは彼の$ XNUMXを受け取りません。

部分取引の力

したがって、ブロックチェーンは、XNUMXつの当事者が集まり、交換トランザクションを構築して署名し、全体として成功または失敗することを保証する方法を提供します。 これにより、プロセスを管理するための信頼できる仲介者を必要とせずに、共有元帳での配信と支払いが可能になります。 ブロックでの取引を確認する鉱山労働者はまだある程度の力を持っていますが、それは従来の仲介者よりはるかに少ないです。 彼らができる最悪のことは、特定の取引の確認を拒否することです 全体として、これはDvPに違反していません。 さらに、実際にトランザクションを作成する当事者間でマイニングを共有すると、誰もが自分のトランザクションを確認する機会が得られるため、このリスクは完全になくなります。

ここまでは順調ですね。 しかし、ビットコインスタイルのブロックチェーンには、より多くのトリックがあります。 トランザクションは、そのトランザクションが使用する以前の各出力の所有者によって署名される必要があることを思い出してください。 デフォルトでは、このシグネチャはトランザクション内の入力と出力の完全なリストをロックします。 暗号化により、入力または出力に少しでも変更を加えると、署名が無効になります。 上記の例に従うと、アリスがトランザクションに署名した後でボブがキャロルの代わりになった場合、トランザクションは完全に失敗します。

しかし、アリスが誰と交換を行うかを気にしない場合はどうなりますか? ほとんどの目的で、 なぜ彼女は気にする必要がありますか? アリスがボブと特別に協力することを決心していない限り、アリスが本当に彼女に関係しているトランザクションの部分は10つしかありません。 まず、別の数量や資産ではなく、15ポンドの出力が消費されるという事実。 第二に、彼女は見返りに新しい出力で$ 15を受け取ります。 システムのすべてのお金がきれいである限り、アリスはその$ XNUMXがどこから来るのか、または交換を促進するために他に何が起こり得るのかを本当に気にしません。

おそらく、単一のパーティーが$ 15でやって来て、アリスの£10のストレートスワップを実行するでしょう。 しかし、多分ボブとキャロルはそれぞれ7.50ドルを交換したいだけです。 この場合、5つの出力をそれぞれ15ポンド収集するとともに、950つの入力をトランザクションに追加します。 あるいは、キャロルは実際に950ドルを10ルーブルに交換したいのに対し、モスクワのサーシャは3ルーブルを持ち、15ポンドを探しています。 この場合、10者間交換が行われ、各当事者は自分のパズルのピースのみを引き続き考慮します。 アリスが開始したトランザクションは、無数の異なる方法で完了することができます。 しかし、アリスの観点から見ると、これらはすべて、XNUMXポンドと引き換えに彼女にXNUMXドルを与えるという同じ目的を達成し、すべて彼女を等しく幸せにします。

交換シナリオ

ブロックチェーンはこれをどのように促進しますか? 部分的なトランザクションと部分的な署名を通じて。 アリスは、単一の入力(10ポンド)と単一の出力(15ドル)でトランザクションを開始します。 彼女は、トランザクションのこれらの部分を、他の入力または出力をいくつでも追加できることを示すデジタル署名でロックします。 彼女はこの部分的なトランザクションをボブに渡し、「何ができるか見てみよう」と言います。 たぶん、彼女はそれをキャロルだけでなく、他の潜在的な取引相手やシンジケート作成者にも渡します。 これらのそれぞれは、交換のバランスを取るため、または再度処理できるより大きな部分的なトランザクションを作成するために、独自の入力と出力のペアを追加できます。 誰が何をするかに関係なく、トランザクションは、入力アセットと出力アセットのバランスが取れたときにのみ実行できます(つまり、ブロックチェーンでの確認によって決済されます)。

ブロックチェーントランザクションはデジタルデータのチャンクにすぎないため、これらの部分的なトランザクションは電子メールまたはその他の通信媒体で送信できます。 潜在的なトランザクションの参加者は、 ブロックチェーンがそれらを処理します。 アリスの署名により、誰かが彼女に10ドルを交換した場合にのみ15ポンドを使うことが保証されます。

最後に、アリスがオファーを無効にすることを選択した場合、彼女がしなければならないのは、ほとんどの場合それを自分に送り返すことによって、同じ£10を別のトランザクションで使うことだけです。 ブロックチェーンでは同じ出力をXNUMX回使用することができないため、これにより彼女の既存の部分トランザクションは価値がなくなります。 ブロックチェーンの他のすべての参加者はこれを見て、交換を完了するために時間を無駄にするのをやめます。

DvPからスマートコントラクトへ

私が持っているように 以前に議論した、ビットコインスタイルのブロックチェーンは、共有リレーショナルデータベースで同期とセキュリティを管理する方法と見なすことができます。 ビットコインとデータベースのトランザクションはどちらもアトミックに処理されるため、全体として成功または失敗します。 類推の鍵は、ブロックチェーンのトランザクション出力とデータベースの行の間の同等性です。 一部の出力を使用していくつかの出力を作成するブロックチェーントランザクションは、いくつかの行を削除していくつかの他の行を作成するデータベーストランザクションと同じです。 (既存の行を変更するデータベース操作は、その行を削除して、代わりに新しい更新された行を作成することと同じです。この同等性は、一般的な MVCC データベースでの同時実行制御方法。ビットコイン形式のブロックチェーンは分散形式と見なすことができます。)

それでは、財務データがデータベースに保持されていて、各行にXNUMXつの情報(所有者の識別子、資産の識別子、資産の数量)が含まれているとしましょう。 ブロックチェーンを使用すると、参加者が互いにまったく信頼していなくても、この元帳を参加者間で安全に共有できます。 データベースの言語では、次のことを保証します。

  • トランザクションによって削除された行の資産数量は、それが作成した行の資産数量と一致します。
  • トランザクションによって削除(または変更)されたすべての行について、トランザクションはその行の所有者によって署名されている必要があります。
  • データベース行がXNUMXつのトランザクションによって削除された場合、これにより、別のトランザクションがその行を再度削除することを防ぎます。

最初のルールを見てみましょう。つまり、トランザクションは資産の数量を維持する必要があります。 これを「トランザクション制約」の一般的な概念に広げることができます。 トランザクション制約は、各トランザクションのXNUMXセットの行を表示するブラックボックスの形式をとります。(a)トランザクションによって削除された行、(b)トランザクションによって作成された行。 ブラックボックスの仕事は、これらのXNUMXつのセットを見て、トランザクションが有効かどうかについて「はい」または「いいえ」と答えることです。 この特定のケースでは、両方のセットの総資産数量が正確に一致する場合にのみ、yesと応答します。

トランザクション制約を適用できるようになったら、それらを拡張して任意のルールセットを含めることができます。 たとえば、「このアセットのユニットは、他のXNUMXつのアセットが同時にエスクローにロックされている場合にのみ作成できます」や「対応する行が不十分な雨を報告している場合にのみ、このアセットを転送できます」などです。 ブロックチェーンの分散アーキテクチャの観点から見ると、ボックス内のロジックは、それが見るすべてのトランザクションの明確で一貫した評価を提供できる限り、違いはありません。

その結果、トランザクションの制約は、ブロックチェーンの参加者が実行できるデータ変換を制限する一般的な方法として機能します。 この「スマートコントラクト」へのアプローチは、 ストアドプロシージャ で使用される Ethereum とその エリス 派生物。 今後の記事では、シンプルさ、スケーラビリティ、同時実行性の観点から、これらXNUMXつのパラダイムの利点と欠点について詳しく説明します。

また、ご購読はいつでも停止することが可能です Twitterで私に従ってください。 参照: ビットコイン対ブロックチェーンの議論を終わらせる。

技術補遺

部分的なDvPトランザクションを構築するには、 署名タイプ of SINGLE|ANYONECANPAY。 使用している場合 マルチチェーン preparelockunspent, createrawexchange & appendrawexchange API呼び出し あなたのために細部の世話をします。 を参照してください スタートガイド 使用方法の簡単な例については、ページをご覧ください。

コメントを投稿してください LinkedInの上に.

出典:https://www.multichain.com/blog/2015/09/delivery-versus-payment-blockchain/

タイムスタンプ:

より多くの マルチチェーン