夜更翻Babylonの資料を読んでいたとき、私は最初は清算者の権限の境界を確認したいだけでした。ところが読み進めるほど眠くなって、逆にある一つのことに目が覚めました——預金(入金)と出金(引き出し)、そして信頼のロジックはまったく別物だということを。
最初は、金庫システム全体の信頼モデルは統一されていると思っていました。後半を見て分かったのは、預金の段階では多数の人の頷きが必要で、出金や清算で使われる信頼ロジックとは完全に違うという点です。
預金側では「誰かに頼る」必要があります。金庫を作成するとき、Ethereumに対してPeg-Inリクエストを送り、しかも自分だけが知るハッシュロックの秘密を添えます。その後、BitcoinネットワークへPre-PegInトランザクションをブロードキャストして、BTCをハッシュロックに紐づくTaprootアドレスにロックします。次に本当の面倒が始まります——オフチェーンでVault ProviderとAVKと一緒に、事前署名トランザクションの図(ツリー)を構築する必要があり、参加者それぞれが署名します。預金者がハッシュロックの秘密を開示した時点で、金庫は正式に有効化されます。
一方、出金と清算ではロジックがまったく違います。出金は事前署名パスを使います。金庫作成時点で、合法な支出パスはすべて事前に署名されており、金庫が生成された後は、誰も新たな支出を偽造できません。出金時には、預金者が作成時の鍵をそのまま使って取引を自分でブロードキャストし、他の誰かの協力は不要です。
清算側のトリガーは、借り手のヘルスファクターが1.0を下回ることです。清算には許可型と無許可型の2つの経路がありますが、どちらであってもルールは金庫の作成時にすでに固定されており、清算者が誰かの承認を取りに行く必要はありません。
ドキュメント内の次の一文が私を立ち止まらせました:「Trust is optional and removable」。預金には複数者の関与が必要なのは、金庫がまだ作られていないためで、信頼関係が構築の途中にあるからです。そこではVault Providerによるセットアップの推進、AVKの共同署名、Universal Challengersによる目撃(証人)が必要になります。しかし金庫が一度構築され、事前署名トランザクションの図が凍結された後は、もはや第三者に依存する必要はありません。
一晩中調べて、清算者の権限は最後まで見きれなかったのに、逆に預金・出金の「信頼の差」のほうに引き込まれてしまいました。でも考えがまとまったら、むしろ理にかなっていると思えました——預金で人に頼るのは、信頼がまだ確立されていないから。出金や清算で人に頼らないのは、信頼がすでにコードにロックされているからです。この「構築期は人に依存し、成熟後はコードだけに依存する」という設計、巧妙だと思いますか?それとも単なる過剰設計でしょうか?コメント欄で語りましょう。
#BABY $BABY @BabylonLabs_io
最初は、金庫システム全体の信頼モデルは統一されていると思っていました。後半を見て分かったのは、預金の段階では多数の人の頷きが必要で、出金や清算で使われる信頼ロジックとは完全に違うという点です。
預金側では「誰かに頼る」必要があります。金庫を作成するとき、Ethereumに対してPeg-Inリクエストを送り、しかも自分だけが知るハッシュロックの秘密を添えます。その後、BitcoinネットワークへPre-PegInトランザクションをブロードキャストして、BTCをハッシュロックに紐づくTaprootアドレスにロックします。次に本当の面倒が始まります——オフチェーンでVault ProviderとAVKと一緒に、事前署名トランザクションの図(ツリー)を構築する必要があり、参加者それぞれが署名します。預金者がハッシュロックの秘密を開示した時点で、金庫は正式に有効化されます。
一方、出金と清算ではロジックがまったく違います。出金は事前署名パスを使います。金庫作成時点で、合法な支出パスはすべて事前に署名されており、金庫が生成された後は、誰も新たな支出を偽造できません。出金時には、預金者が作成時の鍵をそのまま使って取引を自分でブロードキャストし、他の誰かの協力は不要です。
清算側のトリガーは、借り手のヘルスファクターが1.0を下回ることです。清算には許可型と無許可型の2つの経路がありますが、どちらであってもルールは金庫の作成時にすでに固定されており、清算者が誰かの承認を取りに行く必要はありません。
ドキュメント内の次の一文が私を立ち止まらせました:「Trust is optional and removable」。預金には複数者の関与が必要なのは、金庫がまだ作られていないためで、信頼関係が構築の途中にあるからです。そこではVault Providerによるセットアップの推進、AVKの共同署名、Universal Challengersによる目撃(証人)が必要になります。しかし金庫が一度構築され、事前署名トランザクションの図が凍結された後は、もはや第三者に依存する必要はありません。
一晩中調べて、清算者の権限は最後まで見きれなかったのに、逆に預金・出金の「信頼の差」のほうに引き込まれてしまいました。でも考えがまとまったら、むしろ理にかなっていると思えました——預金で人に頼るのは、信頼がまだ確立されていないから。出金や清算で人に頼らないのは、信頼がすでにコードにロックされているからです。この「構築期は人に依存し、成熟後はコードだけに依存する」という設計、巧妙だと思いますか?それとも単なる過剰設計でしょうか?コメント欄で語りましょう。
#BABY $BABY @BabylonLabs_io