Statechains
実装
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 を無効にしないといけない
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 を動かすことはできない
パスを探す必要がない
LN on statechains についても述べられている
You can swap multiple same-value UTXOs with users, which is equivalent to a coinjoin to increase privacy, particularly when done over Tor これにも LN についての記載あり
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 の発行が必要か?
non-custodial ではない
https://gyazo.com/379d294028455a5bbfa643cda414cb70
かといって完全な custodial でもない
SE は資金を取ることはできてしまう
SE が正しく動作した場合=常に自分の現在の鍵しか知らない場合は、ハッキングや法執行機関には強い?
鍵を盗まれてもなにもできない
資金を凍結することはできない
厳密には onchain 送金を止めることはできない
これは liquid よりは non-custodial に近いポジションな気がする