【ライトニングネットワーク上でのアトミックスワップ】解説記事

注目が集まるライトニングネットワーク(Lightning Network)とアトミックスワップ(Atomic Swap)

Segwitのアクティベート以来、ビットコインブロックチェーンの署名格納方法が変更されたことで、異なるブロックチェーン間で暗号通貨(仮想通貨)レートに応じて同量のトークンを交換する「atomic swap(アトミックスワップ)」に注目が集まっていました。2017年11月16日、Lightning Labsはライトニングネットワークのテストネット上で、bitcoin(ビットコイン)とLitecoin(ライトコイン)のクロスチェーン・アトミックスワップに成功したことを発表し、大きな注目を集めています。今回の記事では、アトミックスワップとライトニングネットワークの概要、ライトニングネットワーク上のスワップについて説明していきます。

アトミックスワップとは?

そもそもクロスチェーン・アトミックスワップとはなんでしょうか。簡潔に説明すると、この言葉は「それぞれ異なるブロックチェーン上にある資産を、ブロックチェーンをまたがって交換を行うこと」を指しています。これは、トランザクション(取引)の「原子性」が保障されたときに、初めて可能となるため、「アトミックスワップ(原子的な交換・両替)」と呼ばれています。

原子性とは?

ここでいう原子性とは、なんでしょうか。コンピュータ・サイエンスの分野において、トランザクションシステムが持つべき4つの性質を総称した【ACID特性】というものがあります。このACIDのA(Atomic)に該当するのが、原子性になります。

トランザクションの「原子性」がある状態とは、トランザクションのプロトコルが「AさんとBさんの資産の交換が成功に終わる」、あるいは「AさんとBさんの資産の交換がまったく行われない」という2つの状態のみに収束している状態のことです。すなわち、原子性がある状態では、すべての取引は「All or Nothing」に帰結します。この状態がシステム上で保障されていることで、「AさんがBさんにお金を渡したけれども、Bさんからは何も返ってこなかった」という、資産交換時に相手に持ち逃げされる「リスク」を回避することができます。トランザクションの原子性は、お互いに信頼関係がないプレイヤーの間で取引を行う場合、必須の要件となってきます。

あらためて、ライトニングチェーン上のアトミックスワップとは?

ここまでアトミックスワップとは何か、について説明して参りました。ここからは、ライトニングチェーンなどのシステムの部分について、理解を深めていきたいと思います。

今回のライトニングネットワーク上でアトミックスワップが成功したというニュースが話題になっているのは、異なるブロックチェーン間で価値を交換できる技術が実証されたという点もありますが、それ以上に、ライトニングネットワークを利用することによって得られる魅力的なメリットが複数あるから注目されているのだと考えられます。

ひとつは、取引スピードが向上すること。二つ目には、プライバシーが向上すること。そして三つ目には、取引手数料が低下することが考えられます。既存の暗号通貨の取引所は、そのどれもが中央集権的に運営されていますが、アトミックスワップが今後ますます発展すれば、ライトニングネットワーク上に管理者不在の新たな取引インフラが完成する可能性があります。

オンチェーン・スワップ

 

※引用元:Connecting Blockchains: Instant Cross-Chain Transactions On Lightning

ライトニング・ネットワーク上は、オンチェーン・スワップという概念の上に形成されています。ライトニングチェーン上でのスワップを理解するために、まずはじめにオンチェーンで行われるスワップ(ブロックチェーン上に、価値を交換した記録を残す形式のスワップ)について、理解していきたいと思います。

オンチェーン・スワップのプロトコルは、①セットアップフェーズと、②クレーム(請求)フェーズという2つのフェーズによって成り立っています。はじめのセットアップフェーズにおいては、取引に参加しているAさんとBさんの両者とも、いつでも自由に取引を中断することができます。しかし、請求フェーズに突入すると、AさんとBさんのコインは即座に、かつ不可逆的に交換されます。一度こうなった場合、他方のコインを引き出すことのみ可能になり、元々手元にあったコインを取り戻すことは不可能になります。

①セットアップフェーズ

セットアップフェーズでは、AさんとBさんそれぞれ資産が持ち逃げされるというリスクを回避し、安全性を高める手続きをします。まず初めに、デジタル暗号通貨を別の暗号通貨と交換したいAさんが、32バイトのランダムな文字列「X」を生成します。ここで生成されたXは、この時点ではまだ、Aさん以外の誰にも公開されていない状態です。以下、このランダムな文字列XをハッシュXとします(ハッシュXは、SHA256などのハッシュ生成機能を用いて生成されると思ってください)。

次にAさんは、ハッシュXで鍵をかけた、時間制限つきの「債権取引契約」を生成します。この時間制限つき契約は、Aさんの所有している1BTCをBさんに対して公開しますが、その際下記2条件のうち、どちらかひとつを満たした場合のみに、Bさんが引き出せる状態に移行します。

その条件とは、【①BさんがAさんの1BTCを、ハッシュXを使って開錠する。】【②ハッシュXによって開錠されないまま48時間が経過した場合、Aさんの口座に1BTCが全額返金される。】のふたつです。すなわち、AさんがBさんに48時間以内に、開錠する鍵である「ハッシュX」を与えた場合、Bさんは自由に1BTCを引き出すことができる、ということです。

Aさんの1BTCの対価である「Bさんの10LTC」を受け取る前に、BさんがAさんの1BTCを持ち逃げするのを未然に防ぐために、はじめにAさんとBさんの両者が【Aさんの1BTCを、Aさんが管理できる場所に保管するトランザクション(Aさんの口座に返金するトランザクション)】に署名をします。このステップがなければ、Bさんは交換フェーズにおいて、マルチシグネチャー(AさんとBさんで行う共同署名)を行わずに、一方的にAさんの1BTCを持ち逃げすることができてしまいます。このトランザクションが発生してから24時間以内に交換が行われなかった場合には、Aさんの元に1BTCが全額返金されます。

次に、Bさんの10LTCが安全に取引されるように、同じくハッシュXに保護された、債権取引契約を生成します。そしてAさんと同様の手順を踏んで、【Bさんの10LTCを、Bさんが管理できる場所に保管するトランザクション】に署名をします。Bさんの場合、1点を除いてAさんと同様の手続きを踏みます。その1点とは、Aさんとは異なり、Bさんの全額返金が行われるまでの時間が、48時間ではなく24時間となっている点です。この相互に資産をロックインする手続きが、プロトコルの安全性を保つために欠かせないこととなっています。

セットアップフェーズは、Aさん、Bさんそれぞれが利用しているブロックチェーン上のトランザクションが承認されると、終了します。

②請求フェーズ

この時点ではまだ、Aさんのみが32bitのハッシュXの値について知っています。Aさんは24時間以内であれば、Bさんが交換にだしている「ハッシュXによって保護されている10LTC」を、ハッシュXで開錠することで、いつでも自由に引き出すことができます。一方で、BさんはハッシュXについて知っていませんが、48時間以内(すなわち、Aさんが24時間のタイムリミットぎりぎりに開錠してから、24時間以内)であれば、いつでもハッシュXで1BTCを開錠して、引き出すことができます。

仮にもしここで、Aさんが10LTCを引き出さずに何もしないことを選択すれば、すべては白紙に戻ります。残る最後の疑問は、AさんがいつハッシュXを公開するのか?ということです。

ここで重要になってくるのが、「24時間以内にBさんの資産が開錠されなければ、資産がBさんの手元の口座に返金される」ということです。もしAさんがハッシュXを「24時間が経過した後」に公開したとしたら、Bさんは10LTCの返金を受けたあとに、Aさんの1BTCを受け取ることができてしまいます。つまり、Aさんが10LTCを受け取りたくば、24時間以内にXを公開せざるを得ないのです。これによって、BさんはハッシュXを使ってAさんの出した1BTCを受け取るまで、十分な時間を得ることができます。このように、AさんはBさんのそれぞれが、交換したい資産にハッシュXという同じ鍵をかけて、相互に開錠しあうことで、異なるブロックチェーン間で資産を交換することが可能となっています。

オンチェーン・スワップをより便利にするには…?

オンチェーン・スワップの結果は、「AさんがハッシュXを使ってBさんの資産を開錠する」瞬間に決定されます。このハッシュXは、Aさん(取引の片側の参加者)がスワップの事前に生成しています。すなわち、このトランザクションに要する時間は、AさんがBさんに対して、32バイトの文字列「X」をいかに早く送るか、という部分のみに依存しているため、取引所を用いたブロックチェーン上の両替と比べて、はるかに高速でトークンの交換処理をできることが見込まれています。

となると、次に重要となってくるのは、このハッシュXを素早く送信するための、分散処理型高速ネットワークの存在です。

それが、これからお話するライトニングネットワークです。ライトニングネットワークのシステム内部では、HTLC(Hashed Time-Locked Contract )という特殊なペイメント方式を使用しています。HTLCは、先ほど説明したものとよく似たシステムによって構成されています。すなわち、「資産移動にタイムリミットを設けることで安全性を確保し、取引参加者の一方が事前に設定したハッシュ関数を、取引時に公開することで原子性を保ったまま資産を移動する仕組み」が、HTLCにも用いられているということです。事実、プログラムのスクリプトレベルで異なっているのは、1つの要素のみです。それは、両者ともトランザクションに協調的(互いを信用している)である場合に、トランザクションチャンネルの寿命を延長する(取引チャンネルを開いたままにし、ノードとノードの過去の取引実績を構造化する)、ということです。

ライトニング・ペイメント概要

※引用元:Connecting Blockchains: Instant Cross-Chain Transactions On Lightning

ここでは、ライトニング・ペイメントを簡略化したものについて説明します。今回説明するライトニング・ペイメントチャンネルでは、2つビットコインネットワークを経由します。すなわち、AさんからBさんを経由して、Cさんへとビットコインを届けます。ペイメントが成功すると、AさんのBTCの残高から減った分が、Bさんの残高には変化を起こさず、減った分がCさんの残高に追加されます。

ライトニング・ペイメントは、Cさんが文字列Xを生成したのち、AさんにハッシュXを送ることからはじまります。次はセットアップフェーズに移行します。ペイメントの拡張ルートが確定したら(AさんからCさんまでを結ぶ線、すなわちBさんが見つかったら)、AさんからCさんまで順番に、ハッシュXを用いて、先ほどと同様に資産保護のためのタイムロックをかけ、トランザクションの原子性を確保します。

ここで忘れてはいけないことが、Aさん、Bさん、Cさんの順に、タイムロックのリミットが小さくなっていく、ということです(先ほどのAさんが48時間、Bさんが24時間のリミットを持っていたのと同様です)。これによって、オンチェーン・スワッププロトコルのときと同じように、AさんがハッシュXを用いてCさんの資産を開錠することを促します。

資産の安全が確保されたあとは、ペイメントのフェーズへと移行します(先ほどの請求フェーズと同様です)。実行するにあたり、CさんはBさんを経由して、AさんまでハッシュXを送ります。ここでは、AさんがハッシュX(=資産を開錠できるパスワード)をBさんから受け取った瞬間に、ペイメントの成功が確定します。なぜなら、BさんがCさんと過去に資産のやりとりをしたことがなければ、ハッシュを得ることはできないからです。このように、「過去に一度、取引を成功したことがある相手(信頼できる相手)」を数珠つなぎのようにして、直接的に信頼関係がない2者の間でペイメントを成立させる仕組みが、「ライトニング・ネットワーク」による、「ライトニング・ペイメント」です。

ライトニング・スワップ

※引用元:Connecting Blockchains: Instant Cross-Chain Transactions On Lightning

ここまで、オンチェーンのスワップとライトニングペイメントの類似性について述べてきました。ここからは、ライトニングネットワークがどのようにオフチェーンかつクロスチェーンのスワップに利用できるかを述べていきます。

上記に記されたライトニング・ペイメントの状態では、資金の流れは一方通行であるため、Aさんは資産を受け取ることができません。これでは、トランザクションの両端にいる者が、それぞれ何かしらのものを得る「スワップ」と呼ぶことはできません。この問題を解決するために、Lightning Labsでは、Aさんを起点に循環ルートをつくることで、解決を図りました。すなわち、Aさんはトランザクションの元でもあり、行先でもあるという状態です。

Aさんがビットコインを送金し、代わりにライトコインを受け取るには、Aさんが2つのブロックチェーン上にオープンなチャンネルを保有していることが必要になります。最も単純な例は、AさんとBさんの両方がそれぞれのブロックチェーン(BTC、LTC)にチャンネルを持っている状態です。これはすなわち、ふたりともブロックチェーンをまたがっていて、トランザクションの起点と終点を兼ねていさえすれば、AさんとBさんの間に直接的な信頼関係(直接的な過去の取引実績)がなくとも問題ない、ということです。

ペイメントを実行するとき、行きのルートでは、AさんからBさんまでビットコインが運ばれていく一方で、帰りのルートでは、BさんからAさんにライトコインが運ばれてきます。ここで交換されるビットコインとライトコインの比率は、暗号通貨の為替レートに依存します。こちらもライトニング・ペイメントのもつ原子性により、アトミックスワップであるため、取引は成功か失敗かの二択に収束し、トランザクションの安全性が保たれています。これが、今回話題になっていた「ライトニングチェーン上のアトミックスワップ」の全貌になります。

 

アトミックスワップによって変化する既存の構造

以上、かなり複雑でしたが、ご理解いただけましたでしょうか。ライトニングネットワーク上でのアトミックスワップの成功は、今後のブロックチェーンビジネスを左右しかねない大きな出来事だと認識しています。まだまだテスト段階ではあるとのことですが、今後はビットコインとライトコインに限らず、様々な通貨ペアでこの技術が実用性が検証されれば、さらに低い取引手数料で、より高速な送金・両替取引が実現していく可能性があります。この技術は、現在の中央集権として機能しつつある暗号通貨(仮想通貨)の取引所の在り方までをも変える可能性があり、理解しておくことが重要だと考えられます。またアップデートがあり次第、BBCでもお知らせしていきたいと思います。今後の動向に引き続き注目です。

この記事をシェアする:
BBC編集部
About BBC編集部 253 Articles
ブロックチェーンビジネス研究会(略称:BBC)編集部です。海外の業界ニュースや、ブロックチェーンや暗号通貨について基礎的な内容を発信していきます。