挖礦的 proof of work (PoW) 演算法 Memory-Bound vs. CPU-Bound

算法介紹起來太複雜了,我也只是知道一點皮毛。
比特币的sha-256算法可以用便宜的asic做出来運算。(導致礦機出現,導致算力很容易集中,導致51%攻擊,如果一個機構或者人控制了全網51%的算力,他就可以修改賬本。)

而zcash的相比于比特币, Zcash则使用的是Equihash。Equihash算法由Alex Biryukov 和 Dmitry Khovratovich联合发明,其理论依据是一个著名的计算法科学及密码学问题——广义生日悖论问题。
下面是引用的部分供參考,這種算法的運算需要用到大量的內存,而內存無法用asic做出來,或者做出來很困難。(算力分散,這只是理論層面的,現實世界中聰明的人很多,如果有足夠的利潤,可能會有突破內存約束的辦法)

zcash的內存要求造成的好處是每臺電腦都可以挖zcash,而且大家的效率差不太多。不是像比特幣那樣一臺礦機能頂四五十台電腦的算力,比特幣算法下,電腦的算力完全沒有辦法和礦機抗衡,普通人參與的可能性就越來越少了,時間長了會導致集中。這種情況是數字貨幣必須避免的。

分散的意思是每個算力節點屬於不同的人或機構,這樣能避免獨裁,實現真正意義上的公平和民主。

以下引用

比特币:

比特币技术,符号为BTC,共识算法为PoW,工作量证明算法中使用SHA-256加密算法,发行方式为挖矿,矿机支持,总量恒定2100万,区块时间10分钟,开发语言C++。
莱特币:
比特币技术,旨在改进比特币算法技术,符号为LTC,共识算法为PoW,工作量证明算法中使用Scrypt加密算法,发行方式为挖矿,矿机支持,总量恒定8400万个,区块时间2.5分钟,开发语言C++。
以太币:
比太坊技术,符号为ETC/ETH(不同分叉),共识算法为PoW,使用的工作量证明算法叫Ethash(Dagger-Hashimoto算法的改良版本),发行方式为挖矿,矿机支持,支持在树莓派上运行节点。以太币(ETH)作为推动以太坊平台上分布式应用的加密燃料,将会通过挖矿的形式每年以不变的数量发行。每年发行的数量是预售以太币总量的0.3倍,通胀率每年递减,最新ETH区块时间16秒,开发语言GO。