Ⅰ 介紹一下暗黑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 相關講解視頻合集