赛博朋克的现代密码学,可不是敲玻璃「有内鬼,终止交易」那么简单。
两天前,加密做市商Wintermute遭到黑客攻击。由于使用Profanity生成以太坊地址的方式有漏洞,造成了私钥的泄露,1.6亿美元不翼而飞。
早在今年1月份,就有人在GitHub上提出了Profanity生成vanity可能所造成的问题。
此后,也有人证明了通过使用1000个强大的图形处理单元(GPU),所有7位字符的vanity均可以在50天内被暴力破解。
在我们上周的分析文章【Wintermute 1.6亿美金天价损失,或因Profanity造成私钥泄露】中,我们也提到了今年9月15日,1inch在Medium上发表了一篇披露Profanity漏洞的文章,并详细介绍了他们是如何利用vanity为用户生成私钥的。
2022年6月,一位1inch的参与者收到了来自@samczsun的一条奇怪消息,内容涉及其中一个1inch部署钱包以及Synthetix和其他一些钱包的可疑活动。
虽然这样庞大的GPU需要大量资金投入,但许多加密货币采矿使用的GPU可达到更高数量,因此1000个GPU并不是完全不可能。
那么私钥到底是什么?
和私钥经常“成双入对”出现的公钥又是怎样形成的?
所有迈入Web3.0领域的用户,首先需要了解的就是公钥和私钥的原理和功能,及其所带来的安全风险。
密码学
密码学刚出现的时候,军事及学术界就有了加密版的处理方式——将信息进行编码,再用一套密语进行解码。但该设计也有一个缺陷:加密和解密的短语一旦被他人获知,就可以随意解读和发送信息。
早期的加密手法被称为「对称加密」,因为编码和解码短语相同。
直到20世纪70年代,密码学家们发明了「非对称加密」——创建了公钥和私钥,将加密过程一分为二。
在这个系统中,私钥是一个多位的、随机的质数,可作为ID,加密和解密信息。
这个私钥再通过被称为「椭圆曲线乘法」的数学函数生成一个公钥,椭圆曲线乘法函数是实现加密货币的主要技术之一,它是一个基于加法阶数难求问题的密码方案。
以上信息说明了一个重点:公钥可由私钥衍生,但不能反过来。
私钥
私钥就像信用卡密码——在加密领域,你甚至都不需要知道卡号,就可以访问卡内资金并且进行交易。这意味着私钥=资产,其重要性不言而喻。
私钥可以选择自己保存或交由其它机构负责⬇️
1. 将资产放置在托管钱包及中心化交易所的用户是将私钥的保存责任托付给了这些机构。
2. 但对于那些非托管钱包来说,用户就需要自己好好保存私钥了。注意,这些私钥往往以种子短语(种子短语是将私钥编码后呈现的12、18或24个单词的随机字符串,只要种子短语不被遗忘,就可以找回私钥)的形式出现,有点像以前的QQ密保。同时我们需要注意远离黑客的侵袭,网络钓鱼攻击甚至可以让你主动“敞开钱包”。所以有一个原则就是:任何情况下,你都不可以把私钥或者助记词透露出去。
公钥和私钥的关系
公钥和私钥是在数学上相互关联极其大的素数。关联的意思即为:任何由公钥加密的东西只能由相关的私钥解密。公钥由私钥衍生,它是一个长的数字序列,可作为将资金发送至某地址的通行证,就像银行卡号。
这一功能和现实中的地址很相似,比如我知道你家地址,我就能给你寄一封信。同样的,如果加密世界中,我知道了你的公钥,我就可以给你发送加密货币或者NFT。中本聪(Satoshi Nakamoto)在设计区块链交易的运作方式时,曾详细介绍了公钥和私钥如何通过数字签名实现交易。
在白皮书中,中本聪写道:“每个所有者通过对先前交易的哈希和下一个所有者的公钥进行数字签名并将它们添加到代币的末尾来将代币转移至下一个所有者。”
在这一过程中,中本聪描述了如何使用私钥对交易进行身份验证,以及如何将电子硬币定义为数字签名链。
比特币白皮书中解释相关过程的图表
Web3.0安全
Wintermute攻击事件告诉我们:如果钱包地址是用Profanity工具生成的,那么钱包内的资产将不再安全,请尽快将所有资金转移。另外,如果用Profanity获得了一个vanity的智能合约地址,请确保该智能合约的所有者可改变。
对于其他用户来说,了解私钥和公钥,以及了解它们的交互方式是了解Web3.0的基础。在护持安全时,CertiK安全团队在此建议:
1. 在任何情况下都不要泄露私钥
2. 慎重选择自行持有私钥亦或将其托管给相关机构比如钱包或交易所
永远不要将钥匙从一个钱包导入另一个钱包
使用硬件钱包
使用提供高级安全功能的软件钱包
区块链的透明性让诸如CertiK Skynet天网动态扫描系统以及SkyTrace这样的区块链分析工具有了用武之地。
这对Web3.0安全至关重要——在攻击发生时,可帮助我们了解攻击发生的事件、被盗资金去向及如何减轻损失。
尤其是SkyTrace可通过公钥来追踪和可视化钱包之间的资金流动,这又为项目提供了一条追踪被盗资金的途径,并有概率借此引出黑客的信息。
Skynet天网动态扫描系统也是一样,可以通过主动监控链上活动,根据项目的流动性、代币的分布以及任何异常生成实时洞察。
但透明度对我们追踪相关信息有帮助,也同样可以帮助黑客选择目标。正因如此,一些比如Coinbase这样的平台会在用户每次交易时为他们生成一个新地址,这样第三方就无法仅仅通过区块链浏览器来查看用户们的交易情况了。这也在一定程度上,保障了Web3.0的隐私性。