• <option id="cacee"><noscript id="cacee"></noscript></option>
  • <table id="cacee"><noscript id="cacee"></noscript></table>
  • <td id="cacee"></td>
  • <option id="cacee"></option>
  • <table id="cacee"></table>
  • <option id="cacee"><option id="cacee"></option></option>
  • <table id="cacee"><source id="cacee"></source></table><td id="cacee"><rt id="cacee"></rt></td>
    <option id="cacee"><option id="cacee"></option></option>
     找回密碼
     立即注冊

    掃一掃,登錄網站

    首頁 百科 查看內容
    • 13191
    • 0
    • 分享到

    有ETH?那你更需要這篇以太坊原理介紹了……

    2018-5-13 23:12

    來源: 火球財經

    以太坊關鍵技術


    以太坊采用了許多信息安全及密碼學的相關技術,大致有5個,工作量證明(POW),橢圓曲線密碼,哈希函數,Merkle Tree,以及電子時間戳機制。 

    2.1 工作量證明

    工作量證明機制(Proof of Work, POW)為區塊鏈關鍵技術,簡單來說就是用來確認你做過一定的工作量的證明。主要特征是工作者須要做出一定難度的工作才能得出結果,但驗證方卻可以根據該結果很容易的檢查出工作者是否做了相對應的工作。流程如下圖所示。

    如圖所示,左邊的礦工需要解答密碼學謎題以“挖出”一個區塊并加入到區塊鏈上。這一個過程要求大量的電力和運算。在系統中,這些謎題已經被設計成艱難而又繁重。當一個礦工解決一個謎題的時候,他們發布他們的區塊到網絡上接受驗證。右邊的人驗證區塊是否屬于一條鏈是一個非常簡單且快速的過程。 

    在工作量證明機制中也使用了哈希函數,礦工在完成計算之后,對計算結果采用Hashcash算法作為POW,其他節點可以用相關的數學公式,即可容易地驗證出該數值(新區塊)是否有效。

    但是,目前來看,工作量證明存在非常多的問題。首先,也是最重要的,工作量證明是個極端低效的系統,因為它消耗大量的電力和能量。 

    其次,工作量證明并不是抗ASIC的,也就是說,可以購買更快更強勁的ASIC設備的人們和機構通常可以比其他人擁有更高的概率挖到區塊。 

    針對以上這些缺點,人們提出了權益證明(POS),權益證明將讓整個挖礦過程虛擬化,并以驗證者取代礦工。首先,驗證者必須鎖定一些他們擁有的幣作為保證金。在此之后,他們將開始驗證區塊。同時,當他們發現一個他們認為可以被加到鏈上的區塊時,他們會通過下賭注來驗證它。如果該區塊成功上鏈,驗證者就將得到一個與他們的賭注成比例的獎勵。

    2.2 橢圓曲線密碼

    在區塊鏈中使用的公鑰密碼算法是基于橢圓代數的特性開發的橢圓曲線算法。橢圓曲線算法的安全性依賴于著名的數學難題,離散對數問題。橢圓曲線密碼的加解密過程如下圖。 

    如上圖所示,用戶Alice選定一條橢圓曲線Ep(a,b),并取橢圓曲線上一點,作為基點P;用戶A選擇一個私有密鑰k,并生成公開密鑰L=kP;用戶A將Ep(a,b)和點L、P傳給用戶Bob;用戶Bob接到信息后,將待傳輸的明文編碼到Ep(a,b)上一點M,并產生一個隨機整數x(x小于r);用戶Bob計算點C1=M+xL,C2=xP;用戶Bob將C1,C2傳給用戶Alice;用戶Alice接到信息后,計算C1-LC2,結果就是點M。 

    橢圓曲線密碼的出現也是受到了RSA算法的啟發,RSA方法的優點主要在于原理簡單,易于使用。但是,隨著分解大整數方法的進步及完善、計算機速度的提高以及計算機網絡的發展,作為RSA加解密安全保障的大整數要求越來越大。為了保證RSA使用的安全性,其密鑰的位數一直在增加,但是,密鑰長度的增加導致了其加解密的速度大為降低,硬件實現也變得越來越難以忍受,這對RSA的應用帶來了很重的負擔,對進行大量安全交易的電子商務更是如此,從而使得其應用范圍越來越受到制約。 

    橢圓曲線加密方法與RSA方法相比,有以下優點:(1)安全性能更高。加密算法的安全性能一般通過該算法的抗攻擊強度來反映。ECC和其他幾種公鑰系統相比,其抗攻擊性具有絕對的優勢。如160bitECC與1024bitRSA、有相同的安全強度。(2)處理速度快,在私鑰處理上(簽名與解密),ECC遠比RSA快。(3)存儲空間占用小,ECC的密鑰尺寸比RSA要小的多。

    2.3 Merkle Tree

    Merkle Tree多數是用來進行比對和驗證處理,用戶先從可信的源獲得文件的Merkle Tree樹根。一旦獲得了樹根,就可以從其他從不可信的源獲取Merkle tree。通過可信的樹根來檢查接受到的Merkle Tree。如果Merkle Tree是損壞的或者虛假的,就從其他源獲得另一個Merkle Tree,直到獲得一個與可信樹根匹配的Merkle Tree。 

    Merkle Tree可以看作是哈希表的泛化,因此它的主要特征也就是哈希函數的主要特征即,輸入數據的稍微改變就會引起Hash運算結果的面目全非,而且根據Hash值反推原始輸入數據的特征是困難的,因此可以用來進行驗證處理。 

    Merkle Tree協議對以太坊的長期持續性可以說是至關重要的。區塊鏈網絡中存儲所有區塊的全部數據的節點所需的內存空間急速增長。Merkle Tree協議使以太坊在運行過程中,只需下載區塊頭,使用區塊頭確認工作量證明,然后只下載與其交易相關的默克爾樹“分支”。這使得節點只要下載整個區塊鏈的一小部分就可以安全地確定任何一筆比特幣交易的狀態和賬戶的當前余額。

    2.4 時間戳機制

    在以太坊中,要求參與交易各方不能否認其行為。這其中需要在經過數字簽名的交易上打上一個可信賴的時間戳,從而解決一系列的實際和法律問題。時間戳服務工作流程大致如下:首先用戶對文件數據進行Hash摘要處理;用戶提出時間戳的請求,Hash值被傳遞給時間戳服務器;時間戳服務器對哈希值和一個日期/時間記錄進行簽名,生成時間戳;時間戳數據和文件信息綁定后返還,用戶進行下一步電子交易操作。

    2.5哈希函數

    首先簡單介紹一下哈希函數,一個可靠的單向哈希函數必須具備以下特性:(1)輸入任意長度數據必須輸出固定長度的散列值;(2)能夠快速計算出散列值;(3)輸入數據有細小差別也要導致散列值差別很大;(4)具備單向性,無法根據散列值反推出原始數據。常見的單向散列函數包括MD4/MD5、SHA-1/SHA-256/SHA-384/SHA-512、RIPEMD/RIPEMD-160、以及以Keccak算法作為標準的SHA-3系列函數。其中MD4/MD5、SHA-1、RIPEMD已經存在攻破的算法,不推薦在極其敏感環境下使用。以太坊中常用的哈希函數有SHA-256,Keccak-256等。 

    如上圖,每一個打包好的區塊中都有一個prehash值,這個值是指前一個區塊(通常是區塊頭)的哈希值,在以太坊中此處使用的是SHA-256算法。在需要遍歷驗證所有區塊時,便是通過preHash值索引到上一個區塊直至創始區塊。同時,在上圖中還有一個值得關注的成員:MRH(Merkle Root Hash)即默克爾樹根節點哈希值。在區塊鏈的每個Block中都存放了一定數量被礦工打包的交易,區塊鏈的交易記錄是不容篡改的。而檢測區塊中的交易是否被篡改便是根據默克爾樹根哈希的值前后是否一致來判斷。 

    2.3中已經介紹過默克爾樹,默克爾樹的本質就是一個泛化的哈希表,當需要驗證區塊中的一筆交易是否被篡改過時,我們只需要驗證這筆交易的哈希值,同時默克爾樹還有一個優點,針對大塊數據我們可以只對其中的一部分進行驗證,這大大減小了工作量。 

    以太坊還有很多地方用到了散列函數,例如:區塊鏈上的地址,是由散列法運算公鑰而得到的。一個以太坊的賬戶地址,是以Keccak-256散列法運算一個公鑰而得出的。以太坊上的簽名是由私鑰和需要被簽名的數據散列而生成的。

    版權申明:本內容來自于互聯網,屬第三方匯集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯系QQ:3341927519進行反饋。
    相關新聞
    發表評論

    請先 注冊/登錄 后參與評論

      回頂部
    • <option id="cacee"><noscript id="cacee"></noscript></option>
    • <table id="cacee"><noscript id="cacee"></noscript></table>
    • <td id="cacee"></td>
    • <option id="cacee"></option>
    • <table id="cacee"></table>
    • <option id="cacee"><option id="cacee"></option></option>
    • <table id="cacee"><source id="cacee"></source></table><td id="cacee"><rt id="cacee"></rt></td>
      <option id="cacee"><option id="cacee"></option></option>
      妖精视频