最近は特にライトニングネットワークや、その上で様々なアセット・スマートコントラクトを動かせるようになるかもしれないRGBプロトコルなどについて触れてきましたが、今日はLNを「補完する」と表現されることのあるStatechainsと、なかなか議論が進みませんが有力なサイドチェーンの実現方式であるDrivechainについて紹介させていただきます。
どちらも最近あまり注目されていない気がします。
STATECHAINS
ビットコインでは通常、トランザクションに秘密鍵で署名して新しい秘密鍵で使用できるアドレスに送金します。Statechainsはこれとは異なり、秘密鍵自体を渡すことでUTXOごと送金する(=オンチェーントランザクションが不要)というコンセプトです。
封入された秘密鍵ごとUSBデバイスを譲渡することでオフチェーンでビットコインを譲渡することのできるOpendimeと同様の考えですね。
仕組みは比較的シンプルです:まず、Statechainに入金したいアリスが、Statechainの「仲介人」を務めるボブとの2-of-2マルチシグアドレスにある金額のビットコインを入金します。このときのアリスの秘密鍵はtransitory keyと言い、例えばアリスが第三者に送金したいときは、トランザクションを発行する代わりに、ボブに認知できる方法でこの秘密鍵を相手に渡します。その相手も同様に他人に鍵を送ることで、ブロックチェーンにトランザクションを発行することなく何度でもUTXOの所有権を移転をすることができます。
もしブロックチェーン上に決済したい場合は、そのときのtransitory keyの保有者(最後に受け取った者)とボブが署名することで行うことができます。
厳密には、最初の入金時と秘密鍵の譲渡時には毎回、ボブがいなくなっても資金が救出できるように新しい所有者とボブがタイムロック付きのマルチシグトランザクションに署名し、transitory keyの最新の所有者が保持します。
もしボブが反応しなくなってしまった場合は、期限が切れて最後の所有者がオンチェーンで受け取れるようになります。
また、Transitory keyを譲渡するとき、EltooというLNで使うために開発された仕組みを使用することで古いトランザクションが無効になるため、過去の保有者が単独で資金を窃盗することはできません。
Statechainsの特に面白いところはLNとの互換性で、2-of-2マルチシグのUTXOをライトニングチャネルとして使えることです。1BTCや0.1BTCなど、StatechainのUTXOの大きさピッタリの譲渡を繰り返すことはそれほど現実的ではないので(例えば流動性の高いNFTを表すなら別ですが)、ライトニングチャネルとして使うことで少額ずつ使うことができます。
チャネルの容量が足りなくなったときなどにも、現在のチャネルを売却してより大きなチャネルを購入または開設することもできるでしょう。
ただし、Statechainsは完全なトラストレスではなく、Statechainの管理役であるボブにある程度のトラストがかかってしまいます。なぜなら、ボブと過去にtransitory keyを保有したユーザーが共謀すれば、最新の保有者が別人だったとしてもオンチェーンで送金できてしまうからです。
この問題は、ボブ役もマルチシグにしたり、単純にある程度トラストされている主体に行ってもらうことで軽減することはできますが、完全に排除することはできません。(取引所やカストディ業者など)