Statechains
Bitcoin second layer technology by Ruben Somsen
Statechains resources
実装
Mercury wallet
The basic idea behind Statechains is that you lock up money between two parties in a 2-of-2 multisig: the Statechain entity and the user. When the user wants to transfer the money (the entire UTXO), they simply hand over their private key, which we call the transitory key, to the intended recipient. (Statechains: Non-custodial Off-chain Bitcoin Transfer | by Ruben Somsen | Medium)
Stetechians protocol
2of2 multisig にロックされた utxo 全体の所有権を移転することで送金する
multisig は transitory key と statechain entity の署名が必要
multi(SE + T)
ここに lock された coin は SE と transitory key を知っている人が動かせる
timelock でもともとの所有者にフォールバックする tx を作成
SE がいなくなっても大丈夫
fallback 先が statechain で所有者の定義である
送金は timelock での fallback 送金先を新しい所有者向けにすることで実現
timelock は前の fallback tx よりも短い
後につくられた fallback tx が正しいものになるので、仮に前の tx が broadcast されてしまっても、それが commit される前に、broadcast すればよい
前の commit tx を無効にしないといけない
eltoo
stete key と transitory key の両方を手に入れた場合、statechains にロックされたはずの bitcoin を盗ることができてしまう
statechains にロックする = ST にロックするだとすると
ST = S + T
S = statechain が管理する key
T = transitory key でユーザーが管理する
statechain で送金をする、つまり transitory key の管理者が変わったときに
新たに ST = (S-K) + (T+K) とする
transitory key を T から T+K に変更する
ST は変わらないので、S を S-K する必要がある
statechain は S を捨てて S-K を管理する
このとき、送金前の所有者つまり、T の所有者がなんらかの方法で S-K を手に入れたとする
しかしこの時点では、S-K と T では ST をつくることができないので、資金を盗ることはできない
malicius な statechain が ST をもとに (S-K)
statechain 単体では UTXO を動かすことはできない
Lightning との違い
パスを探す必要がない
Statechains paper
LN on statechains についても述べられている
Statechains: Non-custodial Off-chain Bitcoin Transfer | by Ruben Somsen | Medium
You can swap multiple same-value UTXOs with users, which is equivalent to a coinjoin to increase privacy, particularly when done over Tor
これにも LN についての記載あり
Scaling Bitcoin 2018 "Kaizen" Day 2 Part 3 - YouTube at Scalling Bitcoin
Bitcoin Magazine's Technical Tuesday: Explaining Statechains With Ruben Somsen - YouTube
Lightning Network channel on Statechains
transitory key を multisig にすれば channel をつくることができる
Lightning の channel は multisig に lock するところからはじまる
blockchain に commit する必要はないのか?
channel close するときは何が起きる?
SE と (channel のマルチシグ) のマルチシグ の output を使った tx になる?
もしそうなら、LN commitment tx 作る時には、SE の署名も必要?
これでも non-custodial?
SE の署名がもらえなかったら、その前の時点での refund tx や commitment tx を使えば取り戻せるから non-custodial だと思われる
close は on-chain tx の発行が必要か?
Bob McElrathさんはTwitterを使っています: 「@brian_trollz @wtogami @mHaGqnOACyFm0h5 @SomsenRuben @niftynei @alpacasw The statechain close must reflect the channel balances. But depends on how you do it. E.g. whether the lightning channel is a descendent transaction to the statechain close, or whether the SE is a signatory to lightning state updates...」 / Twitter
channel factory とは?
non-custodial ではない
https://gyazo.com/379d294028455a5bbfa643cda414cb70
かといって完全な custodial でもない
SE は資金を取ることはできてしまう
SE が正しく動作した場合=常に自分の現在の鍵しか知らない場合は、ハッキングや法執行機関には強い?
鍵を盗まれてもなにもできない
資金を凍結することはできない
厳密には onchain 送金を止めることはできない
これは liquid よりは non-custodial に近いポジションな気がする
Fedimint と比較したい