ビットコインで話題の新レイヤー2「Ark」はどのような技術なのか
読者の皆さんはちょうど昨年のこの時期にBurak Keceli氏がBitcoin 2023カンファレンスで「Ark」として正式に発表したレイヤー2の話題を覚えていらっしゃるでしょうか?
今年の5月29-31日に開催されたBitcoin SeoulカンファレンスでArkの開発者のうちの1人(Steven Roose氏)による発表と質疑応答の時間があり、ようやく自分の中で内容の整理がつきました。発表当初と少しデザインが変わった部分もありますが、今日はArkの仕組みについて軽く解説してみようと思います。
・コベナンツを前提としたArkの仕組み(図説)
・少し仕組みを変えて現在稼働しているArkもある
・おまけ:コベナンツではないが、相続を念頭に置いたウォレットLianaが面白い
コベナンツを前提としたArkの仕組み(図説)
Arkはコベナンツを使ってASP(Ark Service Provider)と呼ばれる、いわゆるロールアップにおけるシーケンサーやサイドチェーンにおけるブロックプロデューサーにあたる事業者が、利用者のコインについて完全なカストディを得ることなくオフチェーンで状態を更新していくレイヤー2です。この時点では漠然とした表現ですが、なんとなくのイメージがつかめるでしょうか。
コベナンツについては、開発者コミュニティ内で次のソフトフォークの期待テーマとして去年大きな話題となったため、昨年末の記事で少しカバーしています。また、他にも以前の記事で触れているのでぜひ合わせてご覧ください。ちなみに、下の記事にはArkについても触れています。
記事を読まなかった方のために短く説明すると、コベナンツは「ビットコインを使うときのトランザクションの内容」を限定する技術です。例えば現在、シングルシグ、マルチシグやタイムロックなどを使って「誰がビットコインを使えるか」「いつビットコインを使えるか」は限定することができますが、使うときのトランザクションの内容までは制限できません。「このアドレスにしか送金できない」「使うときは必ずこの送金先・金額で使う」「事前に作成したこのトランザクション内容以外は認めない」のような制限を課すのがコベナンツです。
これがあることで、UTXOを作成した時点でそれがどう使われるか確証が得られる(コベナンツの内容は二重支払いなどで回避できないように作成できる)ため、レイヤー2の設計にも革新や簡略化をもたらすとされています。
さて、Arkの発表当初は「継続的なミキシングのような仕組み」「5秒に1回状態を更新」など混乱しそうな内容で説明されていましたが(そして実際に引っかかるポイントが多数ありました)、現在は色々な判断から設計がかなりシンプルになったようで理解しやすくなりました。さっそく解説を試みます。
まず、Ark Service ProviderはArk内におけるユーザーの残高をそれぞれのユーザーにオフチェーントランザクション内のUTXO(virtual TXO = vTXOと表現されることが多くあります)として与えたいので、オフチェーンでコベナンツを使ったトランザクションのツリーを作成します。
例えば以下の図では横線の下にあるトランザクションがこのツリーのてっぺんで、それぞれのノード(トランザクション)はUTXOにコベナンツを課すことで必ず次のノードを使ってしか展開できないように作成されています。これをたどると、AliceというユーザーのvTXOへとつながります。
ASPはこのツリー自体にオンチェーントランザクションを通してコミットします。いざとなった場合、ユーザーが自分のvTXOへとつながるトランザクションのツリーをオンチェーンに投げることで単独で脱出できるようにするためです。

ただ、一般的にはASPはオフチェーンのツリーを定期的(10分ごと、1時間ごとなど)に更新するため、ユーザーはオンチェーンに復帰する必要はありません。Ark外に送金する場合も、おそらくASPがゲートウェイとなるイメージになります。
この定期間隔(Round)を待たずして仮決済がほしければ、Out-of-Round Paymentと呼ばれるものを行います。これは単純に先ほどのAliceのvTXOを使ったビットコイントランザクションを送金相手に渡すものです。(下記図)
ただし、この段階では理論上はAliceが別のユーザーにも同じvTXOを使ってOOR Paymentをしている可能性があるので、Zero-confと同じような扱いです。

OOR PaymentはASPに渡せば次のRoundでツリー内の残高に反映され、このオフチェーントランザクションは消えます。(下記図)

また、図では省略しましたがAliceのUTXOは((Alice + ASP) OR (Alice after 24h))という使用条件になっていたり、その直前のコベナンツは(Covenant OR (ASP after 4w))になっているなど、ユーザーがASPと協力するインセンティブに注意して設計されている印象です。
ざっくりとした説明となりましたが、Arkの基本的な仕組みはこのようになっています。利用時の手数料や資金効率、ASPに求められる負担などに関する話は最近も変わっているようで、Bitcoin Seoulのパネルにおいても他のパネリスト(Lightning Labsのroasbeef氏、FediのObi氏など)も混乱していたため、将来的に話がまとまったらまた紹介させてください。自分も混乱しています。
少し仕組みを変えて現在稼働しているArkもある
さて、現在ビットコインにはコベナンツはありませんが、Covenant-less Ark (clArk)と呼ばれるマルチシグ(FROST?)によってコベナンツをシミュレーションしたものが存在します。
clArk自体はArkの有用さを実証するための過渡期の技術なのであまり注目する必要はありません。マルチシグの利用によってオンライン要求が厳しいなど、不特定多数が使うのに向いた技術ではないです。しかし、最近のビットコイン開発のトレンドの1つとして「ソフトフォークの支持を広く得るにはProof of Concept(技術実証)が必要なのではないか」という流れがあり、その1つの形と考えられます。
他にもBitcoin InquisitionやCustom Signetなどを使って、欲しい機能をビットコインに追加したテストネットワークを公開することも増えています。やはり机上の空論より触れるプロダクトがあるだけで説得力がかなり増し、それほど技術的ではないユーザーにも伝わりやすいのでこれからもトレンドとして継続していくでしょう。
(OP_CTVもけっこうそのあたり頑張っていた割に反発していたので、結局普通のユーザーはお気に入りのインフルエンサーの発信を信じるだけかもしれませんが…)
Bitcoin Inquisitionについては↓
おまけ:コベナンツではないが、相続を念頭に置いたウォレットLianaが面白い
Arkとは全く別の話題ですが、Bitcoin Seoulで面白いなと思ったプロダクトはLianaでした。過去にとっても小さく触れていましたが、相続を念頭に置いたビットコインウォレットです。

ビットコインの相続を念頭に置くと家族とシードフレーズを共有するか、マルチシグを使うか、取引所を使うか…など選択肢がたくさんあり、どの手段を選択するかによって様々なトラブルに遭遇しえます。
もちろんLianaは法的なトラブルに対処することはできませんが、Lianaの開発者が最善と思ったプロダクトが、現在使える形で出ていることに感心しました。
具体的には、日常使い用のシードフレーズと、Relative Timelockによってコインを受け取ってから1年後に使える権限がもらえるシードフレーズに分け、後者のシードフレーズは家族に保管してもらい、自分は普段はLianaを使うことで受け取ったコインを1年以内に動かしている限り勝手に家族にカストディを奪われない、というものです。
自分の管理するシングルシグにバックアップ用の別のシードフレーズを加えるというシンプルなアイデアが良いなと思いました。
ただし、アイデアはシンプルでも一般的でないScriptを使ったウォレットのため、Descriptorの共有も必要になります。Descriptorを共有すると自分の使っている様子のプライバシーはなくなってしまうので、Descriptorをどう扱うかに微妙な判断が必要かもしれません。(見られても問題ないなら共有する、見られたくないなら死ぬまで弁護士のような人に預けるなど。Lianaは有料サービスで預かってくれるようです)
また、Miniscriptに対応しているハードウェアウォレットが必要なので、そこの選択肢も限られます。(Ledger, Coldcard, Bitbox, Specter DIYのみ)
以上、Bitcoin Seoulで特に印象的だった収穫を共有させていただきました!
次の記事
読者になる
一緒に新しい世界を探求していきましょう。

ディスカッション