Atomic cross-chain trading
アリスとボブが別々の暗号化通貨でコインを所有し、第三者を信頼することなくそれらを交換したいのである(中央集権化された取引所) 。
非原子的な単純な解決法は、アリスにBitcoinsをボブに送り、ボブにアリスに別の暗号化を送信させるが、ボブは交渉の最後に戻って単にプロトコルに従わずに終わるという選択肢があるBitcoinsとAltcoinの両方で
契約の秘密を明らかにする方法
1つの解決策は ContractsとnLockTimeです。
アルゴリズム
ここでは、この問題を解決するアルゴリズムについて説明します。この具体的な説明については、credit to TierNolanを参照してください(アルゴリズムについては、上記のMike Hearnを含む他の人々)。
Aは乱数xを選びます AはTX1を作成します: "(Bの署名付きのH(x)はB)、(A&Bが署名した)"なら "Bの公開鍵にBTCを支払う" AはTX2を作成します:「TX1から<Aの公開鍵>までBTCを支払う、将来48時間ロックされ、Aによって署名された」 AがTX2をBに送信する BはTX2にサインし、Aに戻る 1)TX1をネットワークに提出する BはTX3を作成します: "A(Aは既知で署名されたHはx)または(A&Bが署名した)"ならば "alt-coinsを<A-public-key> BはTX4を作成します: "TX3から<Bの公開鍵>までv altコインを支払う、将来24時間ロックされる、Bによって署名された" BがTX4をAに送信する 符号TX4がBに返送される 2)BがTX3をネットワークに送信する 3)AはTX3を費やし、x 4)BはTX1をx これはアトミック(タイムアウト付き)です。プロセスが停止している場合は、停止してもプロセスを元に戻すことができます。 前1:放送されていないので何も起こりません 1&2の間:Aは72時間後に払い戻しの取引を使用して返金することができます 2&3:Bの間は、24時間後に払い戻すことができます。 Aは払い戻しに24時間以上かかる 3:トランザクションが2で完了した後 - Aは24時間以内に新しいコインを消費しなければならない、またはBが払い戻しを請求してコインを保持できる - Bは72時間以内に新しいコインを使用しなければならない、またはAは払い戻しを請求してコインを預けることができます 安全のために、両者は期限までに多くの時間をかけてプロセスを完了する必要があります。 </ pre>特殊なaltchainを使った解決
前述のアプローチは、プロトコル側での特別なサポートなしに直接ビットコイン由来のチェーン間で取引するために使用することができます。明らかな欠点は、nLockTimeです。取引相手が取引を行っていない場合、当社の資金はロックされ、タイムアウト期間中は別の取引では使用できません。さらに、現在のビットコーンプロトコルのルールでは標準と見なされてもされなくてもよい、トランザクションの置き換えに依存します。
クロスチェーンp2ptradeのもう1つの提案は、ビットチェーンチェーンからのp2ptradeの効率的な操作のための特性を持つ特殊なaltchainを使用することです。さらに、私たちは通常の支払いと全く同じように見える単一の標準的なビットコイン取引だけを使用します(nlocktime、multisig、特別なスクリプトなし)。
altchainがそれをサポートするために実際の経済的価値を持っていると仮定すると、それはfe間の(比較的)効率的なゼロトラストP2P市場の代理人としての役割を果たすことさえできる。 BTCおよびLTCは、マーケットメーカーの裁定のおかげです。
アルゴリズム
Alice = AltChain Bob = Bitcoin
- Bobは通常どおりトランザクションを作成して署名し、 txid </ b>を計算します。 Aliceに<b> txid </ b>とトランザクションスクリプト<b>と入力スクリプト/署名をブランク</ b>を送信します。
- アリスは、空白のボディのハッシュを計算し、それを<b>ハッシュハッシュ</ b>と呼び、特別な<b> bitcointxid(ブランクハッシュ、txid)</ b>オペコードでトランザクションを構築します。トランザクションをaltchainにブロードキャストします。
- Bobはaltchain txを確認し、その出力が以前に合意されたものであることを確認します。その時点で、彼はそれをブロードキャストするアリスに "uncensored" Bitcoin txを送信します。したがって、アリスはビットコイン・ファンドとして入金され、これは同時に交替取引を同時に検証する(これは原子点である)。
- ボブは、彼が十分に自信を持っていれば、彼の取引を再編成しないので、二倍の支出をすることができると確信しているだけです。これは、多くの取引先の確認が最初に来るべきであることを暗示しているかもしれないが、その間にそれぞれの取引がキャンセルされることになるかもしれない。
オペコードとaltchain特別ルール
bitcoinブロックチェーンで<b> txid </ b>(および<b> blankhash </ b>がtx bodyと等しい)が確認された場合、* <b> bitcointxid </ b>はtrueと評価されます(altchainクライアントはbitcoinそのための出力は、消費可能です(つまり、それが標準のtxであることを確認します)。
- ビットチェインに一致する<b> txid / blankhash </ b>がなくても、トランザクションはaltchainに含めることが有効な方法で構築されます
- ビットコインtxidがtxを「フリーズ」するまで(その時点で入力を消費し、その出力が消費可能になるまで)、その出力は消費可能ではなく、入力は別のtxによって自由に消費されます(私は知っています。
- オプションで、フリーズが発生するビットコインブロック#パラメータが存在する可能性があります(ビットコイン側の確認数を効果的に指示します)。
- インプットが複数回言及されるのは合法です。最初の(ブロックハイトオーダーでの)「凍結」勝ち、他の同じインプットコンシューマーが無効になる取引です。