Erk and hArk
Ark の派生プロトコル
Second による提案
Evolving the Ark protocol using CTV and CSFS - Protocol Design - Delving Bitcoin
Erk
fofeit tx で古い vtxo を無効にするのではなく、refund tx によって vtxo を更新するイメージ
まあ無効にしてはいるのだが、、、
refund tx
古い VTXO, 新しい VTXO の両方を input にする
つまり、ASP によって新しい VTXO が作られた後にだけ使える
このうち、古い VTXO は ASP のものであり、新しい VTXO はユーザーのものである。refund tx の output ではそのように分配する
この時、refund tx の input は特定の UTXO にコミットしないことで、refund tx 作成後、任意の vtxo を input にできる???
新しい tree が作成される前に、refund tx に署名しておくことができる
refund tx は round ごとに必要?いくつも事前に作っておくの?
We can use CTV+CSFS to implement rebindable signatures.
つまり今はまだできない
hArk
hArk はすでに実現可能
hArk explained: async forfeits and mobile-friendly refreshes
新しい vtxo を ASP だけが知る secret でロックする
forfeit tx は、timelock でユーザーか、secret があれば ASP にいく
これにより、ASP が古い vtxo を回収するには、secret を使って unlock する必要がある
secret があれば、ユーザーは新しい vtxo を手に入れることができる
従来 ASP は、forfeit tx を貰わない限り tree をブロードキャストできなかったが、forfeit tx の署名が round(新しい tree のブロードキャスト) の後でも良い
なぜなら、新しい tree は ASP だけが知る secret でロックされているので、初期状態では ASP が保有するため
ユーザーが forfeit tx に署名したら、secret と交換する
交換されない場合
古い vtxo が expire しユーザーに戻る
あるいは ASP が forfeit tx を secret で unlock すれば、ユーザーは新しい vtxo を secret で unlock できる
ユーザーが forfeit tx を作成することなく round tx が expire したら、ASP が回収できる(よね?)
round が非同期になる
各ユーザーは、個別にラウンドに参加する表明を一度すれば良い
従来は、その後、tree に署名し、forfeit tx を作ることを、全ユーザーが同時に行う必要があった
また、tree への署名を誰かに委譲することができる
これまでは forfeit tx への署名が必要だからユーザーがオンラインになる必要があったが、それは後回しでよくなった
Erk とは違い、新しい tree への署名は必要なので、オフラインのままラウンドに参加することはできない
オンライン要求がない、というが注意が必要
事前に署名を大量に作っておくことで、実質毎回オンラインにならなくても良いよね、ということ
正しく更新されたかどうかの確認は必要
watch tower に任せることはできるか?
round での送金先が自分ではない場合、受け取り側はオンラインになる必要がある?
In the Erk case, additionally, the receiver should indeed sign it’s incoming refund tx, which requires additional interaction.
受け取り側が refund tx に署名する必要があるため
次のラウンドまでにオンラインにならないといけない?
うーんそれならまだまだ課題はあるという感じか?
でもなんとか改善できそうな気もする?