今、AIのせいでノートPCがどれも馬鹿みたいに高いんだよね。前はノートPCがカクカクで死にそうだったから新しいのに替えたかったけど、値段が高すぎて無理。だから誰かに原因を調べてもらったんだけど、調べたら大量のソフトがそれぞれ勝手にOSの低レベル機能を呼び出して、リソースの奪い合いをしていた。師匠は別の発想に切り替えた――一番リソースを食う操作をいくつか直接ハードウェア加速にしてしまい、ソフトでのエミュレーションのやり方はやめた。そうしたら、速度が一気に変わった。
Duskの仮想マシンPiecrustがやっているのも、まさに似たことだ。スマートコントラクト自体はWASMのサンドボックスの中で動く。安全性と移植性を狙っているけど、その代償として遅い――特にハッシュ、署名検証、ゼロ知識証明といった暗号学の演算は、サンドボックス内で一周させるとオーバーヘッドが大きい。Duskのやり方は、この高頻度の操作を個別に取り出して「host function」にしてしまい、サンドボックスでWASM上の処理をゴリゴリ計算するのではなく、ベースとなるネイティブコードを直接呼び出して実行する。
具体的に取り出されるのは次のいくつか:ハッシュはBlake2bとPoseidon、検証はverify_plonk(PlonK証明)、verify_groth16_bn254、そしてverify_schnorrとverify_blsの2種類の署名検証。このあたりはDusk自身がプライバシーとコンセンサスの仕組みを回すのに必要な暗号処理をほぼカバーしていて、最も手間のかかる作業を別ルートで裏口のように切り出し、サンドボックスの通常経路を通さない。
この設計で得られるのは実行効率。でも同時に、これらのhost function自体の実装の正しさが極めて重要になる。もしネイティブ関数に脆弱性があれば、ソフト層で起きる問題よりも影響がより直結するからだ。なぜなら、すべてのコントラクトが同じ下位の加速チャネルを共用しているから。
$DUSK
#dusk @Dusk