引介

Gnosis 发布全新的多重签名钱包

月亮🌛   |     |   4119 次阅读

多重签名(多签)钱包自从以太坊发布以来就已经被使用。但是,仍然有超过13%的以太币被保存在两个单签钱包里。主要的原因还是由于现有的解决方案任然面临各种问题,并且无法提供足够的安全保障。我们发现了这个需求,并且现在自豪地发布一款易用且被审计过的多签智能合约。这款钱包从零开始开发,现在已经配备了对交易更安全的冷钱包多签交易支持。

许多大额以太币账户任然使用传统的单签账户——我们希望改变他们。
https://github.com/ConsenSys/MultiSigWallet
源代码已经被发布在GitHub上,并支持GPLv3许可
A live version is available here: https://wallet.gnosis.pm/
上线运行版本:

在巴黎的EDCON上展示多签钱包

Gnosis为什么要开发一个新钱包?

多签钱包的目的是通过要求多方在交易执行前达成共识来提高安全性。在以太坊平台上这个目标可以通过智能合约轻松地达到。通过智能合约持有标的资产(例如以太币或者其他代币),并且明确持有这个多签钱包的以太坊账户地址。交易只有在被超过预先确定数字的钱包持有者确认后才能执行。这解决了私钥持有账户的单点沦陷问题——如果丢失或者泄漏私钥会可能直接导致账户中所有的资产的丢失。

以太坊基金会早前曾开发过多签钱包来保护他们的资金安全。Gavin Wood编写了第一个版本,看一在这里看到。至今这个版本没有出现致命的缺陷,以太坊基金会也没有丢失任何以太币。基金会钱包的实例在这里看到。

如果市面上已经有一个久经考验的版本,我们为什么要开发一个全新版本的多签钱包呢?现有多签钱包的一个巨大的限制驱动了我们的再开发:以太坊基金会的钱包仅允许通过多签交易在地址间发送以太币。任何其他的交易,例如发送其他代币或激活新的智能合约程式,都可以在没有多余确认的前提下被任意一位钱包持有者执行。换句话说:在这些场景下钱包不是多签的。我们的新钱包解决了这个问题,要求所有交易都通过多重签名。

随着以太坊网络上有价值的代币数量每个月都持续上涨,持有以太币之外的资产变得越发重要。我们的GNO代币也很快将会加入这个名单,同时我们希望保障我们的代币安全,因此我们才开发了这个项目。

智能合约的功能性

这款多签合约有两个可用版本。基本版提供了所有必要的功能来提供安全的多签交易和钱包设置,例如所有权管理。每日限制版拓展了智能合约,提供了一个每天可以不通过多签确认提取一定数量的以太币的功能。如果你经常需要用这个账户来支付小额开销但又不想每次都叫所有人来签署交易,那这个功能就变得十分有用。

安全性

为了保证智能合约的安全,我们进行了多轮审查。ConsenSys内部进行了多个礼拜的第一轮审查,Joseph Chow提供了主要的帮助。这个流程是为了保证我们的智能合约符合“Best Practices”要求。额外的一轮审查是由以太坊基金会发起,由Martin Holst Swende执行。

审查所提出的建议已经被讨论并落实,我们十分感谢他们所提供的帮助。

这个钱包也是两个Bug奖励计划的一部分:GnosisWeifund。两个奖励计划都仍在进行中,所以任何提交都会被仔细阅读。注意:不论你将问题提交给Weifund或者Gnosis,回报都是一样的。同一个弱点仅会得到一份回报,所以分别提交到两个计划没有意义。

另一个值得注意的事情是,我们这款多签钱包的一个早期版本在Golem重筹时已被使用。

交互界面

所谓安全,不仅仅只需要保证智能合约的安全,更需要确保用户交互的安全。只有一个用户能注意到他的交互所带来的后果,我们才能真正的保证安全。但在以太坊世界中往往不是这样的。在以太坊刚开始的时候,由于以太坊客户端并没有一个完善的交互界面,许多用户在不经意间执行了不正确的交易。超过460笔交易将超过70,000美金的以太币发总至了地址0x0,这些钱已经永远地消失了。这些交易的执行主要还是因为用户当时并不确定如何正常发送一笔交易。这也是为什么我们花了大量的精力来打造一个全面且易用的用户交互界面。这个交互界面让用户理解多签交易的状态和他们的交易的含义。每一个已知合同的交易,例如钱包设置或者与任何代币的交互,都被解码并用一种正常人可以理解的方式显示。

对于每一个合约中未知交互界面的交易,联系人的ABI在可用的情况下会通过Swarm被自动加载(目前版本未添加此功能),并且交易也会被相应解码。如果没有ABI被发现,那么一个新的ABI可以被手动添加。每个联系人和每个持有人都可以被命名,使得交互变得尽量透明。

冷储存

冷储存指的是讲一定量的以太币或者其他资产离线储存。这是一个十分重要的安全防范措施,特别是在与大额以太币打交道时。即使使用一个多签钱包,控制多签钱包的这些账户也应该被保护。最好的保护措施就是将私钥保存在一个永远不会接触到互联网的设备上。为了让我们的多签钱包支持冷储存,我们开发了一个支持离线交易签名的交互。我们的钱包交互界面如果发现用户是在一个离线的电脑上,会将整个交互相应自动调整来允许交易的离线签名。签名后的交易可以被转移到一台在线电脑,然后发送到以太坊网络中去。

大部分用户使用私钥控制的账户来保护他们的资产或者任然依靠中性化的交易所,例如Polonies和Kraken,来维护他们的资产。然而,就连最大的交易所都不使用多私钥来保护他们的资金。看看这张持有最多以太币的账户表格,Poloniex和Kraken持有的冷钱包在最顶端,但他们都没有通过多签智能合约来保证安全,仅仅使用了一个普通的以太坊私钥。

至今,大家任然将资金放在中心化交易所的一个重要原因就是没有一个好用的应用来管理资产。将资产保存在可管理的交易所里更加方便。我们希望这个钱包能帮助用户提高对他们自己资产的责任心,增加安全性并将网络中的以太币更去中心化。

除了个人安全概念缺失,以太币的中性化在PoS被实现后将成为一个更大的问题。如果中性化交易所任然持有巨量的以太币,他们可能将会成为PoS共识中的主要影响者。

请试用这个钱包,我们对任何评论都会十分感激。可以发送评论至stefan@gnosis.pm或者denis@gnosis.pm。
The source code is released on GitHub under GPLv3 license: https://github.com/ConsenSys/MultiSigWallet
A live version is available here: https://wallet.gnosis.pm/

请考虑运行本地版本来管理真实资金,仅使用云版本来读取钱包实时状态。

 
0 人喜欢