主页 > imtoken官方苹果下载 > Sia的共识规则(一)---加密算法、货币与数据编码
Sia的共识规则(一)---加密算法、货币与数据编码
共识规则
本文档旨在从较高的层面对 Sia 的加密系统进行很好的概述,不会对所有细节进行全面解释。 共识规则最准确的描述需要参考共识包(译者注:共识包,源码存在于sia/modules)(以及所有依赖库)。
如果你对区块链工作量证明(PoW:Proof of Work)有一个大概的了解,而不是试图从最基本的原理入手,那么你会更容易理解这篇文档的内容。
加密算法
Sia 使用加密散列和加密签名,两者都有许多潜在的安全算法可供选择。 诚然,我们对这些算法缺乏足够的经验,我们选择这些算法并不是因为我们自己对它们的性能有信心,而是因为其他人似乎对它们有信心。
哈希算法:blake2b
之所以选择它作为散列算法,是因为它速度很快,而且它的代码已经过广泛审计,足以抵抗长度扩展攻击。
blake2b 的另一个特别重要的特性是它不是 SHA-2。 我们希望避免与比特币合并挖矿,因为这可能导致许多比特币矿工漠不关心地挖矿我们的区块链,使软分叉更难协调。
签名算法:可变类型签名
每个公钥都有一个说明符(一个 16 字节的数组)和一个包含公钥编码的字节片。 说明符用于指定在验证签名时使用哪种签名算法。 每个签名都是一个字节片,其编码可以通过查看相应公钥的说明符来确定。
这种方法可以很容易地向货币添加新的签名类型,而不会使现有的输出和密钥失效。 添加新的签名类型需要硬分叉比特币的加密算法破解,但可以作为一种保护机制,以防加密算法被破解,如果在验证速度、环签名等方面有突破,也很容易移植到新的加密算法。
可选算法:
还计划添加 ECDSA secp256k1 和 Schnorr secp256k1 算法。 可以通过软分叉将新的签名算法添加到 Sia,因为无法识别的算法类型始终被认为具有有效签名。
货币
Sia 加密系统下有两种货币。 第一个是夏币。 云存储币在每个区块中生成并分发给矿工。 然后,这些矿工可以使用获得的存储币为文件合约提供资金,或者他们可以将存储币转让给其他人。 云存储币由一个无限精度的无符号整数表示。
Sia 密码系统中的第二种货币是 siafund,一种限制为 10,000 个不可分割单位的特殊资产。 每进行一次文件合约支付比特币的加密算法破解,将支付金额的3.9%放入云存储资金池。 云存储资金池中的云存储币数量必须始终能被10,000整除,文件合约支付中提取的云存储币数量将向下取整至最接近的10,000。 云存储基金也用一个无限精度的无符号整数来表示。
云存储基金持有人可以在云存储资金池中领取云存储币。 云存储资金池每增加10000个云存储币,云存储资金持有人可提取1个云存储币。 大约 8,790 个云存储基金由 Nebulous Inc. 拥有,其余云存储基金由 Sia 项目的早期支持者拥有。
有计划在未来使 Sia 与侧链兼容。 这将允许比特币等其他货币在存储币流通的所有相同地方应用。
数据编码(编组)
Sia 的很多数据类型在某些情况下需要进行哈希处理,这就需要一种一致的算法将这些类型的数据编码成可以进行哈希处理的字节数组。 哈希规则如下:
(未完待续)