今月初旬、人気のカストディ型ライトニングウォレットであるWallet Of Satoshiが公式アカウントにて米国市場への復帰予定をアナウンスしました。約半年前からセルフカストディ版の動作モードを実装していることを匂わせていましたが、今回の発表では具体的にLightspark社の開発したレイヤー2であるSparkを利用することを明示したことが話題になっています。

Lightsparkが発明した新しいレイヤー2:Spark
ノンカストディアルなライトニングをエンドユーザー向けにスケールさせることの難しさはウォレット事業者が一番痛感しています。これが最近の記事でも取り上げた「Nodeless Lightning(Liquid Networkを使わせるライトニングウォレットのバックエンド実装)」のようなアイデアにつながっています。 セルフカストディ型のライトニングウォレットのスケーラビリティを補完できる技術は出てくるのかライトニングでセルフカストディをしようと思うと、最低でも自分でチャネルを保有する必要があり、よりトラストレス性を高めようと思えば自分のノードを立てることになります。したがって、世の中にあるセルフカストディ型のライトニングウォレットはこのいずれかの形をとっています。 しかし、この使い方にはコストがつきものです。例えばチャネルの開設には今のオンチェーン手数料が低迷している環境でも数十円、場合によっては数千円以上になることも考えられます。ライトニングノードの維持も無料ではありません。(趣味で維持している場合は無料のように考えてしまいますが) ライトニングはカストディ型で普及する、という今では主流の

この発表が一部の間で論争を巻き起こしました。新しい動作モードについてWallet Of Satoshiのツイートでは「セルフカストディ」、Sparkの公式アカウントは「完全にセルフカストディ」と表現していますが、Sparkの仕様にある程度詳しいビットコイン開発者などはこの形容に問題を感じています。

批判の先陣を切ったのはSpiralのBlueMatt氏。厳密にはSparkのオペレーター全員が共謀したら資金を没収できてしまう仕組みのものをセルフカストディと呼ぶのはどうなのか?という指摘を、補足のツイートでカストディ型と比べると大きな改善ではあるしカストディ型とは言えないと注釈しつつ述べていました。

他のビットコイナーの間でも意見が割れたこの表現問題ですが、私はこれからSparkに似たセキュリティモデルのウォレットが増えてくると予想しています。今日はその理由と、最適な表現を考えてみます。

・Wallet Of Satoshiが解決したいのは規制の壁

・Sparkはある程度のトラストを必要とするソリューション

・セキュリティの前提をより正確に表現する新しい言葉が必要かもしれない

Wallet Of Satoshiが解決したいのは規制の壁

Wallet Of Satoshiは数年前に規制リスクを検討して米国市場から撤退しました。しかし、その後もカストディ型のウォレットとして圧倒的な知名度を持ち、その簡単なUIなどから初心者に高く評価される代表的なライトニングウォレットというポジションは米国外で維持しています。

今回Wallet Of Satoshiが米国市場に復帰するにあたってセルフカストディ型の動作モードを用意したのも、結局は規制リスクとの付き合い方の1つと考えられています。Lightspark社は取引所のライトニング対応を支援したり、Lightning Addressを拡張してトラベルルール対応させたUMA(Universal Money Address)というプロトコルを提供するなど、規制対応を売りにしている側面があります。

💡
ちなみに、同じく米国市場から一旦は撤退していたPhoenix Walletも今年復活していますが、こちらはもともとLSP型のセルフカストディウォレットなので規制リスクが低いと見られていました。(なので撤退自体が非常に驚かれていました)

そのため、Wallet Of Satoshiは本質的にはセルフカストディ型のウォレットを作る動機はなかったといえるでしょう。したがって、一番手軽でUXが良い、悪く言えば妥協の大きな「最小限のセルフカストディ」、Web3業界でいわゆる"Sufficiently Decentralized"のような落とし所を探していたといえます。LightsparkはSparkを通してそのようなプロダクトを提供しているわけです。

Sparkはある程度のトラストを必要とするソリューション

詳しくは冒頭でリンクしたSparkについての記事を参照していただきたいですが、簡単に言えばSparkはStatechainというものの改善版です。Statechainにおいて、Statechain Entity(SE)という運営者が存在し、Statechain内のすべてのトランザクションはSEとユーザーのマルチシグによって行われます。SEはトランザクションごとに新しい秘密鍵を作り、古いものはすぐに消去することになっています。

最もシンプルなStatechainにおいて一番のリスクはこの仕組みであり、Statechain内のトランザクションで送金を受け取っても、もしSEが古い秘密鍵を保持していれば送金者と共謀して二重支払い(つまり送金の取り消し)を行うことができてしまいます。もし送金者がSE自身であれば、単純に盗みが働けてしまいます。

SparkにおいてはSEをフェデレーション(複数社によるマルチシグ)にすることでこのリスクを低減しています。マルチシグのうち1社でも自身の鍵を消去していれば、残りの全社が共謀しても二重支払いは行えません。カストディ型と比べて非常に強力な仕組みだとは思いますが、問題になるのは「SEのうちの1社が鍵を消去したことはユーザーには検証不可能」なことです。

Sparkの利用にトラストが必要だという主張はこの1点にかかっています。

💡
ちなみにSparkではライトニングやArk同様にユーザーによる単独出金も可能なため、このトラストが必要なことを除けばかなり「ちゃんとしたレイヤー2」に近いと言えます。(ただし、その一点が非常に大きな譲歩である上に、現在提供されているベータ版では単独出金は不可能と聞いたことがありますが)

セキュリティの前提をより正確に表現する新しい言葉が必要かもしれない

世界中でカストディ型の暗号資産関連サービスに対する規制の締め付けが厳しくなっており、ウォレット運営業者もそのあおりを受けています。特にライトニングにおいてセルフカストディ型で競争力のあるウォレットを運営するのは困難が伴います。

そんな環境で、「規制回避のための最小限のセルフカストディとは?」という命題に焦点が当たるのは時間の問題ですし、実際にその境界は曖昧です。例えばライトニングウォレットで一般的にセルフカストディ型に分類されるLSPに依存したウォレットも、もしLSPに悪意があれば攻撃できるようなセキュリティモデルのものも存在します。

しかし、もっと言えば通常のオンチェーン用のウォレットでも、ウォレット運営者に悪意があれば意図しないトランザクションに署名させられるようなケースも考えられます。「ビットコインはトラストレスというが、ソフトウェアやハードウェアを自分で監査してる人はほとんどいない」というよくある指摘のように、究極のトラストレス性というのは鍵管理に限定される話ではありません。それにもかかわらず、ウォレットにセルフカストディ型・カストディ型という区別があるのは「現実的なライン」を定めた上での線引きというわけです。

個人的には運営者の悪意まで想定しないといけないとなると、鍵管理にとどまらない多様な攻撃手段に対して非現実的な対策を考慮する必要が出てきてしまい、区分として機能しなくなると思います。したがって、運営者の悪意は考えてはいけないと感じています。(そもそも運営者の悪意は別の法律で裁けそうだというのもあります)

そこで、例えば以下のような分類はどうでしょうか:

ユーザーが単独出金可能 運営者が凍結可能 ユーザーの同意で運営者が送金可能 名称
セルフカストディ
◯ or ✕ コンディショナル・セルフカストディ
カストディ

一応発想としてはこうなります:

1.ユーザーのみが送金権限を持ち、ユーザーの送金を運営者が停止できないものをセルフカストディとする。(細かいことを言いだすとLSPやRPCサーバーをユーザーが選択できる必要がありそう)

2.運営者に凍結できない仕組みで(例えば運営者が凍結できても単独出金で迂回できる)、ただしユーザーが事前に運営者と合意した条件下でなら運営者がユーザーの資金を送金できる場合はコンディショナル・セルフカストディ。(Arkのように出金または更新せずに期限を迎えると運営者がユーザーの資金を回収できるもの。Sparkのように運営者に悪意があった場合は二重支払いリスクのあるもの。合意をどう測るかは問題そう)

3.ユーザーが単独出金できず、運営者が凍結・没収できるものはカストディ。

分類してはみたものの、無限にエッジケースが出てくるのでどうしてもケースバイケースの判断になってしまうような気がしてきました。

いずれにせよ、この境界はどんどん曖昧になっていくと思っているので、業界的にどういう方向に流れるか注視する価値があると思います。

💡
ちなみにスマートコントラクトチェーンや草コイン業界においても、スマートコントラクトを更新できるアドミンキーが存在してもそのコントラクトに預けた資金はセルフカストディ扱いなのか、少数のバリデータが資金の没収などを行えるチェーンのネイティブトークンはセルフカストディ扱いなのか、というグレーゾーンが長年放置されているため、規制サイドでクリアな回答が得られる見込みはない気がします。