让我们谈谈Starknet的一个超级能力:Sierra。 当你构建一个基于ZK的区块链,使用一个基于ZK的虚拟机进行通用计算(就像Cairo对Starknet的作用一样),你会面临一个问题:如何让虚拟机既安全又对ZK友好? 这个问题是非确定性的。我来解释一下: 如果排序者/证明者可以“猜测”某些条目并神奇地填入它们,zkVM的效率会大大提高。 问题是这为各种攻击打开了空间:恶意用户可能会发送一个无法轻易猜测的交易,而恶意的排序者/证明者可以选择不猜测正确的值,以此来伤害用户。 解决方案是什么? - 一个选项是消除非确定性。但这会损害效率。 - 另一个选项是使用博弈论方法,允许其他排序者惩罚攻击者,同时激励某些排序者包含良好的交易。 - 第三个选项是构建一个安全的中间表示(我们称之为:Sierra)。 Sierra允许恰到好处的非确定性,以便所有的猜测都可以被填入。 在这个过程中,拥有这个工具可以解决其他很酷的事情,比如将燃气计量作为编译过程的一部分。 总结: 在Cairo的底层,最好的智能合约语言中,有一个宝石,一个超级能力,允许安全高效的基于区块链的ZK运行。 只有在Starknet上,今天的未来科技。