皆さんは様々なウォレットを試してみた結果、細かい資金が分散してしまったことはありませんか?少なくとも私は20個近くのライトニングウォレットを試したことがあり、そのうちいくつかには未だに少額の残高があります。(もう使わないだろうなと思ったときだけ全額を別のウォレットへと移すため。)

ところがこのように資金が分散すると、いざ送金したいときに困る場合があります。例えば10万sats送金したいのに、ウォレットAに7万sats、ウォレットBに5万sats、ウォレットCに4万sats…というふうに、組み合わせたら送れるのに1つのウォレットからは送れない場合です。こういうときは一段階目としてまず自分自身の資金を1箇所にまとめる送金をしてからライトニング送金するという面倒な手順を踏むことになります。

しかし、自分から自分への送金というのは無駄でしかありません。直接複数のウォレットから1つのインボイスに対して分割送金できないのでしょうか?

まさにその発想で生まれたコンセプトがECashのオープンソース実装であるCashuで今後使えるようになるMultinuteral Paymentsです。

・ライトニングのマルチパスペイメント(MPP・AMP)とは

・複数のウォレットのユースケースよりはCashuとの相性が抜群

・CashuはカストディアルLNウォレット規格の1つの未来かもしれない

ライトニングのマルチパスペイメント(MPP・AMP)とは

ライトニングにおける送金の一番基本的な形は、1つのインボイスに対して送金者から宛先ノードまでの経路を1つ決め、送金額全額を1つのHTLCとしてバケツリレーしていくものです。

ところが、各ライトニングチャネルの送金額こそ公開情報ですが、その金額のバランス(どちらかのノードへの偏り)はそのチャネルを共有している2つのノードしか知りません。そのため、試行してみた結果送金ができず、新たな経路を求める必要が出てくることがあります。特に送金額が大きくなるほどこの問題は顕著です。

そこで、大きな金額をより小さい単位に分割してそれぞれ別の経路で送れるようにできないか?というのがマルチパスペイメントの概念です。2020年に使われるようになったMPP (Multi-Path Payments)では通常のインボイスに対して支払う際に、同じpreimageを使った経路を途中で分岐・合流させるものでした。ただ、同じpreimageを使う弊害としてプライバシーの問題(分割している同一の送金ということがバレる)やpreimageの使いまわしに伴う決済絡みのトラブルが発生しやすい問題がありました。

2021年に使われるようになったAMP (Atomic Multi-Path Payments)ではMPPにひと工夫加えることでこれらの問題を解決しました。MPPと異なり、AMPは送金者がインボイスを生成する、いわゆるプッシュ型の送金なので、宛先のノードID程度の情報で送金ができます。(一応AMPインボイスという概念はあります)

AMPの工夫は複数の送金それぞれのプリイメージを「実際のプリイメージを改変したもの」にして、それが全て揃うと宛先ノードが実際のプリイメージを逆算できるようになるというものです。これによって各送金を紐づけるプライバシーの問題が軽減されるほか、preimageの使いまわしによる決済問題も発生しません。送金はかならず全て成功するか、全て失敗するので、中途半端な金額を送ってしまうおそれはありません。ただしプッシュ型送金あるあるで、preimageを生成したのが送金者であるゆえに(preimageにコミットしたインボイスを必要としないゆえに)インボイスとpreimageの所有をもって送金の事実を証明することができません。

ライトニングのAMPで手数料が1/100に!
ライトニングネットワークの進化には目を見はるばかりですが、今回はAMPという機能を紹介します。 AMPというのは、Atomic Multi Passの略で、簡単にいうと、複数のルートの支払いをまとめて1つにできる機能です。 ライトニングではチャネルをつかって支払いするために、そのチャネルに十分なキャパシティがなかった場合には、送金が出来ない場合があります。 また一つのチャネルだけをつかうとプライバシー上も多少の懸念があります。そのため、複数のチャネルをつかい、それをあたかも1つの送金になるようまとめるという機能がAMPです。 先日AMPがその威力を発揮したのが、手数料でした。 ライトニングの送金手数料は実はあまり安くありません。というのも各チャネルごとに微妙に手数料を調整しはじめているので、オンチェーンの手数料よりは安いが、決してめちゃくちゃやすくないみたいな水準に設定されていることが多いのです。これは市場原理的にいうとそうなりますよね。 昔はライトニングの送金は大概1satでいけていたのですが、最近は数百sat取られることも多くないのです。 ウォレットによっては、手数料
プッシュ型送金のAMP
LNDのv0.13から利用可能予定とされるAMPがTwitterで公開されていました。スレッドではL

複数のウォレットのユースケースよりはCashuとの相性が抜群

冒頭の状況を振り返ってみましょう。実際のMPP・AMPは1つのウォレットからの送金を想定していますが、「自分が持っているウォレット」という集合を1つのノードとして見た場合、MPP・AMPを使えばシンプルに資金を組み合わせて送金できるとわかります。

例えるなら、自分が使っている全てのウォレットにつながっている1つの仮想的なノード(”自分”)があり、送金はそのノードから行われるようなイメージです。

実際のライトニングウォレットでこれをやろうと思うと、どれでpreimageを生成し改変して、送金の全体像をそれぞれのウォレット間でどう共有して…というように結構複雑なエンジニアリングの問題が発生しますし、ユーザー体験としても大量の操作が必要になってしまいそうでよくありません。(結局例のように自分宛てに一度送金して資金をまとめるほうが簡単)

ところがその問題が発生しない上にメリットを享受できるタイプのライトニングウォレットがあります。Cashuを使ったeCashウォレットです。

本稿でもよく触れているeCashはビットコインを預けることでプライバシーの高い状態で送受金できるカストディアルな技術で、CashuはMintと呼ばれるサーバーを立ち上げるためのOSSです。ユーザーは1つのMintだけを利用して他のMintに送金するときはライトニングを使うこともできますし、複数のMintに資金を分散させておくこともできます。

Chaumian E-cashを扱うエコシステムがCashuを中心に活発化
本稿でも2021年夏に紹介したFedimintはその後も着々と支持を集めており、特にフェデレーション型ではない通常のカストディによるChaumian E-cashエコシステムが成長し続けています。カストディと引き換えにプライバシーとスケーラビリティを実現するFedimint及びChaumian E-cashについては下記の記事をご覧ください。 Federated Chaumian Mintsで分散カストディアル・ライトニングウォレットビットコインのレイヤー2はライトニングネットワーク以外にもいくつか出てきていたり、提案されています。そのうちの1つとして、Federated Chaumian Mintsというものが少し話題になっていたので、それがどういうもので、何ができるのかを調べてみました。 https://fedimint.org CHAUMIAN MINTとは ビットコインが誕生する前にも、いわゆる仮想通貨というものは実験されていました。新しいものから遡ると、代表的なものではE-gold、Liberty Reserve、Digicash (Ecash)などが挙げられます。特に、公

そして複数のMintに資金を分散させていても、ユーザーは1つのウォレットから多数のMintに接続してUI的には一元管理することができます。

しかしながら、これまでだとライトニング送金をする際に結局1つのMintに必要な金額を集めなければいけませんでした。ただ、UIアプリが1つなため、ライトニングウォレットが複数ある状況では困難だったpreimageの生成・改変や複数の送金経路の管理などが簡単に実現できるというわけです。なんなら送金額の全体像をそれぞれのMintに伝える必要はないため、ライトニング送金を代行してくれるMintに対してのプライバシーも強化されます。

ちなみに上記記事でも紹介していますが、LNBitsのデモサーバー上にある多数のCashu mintで実際のビットコインを扱われていることが嫌気され、今月中にLNBitsのデモサーバーからCashu機能が削除されます。もしlegend.lnbits.comで始まるURLのMintにsatsがある方は退避させないとGOXします。

CashuはカストディアルLNウォレット規格の1つの未来かもしれない

このように、Cashuウォレットの「複数のMintにある資金を一元管理する」という特徴が、完全に独立している複数のライトニングウォレット(カストディアル・ノンカストディアル含む)と比べてMPP・AMPを活用するのに最適なアーキテクチャなのが非常に興味深く便利であるというお話でした。

ライトニングウォレットに関しては、ノンカストディアルなものであれば上手いこと仮想的なチャネル(送金ではなく制御専用のチャネルや通信経路)のようなもので1つのアプリから一元管理できるようにできなくはないかもしれませんが、ネットワークグラフの取得をどこからするかなど課題も考えられます。無駄も多いですし、preimageを改変していくAMPの特徴からカストディアルウォレットにも対応してもらうのはさらに大変で、あまり現実的ではありません。

Cashuを使ったeCashにも必ずカストディアルであるという弱点はあります。しかし、現状のライトニングの利用の大半がカストディアルウォレットを経由したものであるというのも真実でしょう。(自分のライトニングノードでCashuを動かせば自分専用のMintを作ることもできます。)将来にわたってライトニングノードを自前で用意するユーザーというのはかなりのヘビーユーザー層に限られる可能性が小さくない中、eCash/Cashuが提案する付加価値がどんどん魅力的になっていっているように感じます。