密文交易费用 区块生产者需要以某种方式确保加密交易值得包含在一个区块中,即他们可以在不知道交易数据的情况下支付交易费用。如果费用将在执行时支付,区块生产者将不能保证得到支付,因为帐户可能会在包含和执行之间耗尽余额。 因此,加密交易通过在其被包含在链中时提供一个支付费用的签名信封来证明其被包含的合理性。信封内容包括:gas消耗、gas价格,以及在这些字段上的签名,以便恢复付款人的地址。该费用将在包含密文交易时支付给区块生产者,即不在执行时支付。密文交易的gas消耗计入其所在区块的gas上限。 传统的gas上限需要被gas消耗量所取代,这意味着用户将为其计划使用的所有gas付费,即使在交易被解密和应用时,用户只使用了其中的一部分。这对于交易被纳入链时支付的费用是必要的。这可以防止区块生产者将一个具有难以置信的高gas限额的交易(取代其他交易及其费用),解密到一个使用很少gas(和费用)的交易。 使用信封交易的另一个缺点是交易的元数据会被泄露,即知道了付款人和gas价格/消耗上限。有可能,利用这些泄露的信息仍然可以提取一小部分MEV。 有人指出,可以设想zk-SNARK方法来解决这一费用支付问题,并防止元数据信息泄露。 安全保证 密钥用户生成的eon公钥和解密密钥要求诚实参与者的阈值为t/n。可以对参数t和n进行调整以适应协议。t越高,keyper们越难过早地串通和解密交易(允许MEV提取)。另一方面,较低的t可以保证解密密钥能够及时释放。 为了强制密文交易的解密和应用,我们必须强制在每个区块中包含解密密钥。在这些情况下,如果Keper们离线或拒绝生成解密密钥,区块生产将停止。 如果没有计划执行的加密交易,我们可以通过允许在没有解密密钥的情况下生成区块来减轻Keyper的活动影响。万一Keyper下线,链将通过分拆具有加密交易的区块来恢复,并只产生具有明文交易的区块。 我们还可以通过声明,如果在n个时隙期间没有生成任何区块(由于没有解密密钥),则下一个区块不需要包含解密密钥,解密的交易将被忽略,从而恢复活跃。这将回到链的传统非MEV保护功能。 部署的更改 我们已经开发了Keyper软件,以及所有的加密/解密逻辑。我们还开发了允许区块生成器(或排序器/定序器)提交到一批加密交易的逻辑,向Keyper发出信号,现在可以安全释放解密密钥了。 现在还需要做的是改变客户端部署中定义区块正确性的规则,以及交易执行的规则。必须重新定义向客户端提交交易的接口。最后,可能需要编写工具和插件来允许dapp与需要使用公钥加密交易的MEV保护链无缝集成。 (责任编辑:admin) |