数年前、私は『そろばんを使ってライトニングネットワークを理解する』という記事を書いた。当時、あまりに多くの人々がライトニングの仕組みを誤解していることが明らかだったからだ。
あの時の私の狙いは、暗号技術や実装の詳細を並べ立てることではなく、ペイメントチャネルという「核となるアイデア」のベールを剥ぐことにあった。機能的なメカニズムよりも概念そのものに焦点を当てるため、あえて「そろばん」というアナロジーを用いたのだ。結果として、これは非常によく機能し、後に多くの人々がライトニングを初心者に説明する際の常套句として採用してくれた。
そして今、私は強烈なデジャヴ(既視感)に襲われている。
「Spark」について議論する際、当時と全く同じパターンが見受けられるのだ。「ステートチェーン(Statechain)」という単語を知っている者はいる。だが、理解はそこで止まっている。かつてのライトニング同様、これは知性や努力の不足ではない。単に、根底にあるメンタルモデルが不明瞭なだけなのだ。
だからこそ、今回も同じアプローチを試みたい。暗号技術の専門用語は脇に置き、概念的なレベルでSparkがどのように機能するのかを解説しよう。
2ピースのパズル
Sparkの核心、それは「オンチェーン・トランザクションをブロードキャストすることなく、ビットコインの送受信を可能にする」という点にある。所有権が移転しても、ビットコインそのものはオンチェーン上を移動しない。代わりに行われるのは、そのコインを使用(Spend)するための「共同署名権限」の変更だ。この共同権限は、ユーザーと、「Spark Entity(SE)」と呼ばれるオペレーター・グループの間で共有される。
この仕組みを理解するために、Spark上でビットコインを使用するには、シンプルな「2ピースのパズル」を完成させる必要があると想像してほしい。
- 1つ目のピース: ユーザーが保持する
- 2つ目のピース: SE(運営者)が保持する
これら2つの「対となるピース」が組み合わさった時のみ、ビットコインを使用することができる。別のビットコインセット(UTXO)には、また別の形のパズルが必要となる。
では、所有権が移転する際、舞台裏で何が起きているのかを見ていこう。
所有権の移転プロセス
まず、アリスがSEの持つピースと合致するピースを保有しているとしよう。彼女はピースを組み合わせ、パズルを完成させることで自身のビットコインを使用できる状態にある。
アリスがボブにビットコインを送りたい場合、彼女はボブに対し、SEと協力して「新しいパズル」を作成することを許可する。ここで重要なのは、パズル自体の「型」は変わらないということだ。古いパズルと新しいパズルは同じ形状をしているが、それを構成するピースそのものが刷新される。
この新しいパズルは、ボブのために指定されたものだ。片方はボブに紐づけられ、もう片方はSEが持つ。この瞬間から、SEの手元にあるピースと噛み合うのは、ボブが持つピースだけとなる。
アリスの手元にはまだ古いパズルのピースが残っているかもしれない。だが、それはもはや無用の長物だ。SEは既に対となる古いピースを破棄しているため、アリスのピースはどのピースとも合致せず、ビットコインを動かすことは不可能となる。対象のビットコインがオンチェーン上で1ミリも動いていないにもかかわらず、実質的な所有権はアリスからボブへと完全に移行したのだ。
その後、ボブはこのプロセスを繰り返し、キャロルへ、そしてその先へと、同じビットコインを次々と転送することができる。それぞれの送金は、資金をオンチェーンで動かすのではなく、パズルのピースを交換することによって成立する。
「信頼」の力学と安全性
ここで、当然の疑問が湧くだろう。「もしSEが古いパズルのピースを破棄しなかったらどうなるのか?」
その場合、SEは前所有者であるアリスと結託し、ボブのビットコインを勝手に使用してしまうリスクが生じる。所有権がアリスからボブに移る際、SEも確実に自らの古いピースを破棄したと「信頼」する必要があるのだ。
しかし、ここで肝に銘じておくべきは、SE(Spark Entity)とは単一の当事者ではないという事実だ。SEは複数のオペレーターから成るグループであり、パズルのSE側ピースをたった一人のオペレーターが独占することはない。パズルの交換には、複数のオペレーター間の協力が不可欠となる。いかなる単独のパーティも、秘密裏に古いパズルを保持し続けたり、後から再生成したりすることはできないのだ。
送金プロセスにおいて、たった一人でも誠実なオペレーターが存在すれば、古いパズルが再活性化されることは防げる。これがSparkのセキュリティモデルの要である。
結論
鍵となるアイデアは極めてシンプルだ。Sparkはユーザー間でビットコインをオンチェーン移動させない。代わりに、「正当な使用権限を持つ者」を入れ替えるのだ。オンチェーンのビットコインは不動のままである。変わるのは、どの2つのパズルピースが噛み合うか、という事実のみ。
今回の解説では焦点を絞るため、あえてSparkの「ユニラテラル・イグジット(一方的な退出)」メカニズムには触れなかった。これはSparkのセキュリティモデルにおいて極めて重要な要素だが、今回伝えたかった核心部分から話が逸れてしまうからだ。
一つだけ覚えておいてほしいのは、Sparkはユーザーが永続的にSEに依存し続けるシステムではないということだ。日常的な送金は共同署名(パズルの完成)に依存するが、SparkはSEの協力なしにユーザーが自身の資金をオンチェーンで使用するための「脱出ルート」も提供している。この非常口は設計上確実に存在するが、それはまた別の機会に解説するとしよう。

