迷你世界野人怎么驯服|loxx迷你世界|
文章阅读页通栏

浅谈 Shabal

来源: Gravity分布式计算技术社区 作者:Gravity团队
近期区块链中 PoC(Proof of Capacity)共识机制越来越火。在市面中正在使用 PoC 共识机制的币就有 Burst、BTCHD 等。由于 PoC 的自身机制,使得其对?#29992;?#20989;数的复......
近期区块链中 PoC(Proof of Capacity)共识机制越来越火。在市面中正在使用 PoC 共识机制的币就有 Burst、BTCHD 等。由于 PoC 的自身机制,使得其对?#29992;?#20989;数的复杂度和运算速度有一定的要求,而 Shabal 函数正好可以实现这个特殊的需求,所以在 BurstCoin 中,广泛使用 Shabal 算法作为 PoC 共识的基础。

Shabal 名字来源于一位名为 S′ebastien Chabal 的法国橄榄球运动员,因为其?#28909;?#26102;的勇猛表现和他那标志性的胡须和长发,被人起了个绰号叫“穴居人?#20445;?#21487;见当时 Shabal 的团队对于他们研发的算法的期望是很高的。

Shabal 函数是?#29992;?#21704;希函数的一种,由法国代理商(ANR)组织和研究的一个项目,其团队成员均为?#21040;?#26377;一定影响力的人物。Shabal 在名字上与常用的另一种?#29992;?#21704;希函数 SHA-256 相似,但实则完全不同。SHA-256 全称为(Secure Hash Algorithm),?#31383;?#20840;哈希算法,是美国国家安全局(NSA)设计,美国国家标?#21152;?#25216;术研究院(NIST)发布的一系列密码散列函数的一个变体。而 Shabal-256 是 Shabal 函数的一个变体,作为标准哈希函数的竞争者之一被提交给 NIST,虽然最后 Shabal 并没有被选中,但是因为其优秀的性能和特点,也越来越广泛地被大家所?#29616;?/span>

Shabal 算法

Shabal算法是一种很慢的算法,?#24066;?#36755;入任意长度的有序位序列,甚至是一个空序列。也适应任何长度的字节流,但是由于考虑到安全性,适用长度最好小于 2^7 位。输入长度可以是任何整数值和8的倍数。假如给定一个bit序列,按其左右?#25215;?#32034;引编号,即第一位的索引为0。使用左和右来描述有序的位序列:序列中的第一位称为最左位,最后一位称为最右位。

Shabal的使用的数据(数据的预处理):首先输入序列,即以默?#25103;?#24335;添加额外的长度不等于0并且是32的倍数的bit数加入序列,然后将序列分成8位组,此?#24065;?#20010;组即为一个byte(字节)。第一个字节由最左边的八位组成,接下来的八位为第二个字节,?#26469;?#31867;推。由于输入的序列长度是32的倍数,所以这个过程中会产生整数个字节,并且字节数是4的倍数。每个字节的值都在0和255之间(包括255)。

此时字节值可以看做是以 2 为基底从 8 位的序列中派生出来的,此时最左边的字节是最重要的(其代表了数的正负)。如果一个八位的位组被表示为 b0,b1,b2...b7,那么这个字节的值等于

在 byte 字节产生时,会给最左边的位自动设置为 1(即表示为一个正数)。所以当所给这个字节输入一个 8 位的数时,其数的最大值是 128,因为最左边的位数不表示数的大小,而表示的是数的正负。
 
Shabal 算法的优点和缺点:

优点:

1. 设计简单:Shabal 在设计的一个目标就是保持简单的同时保证其安全性。
2. 安全性:Shabal 的结构式不可微的,并且有足够良好的次原象攻击抗性(这一点是可以被证明的),并且这一点也是 Shabal 算法与其他的哈希算法相比的主要优势之一。
3. 性能相?#36234;?#22909;:Shabal 中没有使用其他?#29992;?#31639;法中?#27973;?#27969;行的 S-Box ,因为它的性能成本?#27973;?#39640;,对于?#24067;?#21644;软件都是如此。虽然使用它能够抵抗各种各样的攻击,但是在这里并没有采用它,所以 Shabal 能够拥有相?#36234;?#22909;的性能

缺点:

1. 速度?#19979;?/span>

上图表示了在不同的平台中不同算法的表现。Shabal 的表现处于中下游水准,所以Shabal是一个相对来?#21040;下?#30340;算法。

2.数据量相?#36234;?#22823;:

上图表示了不同算法的数据量,Shabal 算法也处于一个比较尴尬的位置,相对于其他算法来说,Shabal的数据量是比较大的。

Shabal

由上述内容可以知道,Shabal 算法是很适合 PoC 共识的一种算法,但是在数字货币中,并不是只有一种?#29992;?#31639;法存在,每一种币都会涉及到几种算法,?#28909;?BurstCoin中不仅仅使用了 Shabal 256,还使用了 Curve25519、RIPEMD160 等等,在不同的地方实现不同的功能,在此先简单介绍,如果想要了解更多,请关注我们。与此同时,第一个 Shabal256 应用将在 Gravity 计算平台启用,敬请关注。

关键词: Shabal  Shabal算法  
0/300
? 迷你世界野人怎么驯服