Sui在设计底层技术时考虑到了密码学的灵活性。该系统支持多种密码算法和?cryptographyprimitives,并可以在它们之间快速切换。开发人员不仅可以为系统选择同类最佳的?best-of-breedcryptography,还可以实施最新的?algorithms。
Sui在一个统一的类型别名或整个存储库共享的枚举包装器下定义其?cryptographyprimitives,例如公钥、签名、聚合签名和哈希函数。对这些原语进行更改会影响应用程序的所有组件。开发人员可以快速更新应用程序密码并确保统一的安全性。
目前?Sui通过执行交易端点支持以下用户交易签名方案:
1.PureEd?25519?
2.Secp?256?k?1ECDSA
用户账户密钥对的接口实现
下面是Sui中密钥对表示的?Demo。扩展到新的签名方案非常简单:
1.把它添加到enum
2.实现?fastcrypto?库中定义的KeyPairtrait
用户签名通过扩展一个额外的1字节标志来序列化,该标志标识关联的签名方案。尽管?Sui?团队考虑过使用?Multiformats,但其可变标志长度的性质使得序列化存在问题。相反,Sui?采用了单字节零起始标志模型。签名方案及其对应的标志定义如下:
当用户提交签名交易时,交易执行指定以下参数:
BSC序列化?transactionbytes为?Base?64??
Signatureschemeflag,可以传参为“ed?25519?”或“secp?256?k?1?”
公钥的?Base?64?格式
其?scheme?对应的签名的?Base?64?
如下代码是执行已签名的交易,curl如果成功则返回证书和交易结果。
如下代码展示了Sui的全节点如何将API请求字段组装成序列化签名?flag||signature||pubkey?并在执行前进行验证检查。
Sui?支持不同的签名方案的缘由剖析
使用secp?256?k?1椭圆曲线的ECDSA被比特币、以太坊和其他加密货币广泛采用。用户可能更喜欢这种签名方案,因为他们想利用现有的钱包和托管密钥管理工具,例如阈值签名和多签。此外,它与云基础设施和硬件安全模块具有更好的兼容性,同时支持从消息和签名负载中恢复公钥。
同时,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作为参数对整个系统进行基准测试。
关于Gate.ioStartup免费空投计划为回馈平台用户,Gate.io上线“免费空投计划”,在Startup区不定期进行区块链项目的免费空投计划.
按照最近一次以太坊核心开发者会议的讨论情况,以太坊上海升级预计会在2023年3月底进行,本次升级将开放信标链质押以太坊的提款.
gz呺Web3团子 世界标准时间1月9日晚上11:59,用于开发利用其他链和互联网数据的应用程序的区块链Flare成功启动了备受期待的代币空投.
Bonk透过大规模大范围空投的方式,让更多Solana社区成员了解并知晓该项目。而且,领取到空投的社区用户会广而告之,从而进一步扩大Bonk项目的普及度.
Gate.io已上線FLR/USDT永續合約實盤交易,支持1-20倍做多和做空操作,杠杆率可以在下單時自行選擇.
根据Santiment的分析,XRP是XRPLedger区块链网络的原生代币,具有显着的市场差异指标,表明市场看涨。其中一些指标由市场分析平台上的化名链上分析师“Sanr_King”指出.