VTXOから紐解くArkの仕組み|ビットコインのオフチェーン決済技術
皆さんはArkについてどんなイメージを持っているでしょうか。Arkという単語は聞いたことがあるけれど実態はよく分からなかったり、何かLightning Networkと関連していそうといった漠然としたものだと思います。
本稿では、Arkの基本的な構成要素の1つであるVTXOについて解説を行い、Arkのイメージを掴むことを目的にしています。今まで影も形もなく漠然としていたイメージを鮮明にできたら幸いです。
なお注意点としてArkには共通の仕様というものがないため、Second社のBarkの実装を元に解説しています。あくまで一例として概念を理解するためのものであり、将来変わる可能性があるということを念頭に読んでください。
本題に入る前に、Arkにおける前提知識をご紹介します。
LNの課題を解決するArk
Lightning Network(LN)が登場した2018年以来、ビットコインのスケーラビリティ問題の解決としてオフチェーン決済が広く普及してきました。しかし依然としてLN上に個人のノードを建ててチャネルを開通し、Lightning決済を行っている人は少ない印象です。
ノードを建てない理由としてチャネル管理やInbound Capacityの獲得、手数料の設定などマネジメントをしなければならないという煩雑さがあるのではないでしょうか。
複雑な設定を回避して、高速で低手数料なオフチェーン決済を可能にし、LNとも接続して送受金する事ができる技術がArkです。
Arkの仕組み:ASPとノンカストディアル
実態としてはASP(Ark Service Provider)と呼ばれるサーバーに、ビットコインを預けることでオフチェーンで決済ができる仕組みになっています。
「ASPが資金を盗む可能性があるのでは?」と心配になる方もいると思いますが、BarkではEmergency Exitと呼ばれる仕組みがあります。Emergency Exitでは仮にASPが不正な行為をしたとしても、ビットコインをいつでも自分の手元に出金が可能になるためノンカストディアル(ビットコインがユーザーの管理下にある)に該当します。
また、ASPが仮に不正な行為をした場合は分散ネットワークにより噂は即座に広がるため信用は失墜し、ASPの運用は立ち行かなくなります。その上Emergency Exitによりユーザーの資金を盗むことも不可能なため、ASPが不正を行うメリットはありません。
それでは、本題のVTXOについて解説していきます。
VTXO(Virtual Transaction Output)とは
VTXO(Virtual Transaction Output)は、Arkにおける基本的な構成要素の一つです。ビットコインにおけるUTXOと同じように、ArkではVTXOによって残高を保持して、決済を行うことができます。
UTXOについて知らない方は以下の記事をご覧ください。
VTXOは日本語では「仮想的トランザクション出力」と直訳できますが、どう仮想的なのでしょうか。まずは以下の図をご覧ください。

こちらはクワッドツリー(四分木)をイメージした図になっています。実際にはそれぞれ枝が4本ずつ分かれていますが今回は見やすいように簡略化しています。
Barkではクワッドツリーにおける頂点(ルート)のみが1つのUTXOとしてオンチェーン上に存在します。そしてオンチェーンでは1つのUTXOとして見えますが、中身は複数人がビットコインを共有しており、クワッドツリーの構造をしています。つまり、オフチェーンでそれぞれ枝分かれしている1つ1つがUTXOであり、仮想的な存在であることからVTXOと呼ばれています。
ここで一度立ち止まって整理をします。ブロックチェーンでは1つのUTXOが見えますが内部の構造をみると何百人が仮想的にUTXOを共有した構造になっているというイメージがわかれば大丈夫です。4本ずつ枝分かれしているので、例えば5層になっただけでも4の5乗で1024人がビットコインを共有しているというイメージです。
Barkの実態はクワッドツリーですがここからは説明をしやすくするためバイナリツリー(二分木)を用います。

オンチェーンに唯一存在するツリーの頂点の事を「ルート」、ツリーの中間を「ブランチ」、そしてツリーの末端を「リーフ」と呼びます。
この図を例にしてVTXOのイメージを膨らませていきます。まずは8人でビットコインを共有する場面を想像してください。ルートでは1つのUTXOですが、ブランチでは4人ずつで共有したVTXOになり、その次の枝では2人ずつで共有したVTXOとなります。そして、リーフに存在する8つのVTXOが各個人のビットコインに対応しています。
余談ですがArkにおいてコベナンツという仕組みが話題になっているのは、コベナンツが送金先に制約をかけることができるため、ツリー構造の設計に革新や簡略化をもたらすことができるためです。詳しくは以下の記事をご覧ください。
定期更新イベント:ラウンド
VTXOには有効期限が存在し、Barkでは約30日と定められています。ArkではASPが流動性(ビットコイン)を提供してオフチェーンで決済を行うという構造をしている都合上、ユーザーが永遠にVTXOを保持したりGOXするとASPに不利益が生じます。そこでVTXOに有効期限を設定して、期限切れのVTXOに関してはASPがオンチェーンで回収できる仕組みを採用しています。

ユーザーはVTXOの有効期限を更新する必要があり、ASPが定期的に開催しているイベントに参加することで古いVTXOを破棄して、新しいVTXOを獲得する「リフレッシュ」ができます。この定期開催のイベントのことを「ラウンド」と呼び、Barkでは約1時間に1回開催されています。
ユーザーはこのラウンドに毎回参加する必要はなく、有効期限が切れる前に参加すれば大丈夫です。
3種類のVTXO
ここからはArkにおいてVTXOがどのようにやり取りされているかを説明していきます。今回は説明のためトランザクションの種類によってVTXOを分類します。(分類の参考:Second)
- Board VTXO:ユーザーがArkへ初めて参加する際に作成されるVTXO
- Refresh VTXO:有効期限切れを防ぐため、ラウンド内でリフレッシュして得られるVTXO
- Spend VTXO:ラウンドを待たず即時送金時に作成されるVTXO
まずはBoard VTXOから見ていきましょう。
Board VTXO
あるユーザーがArkを利用するためにビットコインをASPに預けた場面を想像してください。このときVTXOは以下の図のように作成されます。

Board VTXOは、ユーザーが初めてビットコインをArkに移動する際に作成されるVTXOの事です。ユーザーは1人しかいないため、ビットコインを他のユーザーとは共有せず、リーフに1つのVTXOが作成されます。
作成されたVTXOはいつでもオンチェーン上に戻すことができるためトラストレスに扱うことが可能です。具体的には「ルート」から「リーフ」にかけてブロードキャスト(オンチェーンにトランザクションを公開)することでオンチェーンでビットコインを受け取ることができます。
デメリットとして現状トランザクションツリーにユーザーが一人しかいないためオンチェーン手数料を全て請け負う必要があります。そこで有効期限の内にリフレッシュを行うことで、複数のユーザーとUTXOを共有するトランザクションツリーに参加します。
Refresh VTXO
ユーザーはラウンドに参加してリフレッシュをすることで、複数人とビットコインを共有したツリーに参加できます。

こちらの図はユーザーが新たに参加したツリーの全体像です。ユーザー自身のビットコインはリーフのVTXOであり、ルートやブランチはビットコインを共有している状態を表しています。
Refresh VTXOは、期限切れが近いVTXOをリフレッシュする場合やSpend VTXOのセキュリティを向上させたい場合(次のSpend VTXOの項目で解説)に、Arkサーバーのラウンド中に作成されます。
作成されたVTXOもBoard VTXO同様「ブランチ」「リーフ」とブロードキャストすることによりビットコインをいつでもオンチェーンで受け取ることができます。ここでBoard VTXOの時との違う点は、オンチェーン手数料を全て請け負う必要はなく、ユーザー自身のリーフからブランチを経由してルートまでの道筋に存在するVTXOのトランザクション手数料のみで済む点です。また別のユーザーが既にブロードキャストしたトランザクションの手数料は払う必要はありません。
Spend VTXO
同じツリー内での資金のやり取りはどうなっているでしょうか。以下の図をご覧ください。

上の図は、AliceのVTXO(右下のリーフ)からBobへの送金を表しています。Arkサーバー内での送受金は、既存のリーフからVTXOが枝分かれするように派生します。
Spend VTXOとは、同じArkサーバー内でユーザーが支払いを送信する際に即座に作成されるVTXOです。arkoor(Ark out-of-round)という技術を利用することで、次のサーバーラウンドを待たずに即時送金が可能になります。
ただし、作成されたSpend VTXOにはセキュリティ上の懸念があります。BobがAliceからSpend VTXOを受け取った場合、ASPとAliceが共謀することで、その送金をなかったことにできてしまうのです。つまりBobは、ASPかAliceのどちらかを信用しなければならない状態に置かれます。
このセキュリティ上のリスクを解消するために、Bobはリフレッシュを行うことが推奨されます。リフレッシュにより新たなVTXO(Refresh VTXO)を取得することで、信頼モデルがBoard VTXOと同等の完全なトラストレス状態に戻ります。
Lightning Paymentについて
Ark内のビットコインのやり取りは同じサーバー内でないと行えないため、Arkの利用者が増えるまではLightning Paymentが主流になると考えられます。このときArk ServerはLNを繋ぐゲートウェイの役割を担い、ユーザーがLNの煩雑な設定を行う必要はありません。

こちらはLightning Paymentのイメージ図です。AliceがLNで決済を行おうとする場合、Ark Serverを通じてLNとやり取りをすることが可能です。このときAliceのリーフに存在するVTXOを用いてArk Serverと通信を行います。
Lightningの送受金においてアトミックな決済を行うためにArkではHTLCが使われており、arkoor転送の仕組みで新たなVTXOの枝が生えることによりArk残高が反映されます。
送金においてはルーティング手数料・流動性手数料・ASP運用手数料の3つが課されますが、Barkでは受金について今のところ無料で行えます。ただ厳密な手数料は現在策定中のため今後変わる可能性が高いです。
まとめ
本稿ではArkの基本的な構成要素であるVTXOについて解説しました。
Arkは、LNのような煩雑なチャネル管理を必要とせず、ASP(Ark Service Provider)にビットコインを預けることで高速・低手数料なオフチェーン決済を実現する技術です。Emergency Exitの仕組みによりノンカストディアルが担保されており、ユーザーはいつでも自身の資金をオンチェーンに引き出すことができます。
Arkの核となるVTXOは、オンチェーン上では1つのUTXOに見えますが、内部はツリー構造により複数ユーザーでビットコインを共有する仮想的なUTXOです。本稿では、用途に応じて以下の3種類に分けて説明しました。
- Board VTXO:ユーザーがArkへ初めて参加する際に作成されるVTXO
- Refresh VTXO:有効期限切れを防ぐため、ラウンド内でリフレッシュして得られるVTXO
- Spend VTXO:arkoorの技術により、ラウンドを待たず即時送金時に作成されるVTXO
また、Ark利用者が十分に増えるまではLightning Paymentが主流になると見込まれ、Ark Serverがゲートウェイとして機能することでユーザーはLNの複雑な設定から解放されます。
Arkは共通の仕様がない発展途上の技術ですが、LNの課題を補完する有力な選択肢として今後の動向に注目が集まっています。
次の記事
読者になる
ビットコイン研究所の新着記事をお届けします。

ディスカッション