专业邯郸做网站网站建设和维护方案
2026/6/5 23:40:54 网站建设 项目流程
专业邯郸做网站,网站建设和维护方案,网站建设费入预付款什么科目,遵义网站定制0x01 什么是多签钱包 imtoken钱包 tp钱包 比特派钱包 与多签钱包对应的是单签钱包[2]#xff0c;我们要往区块链上发送一笔转账交易#xff0c;需要去用钱包去做一个签名#xff0c;我们自己签好名把交易发送出去#xff0c;交易执行成功转账就成功#xff0c;这就是典型…0x01 什么是多签钱包imtoken钱包tp钱包比特派钱包与多签钱包对应的是单签钱包[2]我们要往区块链上发送一笔转账交易需要去用钱包去做一个签名我们自己签好名把交易发送出去交易执行成功转账就成功这就是典型的单签钱包也是我们平时使用最多的钱包。多签钱包顾名思义就是需要多个人去签名执行某个操作的钱包。使用多签钱包进行转账往往需要 1 个人去签名发送交易之后转账操作才真正完成。使用多签钱包时我们可以指定 m/n 的签名模式就是 n 个人里面有 m 个人签名即可完成操作。比如 2/3 签名模式就是 3 个人里面有两个人签名就可以。在以太坊中多签钱包往往是一个智能合约。https://gnosis-safe.io/ 应该是市场占有率比较高的一个多签钱包我大概 2018 年就开始用了用的是它的第一个版本现在最新版本功能已经强大很多。0x02 什么时候需要用多签钱包需要用多签钱包的场景还是挺多的。比如资金安全在单签钱包中决定加密货币所有权和管理权的私钥仅掌握在单人手中一旦私钥丢失或持有者遗忘钱包助记词那就意味着持有者失去了对该钱包地址的控制权与其相关联的加密资产将完全丢失。而多签钱包的存在最大程度降低了单个私钥丢失时的资产损失风险。以 2/3 模式为例在全部 3 个私钥中只要有 2 个私钥完成了签名授权操作就能进行相关加密货币的交易。即使有 1 个私钥丢失还能通过剩下的 2 个私钥完成对资产的转移避免资产损失。这种情况下个人可以创建一个多签钱包再创建多个钱包地址分布在多个地方比如 metamask 一个手机上一个冷钱包一个把这几个地址都加入多签钱包中动用里面资产需要用其中两个钱包共同签名为了方便使用 1/3 模式签名也可以这样如果一个设备丢了可以立马把该设备的钱包地址从多签钱包移出保证资产安全。资产共管很多 DeFi 协议/DAO 组织/区块链团队其实都有自己的金库金库里的钱是不能由任何一个人直接动用的每次动用都要经过多数人的同意或社区投票。这时使用多签钱包来保存金库资产是再合适不过了。多签操作在目前这个发展阶段很多去中心化协议其实都是有个管理员权限的这个管理员权限往往可以更改协议的某些关键参数。行业普遍做法是把这个管理员权限交给一个多签钱包或时间锁当需要更改参数时需要多个人共同签署相关操作。0x03 脚本操作不管是 Gnosis 多签钱包的第一个版本 https://wallet.gnosis.io/#/wallets 还是当前最新版本 https://gnosis-safe.io/ 界面操作其实都挺简单方便的但当操作比较多时会比较繁琐。其实脚本操作也挺方便的Gnosis 的核心操作就两个代码语言javascriptAI代码解释function submitTransaction(address destination, uint value, bytes calldata data) external returns (uint transactionId); function confirmTransaction(uint transactionId);使用submitTransaction来提交多签交易使用confirmTransaction来确认交易。以下是示例代码代码语言javascriptAI代码解释let multisigWalletAddress ; let unitrollerAddress ; let multisigInstance await MultisigWallet.at(multisigWalletAddress); let comptroller await Comptroller.at(unitrollerAddress); let allSupportedMarkets await comptroller.getAllMarkets(); for (market of allSupportedMarkets) { let cTokenInstance await CToken.at(market); let cTokenName await cTokenInstance.name(); console.log(cTokenName: ${cTokenName}) let acceptAdminEncode await cTokenInstance.contract.methods._acceptAdmin().encodeABI(); multisigInstance.submitTransaction(cTokenInstance.address, 0, acceptAdminEncode); console.log(accept admin to ${multisigWalletAddress} for token ${cTokenName} : ${cTokenInstance.address}); }这段代码执行后会生成很多待确认的多签任务其它参与多签的人运行类似下面脚本进行确认就好了代码语言javascriptAI代码解释let multisigWalletAddress ; let multisigInstance await MultisigWallet.at(multisigWalletAddress); for (var transactionId 0; transactionId 10; transactionId) { await walletInstance.confirmTransaction(transactionId); console.log(Done to confirm transaction: , transactionId); }参考资料[1]Ashton:https://learnblockchain.cn/people/29

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询