一、什么是异构链多签?
指通过不同公链(比如Eth+Arweave+Solana)的钱包进行签名,甚至包括MPC钱包签名。比如我在DNA中实现的:
比如我自己的号,绑了5个地址,就可以进行n/5的多签操作:


二、可行性
一直没见到这种钱包,估计确实很难
Nervos支持密码学原语,对这些流行公链的验签逻辑应该都能实现。(如果不考虑成本)
三、必要性
- Neuron的多签模式有点麻烦,当然主要是Nervos生态的钱包不多,支持签名验证的更少。
- DNA目前是中心化的,如果想上链(DID部分),那条链必须支持密码学原语,必须支持多种链的验签——而这又是多签钱包的基础——有必要一试
四、感兴趣的一起来玩~
Twitter: https://twitter.com/_runebox_
Discord: https://discord.gg/H22UQuKUrA
五、参考资料
1. CKB Auth:
2. CKB合约:验证RSA签名:
六、草稿(20230122更新)
- dna:多签。
- 接收参数:
- account
- public_key
- message:签名的原始文本内容
- signature:签名的结果。
- account_key:比如eth=did:pkh:slip0044:60, ckb=did:pkh:slip0044:309, UniPassID=did:ns:unipassid
- lock:预期通过exec调用的的{chain}-lock
- lock_version:{chain}-lock的版本
- 接收参数:
- {chain}-lock:处理某条链的具体逻辑。account_key和lock_version是与某条链和具体的lock实现版本绑定的。
- 需要检查传入的account_key和lock_version。
- 方法:verify_message。非Eth链。
- 方法:recover_message。仅限Eth链。
方法:sign_message