
仮想通貨のアトミックスワップ(Atomic swap)とは?
アトミックスワップ(Atomic swap)とは、第三者を介さずに、ユーザー同士だけで仮想通貨のやりとりができる技術のことです。これにより、やりとり中に発生する可能性のある不正取引やハッキングを防ぐことができます。中央集権的ではないブロックチェーンのシステムをバックアップする次世代テクノロジーとして大きな期待が寄せられています。
アトミックスワップの特徴や仕組み、メリット、デメリット、そして実例をいくつか取り上げます。
特徴
- 第三者を必要としないトラストレスな環境で仮想通貨の交換が可能
- ハッキング被害や不正取引を防ぐ
- 異なる仮想通貨の取引ができる
- 匿名性の高い取引が可能
アトミックスワップの仕組み
まず、アトミックスワップで必要なものについてです。
必要なもの
・マルチチシグアドレス①と② → 金庫のような存在
・ユーザー2名(A子さんとB男さん)の各々の秘密鍵 → 金庫を開ける鍵
・ユーザー2名(A子さんとB男さん)の各々の署名
・A子さんが決めたパスワードと、そのパスワードをハッシュ関数で計算して導き出すハッシュ値(ハッシュ関数の元の値)
アトミックスワップを利用した通貨交換の方法
1. A子さんがB男さんにビットコイン(BTC)を送る場合……
A子さんがB男さんに送るためにマルチシグアドレス①にビットコインを送金する
2. B男さんがA子さんにライトコイン(LTC)を送る場合……
B男さんがA子さんに送るためにマルチシグアドレス②にライトコインを送金する
【第三者(取引所)の必要がない】
二人の間には、各々のマルチシグアドレスがあります。各々の仮想通貨は、一旦、この仲介役となるマルチシグアドレスに送られて保管されます。
この時のマルチシグアドレスは「オフチェーン※1」の状態です。
※1ブロックチェーンから離れたところで行われる取引記録のこと。ちなみに「オフチェーン」は「セカンドレイヤー」とも呼ばれる。
3. A子さんがB男さんからライトコインをもらう場合……
B男さんがマルチシグアドレス②に送金したライトコインをA子さんが取り出す
4. B男さんがA子さんからビットコインをもらう場合……
A子さんがマルチシグアドレス①に送金したビットコインをB男さんが取り出す
この時点でトランザクションが作られるため、「オンチェーン※2」状態に切り替わります。
※2 ブロックチェーン上での取引は「オンチェーン(レイヤー1)」と呼ばれる。
A子さんはビットコインをマルチシグアドレス①に送り、そのビットコインをB男さんが取り出す、あるいはB男さんはライトコインをマルチシグアドレス②に送り、そのライトコインをA子さんが取り出すわけですが、どちらの場合も、仲介にあるマルチシグアドレス①②には特殊なタイムロックであるHTLCが実装されています。
HTLCって?
Hasted Time Lock Contractの略で、仮想通貨を送金する前に経由しなければならない「送金システム」のことです。噛み砕いて言いますと、ユーザーは送金する前に、満たさなければならない“ある条件”が設定されたこの「送金システム」を解除しなければ、相手のユーザーから送金された仮想通貨を取り出せないということになります。
このHTLCの解除には「タイムロックの解除」と「ハッシュ関数の元の値の入力」が必要になります。
「タイムロックの解除」は決められた時間が経過すれば解除※になります。「ハッシュ関数の元の値の入力」はユーザの片方が持っています。ここではA子さんになります。
※ 送金時間がかかる原因の1つでもあります。デメリットで説明します。
1. 「A子さんがB男さんに送るためにマルチシグアドレス①にビットコインを送金する」
この場合、HTLCによるロックがかけられています。解除するには、以下の3つの条件のうちいずれかが必要になります。また、各々の条件によって送信先は変わります。
- A子さんだけがもつ「ハッシュ関数の元の値」とB男さんの「署名(ロックタイム)」(B男さんへ)
- A子さんとB男さんの署名(A子さんへ)
- 時間切れ(A子さんへ)
この時、B男さんが持っているのは署名だけです。B男さんがHTLCを解除しようとしても、A子さんだけが持っている「ハッシュ関数の元の値」がないとできないのです。また、決めれらた時間内にトランザクションが実行されなければ、ビットコインは元持ち主のA子さんに返金されます。
2. B男さんがA子さんに送るためにマルチシグアドレス②にライトコインを送金する」
この場合もHTLCはロックがかけられています。こちらも解除するには、以下の3つの条件が必要になります。
- A子さんだけがもつ「ハッシュ関数の元の値」とA子さんの「署名(ロックタイム)」(A子さんへ)
- A子さんとB男さんの署名(B男さんへ)
- 時間切れ(B男さんへ)
こちらも、解除する場合は、A子さんが持っている「ハッシュ関数の元の値」が必要になります。ここで、A子さんとB男さんは署名に必要な双方の秘密鍵を交換します。これでHTLCのロックは解除になります。ですが、このままではビットコインもライトコインもまだ相手には届きません。ビットコインはA子さんの元に、ライトコインはB男さんの元に返金されてしまいます。
3. 「A子さんはB男さんがマルチシグアドレス②に送金したライトコインを取り出す」
A子さんは、最初から「ハッシュ関数の元の値」を持っていますので、自分の署名と一緒にロックを解除してマルチシグアドレス②を開けられることができます。そしてB男さんのライトコインを取り出すことができます。
取り出す時は、A子さんがトランザクションを作るので、「オンチェーン状態」となり、ブロックチェーン上に記録が残ります。つまり、ここでブロックチェーン上での操作に変わります。
ここで、ようやく、B男さんもA子さんの「ハッシュ関数の元の値」を知ることができます。
【第三者(取引所)の必要がない】
4. 「B男さんはA子さんがマルチシグアドレス①に送信したビットコインを取り出す」
B男さんは上記で知ることができた「ハッシュ関数の元の値」を使い、自分の署名と一緒にマルチシグアドレス①のロックを解除してビットコインを取り出すことができます。
アトミックスワップの完了です。
暗号的なトリック HTLC
HTLCという、暗号的なトリックを用いた送金システムを、ユーザー間に取り入れることで、知らない者同士(信用のおけない者同士)でも種類のことなる仮想通貨を安全に送金、取り出すことができる仕組みなのです。
アトミックスワップのメリット
- トラストレスの状態で仮想通貨の取引ができる
トラストレスとは、「信用がほとんどない」という意味です。概して言えば、「信用が必要ない」の方が適していると思われます。「第三者という『信用を置く存在』を必要とせず、取引者同士だけでも、安全なやりとりができる」のです。 - 不正取引やハッキング被害といったリスクが減る
上記でも説明しましたように、HTLCでダブルロックがかかったアトミックスワップは、ユーザー同士の情報の共有が『事前に』ないと通貨の送金や取り出しが不可能なため、どちらかだけが「得」をすることはなく、不正やハッキングを防ぐことができます。。 - 異なる通貨同士での交換が可能になる
異なるブロックチェーン同士をつなぐことができるクロスチェーンを採用しているので、種類の違う通貨のやりとりが可能です。
アトミックスワップのデメリット
- 送金速度が遅くなる
アトミックスワップは途中からブロックチェーン上で行われるので、ブロックの生成時間が必要になります。またそれは取引所での交換よりもさらに時間がかかります。ビットコインの場合ですと、トランザクションの生成が10分に1回であり、現段階ではアトミックスワップ終了まで60分かかるとされています。また、取り込まれているHTLCも、送金が取り消しになると、タイムロックが解除されるまで待たなければなりません。 - 取引手数料がかかる
ブロックチェーン上の取引となると、マイナーへの手数料が発生します。アトミックスワップはビットコインで採用されているケースが多く、ビットコインがもつスケーラビリティ問題から考慮しても、手数料がさらに高くなってしまいます。 - 限られた通貨同士でのやりとりになる
アトミックスワップはトランザクションの生成において、互いに同じハッシュ関数を使用することになっています。現状では、さまざまな仮想通貨に実装できる段階ではありません。
実際にアトミックスワップを成功させた仮想通貨
ビットコイン、ライトコイン、モナコイン、ビットコインキャッシュ、イーサリアム、Vertcoin、Viacoin、Decred、Particl、Qtum、VIPSTAR COINなど
まとめ
2018年2月9日には、アトミックスワップ対応の分散型取引所「Altcoin,io」のスマホアプリが登場しています。アトミックスワップは非中央集権的なシステムで構築された仮想通貨の機能をさらにバージョンアップさせ、また種類の異なる通貨同士でも、自由に交換ができるボーダーレスな環境を提供する未来型テクノロジーであるといえるでしょう。