国営チャンネルの現状を理解するための記事
編集者注: この記事は以下から引用しましたブロックレコード (ID: BlockchainInsights)、許可を得て掲載しています。
編集者注: この記事は以下から引用しました
ブロックレコード (ID: BlockchainInsights)
ブロックレコード (ID: BlockchainInsights)
、許可を得て掲載しています。
この記事では、状態チャネルがどのように機能するのか、そしてその実装がなぜ複雑なのかについての基本を学びます。これらをビットコインのライトニングネットワークでの支払いにどのように使用できるか、またイーサリアムスマートコントラクトを活用したより複雑なアプリケーションにどのように活用できるかについて説明します。最後に、なぜこれまで国営チャンネルが広く普及していないのか、そしてなぜこれが変わるのかを探っていきます。
ステートチャネルの仕組み
ステートチャネルの中核となる前提は、驚くほど簡単に理解できます。オンチェーントランザクションを使用する代わりに、定期的に取引したい当事者は、まずスマートコントラクトで資金をロックし、次に誰がどの資金を所有しているかのステータスを更新する署名付きメッセージをオフチェーンで交換できます。オフチェーンでは任意の数のトランザクションが発生する可能性があり、その速度は署名付きメッセージを交換する当事者の能力によってのみ制限されます。いずれかの当事者がチャネルから抜けたいときはいつでも、最新の署名ステータスをチェーン上のスマートコントラクトに送信でき、スマートコントラクトは署名を検証し、合意された分配方法に従って資金を分配します。
国家チャネルの最も単純な例、つまり 2 者間の単純な支払いを見てみましょう。古い友人のアリスとボブを招待します。この二人には定期的に為替資金を交換する理由があると思われます。彼らはすべて、ベースチェーン上のスマートコントラクトに資金を入金します。この例では、それぞれ5 ETHとしましょう。アリスはボブに 1 ETH を支払うメッセージに署名します。これは、彼女の残高を 4 ETH に更新し、ボブの残高を 6 ETH に更新することを意味します。アリスは署名付きメッセージをボブに送信し、ボブは更新された状態に署名して返します。その後、ボブはアリスに 0.5 ETH を支払い、彼の残高は 5.5 ETH に減り、彼女の残高は 4.5 ETH に増えます。彼はこの支払いメッセージに署名してアリスに送信し、アリスはメッセージに署名して送り返します。
このプロセスは、アリスとボブが望む限り繰り返されます。このシステムではマイクロペイメントが可能であることは注目に値します。チャネルが決済されるまで手数料はかからないため、0.001 ETH の 1,000 回の支払いの送信には、1 ETH の 1 回の支払いの送信と同じコストがかかります。
最終的に、アリスとボブの取引は終了しました。両当事者が署名した最終残高は、アリスが 7 ETH、ボブが 3 ETH です。彼女はこの最後の共同署名状態をベース チェーンに送信し、ベース チェーンは最初に両方の当事者が実際に秘密鍵で署名されていることを確認し、次に示されたバランスに従って両方の当事者に配布します。シンプルかつ簡潔ですよね?はい、ただし重要な詳細をいくつか省略しました。"細部に潜む悪魔"ブロックチェーン世界の多くのものと同様、すべての関係者が期待どおりに動作している場合、状態チャネルはスムーズに機能します。しかし、当事者が常に期待どおりに行動するのであれば、そもそも分散型暗号通貨ネットワークは必要ありません! ブロックチェーンが存在する理由は、当事者が信頼を最小限に抑えた方法で取引できるようにするためであり、紛争中のこのような悪意のある行為は防止されなければなりません。 。
国家チャネルの場合、単純な二者間の支払いチャネルの例であっても、これらの議論の余地のある要素を考慮すると、付随的にかなりの複雑さが追加されます。このシナリオを考えてみましょう。ボブが商品やサービスの対価としてアリス 2 ETH を支払った場合、商品を受け取るときに、古い状態 (最後の支払い前に署名されたもの) を使用してオンチェーン チャネルを閉じます。アリスとボブは両方ともこの以前の状態に署名しましたが、スマート コントラクトはこの状態が以前であることを知りません。これにより、ボブはアリスが自分のものだと信じている資金を請求できるようになります。"この悪い動作を防ぐために、システムは両方のユーザーに特別な権限を要求することができます。"ついに
チャネルをクローズ済みとして明示的にマークする状態が署名され、そのような状態がコミットされた場合にのみ資金が解放されます。それでは、当事者がそのような最終状態へのサインオンを拒否したり、単に失踪したり、長期間オフラインになったりした場合はどうなるでしょうか?双方の資金はスマートコントラクトに閉じ込められます。
これを避けるために
悲しい思い出
その結果、当事者はチャネルを出て、中間状態を使用して資金を引き出すことができる必要があります。双方がチャネルを明示的に閉じない場合、ほとんどの最終操作では、資金が支払われるまでの待機期間が追加されます。これにより、各当事者は、両当事者が署名した新しい状態を提示することで撤退に異議を唱える機会が与えられ、それによって相手方が不正行為を試みたことを証明できます。このような証明には、悪意のある行為者に対する罰則が伴うことがよくあります。
これは実行可能なソリューションですが、どれほど複雑になっているかがわかります。単純な二者間の支払いチャネルの場合、相手方が不正をしようとしていないかどうかを確認するために、両当事者がチェーンを常に監視する必要があります。最新の状態のキャッシュされたコピーを維持し、不正行為が行われたことを証明するためにオンチェーントランザクションを実行する準備をしておく必要があります。さらに、ユーザーは、相手方が応答を停止した場合に資金を取り戻す前に、異議申し立て期間が経過するまで待つ準備をしておく必要があります。
複数者間での支払い
さて、問題は、二者間の支払いのみを伴う国営チャネルは、使いやすさがかなり制限されているということです。二者間で繰り返し支払いを繰り返すだけで、双方が相手方との支払いのために多額の自己資金を捧げることに抵抗がない金融取引がどれだけあるでしょうか?おそらくかなりの数です。"状態チャネルを便利なものにするためには、状態チャネルでできることを拡張する必要があります。これを行うには 2 つの方法があります。 1つは、チャネルを利用できる相手を増やすことだ。 2 つ目は、状態チャネルを拡張する機能であり、支払いだけでなく、より一般的な状態タイプを実現できるため、より複雑なユースケースを実現できます。"まずはパーティ数の増加から見てみましょう。これを行う最も簡単な方法は、すべての参加者が同じ契約に入金し、すべての州に署名する 1 つの大きなチャネルを用意することです。明らかな理由により、このアプローチは少数のユーザー以外には機能しません。私たちに必要なのは単一のチャネルではなく、チャネルのネットワークです。
ライトニングネットワーク: ペイメントチャネルネットワーク
支払いチャネルを本当に便利にするために、ビットコインのライトニング ネットワークは支払いチャネルをルーティング可能にします。どのユーザーも 1 つ以上のノードでチャネルを開くことができます (誰でも操作できます)。その後、ノード間で支払いが行われます
ジャンプ
、各ノードは、目的の受信者に到達するまで資金を次のノードに転送します。このようなジャンプの場合、各ノードは少額の料金を請求します。https://medium.com/)。
ご想像のとおり、このようなシステムは爆発的に複雑になるため、ライトニング ネットワークはそのような問題を解決するのに長い時間がかかりました。ライトニングネットワークの導入は過去 12 ~ 18 か月にわたって進んでいません。正直に言うと、ライトニング ネットワークが広く普及するかどうかはわかりませんが、それでも構築されたテクノロジーは素晴らしいものです。
ライトニングネットワークは、参加者間での支払いを可能にすることでステートチャネルをより便利なものにしましたが、他の企業は、チャネルを少数の当事者に制限しながら、その機能を拡張するという別のアプローチをとりました。
状態チャネルに状態を追加
どのような状態遷移が許可されるかに関する特定のルール (紛争が発生した場合にオンチェーン スマート コントラクトで検証および強制できるルール) を含めることにより、状態チャネルを使用して、同じパフォーマンスを達成するマルチパーティ分散アプリケーションを構築できます (リンク:
この種の状態チャネルを使用して実装できるアプリケーションの種類を想像してみてください。最も一般的な例はゲームである傾向があります。アリスとボブがチェスのゲームをしたいと思って、それにいくらかのお金を注ぎ込んだと想像してみてください。チェスのルールをエンコードするスマート コントラクトと、チェス盤の状態を表すために使用されるいくつかの基本的なデータ構造を通じて、アリスとボブは署名付きメッセージを交換することで賭けをし、オフチェーンでチェスのゲームをプレイできます。ゲームが終了すると、チャンネルを閉じることができ、勝者は報酬を受け取ります。
いずれかの当事者が不正行為を試みた場合、もう一方の当事者はスマートコントラクトを通じて「仲介」できます。最新の状態を提示することで、有効なゲーム状態を証明し、最終的にチャネルを閉じることができます。ただし、通常の状況では、ゲームは Web ベースのボード ゲームで期待される方法でプレイされます。唯一の違いは、ゲームの開始時と終了時にチャネルを開閉するためのオンチェーン トランザクションがあることです。https://docs.ethhub.io/)。
概念としての状態チャネルが比較的単純であるということは、状態チャネルがブロックチェーンの世界で最初に提案および研究されたスケーリング ソリューションの 1 つであることを意味します。しかし、何年にもわたる研究にもかかわらず、まだ意味のある形で広く採用されていません。理由は何ですか?"状態チャネル"感動してもらいたいのですが、ステート チャネルの概念は比較的単純ですが、実際の実装は、特に実際に役立つものを構築しようとする場合、かなりの複雑さを伴います。人々が本当に望んでいることを達成しながら、悪意のある行為に関連する多くの状況に対処するのは非常に難しいことがわかりました。実際にあまり採用されていないのは、堅牢で使用可能なソリューションを開発するまでに長い時間がかかったことが考えられます。https://blog.statechannels.org/)
私はまだ国営チャンネルを諦めていません。まず、ライトニング ネットワークは成熟し続けており、今後さらに多くの採用が行われる可能性があります。さらに、イーサリアム エコシステムでは、一般化された状態チャネルを開発しているチームが多数あり、これにより状態チャネルに基づいたアプリケーションの構築が容易になります (リンク:


