-
AAStar肯定要支持多签,为Cos72提供当下基础安全保障和未来扩展。
-
多签目前大概率会用BLS聚合+TSS门限签名(这个应用最广:以太坊validator的签名和验证用的这个)
-
有以下一些实现多签的方式:
ECDSA 多签(Multisig): 使用 ECDSA 算法实现的多重签名方案。多个参与方共同生成公钥和私钥,需要达到预设的门限才能完成签名。 相对简单,但安全性受限于 ECDSA 算法本身。 Schnorr 多签: 基于 Schnorr 签名算法实现的多重签名方案。与 ECDSA 多签相比,Schnorr 多签具有更高的效率和可扩展性。 可以实现更紧凑的签名,并且支持批量验证。 MPC(多方计算) 多签: 使用多方安全计算(MPC)技术实现的多签方案。参与方通过安全的多方计算过程共同生成签名,不需要共享私钥。 安全性强,但计算复杂度较高。 Threshold Multisig: 基于门限签名技术实现的多签方案。参与方共同生成一个公钥,私钥由多个参与方分散持有。 可以实现去中心化的多签管理,灵活性强。
-
用户角度未来多签场景模拟:
- 提供平滑过度,从单独签名到多个签名的账户过度(不可逆转),先提供一个数组,默认取第一个和第二个验签;其他规则再添加。
- 用户验证完毕后,使用TEE的私钥签名和指纹签名,给这个升级为多签账户的交易签名:新增签名公钥(passkey)+门限参数(2/3默认)。
- 签名完毕后,之后所有交易(也可以部分交易),必须进行三个指纹签名(可以设计为组合:比如ECDSA+指纹组合)
- 签名验证规则
- 和特定合约之外的交互,必须多签通过
- 和新地址交互,必须多签通过
- 当日额度(以USDT计算)超过特定额度的,必须多签通过
- 单笔金额超过特定额度的,必须多签通过
- 判断交易是否符合多签规则的配置,在多签初始化时确认,写入合约账户的代码配置内。
- 合约代码不可升级 7.** 修改签名验证规则**,需要更高权限门限签名,例如默认2/3, 3/5,则需要3/3, 4/5进行签名,才可以修改验证规则
- 更换签名人,需要高权限门限签名
- 更换签名门限,需要高权限门限签名
- 所以这次设计,就得有这个签名升级规则和配置等等的预留,但功能上不提供页面接口(实际手工构造交易,原理上是可以添加签名的,但需要Email、TEE私钥和指纹验证)