#dusk $DUSK 我这两天在翻Dusk的GitHub仓库,发现一个文档里没怎么展开但实际很关键的设计:Piecrust VM的内存隔离模型。

大部分智能合约虚拟机用的是共享内存,不同合约之间的数据通过消息调用互通。好处是灵活,坏处是一个合约的bug可能污染其他合约的内存空间。Piecrust VM走了另一条路——每个合约实例有自己独立的线性内存空间,合约之间不能直接读写对方的内存,只能通过明确的ABI接口传递序列化数据。

这种隔离级别,类比的话更像WebAssembly的sandbox,而不是EVM的shared state。对于Dusk瞄准的合规金融场景来说,这个设计很对味:一个证券代币合约的bug不会泄露隔壁支付合约的客户余额,审计时可以逐个合约独立验证,不用操心跨合约的隐式数据流。

另一个我注意到的细节是Piecrust的gas计量方式。它不像EVM那样按opcode逐条计费,而是按wasm指令的执行成本加权计算。加减法和乘除法的gas成本不一样,内存读写和算术运算也不一样。这种细粒度的计量理论上能让开发者写出更高效的合约——因为你知道哪些操作贵,会主动避开。

当然,这也意味着gas估算变得更复杂。EVM的gas估算已经被工具链打磨得很成熟了,Piecrust这边还缺一个成熟的profiler。不过方向是对的:用更精确的计量换更高效的执行。@Dusk_Foundation