最近ビットコイン上でステーブルコインを発行してライトニングネットワーク上で送金できるようにしたいというプロジェクトが増えてきています。その中でも最大手ライトニングノード実装であるLndの開発元のLightning Labs社がTaroというプロトコルを推していて、存在感を示しています。

日本のライトニングノード運営者コミュニティであるDiamond Handsから近日中に発表するビットコイン上のトークン発行に関するレポートの執筆を通して興味深かったトピックの1つに、Taroが想定している"Pocket Universe"というライトニングネットワークとは別のアプローチでトランザクションを集約する方法がありました。

今日はTaroについて軽く説明した後にPocket Universeを紹介し、Taroチャネルとの特性の違いを解説します。最後にその特性を踏まえて、ビットコイン上のトークン発行の目的化を指摘します。

Taroとは

TaroとはLightning Labs社が春に発表したトークン発行プロトコルで、Taptree内でTaroアセットの残高情報にコミットするTaproot UTXOを生成し、これを入力として使用するビットコイントランザクションを通して出力される新たなTaproot UTXOへと残高を移転していく仕組みになっています。

コミットされる残高等の外部データは受取人が保管し、送金時に宛先に渡す必要があります。この外部データを使ってトランザクションを遡り、コインの来歴を検証するClient Side Validationという方式をとります。このため、第三者からは通常のビットコイントランザクションにしか見えず、Taro送金であることやアセットの種類・金額などが秘匿されます。

Taroアセットの移転はビットコイントランザクションそのもので行われ、残高を全て送金する際にもゼロ残高にコミットするUTXOの生成が必要なため、スケーラビリティはビットコインと同等以下です。このためか、ライトニングネットワークに接続するTaroチャネルを作成してオフチェーンで利用する構想があったり、Pocket Universeというトランザクション集約メカニズムが用意されています。

Pocket Universeとは

上記でTaroではTaproot UTXO内で残高情報等の外部データにコミットすると説明しました。この外部データには実は複数種類のアセットのそれぞれについて"Taro UTXO"とも言うべき残高が記録されています。同一アセットについてTaro UTXOはいくつでも存在でき、送金時に使用する"Taro UTXO"に対応する電子署名も必要になります。

なぜ"Taro UTXO"に対する署名が必要かというと、Pocket Universeという形で「1つのビットコインUTXO内で複数名のTaro UTXOを扱う」ことができるようにするためです。1つのビットコインUTXOの中で単一のユーザーが所有する複数のTaro UTXOを保管するメリットはほとんど考えられないためです。

Pocket Universeとは具体的には「オペレーター」がオンチェーンのビットコインUTXOの鍵を所有し、ユーザーが各自外部データ内の自身のTaro UTXOの鍵を所有しているトランザクション集約スキームです。Pocket Universeのオペレーターはユーザー同士の送金をオフチェーンで集約し、定期的にオンチェーンで最新状態をまとめてコミットすることができるため手数料を節約できます。

当然、オンチェーンでコミットされるまでは送金者とオペレーターが共謀して送金を巻き戻すことができてしまうので、ユーザー同士の送金について決済までの期間はオペレーターをトラストする必要があります。また、Pocket Universeへの入金や出金もオペレーターのパーミッションが必要で凍結されうるという、限りなくカストディアルに近い形態のトランザクション集約です。ただ、Taro UTXOの鍵自体はユーザーが握っているのでオペレーター等に横領されることはなく、今風に言えば「カストディ+Proof of Reserves/Liabilities」でしょうか。

ちなみに日本の規制では事業者が単独でユーザーの資産を動かすことさえできなければカストディにはならないので、実質的にはユーザーが事業者の許可なしに出金できなくても法的にはカストディではなさそうです。

Taroチャネルとどう違うか

ライトニングネットワークに接続したTaroチャネルは通常のライトニングと同様、マルチシグによる共同運営であり、トラストレスに利用できます。しかし、特定のアセット自体のネットワーク効果がある程度ないとそのアセットのTaroチャネル自体が少なく、開設しても使い道がないという状況も考えられます。

Lightning Labs関係者はTaroチャネルについて、既存のライトニングネットワークに接続してその流動性を活用し、離れた場所のノードにTaroアセットを送れる!という宣伝を頻繁にしています。ところが、この場合交換が2度発生することやフリーオプション問題から手数料が高くなったり、アセットによっては流動性がなさすぎて交換ノードがいないこともありえます。

以上のことから、Taroアセットのライトニングでの利用は発行体や取引所などのハブとなるノードに全員がつなぐような形態がほとんどになる可能性が高そうです。極端にハブアンドスポーク型のネットワークだとプライバシーは低下しますが、セルフカストディは維持できます。その代償として、取引所や発行体が運営するPocket Universeに対してはコスト高となる可能性があります。

TaroアセットとBTCの交換を通してライトニング自体がDEXのように利用できるようになることには期待できそうです。ただしこれが使い物になるケースは流動性のあるアセット、あるいはICOのように販売がされるアセットに限定されるでしょう。

ビットコイン上のトークン発行が目的化している

Taroはトークン発行に目的を絞った、比較的シンプルなプロトコルです。Dust limitの都合上、トークンの送金者がごく少額のBTCも送金する必要があることなど、現時点ではシンプルさの代償として妥協したとみられるような部分もいくつかあります。それにも関わらず、Pocket Universeという仕組みを用意したり、ライトニング対応を推していることから次のことがわかります:Lightning Labsはビットコイン上で発行されたトークン取引のコスト削減でTaroを差別化したがっているのです。

ところが、ビットコイン上でトークンを発行する動機は果たしてコスト削減なのでしょうか?ビットコインは決して「手数料が安いから選ぶチェーン」ではないはずです。

確かにライトニングはビットコイントランザクションを集約し、送金手数料を節約できるテクノロジーです。しかし、ほとんどのアセットにとってライトニング利用が現実的な程度のネットワーク効果を得ることは簡単ではありません。そして凍結はありえるが盗難はされない、Proof of Reservesつきの手数料が激安なPocket Universeに満足するユーザーがどちらを選ぶかは明白に思えます。

手数料の安さが魅力であるならオペレーターはオンチェーンへのコミットメントの間隔を週に1回、月に1回、年に1回と伸ばすことでユーザーの支払う手数料を安くし、自身の出費も減らせます。Pocket Universe自体のネットワーク効果も考えるとこうなるインセンティブは強く、究極的には完全に中央集権化された台帳を稀にオンチェーンにコミットするトークンが出来上がります。

確かに大半のトークンはこれでいいと思いますが、最終的にここに行き着くなら最初からビットコイン上でやることを売りにする必要はあるのでしょうか?

個人的にはビットコイン上でのトークン発行が目的化しており、その正当化のためにライトニングを利用し、資金調達をしたという穿った見方もあながち間違っていないのではないかと感じてしまいます。Taroでトークンを発行して面白い実験をすることはできるようになるでしょうが、あくまでShitcoin Technologyだと認識し、ビットコイン自体にとって有益な技術を優先していきたいです。