预备知识
Safe优势
作为智能合约钱包,Safe支持多签名批准交易。这带来了以下优势:
更高的安全性。将资产放置在多签钱包内可以有效避免因为个人单一私钥的泄露而导致的资产丢失。用户可以将多签设置为2-of-3形式,个人保存两个私钥并将第三个私钥作为备份。当遭受黑客攻击时,泄露1个私钥对资产安全性没有影响。
更加的交易设置。相对于以太坊用户,智能合约具有可编程性,这意味着用户可以自行编辑一些交易逻辑,比如将多个交易聚合起来一起执行(batchedtransactions)。此部分由SafeLibrarycontracts提供。
更加灵活的访问管理。用户可以在钱包内加入具有特定功能的模块,比如限制单一用户每日大可批准金额。这对于DAO是十分有用的。此部分由`SafeModules提供。
上述仅仅是对Safe优势的简单介绍。如果读者想了解更多关于此方面的介绍,请参考GnosisSafe官网
以太坊账户
在以太坊网络中,具有地址的账户被分为以下两类:
EOA(externallyownedaccounts)我们平常使用的使用账户均属于这一类型。这一类型的账户具有公钥和私钥。
Contractaccounts合约账户。我们创建的合约也均有对应的区块地址,但没有私钥可以用于签名等操作,这一类型的账户被称为合约账户。与EOA相比,合约账户内存在代码逻辑,可以进行编写一些复杂操作。
值得注意的是,在以太坊中,EOA与合约账户是被同等对待的。合约账户可以发送交易,也可以接受ETH。
多签钱包
多签钱包是指需要使用多个私钥进行签名完成交易的钱包。它们的形式一般被标记为m-of-n,即需要n个签名人中的m个签名人进行签名确认。在实际形式上,存在一些加密算法可以实现签名聚合等操作,比如schnorr、BLS等算法都可以实现原生上的多签。
但上述方法一般依赖于一些特定的密码学算法,构建基于这些算法的钱包具有一定的复杂性而且要求设计者具有较高的密码学造诣。而使用智能合约实现多签钱包较为简单,因为智能合约具有数据存储和处理功能,这大大降低了多签钱包智能合约的设计难度。
我们会在后文向读者介绍GnosisSafe的多签钱包的构造逻辑和代码。