Ⅰ 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演算法,不足之處,請批評指正。
Ⅱ 什麼才是中本聰心目中理想的比特幣擴容方案
圖形結構賬本是最符合中本聰理想的區塊鏈擴容方案,DAG技術的設定是要能接受無法無限擴容以及區塊中交易重復的問題。該方案的典型代表是就是HLC公鏈團隊研究的DAG技術。DAG技術解決的是出塊時間和傳播時間的矛盾, 因為出塊時間過快, 必然會增加分叉, 長時間的分叉會導致網路的不一致, 所以DAG技術歸根結底也是解決分叉的問題。
DAG技術解決的是上述提到的出塊時間和傳播時間的矛盾, 因為出塊時間過快, 在傳播時間不得不考慮的情況下, 必然會增加分叉, 長時間的分叉會導致網路的不一致, 所以DAG歸根結底也是解決分叉的問題。目前DAG技術的知名項目有IOTA, ByteBall以及NANO,這些項目都是採用偏中心化的共識方案解決分叉問題, 造成許多用戶誤會DAG的共識方案只能用中心化的方案解決。
事實上, DAG技術是目前最符合中本聰的理想的區塊鏈設定的擴容方案, 自然DAG技術也是可以解決中心化的問題。DAG技術目前看來最大的問題跟多區塊技術和混合共識技術一樣, 由於每個節點需要處理所有交易, 無法解決理論上的無限擴容, 所以採用DAG技術的設定是要能接受無法無限擴容以及區塊中交易重復的問題
Ⅲ 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 相關講解視頻合集
Ⅳ 以太幣的發行
以太幣
天天在說的以太幣,到底是怎麼產生和發行的,這里做個簡單介紹。
首先以太坊幣是以太坊發行的一種數字貨幣,這個我想大多數人都清楚。
以太幣來源
那麼以太幣的來源包括以下幾部分:
礦前獎勵:預付款給與貢獻者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
參考:《以太坊技術詳解與實戰》
Ⅳ 愛快安裝硬碟類型ntfs
U盤寫入工具下載地址
http://pan..com/s/1sj4O0Nz
愛快流控路由官網論壇
http://bbs.ikuai8.com/?fromuid=12954
首先下載愛快IMG鏡像和寫鏡像工具
方法1
我是放在G盤的,所以進入G盤根目錄,將文件解壓即可看到physdiskwrite.exe,愛快的IMG鏡像文件也放在G盤根目錄。
開始--運行---輸入cmd回車,打開命令提示行,因為我們放在G盤的所以輸入G:回車,跳轉到G盤,然後輸入下面命令,physdiskwrite.exe-uiKuai8_1.3.0-P2_Build20140303-13_35.img
第1頁
哦,不對,從官網下載的IMG文件是要解壓的,解壓後名字是ikuai8.img
輸入命令
physdiskwrite.exe-uikuai8.img
選擇我們要寫入的U盤,這個一定要注意不要選錯了,看大小就知道了,我這個是1G的U盤,比這個電腦硬碟小很多,是PhysicalDrive1,所以我們輸入1回車,再確認一次y回車,開始寫入了,如果這時你才發現選錯了,那麼......晚了
好等寫入完成,退出U盤,將U盤插到我們要用的機器上,U盤啟動即可.....
展開全文
App內免費讀全文
前往文庫APP簽到領暢讀卡,免費讀愛快安裝方法全文
限免
導長圖
轉存到網盤
發送至微信
下載文檔
北京網路網訊科技有限公司版本號8.0.70隱私政策許可權說明
版權說明:本文檔由用戶提供並上傳,收益專屬歸內容提供方,若內容存在侵權,請進行舉報或認領
第2頁
為您精選愛快安裝方法會員文檔462篇
愛快基礎設置--工具
1103人閱讀
愛快軟路由GHOST全盤恢復安裝
8080人閱讀
愛快AP-H1使用方法及排錯
1000人閱讀
裝配式快牆(內隔牆)結構及安裝方法[發明專利]
2880人閱讀
獲取全部文檔9198人在看
基於你的瀏覽為你整理資料合集
愛快安裝硬碟類型ntfs
文件夾
磁碟分區格式FAT32與NTFS-網路文庫
4.3分
1112閱讀
磁碟分區格式NTFS和FAT32有什麼區別呀-網路文庫
3.6分
5161閱讀
熱度TOP
Mac上使用NTFS移動硬碟總結教程-網路文庫
3.6分
1000閱讀
人氣好文
剩餘21篇精選文檔
前往APP一鍵獲取全部合集
相關文檔
愛快基礎設置--工具
免費獲取全文
愛快軟路由GHOST全盤恢復安裝
免費獲取全文
愛快AP-H1使用方法及排錯
免費獲取全文
裝配式快牆(內隔牆)結構及安裝方法[發明專利]
免費獲取全文
拼接式快裝牆板及安裝方法[發明專利]
1853人已閱讀
熱度文檔
一種絕緣快搭腳手架及其安裝方法[發明專利]
1578人已閱讀
為你優選
一種快裝隔斷牆及其安裝方法[發明專利]
1000人已閱讀
區塊鏈主要核心技術、應用場景及發展展望分析
8889人已閱讀
讀後續寫素材庫之環境描寫系列(4)
6423人已閱讀
比爾蓋茨成功的7個關鍵習慣
2125人已閱讀
常見的rj45rj11插座及標准連接方法(1)
2743人已閱讀
【ZYNQUltrascale+MPSOCFPGA教程】第十九章HelloWorld(下)
2229人已閱讀
軟體系統測試報告
2848人已閱讀
基於DDC的智能樓宇監控系統設計
2456人已閱讀
視頻炫鈴業務流程與典型問題
1919人已閱讀
Ⅵ 在公鏈項目早期,為什麼PoW是一個更好選擇
在傳統的互聯網公司或金融機構中,如果一家公司,在一年之內,被委託的交易結算的總量為萬億美元的話,這家公司要麼擁有可靠的技術和雄厚的資本,要麼就是其它大公司及政府為其信用來做背書。而比特幣卻在沒有政府或公司背書的情況下,在過去一年內支持了相當於一萬億美元的交易。這是因為比特幣的工作量證明(PoW)機制確保了全世界的比特幣礦工以點對點的方式去分布式地維護賬本,且保證了其正確性和不可篡改性。
實際上,PoW 協議並不完美,它在運行過程中需要消耗大量的能量來計算哈希函數的結果,以保護區塊鏈系統不被攻擊。很多人認為這是一種「無用的能源消耗」。為了避免這種消耗,股權證明協議(PoS)便作為替代方案被提出。包括以太坊在內的幾個著名的項目也開始探索股權證明協議(PoS), 甚至有人認為,PoS協議在未來將完全取代PoW協議。
但是,在對PoS 協議進行了深入的技術剖析之後,我們會發現:在一個公鏈項目的早期階段,PoS 協議會帶來很多問題,而這些問題在PoW協議下是可以避免。首先,使用PoS協議啟動主網的公鏈項目,會不可避免地存在共識中心化的問題,因為主網上線的時候股權分布往往是相對集中的。此外,純 PoS 協議還面臨著遠程攻擊(Long Range attack)的威脅。最嚴重的遠程攻擊會導致新加入的節點必須信任一些中心化的網站給出的信息,而這會導致 PoS 公鏈成為一個本質上中心化的網路。去使用PoW協議啟動主網的區塊鏈則可以實現分散的共識,從而避免這些問題。當PoW公鏈經過一段時間的發展,股權分布相對分散以後,還可以選擇PoW/PoS復合機制。
除此之外,還有一點值得注意的是,很多人誤以為比特幣的擴容問題是PoW機制的局限性造成的。我們經常在媒體網站或白皮書中看到這樣的句子,「比特幣因為使用了PoW機制,所以只能處理每秒3-7筆交易」。而事實上,經過適當的設計,例如,GHOST, Conflux 這樣的PoW演算法可以顯著提高出塊效率,達到每秒處理數千筆交易,且每筆交易都能得到全網節點的驗證。
PoW v.s. PoS:如何確定投票權
關於PoW和PoS之間的主要區別,就是在於如何確定區塊鏈共識中的投票權。 在PoW中,系統中的投票權與節點的計算能力成正比。每秒可以計算哈希函數次數越多,節點就越有可能贏得區塊鏈中下一個區塊的出塊權。而在PoS中,系統的投票權與持有的股權比例成正比。節點擁有資金越多,能為確定的下一個區塊投的票數就越多。
在公鏈早期階段,股權中心化將導致共識中心化
對於一個公有鏈來說,其上線初期往往是股權最集中的時候。在主網上線伊始,創始塊中分配的幣絕大多數屬於項目方和私募投資人,而這些人的數量往往非常有限。對於PoW共識機制,初始股權的集中不會帶來安全性問題,因為它的出塊和安全性不依賴於股權持有的分散,而是依賴於算力的分散。對於使用反 ASIC 礦機的挖礦演算法的公有鏈來說,任何人只要擁有顯卡和網路就可以成為礦工,這有助於促進更多人參與挖礦,實現早期算力的分散。只要超過50%的算力來自於誠實的礦工,區塊鏈中的交易就是安全不可逆轉的。
然而,在PoS共識機制下,股權集中會導致共識協議的參與者集中。區塊鏈的出塊權只能由少數在創世塊中擁有股權的玩家決定。如果這些人合謀對區塊鏈進行攻擊,則完全可以成功的實現雙花攻擊(Double spending attack). 盡管開發者和投資人出於利益考慮不會進行這樣的攻擊來摧毀他們自己的公鏈,但PoS公鏈也無可避免的在主網上線後就被這些人壟斷和支配。更糟的是,如果出塊可以獲得大量獎勵和交易費用,這些壟斷者就會將大量股權牢牢控制在自己的手裡,使得PoS公鏈成為一個本質上由巨頭控制的網路。
我們不要忘了,區塊鏈的核心價值是什麼?是去中心化的共識協議,保證了區塊鏈系統中每筆交易的正確性、不可篡改性。如果共識協議無法保證參與者的分散,區塊鏈就無法做到無需信任的安全性,那麼區塊鏈和傳統的分布式系統相比就沒有任何優勢了,甚至傳統的分布式系統能做得更經濟更高效。因此,公鏈項目在早期使用PoW, 是避免共識中心化,保護區塊鏈核心價值的明智選擇。
「長程攻擊」與「主觀依賴」問題
在一個公有鏈中,一個攻擊者如果擁有當下足夠多的算力或股權,無疑是可以打破公有鏈安全性完成攻擊的。但是在PoS 公鏈中,如果攻擊者獲得了一些賬戶的私鑰,這些私鑰在歷史上某一時刻控制了超過51%的股權,也可以完成攻擊,這種攻擊的方式被稱為長程攻擊(Long Range Attack)。
在長程攻擊中,攻擊者首先獲得一些私鑰,只要這些私鑰在歷史上曾經獲得了足夠多的股權,便可以從這一時刻開始分叉進行51% 攻擊,製造一條分叉鏈出來。而 PoS 的出塊不需要進行工作量證明,攻擊者可以短時間內讓重寫歷史的分叉鏈追趕上原本的主鏈,從而造成PoS鏈的分叉和防篡改性被打破。
攻擊者能夠取得這些私鑰不是天方夜譚。如果PoS公鏈的早期投資人在二級市場將持有的代幣賣掉後,將賬戶私鑰賣給攻擊者,攻擊者就可以從創世塊進行長鏈攻擊,從而可以打破一個鏈的安全性。如果一些投資者追求短期收益而非價值投資,攻擊者從他們手裡獲得私鑰就成為了一個可能的事情。
而為了應對長程攻擊,則有各種各樣的解決方案被提出:例如使用密鑰演化演算法更新密鑰,以避免密鑰被盜。但是如果早期投資者一開始就決定通過出售私鑰獲利,那麼他完全可以保留密鑰種子以繞開這一限制。還有一些解決方案基於這樣一個事實:如果攻擊者挖了一條完全不同的鏈,長期在系統中運行的節點或許有能力探測出這種異常。但是,這些方案依然存在如下問題:
PoS 長程攻擊造成的分叉與 PoW 的分叉有所不同。PoW 的分叉鏈難以獲得比特幣全網算力,比特幣礦工很容易從總算力中辨別誰是真正的比特幣。鑒於PoS共識協議在實際運行時,絕大多數股權持有者只是區塊鏈的使用者,並不會一直運行一台伺服器。攻擊者只要在一個歷史節點擁有了相當與PoS實際參與者的股權比例,就可以製造出一條難以辨別的分叉鏈出來。配合女巫攻擊(Sybil Attack),攻擊者可以從區塊歷史和節點數量上都獲得和被攻擊主鏈接近的水平,令新加入的節點無法區分,只能通過人工指定的方式選擇。這樣新參與者必須咨詢受信任節點來安全地加入系統,這一問題被稱為「主觀依賴」(Weak Subjectivity)
無利害攻擊
無利害攻擊(Nothing at Stake)是另一種PoS攻擊方式。當一個 PoS 鏈因為網路延遲、長程攻擊或其他原因出現分叉時,PoS 礦工可以選擇在兩個分叉的鏈上同時出塊,以獲取最大收益。而這違反了共識協議。
在PoW 鏈中,如果一個礦工想同時在多個分叉上挖礦,就必須將自己的算力分散在多個分叉上,所有分叉上分配的算力總和不會超過礦工擁有的總算力。對於多數礦工而言,將自己的全部算力投入到協議指定的鏈上是最優的選擇。
然而,在PoS 多個分叉上同時出塊所帶來的額外成本可以忽略不計,而選擇同時出塊可以保證無論哪一條分叉鏈最終勝出都可獲得收益。如果礦工遵守共識協議,只在協議指定的鏈上挖礦。一旦這個鏈被丟棄,礦工將會失去挖礦獎勵。只追求挖礦收益最大化的礦工會在兩邊同時參與,不惜因此打破協議——這會導致鏈長時間維持分叉的狀態。
與長程攻擊不同,精巧的激勵機制設計可以避免這一攻擊。但無利害攻擊依然表明讓PoS鏈正確地運行是一件很困難的事情。
總結
雖然PoS 具有節省能源等優勢,從而很多項目表示將採用PoS。但我們在分析區塊鏈安全性假設後發現,避免了計算「無用的哈希」之後會引入很多攻擊情形,而且目前沒有很完美的解決方案。誠然PoS有能源效率的優勢,但也帶來了很多安全性威脅。在PoS很好地解決這些威脅之前,PoW消耗的能源,就像和平時期國家軍隊用掉的軍費一樣,阻擋了很多潛在的威脅。最重要的是,其中許多威脅在區塊鏈項目早期顯得尤其致命。這也是我們為什麼相信新的公鏈項目應該從PoW開始。