海峡链SCID“分布式标识系统”,基于MPC密钥管理技术白皮书

158 阅读9分钟

**StraitsChain Decentralized Identity(SCID)是基于区块链和分布式存储技术,为跨系统、跨组织可信数字身份和数据交换服务提供技术基础设施,是符合DIDs标准的一种新型的数字身份及数字标识解决方案。**SCID允许用户为人、企业、设备和数字对象提供分布式身份,构建一个分布式,数据安全的、隐私保护的身份系统,解决人、企业、设备、数字对象之间的可信链接。SCID 是海峡链去中心化账户体系设计中的核心主体,用于统一管理海峡链用户链上账户及用户数据。近日,基于海峡链“分布式标识系统”(SCID)打造的新应用之一,即数字身份(web3域名),已上线海峡链开发者服务市场

“海峡链”基于DIDs标准,采用Lindell [1] 协议,设计了一套半托管的去中心化账户体系,旨在让海峡链用户在 web3 或元宇宙世界中能够拥有如同在 web2 网络中一样流畅的体验,并享有数据所有权和隐私安全保护,支持可验证、去中心化的数字身份(web3域名)。

(图 1:海峡链基于MPC的密钥管理方案示意图)

“海峡链”基于安全多方计算(MPC)的密钥管理技术详解

“海峡链”去中心化账户的另一个重要基础功能就是密钥管理。密钥管理是一个正在变得越来越重要的概念,已经成为区块链领域重要的基础设施。当链上资产更多地被交易和使用,加密不再只涉及安全存储,它还包括在新经济中使用资产。但是,不断增加的攻击面和漏洞,再加上日益丰富的功能,要求钱包需要既能够抵御攻击,同时又能支持日常业务和个人使用。

针对于加密账户存在的问题,“海峡链”去中心化账户体系采用了基于 MPC(Multi-Party Computation 安全多方计算)的密钥管理方案。

MPC是指在无可信第三方的情况下,多个参与方协同计算一个约定的函数。MPC 起源于姚期智先生于 1982 年提出的百万富翁问题及其密码学解法,后来不断发展和完善,已成为当前密码学的一个重要分支。

为了更好地保护区块链上的数字资产,MPC 被引入到多签场景中来。在任何时间,任何地点,公钥对应的私钥都未存在过,取而代之的是多个私钥分片,即通过密码学技术,彻底去除私钥单点风险。也就是说,要求单私钥不出现,通过多个私钥分片,不同参与方在签名时通过 MPC 协议计算出最终签名,且此签名能通过对应的单个公钥的验签。这一类技术称为 MPC 多签。

**MPC 密钥管理的核心思路为分散控制权以达到分散风险或提高备灾的目的,有效避免了单点失败等安全问题。MPC 密钥管理,通过对私钥进行多方计算在链下实现“多签”、“跨链”等等更复杂的验证方式。**简单来说,就是将一个私钥分成多片,将私钥分片交与一个去中心化的网络进行计算和加密。当需要私钥签名时,则将碎片再拼接起来形成一个完整的私钥。由于生成签名的逻辑是放在 MPC 里实现的,出来的是一个标准的签名,内部使用什么算法来生成签名外界是不知道的。因此,把签名结果放到链上,别人分不清它后面是一个人签的还是多个人签的,因为它的形态、样子就是一个签名,和直接用私钥签出来是一模一样的。

(图 2:MPC生成签名原理的简单示意图)

MPC 密钥管理主要是用于产生一个签名,它与合约模块是完全解耦的,不需要去适配合约和链系统,合约是怎么写的、链是怎么样的,它完全不在乎。它只依赖于签名算法,只要签名算法是链系统支持的,它就能很好地接入,所以兼容算法就能兼容很多链。基于 MPC 的密钥管理能做到对多链友好,这是它的一大优势。

**另外一个优势就是MPC签名是链下产生,因此更加安全,它避免了合约被黑客攻击的风险,而且设计策略可以更加灵活。**因为除了验签外的大部分流程都搬到链下了,使用方可以根据场景,制定自己的私钥碎片管理策略。

1. MPC中的私钥分片机制:

  • 分布式私钥分片生成

在传统的私钥生成中, 生成一个公私钥对,其中公钥公开,对应着资产账户,私钥由特权人员管理。分布式私钥分片生成,与传统的私钥生成完全不同。私钥并不是由单个人在本地独自生成,而是所有参与者根据预先指定的门限 t 和参与人数 n,执行一个 MPC 密钥生成协议。当协议结束以后,所有人都能得到自己的私钥分片,以及一个共同的公钥。这个公钥对应着资产账户,对应私钥从未出现过。因此,公钥对应的资产由所有参与者共同管理。当密钥分片完成后,每个人都只掌握一个私钥分片,为了获取真正的私钥,攻击者需要获取不低于门限数的私钥分片,才能恢复真正的私钥。

(图 3:分布式私钥分片生成原理)

  • 分布式私钥分片刷新

为了进一步提高安全性,一套密钥分片每隔一段时间会执行一次密钥刷新协议。协议结束后,每个人会得到一份新的私钥分片,同时旧的私钥分片全部作废。这种操作能有效地防止攻击者分别窃取每个人的私钥分片从而恢复私钥。因为,每次密钥刷新后,旧的私钥分片全部作废,导致攻击者前功尽弃,必须重新开始窃取攻击,从而指数级地提升了攻击难度。

(图 4:分布式私钥分片刷新原理)

  • 分布式私钥分片签名

为了获得有效的签名,生成有效的单签名交易,必须由满足门限数的参与者共同运行 MPC 多签协议。协议结束以后,所有人将获得一个相同的、有效的签名。在协议运行期间,所有参与者的私钥分片都不会泄露。

(图 5:MPC签名原理)

2. MPC密钥管理方案的优势总结:

  • 私钥链下多方分片加密掌管,防止单点隐患;
  • 通过在链下基于算法产生签名后,并不通过智能合约安全性更高,且无需对区块链底层进行适配(具备广泛性);
  • 不暴露签名关系;
  • 设计策略可以更加灵活(大部分流程都在链下)使用方可以根据场景,制定自己的碎片管理策略;
  • 可以在保持接收地址保持不变的情况下,轻松更改 Key Shares 的数量(MPC内部不断地刷新即可),以进一步提高安全门槛,降低安全隐患;
  • 在物理层面直接从系统里剥离了密钥,整个密钥管理的生命周期里,真正的私钥从来没有出现过(MPC钱包通常在用户端“不产生”私钥);
  • 基于MPC,钱包产品有望获得 web2产品的优质体验。

我们看到,基于 MPC 的密钥管理方案,更具广泛性、安全性与灵活性。因此,“海峡链”去中心化账户体系采用了基于MPC的密钥管理方案。

3. 安全高效的两方协同ECDSA签名方案

在“海峡链”去中心化账户系统中设计了一种安全高效的两方协同ECDSA签名方案,此方案是基于两方 MPC-ECDSA 协议来构建,核心算法采用了Lindell [1] 协议的算法(由Lindell 提出的两方 ECDSA 协议**《Fast Secure Two-Party ECDSA Signing》**)。

ECDSA(Elliptic Curve Digital Signature Algorithm)是一种数字签名算法,它使用椭圆曲线密码学来生成和验证签名。ECDSA允许两个用户通过数字签名来确认双方同意一项交易,同时又保证交易内容不被篡改。

Two-Party Sign顾名思义是两方签名,Party1和Party2分别为签名的双方。从图 1 海峡链去中心化账户整体设计方案示意图中可以看出,用户持有Party1的私钥,钱包托管平台或监管平台持有Party2的私钥。当用户需要签名一笔链上交易时,需要将Party1私钥和Party2私钥在链下生成签名,再将签名上传到链上进行交易签名,最终完成交易。

海峡链基于SCID打通多方平台账户和数据

目前,海峡链已经同多个平台合作,采用SCID进行账户和数据的打通,包括十一维度、数藏宝、易术派等多家元宇宙及数字藏品平台,为未来各个平台,各个平行元宇宙的用户协同、数据协同,打造更加丰富的互联互通的应用场景,提供了技术基础。

“海峡链” 是全国首创为加强和推进海峡两岸及全球经贸文化交流,服务于全球企业和开发者的区块链底层基础设施,由中国工合国际委员会指导建设并携手中国技术市场协会国际科技合作委员会、数字中国研究院、北京培黎职业学院、法中交流促进会、福建省企业与企业家联合会、福建省区块链协会、熵链科技(福建)等众多权威机构与单位联合发起,由厦门海峡链科技有限公司提供技术运营支持,建设新一代区块链底层技术服务平台。

“海峡链” 作为区块链底层基础设施和技术提供商,将不断努力深耕区块链底层技术、探索区块链创新应用场景,为海峡链开发者和合作伙伴提供更加完善的区块链技术服务。“海峡链”始终坚持区块链技术与实体相结合,赋能实体经济和数字经济的发展,不断激发技术和科技创新的潜能,为实体经济和数字经济的发展融合提供科技动能。