Adam Gibsonとの最近のインタビューで、別名 Waxwing 、リード JoinMarket のメンテナーであり、CoinJoiningの専門家である私たちは、私たちが行ったエキサイティングな変更について話しました。 CoinJoinトランザクション内で、CoinJoinのプロセスが現在の状態でどのように機能するか、およびさらなるイノベーションに関する彼の見通しを確認します。ただし、最初に、CoinJoinトランザクションが現在の状態で何で構成されているかについて説明しましょう。
「現在」と言うとき、これは現在実際に使用されているメソッドを参照していることに注意してください。 Taprootのアクティブ化は、現在利用可能な新しいメソッドが実際に使用されていることを意味するわけではないため、この区別は重要です。
CoinJoinとは何ですか?
ギブソンに<の簡単な説明を求めたときa href="https://en.bitcoin.it/wiki/CoinJoin"target="_ blank"> CoinJoining 、彼はこの応答をしました:
「簡単に言えば、CoinJoinsはトランザクションです複数の人が入力を提供する場合。各人が期待する成果に支払った場合にのみ取引に署名するため、信頼は必要ありません。これらは主に、トランザクションのすべての入力が1人からのものであるという仮定を無効にすることでプライバシーを改善するために使用されます。これは、ブロックチェーン分析がコインの履歴を追跡するために使用する仮定です。」
「トランザクション複数の人がインプットを提供する場合」と彼は言いました。
では、入力は何ですか?ほとんどの取引所で見られる、常に特定の量のビットコインを保持していることを示すユーザーインターフェイスとは異なり、ビットコインを使うために、コーヒーを飲むためにガソリンスタンドにお金を渡すようなものです。ビットコイントランザクションは、必要な量を満たすまで、すべての UTXO (未使用のトランザクション出力)を合計します。トランザクション。実際に使用しようとしているユニットがあることを確認します。合計でビットコインの量に達するこれらの以前のトランザクション出力は「入力」と呼ばれます。
CoinJoinトランザクションは、複数の人がトランザクションを完了するために必要なビットコインの量を提供しようとしたときに発生します。プライベートな方法。ただし、「出力」が期待どおりの金額を支払っていない限り、設計上、トランザクションに署名することはありません。未使用の出力は、おそらく使用されていないビットコインの単位です。出力が使用されていないことが証明された場合、トランザクションの反対側の人はそのビットコインを使用できます。その結果、そのビットコインがウォレットに送信されます。期待どおりの支払いが行われない限り、取引に署名せず、取引の完了を妨げます。
複数の人が同じ金額の入力と出力を持ち、明確な情報を作成している場合、入力所有権の仮定が無効になります。トランザクションに対するプライバシーのレベル。これは、「署名の集約」と呼ばれるプロセスによっても実現できます。これは、Schnorr署名がビットコインに実装される前は適用できず、すべての参加者が1つの署名を使用できるようにすることでトランザクションを安価にできます。
しかし、署名の集約とは何ですか、なぜそれが重要なのですか?
署名の集約とは何ですか?
ギブソンに署名の集約をどのように要約するかを尋ねたところ、これは彼の答えは次のとおりです。
「Taprootがアクティブ化されたため、ビットコインでは、実際には複数の署名である単一の署名を「内部で」作成できます。これにより、複数の署名がはるかにかさばらず、よりプライベートになります。」
Schnorr署名の開始により署名とキーの集約。以前は、ベリファイアはトランザクション内の各署名を検証する必要がありました。これらの署名が集約されるか、1つに結合されると、ベリファイアは1つの署名のみを検証する必要があります。これにより、ブロックチェーン全体にズームアウトしたときに費やされる処理とリソースのコストが削減されます。しかし、プライバシーは人々がCoinJoiningを採用するのに十分なインセンティブですか?後でこのポイントに戻りますが、ギブソンはさらに先に進むことができると考えています。
このプロセスでは、各トランザクションが基本的に残りのすべては、各入力/出力がどこに向かっているのか、またはどこから来ているのかを識別するのをはるかに難しくします。では、Schnorrを実装せずに、このプロセスはどのように機能するのでしょうか。私はギブソンにその質問をしました。CoinJoinトランザクションを作成するための彼の概要は次のとおりです。
Schnorrの前のプロセス
「番号付きリストとして実行しようとします」ギブソンと言って、それに続く着信情報ダンプの前に、私のようなplebsのためにそれを分解しました。
しかし、それに入る前に、ギブソンの言葉で「出力の変更」とは何かを学びます。
「基本的に、CoinJoinを少し忘れて、あなたに言ってください。コーヒーの代金を払っています。あなたはビットコインで$ 5を支払いたいのですが、あなたのウォレットで利用できるUTXOは1つだけであり、その価値はビットコインで$ 20です。したがって、トランザクションに2つの出力を作成します。1つは$ 5、もう1つは$ 15です(今のところ手数料は無視してください)。コーヒーベンダーのアドレスは$ 5を受け取り、もう1つのアドレスはウォレットに属するアドレスであり、あなたはそれに$ 15を割り当てます。これが「出力の変更」です。」
入力の合計が必要以上の合計になる場合は、入力から購入の差を差し引くだけで、残ったものが返されます。費やされたものはあなたがアウトプットを作った人に行きます。簡単ですよね?了解しました。始めましょう。
もう一度、ギブソン:
「1つは、人々/ニームのグループが集まり、出力量について合意します。たとえば、0.5BTCです。 (これは難しい部分です!匿名の調整です!)」
10人、つまり匿名ユーザー(匿名)が集まって、この特定の金額を支払いたいと言ってみましょう。 トランザクションは単純にバッチ処理され(合意された出力を満たさずに結合されます)、「数値を確認するだけで、大きなCoinJoinトランザクション内から簡単に分離できます」とGibson氏は説明します。 。
「2つ、各人は少なくとも0.5BTCをカバーするのに十分な入力を準備します。通常のウォレットが0.5BTCの支払いをしたい場合とまったく同じように」と、ギブソンは続けました。
あなたと他の10人は0.5BTCの出力に同意します。これは、トランザクションに参加する各個人が、その金額に等しい十分な入力を保持する必要があることを意味します。 (簡単に言えば、期待される出力が0.5 BTCの場合、参加するには0.5 BTCを保持する必要があります。)
「3つ、通常の支払いと同様に、各nymも準備する必要があります。a)彼らが所有する出力アドレス、0.5 BTCが行く場所、b)残っているもののアドレスを変更する」とギブソン氏は語った。
確かに、この部分は私を混乱させ、私は変更アドレスとは何か、BTCがトランザクションから「取り残される」方法。これが上記の「変更出力」です。
ギブソンは続けます:
「4つ、2つと3つからのこの情報は一緒に集められます:すべてのnymsからのすべての入力の完全なリスト、およびすべての出力アドレスと変更アドレス。異なるCoinJoin実装はこれを異なる方法で行います。」
ステップ2と3の情報が組み合わされます。
「5つ、その情報が1つの場所に収集されると、トランザクションを組み立てることができます。 ”
トランザクションはどのように組み立てられますか?
「トランザクションへの入力は、すべてのnymsからのすべての入力UTXOであり、出力は次のとおりです。a)すべての「出力」アドレス、それぞれに0.5 BTCが割り当てられ、b)すべての変更アドレス。金額は、そのnymからのすべての入力の合計から0.5BTCを差し引いて計算する必要があります」とGibson氏は述べています。 「このトランザクションは署名されていません。つまり、署名を除くすべての情報が含まれているため、もちろんビットコインネットワークにまだブロードキャストできません。」
簡単に言えば、私たちが持っているすべての情報これまでに収集されたものはトランザクションに結合され、必要なのは署名だけです。
ギブソン:
「6:署名されていないトランザクションが準備されたので、
署名されていないトランザクションは、CoinJoinトランザクションのすべての関係者に送信され、ギブソンが説明したように、次のようになります。
「7つ、個々のnymが各入力に署名します。
全員が署名を返送してトランザクションを完了し、入力がトランザクションに必要な量と等しいことを確認します。
「9つ、コーディネーターは8つからすべての署名を収集します。トランザクションのすべての入力に対して有効な署名が1つある場合は、それらをトランザクションに挿入し、完全に有効な署名付きトランザクションを作成してブロードキャストできます。」
すべての署名がコーディネーター、トランザクションはビットコインブロックチェーンにブロードキャストされます。
プロセスに関する注意事項
「明らかに重要なのは、各nymが入力と出力の完全なリストを注意深くチェックして確認することです。彼らはだまされていません。出力量は彼らが期待するものであり、彼らの入力は彼らが期待するものです」とギブソンは説明しました。 「期待どおりの結果が得られる限り、他の人の入力と出力を気にする必要がないことに注意してください。」
前述のように、出力が一致しない場合は署名を付けないでください。あなたの期待される結果。現在のところ、取引が確実に行われるようにするのは関係者の責任です。
これで、上記のプロセスは少し厄介に聞こえると考えることは許されます。イノベーションには忍耐が必要です。ひどいユーザーインターフェイスで主に読み取り専用だった元のバージョンのWebと同じように、最終的にはWeb2.0に進化することができました。残念ながら、この技術革新は大部分が一元化されていますが、それにより、創設者の苦痛は最終的にはさらなる革新によって和らげられることがわかります。これでJoinMarketにたどり着きます。
JoinMarketの基本
多面的であるため、JoinMarketが現在実行しているアプリケーションの1つについて簡単に説明します。
「Joinmarket-Qtは、ユーザーがウォレットを作成してコインジョインを送信できるようにするGUIアプリケーションです。」
GUI(グラフィカルユーザーインターフェイス)は、Webページまたはプログラムを簡単に使用できるようにするための単なる方法です。 JoinMarketは、誰も理解できない読み取り専用コードを見たり、コマンドラインで操作したりするのではなく、CoinJoinのプロセスをより簡単でアクセスしやすくすることを目指しています。
ご覧のとおり、この特定のイノベーションには多くの努力が費やされており、これに取り組んでいる他のプラットフォームもあります。難しいように聞こえるかもしれませんが、すべての関係者が出力に同意できる限り、比較的簡単です。しかし、なぜこの特定の問題にこの努力のすべてが投げかけられるのですか?
なぜCoinJoinが重要なのですか?
これは私がギブソンに尋ねた正確な質問であり、彼は私に言った:
「[CoinJoin]は、作成したトランザクション(例:商品やサービスの代金を支払っている)を見て、人が自分のお金について推測できるようにする手法です(方法あなたが持っている多くのこと;その歴史は何かなど)。これはセキュリティにとって大きな利点です。」
ビットコインは常にプライバシーを重視し、資金を安全に保つことを目的としています。ビットコイン内で発生するすべての変更の中核で、プライバシーとセキュリティは最高のままです。ギブソンはさらに、CoinJoiningのプロセスをレガシーシステムと比較しました。
「レガシーシステムと比較してください。銀行が特定のエッジケースを除いて、受取人があなたのお金/口座に関する情報を見ることはほとんどありません。そしてそれを管理する政府は、すべて(すべての歴史)を見ることができるかもしれません。」
CoinJoiningは、あなたのお金の私的所有権をあなたの手に戻しています。将来のSchnorr署名と署名の集約により、金融機関や中央政府があなたのお金を管理することなく、プライバシーを確保し、同時に料金を下げることを目指している他の人と対話することができます。このプロセスに関するギブソンの閉会の辞は、この革新の必要性と、さらなる革新の必要性を要約しています。
「人は確かにあなたのお金の歴史やあなたが持っている金額を直接見てみることができますブロックチェーン」と彼は言った。 「CoinJoinは、「それを不可能にする」多くの手法の1つです(ただし、それは完全に真実ではありませんが、それを実行しようとしますが、決して完璧ではないため、「不可能」は正しい言葉ではありません)。
次に何が来るの?
答えはあなたの時間の好みによって異なります。短期的には、CoinJoiningの有効性を閉じて、不浸透性のポイントに近づけるための作業を行うことができます。プライバシーはCoinJoining戦術を広く採用する十分な理由ではなく、他のインセンティブが必要です。プライバシーをあまり気にせず、そこにたどり着くためだけに余分な足の仕事をしない人もいるからです。
考えは、クロス入力署名の集約です( CISA )。これに関して、ギブソンはかなり強気のようです。この特定の方法はインセンティブを生み出すことができますが、プライベートCoinJoinsでは必ずしもそうとは限らないことに注意してください。プライベートCoinJoinsにはインセンティブが与えられますが、プライベートCoinJoinが手数料の節約を達成する必要はありません。つまり、すべてのCoinJoinトランザクションはプライベートになります。
CISAでは、これはギブソンの回答でした。
「しかし、さらに先に進むことができます。トランザクション内のすべての入力からの署名を組み合わせることができます(たとえば、100個の入力も可能です)。 )を1つの署名にまとめます。」
標準の署名集約で料金を節約できるだけでなく、CISAをさらに実装すると、これらの節約をさらに進めることができます。さらに、これらの変更がプロセスにどのように影響するかについては、まだ詳細なレベルで説明していません。しかし、それらは他の記事の議論です。
これはShawnAmickによるゲスト投稿です。表明された意見は完全に独自のものであり、必ずしもBTCIncまたはBitcoinMagazineの意見を反映しているわけではありません。