KEY:详解Sui密码学中的灵活性_REBASE

Sui在设计底层技术时考虑到了密码学的灵活性。该系统支持多种密码算法和cryptographyprimitives,并可以在它们之间快速切换。开发人员不仅可以为系统选择同类最佳的best-of-breedcryptography,还可以实施最新的algorithms。Sui在一个统一的类型别名或整个存储库共享的枚举包装器下定义其cryptographyprimitives,例如公钥、签名、聚合签名和哈希函数。对这些原语进行更改会影响应用程序的所有组件。开发人员可以快速更新应用程序密码并确保统一的安全性。目前Sui通过执行交易端点支持以下用户交易签名方案:1.PureEd255192.Secp256k1ECDSA用户账户密钥对的接口实现

下面是Sui中密钥对表示的Demo。扩展到新的签名方案非常简单:1.把它添加到enum2.实现fastcrypto库中定义的KeyPairtrait

用户签名通过扩展一个额外的1字节标志来序列化,该标志标识关联的签名方案。尽管Sui团队考虑过使用Multiformats,但其可变标志长度的性质使得序列化存在问题。相反,Sui采用了单字节零起始标志模型。签名方案及其对应的标志定义如下:

当用户提交签名交易时,交易执行指定以下参数:BSC序列化transactionbytes为Base64Signatureschemeflag,可以传参为“ed25519”或“secp256k1”公钥的Base64格式其scheme对应的签名的Base64如下代码是执行已签名的交易,curl如果成功则返回证书和交易结果。

如下代码展示了Sui的全节点如何将API请求字段组装成序列化签名flag||signature||pubkey并在执行前进行验证检查。

Sui支持不同的签名方案的缘由剖析使用secp256k1椭圆曲线的ECDSA被比特币、以太坊和其他加密货币广泛采用。用户可能更喜欢这种签名方案,因为他们想利用现有的钱包和托管密钥管理工具,例如阈值签名和多签。此外,它与云基础设施和硬件安全模块具有更好的兼容性,同时支持从消息和签名负载中恢复公钥。同时,Ed25519是一种更现代的签名方案,具有确定性快速签名和简化数学的特点。虽然TypescriptSDK支持这两种签名方案。但是Sui还是选择Ed25519作为推荐的Sui钱包算法。因为Sui支持不同签名方案,在后面使用secp256r1曲线添加诸如ECDSA之类的方案将花费很少的精力,这条曲线目前是原生手机和未来密码学中都要支持的一条曲线,也是目前社区一个普遍要求的功能。对这种灵活的签名方案支持还使Sui系统与不安全的空签名方案进行基准测试。对于像Sui这样的快速执行系统,并行设计签名和验证也发生在事务级别,而不仅仅是区块层,加密灵活性让SuiCheck出加密操作给系统带来的开销。这些基准测试结果已经能够为Sui提供识别瓶颈和优化方向。授权密钥对

AuthorityonSui持有三个不同的密钥对:Protocolkeypair协议密钥对Accountkeypair帐户密钥对Networkkeypair网络密钥对Protocolkeypair协议密钥对如果用户签名的交易经过验证,协议密钥对会提供授权签名。当为用户交易提供签名的权力机构的占比超过所需的三分之二门槛时,Sui将执行交易。目前选择BLS12381方案来快速验证给定数量的授权机构的聚合签名。特别是决定使用minSigBLS模式,根据该模式,每个单独的公钥为96字节,而签名为48字节。后者很重要,因为通常验证者在每个纪元开始时注册一次他们的密钥,然后他们不断地签署交易;因此Sui优化了最小签名大小。注意!使用BLS方案,可以聚合独立签名,从而产生单个BLS签名有效负载。Sui还将聚合签名与bitmap一起表示签名的验证器。这有效地将当局的签名大小从(2f+1)×BLS_sig大小减少到只有一个BLS_sig有效负载,这反过来具有网络开销优势,可以独立于验证器集大小的压缩交易证书。密钥材料类型别名集中在整个存储库使用的单个位置。事实上,仅通过changingthealias(更改别名)就将协议密钥的Sui从Ed25519切换到了BLS12381。

Cipher在德克萨斯州完成了40兆瓦的风力发电场:金色财经报道,比特币矿工 Cipher Mining 已完成将采矿设备部署到其位于德克萨斯州厄尔布尔士的 40 兆瓦风力发电设施,其哈希率约为每秒 1.3 exahash (EH/s)。该公司在其第二季度业绩报告中表示,新网站每天将能够生产多达 5.7 个比特币。该公司还报告第二季度净亏损2920万美元,相当于每股亏损0.12美元。[2022/8/9 12:13:23]

为了解决BLS12381聚合签名的潜在恶意密钥攻击,在权限注册期间使用密钥知识证明(KOSK)。当授权机构请求添加到验证器集时,将提交并验证所有权证明。校验协议密钥kosk||protocolpublickey||suiaddress。与大多数标准不同,Sui的知识证明方案也提交到地址,这提供了额外的保护,防止来自另一个恶意验证器的验证器的BLS密钥被恶意重用。聚合签名在两种情况下很有用:当仲裁驱动程序从多个授权机构返回的SignedTransaction形成CertifiedTransaction时当权限形成SignedCheckpointSummary时,每个权限都会对检查点内容进行签名Accountkeypair帐户密钥对监管机构用来接收质押奖励付款的账户由账户密钥对保护,使用Ed25519作为签名方案。Networkkeypair网络密钥对私钥用于执行QUIC对Narwhalprimary及其worker网络接口所需的TLS握手。公钥用于验证节点ID,Ed25519用作签名方案。哈希和编码灵活性

目前,Sui的默认哈希函数是sha3256,正在运行基准测试以与sha256和blake2/blake3系列进行比较。为了支持编码灵活性,Base64和Hex在fastcrypto中定义了一个编码特性,作为一个包装器base64ct::Base64和hex及其定制的序列化和验证。值得注意的是,选择了base64ctcrate而不是最流行的base64Rustcrate,因为a)它是恒定时间b)明确拒绝损坏的编码以防止解码时的延展性攻击。Sui的研究团队成员最近报告了大多数base64解码器库中令人惊讶的延展性问题,获得了AsiaCCS2022最佳Poster奖,这是密码学和安全领域的重要会议之一。下面的代码片段显示了如何在fastcrypto中实现包装器结构:

加密灵活性顺应密码学趋势

凭借在密钥对、签名和哈希函数方面的加密的灵活性,Sui在库选择、基础签名方案、编码和哈希函数方面非常便捷。这不仅允许Sui在库有发现漏洞或某种方案有bug的情况下快速升级,还允许根据选择的cryptographyprimitives作为参数对整个系统进行基准测试。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

大币网

[0:0ms0-5:840ms