探讨更简单的以太坊多重签名合约

探讨更简单的以太坊多重签名合约


几周前,多个广泛使用的以太坊多重签名钱包被黑了,被盗以太坊资产达3200万美元。另有1.6亿美元的资产被一群白帽黑客抢先保护起来。这起事件突显了编写智能合约代码所面临的挑战。没有什么环境比公有链更具对抗性了:你的代码对所有人公开,任何人都可以研究你公开的函数。再加上那些用来保护数千万美元资产的合约,所有这些使你置身的环境对黑客极具吸引力,他们往往会动力十足地寻找你合约中的漏洞并加以利用。在多重签名钱包遭到黑客攻击这件事上,讽刺的是,它们本应比只有一把私钥的钱包更安全。理论上,多重签名这一属性增加了被黑的难度,因为黑客需要侵袭多人才能获得私钥。然而,多重签名技术在执行此安全功能时存在一个逻辑漏洞,这个漏洞使其安全系数比单个秘钥的安全系数还低。
简单性vs安全性
这里出现了一个有趣的权衡现象:智能合约中,运用的逻辑越多,可实现的安全功能越多:超时设定、支付限制、多重签名、金库(vault)等。然而,运用的逻辑越多,智能合约的攻击面也越大,漏洞也更有可能带来破坏安全功能的风险。
我们可以考虑一系列资产管理工具,不管是简单的还是复杂的。但要保护以太币的安全,最简单的方法是使用与以太坊地址相对应的单个私钥,有时也称为“终端用户账户”。采用这种方法,根本不存在智能合约逻辑,也就无需为此费神,这样便消除了这一风险。然而,只使用一把秘钥也意味着存在单点故障。另一方面,你也可以创建复杂的钱包合约来管理自己的资金。以太坊基金会有一个他们经常使用的钱包合约,且最近Gnosis引入了一个精巧的多重签名钱包,该钱包支持支付限制、管理控制,并采用了这样一种工作流程,即(钱包)所有者可以确认由其他人提交的交易。

探讨更简单的以太坊多重签名合约

扫一扫手机访问

发表评论