今夜また @Dusk のテクニカルドキュメントに戻って、VM設計についてずっと考えてしまいました。
最初の前提はシンプルでした。オンチェーンで計算が行われるのなら、重要なものはすべてVMの中に留めるべきだ、と。より強い分離は、より高いセキュリティを意味するはずだ、と。
しかしDuskは別の道を選んでいます。
Piecrust では、ハッシュや署名チェック、ZK検証のような高コストな暗号学的処理を、WASM環境の中で完全に実行するのではなく、ネイティブのホスト関数を通じて扱えます。
性能面の主張は理解できます。同じ重い暗号処理が常に発生するなら、毎回VMのオーバーヘッドを支払うことが高くついてしまう可能性があります。ネイティブ実行なら、その摩擦をかなり取り除けます。
でも、無視できない疑問も生まれます。
これらのホスト関数に、どれほどの信頼を置いているのでしょうか?
重要な処理をサンドボックスの外へ移すことで効率は上がるかもしれませんが、その代わりにネイティブ層がセキュリティ境界の一部になります。つまり、実装品質、分離、そして監査の重要性が一気に増します。
Duskが間違ったトレードオフをしたと言いたいわけではありません。むしろ、面白い選択だと思っています。
金融にフォーカスしたチェーンなら、サンドボックスの分離を最大化するのが良いでしょうか? それとも、より高い性能のために、注意深く制御されたネイティブ層を受け入れるでしょうか?
私は効率に傾いています——ただし、セキュリティ前提が十分に強い場合に限ります。
#dusk $DUSK @Dusk
最初の前提はシンプルでした。オンチェーンで計算が行われるのなら、重要なものはすべてVMの中に留めるべきだ、と。より強い分離は、より高いセキュリティを意味するはずだ、と。
しかしDuskは別の道を選んでいます。
Piecrust では、ハッシュや署名チェック、ZK検証のような高コストな暗号学的処理を、WASM環境の中で完全に実行するのではなく、ネイティブのホスト関数を通じて扱えます。
性能面の主張は理解できます。同じ重い暗号処理が常に発生するなら、毎回VMのオーバーヘッドを支払うことが高くついてしまう可能性があります。ネイティブ実行なら、その摩擦をかなり取り除けます。
でも、無視できない疑問も生まれます。
これらのホスト関数に、どれほどの信頼を置いているのでしょうか?
重要な処理をサンドボックスの外へ移すことで効率は上がるかもしれませんが、その代わりにネイティブ層がセキュリティ境界の一部になります。つまり、実装品質、分離、そして監査の重要性が一気に増します。
Duskが間違ったトレードオフをしたと言いたいわけではありません。むしろ、面白い選択だと思っています。
金融にフォーカスしたチェーンなら、サンドボックスの分離を最大化するのが良いでしょうか? それとも、より高い性能のために、注意深く制御されたネイティブ層を受け入れるでしょうか?
私は効率に傾いています——ただし、セキュリティ前提が十分に強い場合に限ります。
#dusk $DUSK @Dusk
