在Ethereum Research论坛上,Vitalik Buterin提出了一篇关于“在量子计算机攻击下,以太坊如何通过硬分叉来保护用户资产”的讨论文章。他主张通过硬分叉回滚交易并立即升级签名机制,这可以有效保护用户资产。
面对可能的明天量子攻击,V神设想了一种场景,即如果明天量子计算机被恶意攻击者掌控,并能够利用它来窃取用户资金。
为了防止这种情况的发生,抗量子密码学成为了我们的目标。一旦帐户抽象技术完善,任何用户都可以根据自己的计划转而使用抗量子签名方案。但如果没有足够的时间,我们该怎么办呢?
Vitalik认为,以太坊已经做好了准备,可以迅速制作一个恢复分叉与钱包升级,以应对量子攻击这种情况。
尽管区块链可能需要硬分叉将交易回溯,用户可能需要下载新的钱包软件以增强签名强度,但很少用户会因此遭受资金损失。
在区块链与量子计算机的对抗中,争夺的焦点是私钥的量子运算攻破环节。以太坊地址定义为:通过keccak(priv_to_pub(k))取最后的20个字节,其中k是私钥,priv_to_pub是将私钥转换为公钥的椭圆曲线乘法,keccak是哈希函数。以太坊地址生成流程如下:通过随机源产生私钥,通过椭圆曲线与私钥生成公钥,通过Keccak-256哈希函数生成地址。
使用量子计算机,椭圆曲线乘法将变得可逆(因为它是离散对数问题),但hash函数仍然是安全的。这意味着如果只有地址公开,很难推回公钥与私钥;但如果公钥公开,那在量子运算下取得私钥将会非常容易。
如果用户尚未使用其帐户进行任何交易,则只有地址是公开可见的,这些用户的钱包即使有量子运算也是安全的。但是,如果用户曾进行任何一笔交易,那么该交易的签名就会泄露公钥,这在后量子世界中将会泄露私钥,因此大多数用户都容易受到攻击。
V神表示,大多数使用者的私钥本身就是一堆杂凑计算的结果。许多金钥是使用BIP-32产生,它通过从主种子短语开始的一系列哈希值来产生每个地址。许多非BIP-32金钥产生方法的工作原理也类似:例如,如果用户有脑钱包,它通常是应用于某些密码的一系列杂凑值(或中等难度的KDF)。
这代表EIP的自然结构可以透过硬分叉链来从量子紧急情况中复原。以下是应分叉流程:
1. 恢复第一个明显发生大规模盗窃的区块之后的所有区块。
2. 传统基于EOA的交易被停用。
3. 新增了新的交易类型以允许来自智能合约钱包的交易(例如RIP-7560的一部分内容)。如果第三步技术不可用,可以新增EVM新的交易类型或操作码,借此提供STARK证明以引入私有原像、来自核准的杂凑函数ID以及公开位址,STARK接受该帐户的新验证码的杂凑值作为公开输入。如果证明通过,用户的帐户代码将切换为新的验证代码,能够将其用作智能合约钱包。
出于燃料费效率的考量(毕竟STARK证明容量很大),可以让STARK成为批量证明,一次证明上述类型的N个STARK(必须是STARK-of-STARK,而不是直接证明多个声明,因为每个用户的资讯都需要对聚合器保密)。
原则上,实施此类硬分叉的基础设施可以在明天马上开始建构,从而使以太坊生态系统做好充分准备,以防量子紧急情况确实发生。
标签: 比特币挖矿