Sui在设计底层技术时考虑到了密码学的灵活性。该系统支持多种密码算法和?cryptographyprimitives,并可以在它们之间快速切换。开发人员不仅可以为系统选择同类最佳的?best-of-breedcryptography,还可以实施最新的?algorithms。
Sui在一个统一的类型别名或整个存储库共享的枚举包装器下定义其?cryptographyprimitives,例如公钥、签名、聚合签名和哈希函数。对这些原语进行更改会影响应用程序的所有组件。开发人员可以快速更新应用程序密码并确保统一的安全性。
目前?Sui通过执行交易端点支持以下用户交易签名方案:
1.PureEd?25519?
2.Secp?256?k?1ECDSA
用户账户密钥对的接口实现
下面是Sui中密钥对表示的?Demo。扩展到新的签名方案非常简单:
数据研究员J.Hackworth:以太坊仍占据主导地位,空投投机者推动Arbitrum和Optimism增长:1月24日消息,数据研究员J.Hackworth发布了一个Dune仪表盘,对推动以太坊、Arbitrum和Optimism等发展的指标进行了解析,包括Layer2整体与以太坊的对比、钱包、参与度及推动增长的协议等。发现虽然Optimism和Arbitrum的交易组合产生了更多交易,但以太坊仍拥有5倍独立用户;过去一年内,93%的以太坊活跃地址从未离开过以太坊,而Optimism和Arbitrum地址中存在63%及59%的地址用户是多链的;相较于Arbitrum,Optimism拥有更多的余额超50万美元的钱包地址[2023/1/24 11:28:50]
1.把它添加到enum
2.实现?fastcrypto?库中定义的KeyPairtrait
用户签名通过扩展一个额外的1字节标志来序列化,该标志标识关联的签名方案。尽管?Sui?团队考虑过使用?Multiformats,但其可变标志长度的性质使得序列化存在问题。相反,Sui?采用了单字节零起始标志模型。签名方案及其对应的标志定义如下:
GameStop Wallet更新至0.7.0版本,支持以LRC支付Loopring上转账费用:8月18日消息,GameStop推出的非托管浏览器插件钱包GameStop Wallet已更新至0.7.0版本,支持使用LRC支付Loopring上以太坊、ERC-20代币以及NFT的转账等费用。此外,该版本还新增了隐藏部分NFT的功能。[2022/8/18 12:33:40]
当用户提交签名交易时,交易执行指定以下参数:
BSC序列化?transactionbytes为?Base?64??
Signatureschemeflag,可以传参为“ed?25519?”或“secp?256?k?1?”
公钥的?Base?64?格式
其?scheme?对应的签名的?Base?64?
如下代码是执行已签名的交易,curl如果成功则返回证书和交易结果。
隐私稳定币协议Haven Protocol新Desktop Vault已经可以在Mac,Windows和Linux上使用:官方消息,基于Monero的隐私稳定币协议Haven Protocol表示,新Desktop Vault已经可以在Mac,Windows和Linux上使用。[2021/2/4 18:55:19]
如下代码展示了Sui的全节点如何将API请求字段组装成序列化签名?flag||signature||pubkey?并在执行前进行验证检查。
Sui?支持不同的签名方案的缘由剖析
使用secp?256?k?1椭圆曲线的ECDSA被比特币、以太坊和其他加密货币广泛采用。用户可能更喜欢这种签名方案,因为他们想利用现有的钱包和托管密钥管理工具,例如阈值签名和多签。此外,它与云基础设施和硬件安全模块具有更好的兼容性,同时支持从消息和签名负载中恢复公钥。
gate.io ETF糖果分发完成并强烈谴责ETF团队:据了解,gate.io发布公告强烈谴责ETF团队。[2017/12/14]
同时,Ed?25519是一种更现代的签名方案,具有确定性快速签名和简化数学的特点。虽然TypescriptSDK支持这两种签名方案。但是?Sui?还是选择Ed?25519作为推荐的Sui钱包算法。
因为?Sui支持不同签名方案,在后面使用?secp?256?r?1?曲线添加诸如ECDSA之类的方案将花费很少的精力,这条曲线目前是原生手机和未来密码学中都要支持的一条曲线,也是目前社区一个普遍要求的功能。
对这种灵活的签名方案支持还使Sui系统与不安全的空签名方案进行基准测试。对于像Sui这样的快速执行系统,并行设计签名和验证也发生在事务级别,而不仅仅是区块层,加密灵活性让?SuiCheck?出加密操作给系统带来的开销。这些基准测试结果已经能够为?Sui?提供识别瓶颈和优化方向。
授权密钥对
AuthorityonSui持有三个不同的密钥对:
Protocolkeypair协议密钥对
Accountkeypair帐户密钥对
Networkkeypair网络密钥对
Protocolkeypair协议密钥对
如果用户签名的交易经过验证,协议密钥对会提供授权签名。当为用户交易提供签名的权力机构的占比超过所需的三分之二门槛时,Sui将执行交易。目前选择BLS?12381方案来快速验证给定数量的授权机构的聚合签名。特别是决定使用minSigBLS模式,根据该模式,每个单独的公钥为96字节,而签名为48字节。后者很重要,因为通常验证者在每个纪元开始时注册一次他们的密钥,然后他们不断地签署交易;因此?Sui?优化了最小签名大小。
注意!使用BLS方案,可以聚合独立签名,从而产生单个BLS签名有效负载。Sui?还将聚合签名与bitmap一起表示签名的验证器。这有效地将当局的签名大小从(?2?f1)×BLS_sig?大小减少到只有一个?BLS_sig?有效负载,这反过来具有网络开销优势,可以独立于验证器集大小的压缩交易证书。
密钥材料类型别名集中在整个存储库使用的单个位置。事实上,仅通过?changingthealias(更改别名)就将协议密钥的Sui从Ed?25519切换到了BLS?12381?。
为了解决BLS?12381聚合签名的潜在恶意密钥攻击,在权限注册期间使用密钥知识证明(?KOSK)。当授权机构请求添加到验证器集时,将提交并验证所有权证明。校验协议密钥?kosk||protocolpublickey||suiaddress。与大多数标准不同,Sui?的知识证明方案也提交到地址,这提供了额外的保护,防止来自另一个恶意验证器的验证器的?BLS?密钥被恶意重用。
聚合签名在两种情况下很有用:
当仲裁驱动程序从多个授权机构返回的?SignedTransaction?形成?CertifiedTransaction?时
当权限形成?SignedCheckpointSummary?时,每个权限都会对检查点内容进行签名
Accountkeypair帐户密钥对
监管机构用来接收质押奖励付款的账户由账户密钥对保护,使用Ed?25519作为签名方案。
Networkkeypair网络密钥对
私钥用于执行?QUIC?对?Narwhalprimary及其worker网络接口所需的?TLS?握手。公钥用于验证节点ID,Ed?25519用作签名方案。
哈希和编码灵活性
目前,Sui的默认哈希函数是sha?3256?,正在运行基准测试以与sha?256和blake?2/blake?3系列进行比较。为了支持编码灵活性,Base?64?和?Hex?在?fastcrypto?中定义了一个编码特性,作为一个包装器base?64?ct::Base?64?和hex及其定制的序列化和验证。值得注意的是,选择了base?64?ct?crate而不是最流行的base?64Rustcrate,因为a)它是恒定时间b)明确拒绝损坏的编码以防止解码时的延展性攻击。Sui?的研究团队成员最近报告了大多数base?64解码器库中令人惊讶的延展性问题,获得了AsiaCCS2022最佳?Poster?奖,这是密码学和安全领域的重要会议之一。
下面的代码片段显示了如何在?fastcrypto?中实现包装器结构:
加密灵活性顺应密码学趋势
凭借在密钥对、签名和哈希函数方面的加密的灵活性,Sui在库选择、基础签名方案、编码和哈希函数方面非常便捷。这不仅允许Sui在库有发现漏洞或某种方案有?bug?的情况下快速升级,还允许根据选择的?cryptographyprimitives作为参数对整个系统进行基准测试。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。