近DAO文化兴起,大家都加入某些DAO或和朋友创建自己的DAO,一起研究和学习,以我自己为例,我加入了BuJiDAO(不羁岛)成为了DAO都OG(初始成员)之一Twitter:窝不知道
DAO的日常运营(网站服务器、设计师费用、宣传推广、收益)都会和钱打交道,去中心化组织应该如何管理资金?如何让核心成员共同执行关键操作?下面有请——多签名钱包。
数字签名
在讲多签名钱包之前,想先说一下数字签名,这个概念对于学过CS的同学应该不陌生,数字签名就是将要发送到信息进行加密,它能够保证所传输消息的真实性、完整性、不可抵赖。
在qukuailian世界,当我们要执行一次交易(如Swap,买NFT),在提交交易之前,是要进行数字签名的,签名过程如下:
原文→哈希处理(得到Hex)→使用私钥进行签名(如metaMask上的确认操作)
签名完成后,我们就可以将交易向全网广播,等待矿工处理。
单签名VS多签名
单签名钱包
作为普通用户,我们日常使用的都是单签名钱包,即我们的资金都存放在一个只有唯一私钥的地址中,谁掌握了唯一的私钥,就可以任意调动资金。私钥是如此的重要,以至于我们一直提醒大家要保护好自己的私钥,定期更换新的钱包,警惕私钥泄漏。
使用单签名钱包是方便快捷的,目前仍有不少项目的管理员使用单签名钱包,例如一些随时跑路的土狗项目。对于项目和DAO,单签名钱包是不安全的,一旦私钥泄漏,或团队中出现内鬼,项目的资金钱包可能被马上掏空。
过去一年也发生过不少因为私钥泄漏(可能也是自导自演)的安全事故,如EasyFi的安全事故,黑客窃取了管理员钱包的私钥,从流动池偷走了$59,000,000等值的代币。
我们需要多签名钱包来管理DAO资金
多签名钱包
多签名钱包,顾名思义,资金存在一个有多重签名的地址钱包中,一笔交易要经过多人签名批准才能提交。在多人共同监督管理下,资金的安全性可以得到提高。
GnosisSafe是目前较多团队采用的多签名钱包,它支持Ethereum、BSC、xDai网络,ERC20和ERC721代币
安全性提高的另一面是效率的降低和操作成本的增加,多签名钱包虽安全,但每次执行操作都需要多人共同签名批准,这会耗费大量的时间,假如团队出现意见分歧,进行决策前就需要更多的辩论;此外执行多签名的步骤也比单签名复杂,对签名者有一定的技术要求。
近火热的NFT项目Doodles的管理员钱包就是多签名钱包,在正式发售前,或许是团队不太熟悉多签名的操作流程,一个简单的发售操作耗费了1个多小时的时间,用户等的心急火燎。
多签名钱包的类型
多签名钱包可以简单的通过所需的密钥组合进行分类为N/N多签名和N/M(N<M)多签名,下面我们来看两个例子:
3/3多签名(N/N):一个钱包由3个私钥组成,执行操作需要3个私钥共同批准
4/6多签名(N/M(N<M)):一个钱包由6个私钥组成,执行操作需要4个私钥(过半数)批准
对于人数少的团队来说,N/N多签可以更好的维护资金安全;对于人数较多团队来说N/M(N<M)多签名可以在资金安全的前提下,牺牲部分安全性来提高操作效率
多签名钱包密钥丢失
假如我们丢失了多签名钱包的私钥,会发生什么?
对于2/3多签钱包,假如1个私钥丢失或被遗忘了,资金还是可以被拯救的,只需要另外的2个私钥进行签名➕3个公钥地址,就可以将资金迁移到新的钱包
对于3/3多签钱包,假如1个私钥丢失了,那不好意思,剩下的两个私钥无法批准交易执行
使用多签名钱包不代表可以降低对保管私钥的警惕,相反,私钥持有者应该将私钥保护的更好,因为这把私钥可能联系着整个团队的资金。