Ⅰ 介绍一下暗黑2的ETH的物品.
Ethereal 物品介绍
作者:Pansesus
Thanks for all who gave me the great feedback
1 定义:
Ethereal是一种物品属性,它可以给武器类装备带来50%的基础伤害加成,给盔甲类装备带来50%的基础防御加成。因此,在计算ED%时Ethereal的50%加成是直接算在基础数值中的,而不是简单地与ED%值相加。
Ethereal的物品掉落时Durability都是max的,但只有同类有形装备的45%,且不能修复,即使是Cube公式也不起作用。
Ethereal属性的装备力量、敏捷需求减10。
Ethereal属性的装备出售在商店中的交易价值为同类有形装备的1/4
2 出现条件:
任何已被确定的掉落物品都有5%的可能成为Ethereal物品,但不包括下面几类物品
有永不磨损(Indestructible)属性的装备
所有的套装(Set Item)
商人贩售的物品
赌博时得到的物品
Cube合成装备(不会合成出Ethereal属性,但如果是升级原装备,Ethereal属性会保留,这里有一个Bug)
低质量(Cracked, Crude, Damaged)的物品
灌注(Imbue,Act1第5个任务的奖励)物品上,如果Imbue Ethereal装备,Ethereal属性会保留
所有不存在Durability的物品,如弩箭筒,包括Crystal Sword系列的Exceptional和Elite物品*
一些特例:有4件Unique装备必定是Ethreal属性:Wraith Flight(死零夜翔), Ethereal Edge(永恒边缘), Shadow Killer(影杀者),Ghostflame(鬼火焰)。
3 注意事项:
Ethereal物品的Zod Bug已经被修复了,所有可以保有Indestructible属性的装备都必须是在1.10推出后的12小时之前镶上Zod的,这其中包括所有1.09时的装备,之后的装备镶上Zod后再洗掉是不会保有Indestructible的
佣兵不会磨损Ethereal装备
Iron Golem 能够继承Ethereal属性(提升基础伤害/防御),召唤出来的傀儡是透明形态,Kawaii!
Ethereal物品掉落时可以同回复Durability/Quantity属性共存。且这种物品不像1.09时那样可能损坏。
Ethereal属性防具升级后50%的额外防御加成会消失。
Ethereal装备可以用于打孔。
*Crystal Sword本身可以为Ethereal属性,所以升级Rare / Unique的水晶剑可以得到Ethereal的Exceptional / Elite版本
1.11物品打孔BUG说明
由于1.11新增eth BUG,所有防具RW用到eth材料时均应采用公式打孔后的0ed、0r的eth普通防具(超强的防具无法用公式打孔),防御力额外增加50%,Eth BUG在LAD3仍存在
好处就不用偶赘言了吧,50%的额外防御改变了melee char pk的格局
最明显的就素流亡了,有了这个bug,smite的def轻松就45000+了
1.比特币是一种货币,是一种使用某种算法和数据结构产生的一堆数据,而且还会不停并且不能停地产生。只要这堆数据停止了增加,那我们就认为比特币死了。这堆数据可以用来干很多事,现在我们就拿它来做为货币,还可以拿它来搞智能合约之类的东西。这堆数据可以用来干很多事,现在我们就拿它来做为货币,还可以拿它来搞智能合约之类的东西。
2.以太坊是一种智能合约和去中心化应用平台。讲它是“平台”也是一种在我们使用者当中的投影。平台这个概念很有意思,比如我们说Windows是一个平台,微信也是一个平台,比如我们说一个大学也是一个平台,社会也是一个平台。所谓的平台,就是在这上面我们能做事。而深挖以太坊,其实和比特币是一样的,也是使用某种算法和数据结构产生的一堆数据,这一堆数据也一样还在继续增加而且不能停止增加。
3.比特币的优势:整体看来,参赛团队对于比特币的投资支持率为 55%,以太坊则为 45%。根据部分团队给出的研究报告,比特币的价值仍然会高于以太坊,预计到 2020 年,比特币的价格将会再度上涨 600%。
拓展资料:
1.比特币和以太币的产生过程:比特币和以太币都是通过挖矿程序产生的。通过竞争计算一种题目,谁先算得谁获得系统奖励的币。两者的区别是计算的题目不一样。比特币是十分钟算一个解,以太币是12秒一个解。使用以太坊,阻挡时间设置为14-15秒,而不是比特币10分钟。很明显,以太坊比起比特币允许更快的交易时间;以太坊逐年释放相同数量的以太网,而比特币区块每四年会减半;比特币交易的成本是标准化的,而与以太坊相比,成本可能会根据计算复杂性,带宽使用和存储需求而变化;以太坊自己的图灵完整的内部代码允许计算任何东西,只要有计算能力和时间。比特币中没有这种灵活性;以太坊成群结队,而比特币被释放 - 现有2100万比特币中的大部分都由早期的矿工拥有;与比特币不同,以太坊通过其Ghost协议阻止集中式池池挖掘;以太坊使用Ethash,这是一种内存硬哈希算法。比特币使用集中式专用集成电路。
Ⅲ 现在使用比特币精灵搬砖还有盈利吗有何依据
搬砖在币市是一种相对简单的赚钱方式,指同一货币在不同交易所中价钱存在一定差别,从价格低的服务平台买进比特币、在价格高的服务平台售出比特币,混合开发来赚取其中的差价。由于进到币市的新手投资人较多,所以大部分人都不知道怎么开展比特币搬砖,搬砖分为两种定义: 外场搬砖和内场搬砖。外场搬砖:(大部分是外场搬砖)简单讲,就是在低价的交易所买进某一虚拟货币,在高价的交易所售出,高抛低吸赚取其中的差价。
不要过度在意卖价,要重视能马上成交的挂价格,撤单量要足够本人实际操作,否则容易发生很难买到或是卖不出去的局面;要注意的转币速率,偶尔会由于转币速度的难题影响你的盈利;搬砖一般要求短时间买入卖出,时间越久市场行情转变就越大;留意2个平台交易是不是适用相互之间转币,转币时差,如果当初币价起伏非常大,或许你转币还没到账就不存在差价了;假定碰到币价忽然暴跌的情况,极有可能被罩住。交易所的不同货币的不同征收率也有所不同,需要大家自己去进行计算。
Ⅳ 011:Ethash算法|《ETH原理与智能合约开发》笔记
待字闺中开发了一门区块链方面的课程:《深入浅出ETH原理与智能合约开发》,马良老师讲授。此文集记录我的学习笔记。
课程共8节课。其中,前四课讲ETH原理,后四课讲智能合约。
第四课分为三部分:
这篇文章是第四课第一部分的学习笔记:Ethash算法。
这节课介绍的是以太坊非常核心的挖矿算法。
在介绍Ethash算法之前,先讲一些背景知识。其实区块链技术主要是解决一个共识的问题,而共识是一个层次很丰富的概念,这里把范畴缩小,只讨论区块链中的共识。
什么是共识?
在区块链中,共识是指哪个节点有记账权。网络中有多个节点,理论上都有记账权,首先面临的问题就是,到底谁来记帐。另一个问题,交易一定是有顺序的,即谁在前,前在后。这样可以解决双花问题。区块链中的共识机制就是解决这两个问题,谁记帐和交易的顺序。
什么是工作量证明算法
为了决定众多节点中谁来记帐,可以有多种方案。其中,工作量证明就让节点去算一个哈希值,满足难度目标值的胜出。这个过程只能通过枚举计算,谁算的快,谁获胜的概率大。收益跟节点的工作量有关,这就是工作量证明算法。
为什么要引入工作量证明算法?
Hash Cash 由Adam Back 在1997年发表,中本聪首次在比特币中应用来解决共识问题。
它最初用来解决垃圾邮件问题。
其主要设计思想是通过暴力搜索,找到一种Block头部组合(通过调整nonce)使得嵌套的SHA256单向散列值输出小于一个特定的值(Target)。
这个算法是计算密集型算法,一开始从CPU挖矿,转而为GPU,转而为FPGA,转而为ASIC,从而使得算力变得非常集中。
算力集中就会带来一个问题,若有一个矿池的算力达到51%,则它就会有作恶的风险。这是比特币等使用工作量证明算法的系统的弊端。而以太坊则吸取了这个教训,进行了一些改进,诞生了Ethash算法。
Ethash算法吸取了比特币的教训,专门设计了非常不利用计算的模型,它采用了I/O密集的模型,I/O慢,计算再快也没用。这样,对专用集成电路则不是那么有效。
该算法对GPU友好。一是考虑如果只支持CPU,担心易被木马攻击;二是现在的显存都很大。
轻型客户端的算法不适于挖矿,易于验证;快速启动
算法中,主要依赖于Keccake256 。
数据源除了传统的Block头部,还引入了随机数阵列DAG(有向非循环图)(Vitalik提出)
种子值很小。根据种子值生成缓存值,缓存层的初始值为16M,每个世代增加128K。
在缓存层之下是矿工使用的数据值,数据层的初始值是1G,每个世代增加8M。整个数据层的大小是128Bytes的素数倍。
框架主要分为两个部分,一是DAG的生成,二是用Hashimoto来计算最终的结果。
DAG分为三个层次,种子层,缓存层,数据层。三个层次是逐渐增大的。
种子层很小,依赖上个世代的种子层。
缓存层的第一个数据是根据种子层生成的,后面的根据前面的一个来生成,它是一个串行化的过程。其初始大小是16M,每个世代增加128K。每个元素64字节。
数据层就是要用到的数据,其初始大小1G,现在约2个G,每个元素128字节。数据层的元素依赖缓存层的256个元素。
整个流程是内存密集型。
首先是头部信息和随机数结合在一起,做一个Keccak运算,获得初始的单向散列值Mix[0],128字节。然后,通过另外一个函数,映射到DAG上,获取一个值,再与Mix[0]混合得到Mix[1],如此循环64次,得到Mix[64],128字节。
接下来经过后处理过程,得到 mix final 值,32字节。(这个值在前面两个小节《 009:GHOST协议 》、《 010:搭建测试网络 》都出现过)
再经过计算,得出结果。把它和目标值相比较,小于则挖矿成功。
难度值大,目标值小,就越难(前面需要的 0 越多)。
这个过程也是挖矿难,验证容易。
为防止矿机,mix function函数也有更新过。
难度公式见课件截图。
根据上一个区块的难度,来推算下一个。
从公式看出,难度由三部分组成,首先是上一区块的难度,然后是线性部分,最后是非线性部分。
非线性部分也叫难度炸弹,在过了一个特定的时间节点后,难度是指数上升。如此设计,其背后的目的是,在以太坊的项目周期中,在大都会版本后的下一个版本中,要转换共识,由POW变为POW、POS混合型的协议。基金会的意思可能是使得挖矿变得没意思。
难度曲线图显示,2017年10月,难度有一个大的下降,奖励也由5个变为3个。
本节主要介绍了Ethash算法,不足之处,请批评指正。
Ⅳ 以太币的发行
以太币
天天在说的以太币,到底是怎么产生和发行的,这里做个简单介绍。
首先以太坊币是以太坊发行的一种数字货币,这个我想大多数人都清楚。
以太币来源
那么以太币的来源包括以下几部分:
矿前奖励:预付款给与贡献者6000万个以太币
区块的奖励:目前挖出一个区块奖励5个以太币给矿工。
叔块奖励:这个和比特币不同,矿工在挖出一个区块后,但是并不是在主链上,那么这个区块叫做叔区。如果这个叔区块在后续挖矿中作为叔区块被引用了,那么挖出这个区块的矿工获得7/8的区块奖励,也就是4.375个以太币,且另外引用这个区块的矿工获得0.15个以太币,注意,这里的引用最多两个。
比特币的总量是2100万个,那么以太币也不是无限生成的,每年以太币发行1800万。之前笔者文章中有提到过,这个数字货币因为密钥的丢失,所以每年的发行和意外的丢失会达到一个动态的平衡。并不是你看官方数据有多少就真正有多少在流通,这个应该能理解。
以太坊在不久将来会采用casper的机制,这个和目前的GHOST机制不一样。具体的机制还待看。
矿工角度来看
从矿工的角度来看待以太币,那么就分为三块:
挖矿的奖励,这个还是5个以太币。(固定收益)
交易的手续费,之前就有人一直在问万一哪天比特币2100万挖完之后,挖矿如何获得收益,那么交易费就是其中的一项收益,以太坊上交易都会带上交易费用,那么这个也就是矿工的一部分所得。(动态收益)
叔区块收益,上文就提到过的,这个区块如果有叔区块,那么从叔区块中获得1/32个以太币也就是0.15个以太币的收益。且每个区块至多引用两个叔区块,被引用过的区块不能再被引用。(动态收益)
以太币的单位:
基本单位为wei,下表具体是各个比例:
单位维度个数 (wei)
wei1 wei1000
Kwei1e3 wei1000000
Mwei1e6 wei1000000000
Gwei1e9 wei1000000000000
microether1e12 wei10000000000000000
milliether1e15 wei10000000000000000000
ether1e18 wei10000000000000000000000
叔区块奖励
回过头感觉有必要再说下叔区块的奖励:
叔区块顾名思义是区块的父区块的兄弟区块。那么区块链只有一条主链,故叔区块不在主链上,导致叔区块的原因,由于是网络的延迟没有同步,那么一个叔区块如果引用在有效的主链上,挖出叔区块的矿工获得4.375个以太币(区块奖励的7/8)。上文说到叔区块的引用获得奖励,那么这个奖励对挖到叔区块的矿工也是有一个间隔层数的关系。具体如下:
间隔的层数获取的比例以太币
17/84.375
26/83.75
35/83.125
44/82.5
53/81.875
62/81.25
参考:《以太坊技术详解与实战》
Ⅵ 你对区块链游戏《AxieInfinity》有哪些认识
我对区块链游戏《AxieInfinity》的认识就是区块链游戏《AxieInfinity》可以赚钱以及区块链游戏《AxieInfinity》玩法类似于任天堂游戏《精灵宝可梦》。区块链游戏《AxieInfinity》最吸引人的并不是区块链游戏《AxieInfinity》类似于任天堂游戏《精灵宝可梦》的玩法,而是区块链游戏《AxieInfinity》可以带来足以让人神魂颠倒的收益。
区块链游戏《AxieInfinity》能赚到非常多的钱,但是它的入门门槛也是非常高的,如果不想投入就想赚钱,基本上是不可能的事情,想要正式进入区块链游戏《AxieInfinity》,就必须要购买一个宠物,最便宜的宠物也要$300。
Ⅶ "Witnesseth" 此字用於买卖合约中, 请问是什麼意思 字典中查无此字. 谢了!
Save that the Holy Ghost in every city witnesseth to me, saying: That bands and afflictions wait for me at Jerusalem.
我只知道圣神在各城中向我指明说:有锁链和患难在等待我。
Witness 目击证人,目击者,witnesseth 表示目击的第三人称单数的现在时
-eth基本释义-eth1 [iθ]
suf.
[加于以元音y结尾的基数词后,构成序数词]:
-eth2 [iθ]
suf.
[古语、诗歌用语][附于动词后,构成陈述语气第三人称单数现在时]:
Ⅷ GHOST,DAG,SPECTRE,PHANTOM和CONFLUX技术原理
DAG概念,当做继比特币,以太坊后新的一代区块链技术(区块链3.0),那么DAG区块链是什么?DAG的由来是什么?它的技术理念是怎么样的?运行在DAG区块链上的协议有哪些?
要想解释DAG,离不开Yonatan Sompolinsky 和 Aviv Zohar两位以色列人,他们是DAG区块链这一概念的提出者。在DAG之前,Aviv Zohar提出了一个GHOST协议(以太坊初期就采用了GHOST协议),该协议解决的是链分叉带来的安全性问题,而分叉的区块链 在GHOST协议下数据结构就从一条链变成了一个树(Tree),而之后Aviv Zohar进一步提出了一个inclusive协议,在inclusive协议规则下,区块的结构就变成了有向无环图(DAG)。
接下来本文将:
1.介绍 GHOST协议,DAG由来 背后的 设计原理
2.介绍三种针对DAG型区块链设计的协议,SPECTRE、PHANTOM和CONFLUX。
GHOST协议是为了解决 分叉 导致 链安全性降低 的一个协议。
下边将通过解释什么是 分叉 ,为什么 分叉会降低链的安全性 , 链上扩容 为什么会导致更多分叉来详细介绍GHOST协议。
一笔比特币交易为什么要等6个区块的交易时长呢?
等待不是为了 防范51%攻击 的。落后6个区块,如果拥有超过51%的算力,只要足够长的时间,一定能够产生更长的链完成攻击。它是为了防止 分叉 带来的风险。
比特币在 理想情况 下,不同节点之间有相同的一条区块链,全部节点都是基于 同一个区块 进行挖矿,但当两个挖矿节点 几乎同时 挖到一个新的区块,当它们接收到对方产生的区块时,不同的节点将选择基于 其中一个 区块挖矿, 分叉 产生了。之后节点会根据哪条 分叉更长 ,选择哪条是主链进行挖矿,而不是主链的分叉区块全部被 抛弃 。
比特币每天都会发生 二分叉 ,但出现连续的 六次分叉 几乎不可能,于是要等待6个区块的确认时间。(这种分叉不是来自恶意攻击,是 偶然性以及网络延迟 导致的。
分叉将‘攻击不超过51%算力,比特币就是安全的’这一理论推翻。
在比特币中,当链有 分叉 时,将选择分叉 最长 的链作为主链,恶意攻击就是产生一条比主链更长的链 代替主链。
下图中蓝色区块代表诚实区块,红色代表攻击区块。2号、3号蓝色区块产生 分叉 ,此时攻击节点产生5个攻击区块(红色)就能产生一条 更长 的链完成攻击。虽然蓝色区块总数更多(有6个), 但分叉的区块没有增加链的长度 ,这种情况下,红色攻击方在算力(假设每个区块代表算力相同)没有超过51%的情况下攻击成功。
比特币当前安全的原因在于10分钟的区块时间降低了分叉可能性,但其实际安全算力仍低于51%,也就是说,不需要51%的算力也能攻击成功。
采用 大区块 以及 小的产出时间 将导致链有 很多分叉。
比特币当前处理交易量很低,改进这个缺陷一个可行方法就是 增大区块的大小和减小区块的产出时间 。大区块需要更多的网络传输时间、单位时间更多的区块数都会导致 更多的分叉 。
链上扩容的方案对比特币处理交易能力提升是巨大的 ,假如每个区块大小变为原来的八倍(8M),出块时间缩短为原来的五分之一(2分钟),理想情况下,比特币的处理交易量将变为原来的 40倍 ,实际情况会产生分叉,交易量不会有这么高。
主链选择中,采用计算最大子树来代替比特币中的最长链规则。
比特币的最长链规则在有分叉情况下,将降低链的安全性,分叉越多,安全性越低。链上扩容将导致更多分叉,导致链不安全。
Yonatan Sompolinsky提出GHOST规则, 当有分叉时,通过计算最大子树,也就是每条分叉拥有的所有区块数来决定哪条链是主链 。图0中,链在区块0后分叉了,上边分叉总计有6个蓝色区块,下边分叉有5个红色区块,蓝色区块1是主链,所以 红色攻击失败 。
在有大量分叉的情况下,GHOST规则将链安全性直接提到了51%,分叉对采用GHOST协议的链安全性没有影响。
根据GHOST规则,上图中虽然诚实节点产生了12个区块,但加入主链的只有4个区块,大量区块 被丢弃 ,假定比特币每个区块大小变为原来的八倍(8M),出块时间缩短为原来的十分之一(1分钟),分叉率为0.33(产生的区块加入主链的概率),比特币的处理交易能力将变为原来的 26.6倍 。
GHOST协议解决了链上扩容导致分叉带来的安全性问题。
区块的结构类型就从一条链变为树
在GHOST的提出后,Yonatan Sompolinsky提出一种新的设想,新产生的区块指向所有已知的分叉末端区块,即一个区块有多个父亲,此时 区块链就从一条链变为多条分叉链共同组成的的结构,这样的链结构就被叫做DAG(有向无环图) 。
Yonatan Sompolinsky进而提出了在DAG上运行的 inclusive协议 ,原理如下:
遗憾的是, Yonatan Sompolinsky之后并没有详细介绍补充该协议 ,而是提出了一种新思路的DAG协议——SPECTRE。
看完上边内容之后,你会发现, 最长链规则下,分叉的区块对比特币安全性和交易量没有任何贡献 ,白白的浪费了算力,而 GHOST通过计算分叉区块个数来提升链的安全性 ,但分叉区块除了纳入区块计数外,区块内包含的交易信息却全部 被丢弃 。
这种新的区块结构带来了新的特性,当然,比特币的 最长链规则 也可以在DAG上实施,只不过安全性和处理交易能力不佳,而GHOST协议可以提高安全性和处理交易能力,为了 最大化 利用DAG区块链特性,社区提出了不同的协议,接下来介绍Yonatan Sompolinsky 提出的 SPECTRE协议 ,以及 PHANTOM协议 ,以及国内某社区提出的 CONFLUX协议 。
丢弃主链概念,所有产生的区块共同构成账本,不丢弃任何一个区块
只要是产生的区块就不会被丢弃,所有的区块都是有效的,所有区块共同组成账本,这样进一步提高了区块链的处理交易能力, 该设计的关键在于设计算法来保证区块链不会被恶意攻击成功。
SPECTRE协议较为复杂,下边将从其如何产生区块、如何处理冲突交易以及产生可信交易集三个方面进行描述。
SPECTRE协议中,当产生区块时,要指向之前所有分叉的末端区块。
下图中,左边为比特币产生区块时,当有分叉出现,新区块将选择基于其中一个产生新的区块,而SPECTRE中,将基于所有分叉末端区块产生新的区块。同时,当有新区块产生时,节点要立刻将新区块(包含基于哪些区块产生这一信息)发送给与自己相连接的节点。
仔细观察,GHOST协议中虽然有分叉,但每个区块都只基于前边某一个区块产生,而SPECTRE协议中要基于当前节点知道的所有末端区块产生下一个区块。
SPECTRE协议将矿工维持交易不冲突的要求剥除
比特币就像一本 权威 的账本,只要是里边记录的,就一定是真的(不考虑分叉和恶意攻击),而SPECTRE产生的DAG就像一本 不权威 账本,里边的交易信息可能冲突(上边图1中两个1区块中可能包含冲突交易信息)。
该协议下,挖矿节点只 负责迅速挖区块 (能够达到1秒一个区块),而对分叉中可能包含的冲突交易在挖矿阶段并 不做任何处理 ,将记录交易速度最大化,让DAG这种区块链有着恐怖的处理交易能力。
是时候解决挖矿不解决的 冲突交易 问题了,SPECTRE的思路是设计一个计算投票的算法,让诚实区块会投票给诚实的区块,后边的诚实区块会给前边的 堆叠算力 ,从而让恶意攻击失败,其安全算力也是 51% 。
拿双花举例,下图中,X和Y区块中包含着两条冲突交易会导致双花,此时DAG中的区块会对X和Y进行投票, 决定哪一个交易有效。
投票规则如下,投X的标蓝,投Y的标红,X<Y代表X先于Y:
根据投票结果,X中的那条交易信息 有效 ,Y中对应的那条交易信息 无效 。 Yonatan Sompolinsky也对 不指向前边区块 以及 产生区块不发给邻居节点的恶意攻击 有进行分析,在投票规则中,低于50%算力的攻击者会失败。
投票听起来像是一个主动地中心化行为,实际上不是,程序根据当前DAG区块所处的状态自发完成这一区块投票计算过程,就相当于,给定一个DAG数据,输入为两条冲突信息,运行该规则算法,将得出一对冲突交易的哪一个为有效。
SPECTRE可信交易集就相当于超过当前6个区块的比特币链里组成的交易集合。 区块链从数字加密货币的角度来说,就是一个 账本 ,从账本上的交易信息中得出每个 账户 所拥有的货币,所以,得出 确定的、不可能更改 的交易信息就至关重要,SPECTRE可信交易集产生过程如下:
SPECTRE并不会对所有区块进行排序,所有区块没有一个完整的线形顺序,有的只是决定冲突信息先后的区块顺序对。
比特币中的高度代表的就是 线形顺序 ,高度低的区块中交易信息先于高度高的区块里的信息,高度高的区块就不能 包含和高度低的区块冲突的交易 ,而SPECTRE有大量的分叉,区块高度不能代表线形顺序,前边的区块交易信息不一定先于后边的分叉区块交易信息,交易信息的有效性要由投票算法来决定,区块投票算法很快,再加上它将 所有分叉区块 都包含进来,也就没有了比特币所面临的 分叉风险 (等待6个区块),交易确认时间可以达到10秒。
至此,和比特币相比,SPECTRE对应的DAG区块链有三个特点:
SPECTRE协议非常 适合DAG型数字加密货币 ,但当它用于智能合约时,它的缺陷就出来了,智能合约需要一个 严格的线性顺序 ,对此Yonatan Sompolinsky新设计了 PHANTOM 协议来对DAG区块形成一个 线性顺序 ,下边将详细介绍PHANTOM协议。
SPECTRE和PHANTOM是两个完整的独立的协议,不是一个对另一个的补充。
PHANTOM的挖矿机制和SPECTRE一样,会产生同样类型的DAG,不同的是PHANTOM通过对 区块连通度分析 ,判定区块诚实还是恶意,按照分类对区块排序,对DAG区块产生一个严格的 线性顺序 ,通过线性顺序来判断 冲突交易有效性 。
DAG中,攻击者有两种攻击手段, 一产生的区块不基于已知的末端区块,二不立即发布自己产生的区块 ,前者会让自己区块指向的区块变少,后者让其他节点产生的区块不会指向自己的区块,这两种情况都会导致这些恶意区块的与其它区块的 连接度低 。
诚实区块在考虑网络最大延迟下,经过一定时间一定会传遍整个网络,一定会被后边的区块所指向,诚实节点在产生新区块时也一定会指向自己所知道的末端区块。
通过对 区块指出去的边和指向该区块的边 进行分析,也就是区块的 连通度 ,当考虑最大的网络延迟,连通度会有一个 极限值K ,低于该值的区块可以被认定为恶意区块,在排序中要处于 劣势 。
接下来,进行区块 诚实和恶意 判定,判定分两步,第一步最重要, 实现复杂也耗费时间 ,主要为通过对区块连通度的判定,将强连通度的区块标为蓝色视为诚实区块,弱的标为红色视为恶意区块。
第二步 先对蓝色区块集排序 ,拓扑排序,然后对 红色区块集排序 。红色区块的顺序要处于弱势,例如上图中C,它处于A和I之间,那么它的顺序会排在I的前一个区块,而D、H都会排在C前。 注意通过考虑最大延迟时间设定连通度的值,几乎所有正常诚实节点产生的区块都会被标记为蓝色
至此,PHANTOM协议实现了对DAG的 线性排序 ,通过线性顺序就可以提取 无冲突交易集 ,进而提取 可信交易集 ,虽然耗时较长,满足智能合约的要求。
Yonatan Sompolinsky在PHANTOM协议论文结尾,提出一种将PHANTOM + SPECTRE结合起来的可能协议,没有详细展开介绍。下图是几种协议的对比:
至此,介绍了Yonatan Sompolinsky一开始从分叉导致不安全提出的GHOST,到后来将DAG引入区块链,设计了SPECTRE协议,以及为智能合约考虑的PHANTOM协议。接下来,介绍国内某社区提出的CONFLUX协议。
GHOST有 主链但丢弃分叉区块 ;SPECTRE 没有主链,包含所有分叉,但没有线性顺序 ;PHANTOM 没有主链,包含分叉且有线性顺序 ,而CONFLUX 即有主链,又是DAG,利用主链让DAG产生线性排序 ,下面将从挖矿机制和区块排序两方面来说明CONFLUX协议。
CONFLUX协议定义了根源边和参考边。 新区块是基于前一个主链区块产生的,新区块用根源边(实线)指向前一区块,用参考边(虚线)指向分叉的其他区块末端 ,如下图最后一个新区块实线指向H,虚线指向分叉末端区块K。 根源边用于代表区块基于哪个区块产生,给哪个区块堆叠算力,参考边用于表示分叉的其它区块产生在该区块之前。
挖矿过程如下:
根源边只能有一条,参考边可多条(视情况而定)
以主链区块为分割点,将DAG分段,段间段内设计简单排序算法
CONFLUX协议下产生的区块链如上(图2),接下来对其进行线性排序,排序算法如下:
通过上述排序,DAG有了一个 线性顺序 ,上图DAG区块顺序为 Genesis, A, B, C, D, F, E, G, J, I, H, and K 。接下来对该线性顺序的区块里的交易信息进行交易排序, 单一区块 里可能包含的冲突交易将直接按照该区块内交易信息排列 先后顺序 决定。
至此,CONFLUX对DAG所有区块产生一个 线性顺序 ,进而可以对区块内交易信息排序,产生 无冲突交易集 ,超过一定时间的无冲突交易组成 可信交易集 。 主链只是排序的标尺,作为分割时段的标准,CONFLUX包含所有分叉区块。
GHOST论文
Inclusive论文
SPECTRE论文
PHANTOM论文
CONFLUX论文
DAGlabs 相关讲解视频合集