D1V1网社区 @开门芝麻网 吃饭赚钱 睡觉赚钱 做梦赚钱 http://sns.d1v1.com & http://www.KaiMenZhiMa.com/

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2821|回复: 0

加密货币如何加密(2)

[复制链接]
发表于 2012-5-17 15:33:58 | 显示全部楼层 |阅读模式 <
开门芝麻网
连劲智播AI智能自动播实景无人直播(APP免费注册下载)http://kaimenzhima.com/forum.php?mod=viewthread&tid=1

接上篇《数字货币如何加密(1)》

前言:由于货币需要一个稳定的系统,智能合约设计的越复杂出错的可能性就越高,所以在早期中本聪认为货币系统是不需要图灵完备的语言的,比特币之所以不支持智能合约也是觉得货币需要极高的稳定性。在上一篇中(加密货币如何加密一),我们了解了EKT中的Token链是一个并行多链的结构,多链多共识,共享用户基础,这也意味着使用EKT公链,可以把Token链和Dapp链分离,并自由的选择共识算法和加密算法。用户在基于 EKT 主链的代码部署自己的主链时,可以选择使用哪种共识算法。本篇我们将继续探讨为何EKT从一开始就越过了POW算法,直接在主链上选择了DPOS共识。

我们继续回顾POW机制里所采用的一些算法:

【有价值的POW挖矿?】

正当一部分人在越来越复杂的算法探索之路上越走越远时,另一部分“环保人士”也提出了尖锐的批评,那就是指责POW浪费能源。虽然彼时POS机制已经实现,但显然所有矿工都不愿意轻易承认自己的矿机/显卡正在干一件毫无意义的蠢事。POW党虽极力维护,但也承认耗费能源这一事实。这一指责打开了另一条探索之路,即如果能找到一种算法,既能维护区块链安全,这些Hash运算又能在其他方面产生价值,那简直完美。

在这条探索之路上最让人振奋人心的成果来自于Sunny King(这个人之前已经开发了Peercoin,即著名的点点币)发明的素数币(Primecoin)。素数币算法的核心理念是:在做Hash运算的同时寻找大素数。素数如今已被广泛应用于各个领域,但人类对他的认识还是有限。质数在数学界中,存在着很多的疑难问题,比如著名的哥德巴赫猜想、黎曼猜想、孪生质数猜想、费马数、梅森质数等等,这些问题的解决,可以对人类的科学技术的发展,起到非常重要的促进作用。

素数在数轴上不但稀有(相对于偶数而言),而且分布不规律,在数轴上寻找素数只能盲目搜索探测,这正是POW的特征。质数币发布以后,凭借其全新的创意和对数学学术界带来的贡献,引起电子货币行业极大关注。质数币是全世界第一个为数学问题而提出的电子货币,号称挖矿运算有实用科研贡献的加密货币。

POW还有另一个要求是容易验证,这方面人类经过几百年探索已经获得一些成果。素数币使用两种方法测试,首先进行费马测试(Fermat Test),通过则再进行欧拉-拉格朗日-立夫习兹测试(Euler-Lagrange-Lifchitz Test),依次通过测试则被视为是素数。需要指出的是,这种方法并不能保证通过测试的数百分百是素数,不过这并不影响系统运行,即便测试结果错误,只要每个节点都认为是素数就行。

由于素数在数轴上分布不均匀,且根据目前掌握的知识来看,数越大,素数越稀有,寻找难度并不是线性递增,耗时也就不可预估,但是区块链要求稳定出块。正因为这点,素数币算法没有得到热捧,但这种探索并非没有意义,利用POW工作量的“幻想”并没有停止,探索还在继续。

【以太坊的选择】

以太坊(Ethereum)其实在一开始就计划使用POS方式,但由于POS设计存在一些问题,开发团队决定在以太坊1.0阶段使用POW方式,预计在Serenity阶段转入POS(CasperFFG)。

由于比特币的PoW算法是计算困难型,所以导致了ASIC专业矿机的出现,从而导致了挖矿中心化。以太坊吸取了比特币的教训,专门设计了Ethash,它是内存困难型算法,它的特点是挖矿的效率与计算关联度不大,而与内存的性能正相关。虽只是一个过渡算法,但开发团队一点也不含糊,采取了一种非常繁琐的设计风格。Ethash 是Dagger-Hashimoto改良算法,是Hashimoto算法结合Dagger算法产成的一个新变种。该算法的基本流程如下:

1)通过扫描区块头得到一个种子seed;
2)通过该种子产生一个16M的伪随机缓存;
3)基于缓存生成大约1GB的数据集(内存),称为DAG。DAG中的每一个元素由缓存中的某几个元素计算产生,也就是说,只要有缓存,就可以快速地计算出DAG中指定位置的元素;
4)“矿工”从DAG中随机选择元素并对其进行Hash运算,DAG是一个完整的搜索空间,挖矿的过程就是从DAG中随机选择元素(类似比特币挖矿中试探合适nonce的过程)进行Hash运算。
5)验证者只需要利用缓存就可以验证Hash运算的正确性。
注:缓存和DAG中每增加30000个区块(即5.2天)更新一次,所以Ethash的主要时间消耗在从DAG中读取数据,而DAG一般存储在内存,所以主要瓶颈在内存性能以及它的带宽。

以太坊初期100%采用PoW挖矿,但是挖矿的难度除了因为算力增长而增加之外,还有一个额外的难度因子呈指数级增加,这就是难度炸弹(Difficulty Bomb)。由于PoS的运用将会降低挖矿的门槛,因为矿工不需要再去购买价格高昂的硬件矿机,只需要购买一定数量的ETH,将其作为保证金通过权益证明的方式验证交易有效性,即可拿到一定的奖励。因此,对矿工来说他们花高价购买的矿机将无用武之地,这势必会引起矿工的不满。为了防止PoW转PoS的过程中矿工联合起来抵制,从而分叉出两条以太坊区块链,难度炸弹被引入。难度炸弹指的是计算难度时除了根据出块时间和上一个区块难度进行调整外,加上了一个每十万个区块呈指数型增长的难度因子。

2017年10月,由于以太坊基金会还在为过渡到其混合PoS系统Casper奠定基础,以太坊将拆除“难度炸弹”的计划推迟了一年。但是随着以太坊转POS的日程渐进,一旦以太坊转移到PoS,ETC的网络(已于5月30日,在5900000区块高度硬分叉移除了“难度炸弹”)可能会有希望以当前形式继承大部分专供ETH的挖矿哈希算力。当大量算力涌入ETC,而其区块产出不变时,有可能会因为挖矿成本的上升而引起币价跃升。

【零知识证明】

加密货币世界里,实现“全匿名”的,风头最劲的莫过于Zcash,该币种最大的特点是使用零知识证明实现隐私交易。Zcash对于算法的选择非常慎重,在先后考量了SHA256D,SCRYPT,CUCKOO HASH以及LYRA2等算法后,最终选择Equihash。Equihash算法由Alex Biryukov 和 Dmitry Khovratovich联合发明,其理论依据是一个著名的计算法科学及密码学问题——广义生日悖论问题。

零知识证明能够成立需要具备三个要素,即完整性、可靠性和零知识。举个例子来说就是,假设有一个环形走廊,出口和入口相邻但不互通(在目测距离之内),在这个环形走廊中间的某处有一道锁起来的门,只有拥有钥匙的人才可以通过;这时A要向B证明自己拥有打开这道门的钥匙,用零知识量证明来解决就是,B看着A走进入口并在出口等待,如果A从入口进入通过走廊并从出口走出,则可以证明其拥有打开中间那扇门的钥匙,而在这个过程中,他完全不用向B提供钥匙的具体信息。所以零知识证明实际上是一种概率证明而非确定性证明。

Zcash现在采用的Equihash是一个内存(ARM)依赖型算法,机器算力大小主要取决于拥有多少内存,根据两位发明者的论文描述,该算法执行至少需要700M内存,1.8 GHz CPU计算30秒,经Zcash项目优化后,目前每个挖矿线程需要1G内存,因此Zcash官方认为该算法在短时间内很难出现矿机(ASIC)。此外,Zcash官方还相信该算法比较公平,他们认为很难有人或者机构能够对算法偷偷进行优化,因为广义生日悖论是一个已经被广泛研究的问题。此外,Equihash算法非常容易验证,这对于未来在受限设备上实现Zcash轻客户端非常重要。

【EKT的选择】

那么什么是DPoS呢? 首先我们知道在POS阵营里,你获得币的量是由你之前获得币的量来确定的。DPoS机制它的原理是让每一个持有币的人进行投票,由此产生K位代表 , 我们可以将其理解为K个超级节点或者矿池,而这K个超级节点彼此的权利是完全相等的。从某种角度来看,DPOS有点像是议会制度或人民代表大会制度。如果代表不能履行他们的职责(当轮到他们时,没能生成区块),他们会被除名,网络会选出新的超级节点来取代他们。这种机制可以说是目前比较好的兼容了公平于效率的办法。

EKT的中心思想是设计一个社区的机制,让开发者可以轻易的开发一个DAPP,其他的交给EKT来处理。而EKT的主链就选取了DPoS的机制来确保其长期的稳定性和高性能。

由于货币需要一个稳定的系统,智能合约设计的越复杂出错的可能性就越高,所以在早期中本聪认为货币系统是不需要图灵完备的语言的,比特币之所以不支持智能合约也是觉得货币需要极高的稳定性。目前主流的区块链性能瓶颈问题突出, 区块链处理能力受制于单个节点的处理能力,这限制了区块链的处理速度,也浪费了整个网络大量的处理能力,随着更多的节点加入到网络, 网络流量增加会使系统性能显著降低。那么,如何运行区块链里保持货币稳定的同时又可以开发Dapp呢?有一种比较好的解决办法就是把Token链和DApp链分开。

那么如何能建立一个正反馈的,良性运行的社区呢?最关键的特性指标其实在于TPS和延迟。平日大家吐槽最多的是TPS,其实在比特币或者以太坊上,即使TPS上去了,延迟也下不来。因为POW挖矿的原因,全网同步区块总是需要一段时间。在EKT中,允许一些执行顺序不同对全局一致性没有影响的事件可以在区块打包前执行(其实应用中大部分都是这样的事件),然后对时序性有要求的事件区块打包后执行,这样可以实现大部分事件的秒级确认和执行。其实就是把一些事件先异步执行,然后区块打包的时候进行一致性校验。这样就能较好的降低延迟了。

在项目初期,EKT 除了默认提供的 DPOS 共识算法以外,还会陆续支持工作量证明(POW)以及股权证明机制(POS)。 用户在基于 EKT 主链的代码部署自己的主链时,可以选择使用哪种共识算法(会陆续支持包括前文提到的任意一种)。在部署完以后再去 EKT 的客户端中进行注册。

以上就是我对区块链加密机制的一些思考,和一些在设计EKT的多链多共识,Token链和DAPP链分离的解决思路。

参考阅读:

20171026 解读区块链加密算法
20180115 区块链与密码学原理之:Hash算法的分类和原理浅析
20180501 从共识的历史看区块链的共识机制。
20180516 区块链共识机制的演化
20180406 什么是零知识证明
20180306 5分钟区块链 | 技术篇-哈希算法
《Bitcoin: A Peer-to-Peer Electronic Cash System》
《Primecoin whitepaper》
《Ethereum whitepaper》
《EKT whitepaper》
《ZEC whitepaper》


官方网址
https://ekt8.io
Telegram
Facebook:@EKTcoin
https://www.facebook.com/coin.ekt.1
Twitter:@EKTcoin
https://twitter.com/EKTcoin
GITHUB
https://github.com/EducationEKT/EKT
bihu:@EKT周迅
开门芝麻网
部分内容由网友发布或收集于互联网,如有侵权,请联系QQ/微信76815288,第一时间删除!(开门芝麻网 sns.d1v1.com)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

 
在线客服
点击这里给我发消息 点击这里给我发消息 点击这里给我发消息 点击这里给我发消息
售前咨询热线
400-888-xxxx

微信扫一扫,私享最新原创实用干货

QQ|申请友链|Archiver|手机版|小黑屋|D1V1网社区 @开门芝麻网 ( 沪ICP备15050032号-2 )

GMT+8, 2024-5-4 05:05 , Processed in 0.202254 second(s), 31 queries .

Powered by Discuz! X3.4 Designed by www.D1V1.cn

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表