Scrypt加密算法:遏制算力中心化的功臣
最爱小仙炖
post on 2022-12-3 11:58:31
29
0
0
众所周知,比特币挖矿运用的是SHA-256哈希算法,这种算法十分简单快捷,但性能与CPU的处理速度,也就是算力,有着极大的关联。为了能够挖到更多的比特币,GPU矿机、FPGA矿机以及ASIC矿机这样的专业矿机相继被制造出来。拥有条件入手这些矿机的人,凭借着高算力挖到更多的比特币,变得更加富有。
随着矿机制造业的崛起,比特币逐渐被几大矿池垄断,所谓的去中心化也开始变得越来越远,莱特币的创始人认为比特币的算法对其他挖矿的人来说并不公平,且影响区块链的去中心化,所以在莱特币中使用了Scrypt算法,以阻止这类专业矿机挖矿而造成算力竞争。
Scrypt算法由知名的FreeBSD黑客,同时也是一名密码学家的ColinPercival在2009年提出,他开发这一算法的初衷是为其备份服务Tarsnap降低CPU负荷,减少对于CPU计算的依赖,同时防止网络攻击。虽然Scrypt算法的性能与算力相关不大,但却很依赖内存。
由于Scrypt算法对内存非常依赖的设计非常适合用于对抗专业矿机,所以后来有很多区块链挖矿项目都使用这一算法,如狗狗币,来使得数字货币的分发更加分散。
二、原理
那么Scrypt算法具体是如何对抗ASIC矿机的呢?
一开始,Scrypt算法被开发出来时,是为了减少对CPU的依赖,所以这一算法其实是利用了CPU的闲置时间进行计算。Scrypt算法不仅计算所需的时间长,而且需要的内存也很大。因为Scrypt算法计算时会产生一个具有若干个块元素(blockelement)的数组,对其中的每个块元素,都必须先进行一系列运算生成哈希值,再对整个数组进行运算得到最终的结果。
其中,每个块元素都必须被储存在内存中,才能保证最后得到正确的结果,故而Scrypt算法需要极大的内存空间,本身运算的成本很大。大量内存的硬件成本会很高,矿池就无法进行低成本挖矿了。
这样导致的一个结果就是,算力难以集中,很难形成大型矿池,从而减少51%攻击的可能。
同时,Scrypt算法这一特性会使得并行计算多个摘要异常困难,因此利用rainbowtable(彩虹表攻击,为破解密码的散列值而预先计算好的表)进行暴力攻击的难度增加。因为Scrypt算法属于一种密钥导出(KDF)算法,这种算法非常适用于生成密钥,可以避免黑客低成本地生成大量密钥去试探密码,因此可以为备份服务提供高度安全的网络环境。
正是看到了它的这些原理,莱特币才采用了此算法。
三、优缺点
以莱特币为例,使用以Scrypt算法为核心的PoW共识机制,有效抵制了专业矿机的使用,避免了算力中心化的趋向;同时令更多人能够通过家用电脑来参与挖矿,莱特币的分发将变得更加分散。总的而言,这一算法能够更好地保证区块链的去中心化特征。
由于持币更加分散,区块链网络面临51%攻击的概率也大大降低了。而Scrypt本身具有的密钥导出性能,能够有效阻止黑客对密码进行破解和攻击。
简言之,Scrypt算法使得加密币网络更加安全和去中心化,所以一经莱特币的使用,它就得到了广大山寨币的青睐,有很多人甚至认为这是最适合数字货币的算法。
但是,随着Scrypt算法的广泛使用,专用于这一算法的矿机也被生产出来,后来诞生的FPGA矿机也可以在运用这算法时进行大规模挖矿。
不过,Scrypt算法在区块链上的使用开启了人们对于算力去中心化的思考,现今它的最大影响,与其说这一算法的具体运用遏制了中心化,不如说是其带来的思考促进了人们对算力去中心化的支持与探索。
BitMere.com is Information release platform,just provides information storage space services.
The opinions expressed are solely those of the author,Does not constitute advice, please treat with caution.
The opinions expressed are solely those of the author,Does not constitute advice, please treat with caution.
Write the first review