
如何在波卡上实现共同管理账户?波卡官方的多签账户指南
“波卡知识图谱”是我们针对波卡从零到一的入门级文章,我们尝试从波卡最基础的部分讲起,为大家提供全方位了解波卡的内容,当然这是一项巨大的工程,也充满了挑战,然而我们希望通过这样的努力让大家能够正确认知波卡,也让不了解波卡的人方便快速掌握波卡相关知识,今天是该栏目的第107期,当你想要与他人共同管理资金时,用传统的账户方式就不太合适了,因为会让管理账户私钥的人拥有最直接的权限,也约束不了他,而这时就可以采用一种新的账户方式——多签账户,它可以允许多个人共同参与管理一个账户,要进行操作必须要达到一定人数之后,该操作才能被允许。本期的知识图谱是来自波卡官方Wiki关于波卡多签账户的指南。
多签账户简介
多签账户(multisig)可以在基于Substrate的区块链上创建。一个多签账户由一个或多个地址和一个阈值组成。阈值定义了需要达成共识的签名者(参与地址)数量,同意提交外源(Extrinsic)才能成功调用。
例如,Alice、Bob和Charlie建立了一个阈值为2的多签账户。这意味着即使Charlie不同意,Alice和Bob也可以执行任何调用。同样,Charlie和Bob也可以执行任何调用而不需要Alice的同意。阈值通常是小于成员总数的数字,也可以等于成员总数,但这意味着他们都必须同意。
注:更多关于多签账户的信息
请查阅此帮助页面(详情请参见:
https://support.polkadot.network/support/solutions/articles/65000181826-how-to-create-and-use-a-multisig-account)“如何创建多签账户”部分。我们建议你在Polkadot的测试网络Westend(详情请参见:
https://wiki.polkadot.network/docs/maintain-networks#westend-test-network)上尝试教程。
多签账户有以下几种用途:
保护你的资金:使用额外的签名者作为双重身份验证机制来保护你的资金安全。一个签名者可以位于一台计算机上,另一个可以位于另一台计算机上或者冷存储设备上。这会降低你与链的交互速度,但安全性可以提高很多。
决策委员会:企业和基金会等法人实体使用多重签名来共同管理实体的资金。
群体参与治理:一个多签账户可以执行与普通账户相同的操作。在Kusama的治理中,多签账户可以作为一个议会成员,社区成员可以作为一个实体进行投票。
多签账户创建后无法修改。要更改成员集合或阈值,需要解除当前的多签账户并创建一个新账户。因此,多签账户地址具有确定性,也就是说你总是可以通过知道成员和阈值来计算出多签账户的地址,而不需要账户存在。这意味着可以向一个尚不存在的地址发送通证,如果指定为接受者的实体以相同的阈值组成一个新的多重签名账户时,他们就可以立刻使用这些通证。
编者注:
这段话的意思是可以把多重签名账户地址想象成一个保险箱,这个保险箱有一个特殊的锁,需要多把钥匙才能打开。这些钥匙分别属于不同的人,他们都是这个保险箱的共同拥有者。这个保险箱里面放着一些钱,只有当达到一定数量的人同意时,才能取出这些钱。
多重签名账户地址的生成方法是固定的,也就是说,只要知道了这个保险箱里有几把钥匙,还有需要几个人同意才能取钱,就可以算出这个保险箱的编号,而不用等到保险箱真的造好了。这样做的好处是,可以先给一个还没造好的保险箱打钱,然后等到指定的人以同样的条件造了一个新的保险箱后,他们就可以马上用这些钱。
使用Polkadot-JS UI创建多签账户
账户(Accounts)选项卡的多签交易
注:参阅视频教程
请参阅此视频教程(详情请参见:https://youtu.be/-cPiKMslZqI),了解如何在Polkadot-JS UI(详情请参见:
https://polkadot.js.org/apps/#/accounts)的账户(Accounts)选项卡上使用多签账户进行交易。
你可以直接在Polkadot-JS UI(详情请参见:
https://polkadot.js.org/apps/#/accounts)的账户(Accounts)选项卡上创建多签账户,并使用此账户发送资金。更多信息,请参阅此帮助文章(详情请参见:
https://support.polkadot.network/support/solutions/articles/65000181826-how-to-create-and-use-a-multisig-account)。
外源(Extrinsic)选项卡的多签交易
多签账户可进行三种类型的操作:
执行【asMulti】调用。用于开始或结束一个多重签名交易。
审批【approveAsMulti】调用。用于审批一个外源(Extrinsic)操作,并传递给下一个签名者(有关更多信息,请参见下面的示例)。
取消【cancelAsMulti】调用。
注:请查阅此页面(详情请参见:
https://polkadot.js.org/docs/substrate/extrinsics/#multisig),了解更多有关多签账户操作的详细信息。
在只需要一次审批的情况下,应使用便捷方法【as_multi_threshold_1】。该函数仅将其他签名者和原始调用作为参数。请注意,Polkadot-JS UI不支持此调用,因为不可能创建【阈值=1】的多签账户。如果你想创建一个阈值为1的多签账户,可以使用由Parity Technologies开发的txwrapper-core(详情请参见:
https://github.com/paritytech/txwrapper-core)。这里有一个详细的多重签名示例(详情请参见:
https://github.com/paritytech/txwrapper-core/tree/main/packages/txwrapper-examples/multisig),你可以尝试并更改它,以了解其工作原理。
但除了简单的一次审批外,在执行之前,你可能还需要一个以上的签名者审批调用。当你创建新的调用或审批多重签名时,你需要存入一笔小额保证金。存款将保留在合约中,直到调用被执行。存款是为了建立多重签名调用在链上占用的存储空间的经济成本,防止用户创建永远不会执行的悬空多重签名操作。存款将被保留在调用者的账户中,因此多签钱包中的参与者应该要有备用资金。
存款取决于阈值【threshold】参数,计算公式如下:
存款=存款基数+阈值*存款因子
其中,存款基数(depositBase)和存款因子(depositFactor)是Runtime代码中设置的链常量(以DOT为单位)。当前,存款基数等于20.088DOT,存款因子等于0.032DOT。
注:视频教程(使用多签账户示例)
请参阅本视频教程(详情请参见:https://youtu.be/T0vIuJcTJeQ),了解如何使用Polkadot-JS UI(详情请参见:
https://polkadot.js.org/apps/#/explorer)中的外源(Extrinsic)选项卡与多签账户进行交易。
图片
让我们以波卡上的多重签名为例,假设签名阈值为2,有3名签名者:Charlie、Dan和Eleanor。首先,Charlie将通过调用【multisig.asMulti】外源(Extrinsic)在链上创建多重签名交易。在本例中,他要进行的是一个余额转账(【balances.transferKeepAlive】extrinsic),从多重签名账户CDE转账到Frank的账户。在这个过程中,Charlie需要存入【DepositBase+(2*DepositFactor)=20.152DOT】的保证金,同时等待Dan或Eleanor中的任一人审批该余额转账调用,使用【multisig.approveAsMulti】或【multisig.asMulti】外源(Extrinsic)。
如果Dan提交【multisig.approveAsMulti】外源(Extrinsic),他就审批了Charlie的调用,但会将最终审批权交给Eleanor。因此,在这种情况下,尽管多重签名的阈值是2,所有3/3个签名者都需要参与交易审批。Eleanor需要提交【multisig.asMulti】或【multisig.approveAsMulti】外源(Extrinsic),以从CDE账户向Frank转移资金。
或者,Dan或Eleanor可以在Charlie之后提交【multisig.asMulti】外源(Extrinsic)以转移资金。在这种情况下,2/3的签名者将参与交易审批。审批Charlie调用的账户无需支付保证金,一旦转账成功或取消,Charlie将收到他的保证金。要取消交易,Dan或Eleanor可以使用【multisig.cancelAsMulti】外源(Extrinsic)。
请注意,多重签名是确定性的,这意味着多重签名地址是根据签名者的地址和多重签名钱包的阈值生成的。无论签名者账户的顺序如何,多重签名的地址始终相同,因为账户地址按升序排序。
注:提供给多重签名钱包的地址是经过排序的
公钥签名者的钱包地址按字节逐位比较并升序排序后,用于生成多重签名地址。例如,考虑以下三个地址:A、B和C,分别以【5FUGT】【5HMfS】和【5GhKJ】开头。如果我们按照特定顺序(首先是A,然后是B和C)创建ABC多重签名钱包,实际的账户顺序将是ACB。在外源(Extrinsic)选项卡中,如果我们使用C发起多重签名调用,其他签名者的顺序将首先是A,然后是B。如果我们首先放置B,然后是A,交易将失败。
在使用Polkadot-JS UI(详情请参见:
https://polkadot.js.org/apps/#/accounts)的外源(Extrinsic)选项卡执行多重签名交易时,这会产生一些影响。如果其他签名者的顺序错误,交易将失败。如果直接从账户(Accounts)选项卡执行多重签名,则不会发生此问题(建议使用该方法)。Polkadot-JS UI支持多签账户,可在账户生成(Account Generation)页面(详情请参见:
https://wiki.polkadot.network/docs/learn-account-generation#multi-signature-accounts)文档中找到相关信息。关于更多创建多签账户以及如何使用Polkadot-JS UI中的账户(Accounts)选项卡(详情请参见:https://youtu.be/-cPiKMslZqI)和外源(Extrinsic)选项卡(详情请参见:https://youtu.be/T0vIuJcTJeQ)进行交易,你可以查阅我们的视频教程。
多重签名与Multix工具
注:视频教程
有关如何使用Multix(详情请参见:
https://multix.chainsafe.io/?network=kusama)进行多签账户操作的更多信息,请参阅本视频教程(详情请参见:
https://www.youtube.com/watch?v=APxPsawebJw)和本文(详情请参见:
https://blog.chainsafe.io/multix-a-simple-interface-to-manage-complex-multisigs-on-polkadot-97328be26f9d?gi=abd0f3fbabb7)
Multix工具(详情请参见:
https://multix.chainsafe.io/?network=kusama)是一个易于使用的界面,用于管理复杂的多重签名。该工具是开源的波卡/Kusama技术堆栈(详情请参见:
https://wiki.polkadot.network/docs/build-open-source#user-interface)的一部分。与Polkadot-JS UI相比,Multix除了用户友好外,还具有多项优势:
当有人创建多签账户时,所有签名者都会在其界面上看到多签账户。
无需传递调用数据以确认交易。此类信息会从链上检索,并显示给用户。
借助纯代理(pure proxies)(详情请参见:
https://wiki.polkadot.network/docs/learn-proxies#anonymous-proxy-pure-proxy)的强大功能,可以添加和删除签名者或调整阈值,而无需创建新的多重签名,并且Multix提供了一个直观的界面来处理纯代理。
解码多重签名调用数据
注:在签署交易之前,了解签署内容的具体细节非常重要。请查阅帮助文档中的"如何使用多签账户"(详情请参见:
https://support.polkadot.network/support/solutions/articles/65000181826-how-to-create-and-use-a-multisig-account),了解如何解码多重签名调用数据。
比推快讯
更多 >>- 某巨鲸再次斥资 309 万美元购入 5.4 万余枚 HYPE,总持仓价值增至 5619 万美元
- 澳大利亚证券投资委员会放宽稳定币中介机构监管规定
- 某巨鲸过去 2 小时从币安提取 1.52 万枚 ETH,价值 7044 万美元
- CZ:BNB 创下历史新高,Keep Building
- 巴克莱:美联储利率路径风险倾向于推迟降息
- 巴林央行推出稳定币监管框架,拟允许法币抵押型稳定币
- 贝莱德:美联储降息前景取决于劳动力市场疲软程度
- 摩根大通:美国降息预期支撑新兴市场资产
- Coinbase CEO:加密市场结构法案有很大机会获得通过
- 日本服装零售商 Mac Housd 更名为 Gyet,新增多项加密业务
- 数据:当前加密恐慌贪婪指数为 51,处于中性状态
- DeAgentAI 发布新版白皮书,公布$AIA 代币经济学与质押模型详情
- 某巨鲸持仓 7 个月后向 Bybit 存入 130,628 枚 TRUMP,亏损 97.9 万美元
- New Gold Protocol 代币 NGP 遭攻击,损失约 200 万美元
- RootData:PARTI 将于一周后解锁价值约 1546 万美元的代币
- Project Hunt:激活和管理跨链和 dApp 流动性的去中心化协议 Brahma 为过去 7 天被 Top 人物取关最多的项目
- Camp Network 与经典服饰品牌 Chalk Line 及 Remaster 达成战略合作
- Meteora 确认 JUP 质押者可获取 MET 空投
- 慢雾:AMOS 变种木马 Odyssey 通过虚假 AI 工具窃取加密钱包等敏感数据
- Norio Ventures 计划募集 1,000 万欧元的基金,用于投资区块链初创公司
- DeFi Technologies 战略投资稳定币公司 Continental Stablecoin
- 某巨鲸出售 PUMP 获利 148 万美元后,买入 3.2 亿枚 TRUMP
- Kalshi 与 Solana、Base 合作推出生态系统,交易量正逼近 Polymarket
- Nick Timiraos:鲍威尔领导下美联储第三次降息
- Bubblemaps:STBL 代币交易量排名前五的交易者相互关联,且获利超 1000 万美元
- 数据:Hyperliquid 平台鲸鱼当前持仓 109.77 亿美元,多空持仓比为 0.88
- 港股上市公司基地锦标:拟收购一家持牌虚拟资产交易平台
- 中心化交易所 BTC 供应量处于 7 年来最低水平
- 数据:昨日美国比特币现货 ETF 净流出 5,133 万美元
- 某巨鲸在美联储降息后花费 1.12 亿美元买入 2.5 万枚 ETH
- 韩国 BDACS 在 Avalanche 推出首个由韩元支持的稳定币 KRW1
- 纳斯达克上市公司 TNL Mediagene 宣布将实施数字资产财库战略
- 数据:Creditlink $CDL 24 小时涨幅接近 110%
- 数据:TRUMP 代币部署地址转出 27.4 万枚 TRUMP,其中 20 万枚已进入 OKX
- 某巨鲸清仓 93.8 万枚 LINK,获利 23.1 万美元
- BNB 市值超越中国人寿,跻身全球资产市值排名第 161 位
- 鲍威尔定调美联储第三项使命,称其是另两项任务的衍生品
- 某鲸鱼向 Coinbase 转入 16,480,000 枚 XRP,价值约 50,850,000 美元
- FalconX 于 4 小时前从 Binance 再次提取 118,190 枚 SOL
- ETH 波段盈利 7492 万美元的巨鲸以 4487 美元均价购入 1.8 万枚 ETH
- 持仓三年的 APX 个人持仓 TOP 1 地址一晚浮盈 378.3 万美元
- 麻吉多单已浮盈 423 万美元,当前持仓价值 1.31 亿美元的 ETH、PUMP 和 HYPE 多单
- ASTER 上涨触及 0.51 USDT,1 小时涨幅 20%
- 韩国交易所子公司 Koscom 申请 5 项稳定币商标,押注韩元稳定币赛道
- BitGo 获德国 BaFin 许可证扩展,可在欧洲提供受监管加密货币交易服务
- 美国众议院推进临时拨款法案,盼避免政府关门
- 市场分析:预计日本央行维持利率不变,关注 10 月加息信号
- 数据:ETH 当前全网 8 小时平均资金费率为 0.0035%
- 数据:某钱包向 HyperLiquid 存入 1460 万枚 USDC,并 5 倍杠杆做多 HYPE
- Praetorian Group International 首席执行官承认 2 亿美元比特币庞氏骗局罪行