區塊鏈 基礎

特點:公開、透明,解決交易中信任問題,通過技術推動社會交易成本的降低。

採用新的清算方式, 使用流水賬記錄。

1. 區塊鏈的六層結構

  1. 數據層
    數據區塊, 鏈式結構, 時間戳, 非對稱加密, 哈希函數, Merkle樹。
  2. 網絡層
    P2P網絡, 傳播機制, 驗證機制
  3. 共識層
    PoW, PoS, DPoS
  4. 激勵層
    發行機制, 分配機制
  5. 合約層
    腳本代碼, 算法機制, 智能合約
  6. 應用層
    可編程貨幣, 可編程金融, 可編程社會
    從1 —-》6 由底而上
    各層之間相互配合, 實現一個去中心化的信用機制。

2. 區塊鏈技術概念

  1. 通俗說: 分佈式記賬; 形成 公開,透明,不可篡改、不可僞造的數據庫.
  2. 區塊鏈技術的本質是一種互聯網協議。
  3. 只有當所有網絡節點(或大部分節點)進行區塊確認後, 該筆交易纔算真正結束。
    區塊鏈技術在沒有中央控制點的分佈式對等網絡下,使用分佈式集體運作的方法,構建了一個P2P的自組織網絡。通過複雜的校驗機制,區塊鏈數據庫能夠保持完整性、連續性和一致性,即使部分參與人作假也無法改變區塊鏈的完整性,更無法篡改區塊鏈中的數據。


  4. 核心技術1:區塊+鏈 = 時間戳.

  5. 核心技術2:分佈式結構——開源的、去中心化的協議.
    • 5.1 分佈式記賬、分佈式傳播、分佈式存儲這三大技術: 實現該系統的”不可被控”.
  6. 核心技術3:非對稱加密算法

  7. 核心技術4:腳本. 增加區塊鏈技術的可拓展性, 會使系統有機會去處理一些無法預見到的交易模式,保證了這一技術在未來的應用中不會過時,增加了技術的實用性。

  8. 總結:
    • 1 區塊鏈是一種分佈式的不可篡改的數據庫;
    • 2 該數據庫由按時間順序的區塊組成;
    • 3 區塊由一段時間內的網絡交易信息組成;
    • 4 該數據庫的特點是: 分佈式, 所有者共同維護;

3. 共識機制

POW : 工作量證明 (第一種)

  1. 比特幣的共識機制(POW): 工作量證明機制. (以太坊前三個階段也採用該機制);
  2. 工作證明: 設立一個獎勵,要想得到就得付出代價,付出代價的方式是解題(比特幣是SHA-256,以太坊是SHA-3),誰先解出來,獎勵就歸誰,一旦計算出來後,要告訴大家,大家會幫你驗證,大家都承認後你就可以拿到這個獎勵,然後基於這道題目繼續算下一個題目,如此反覆;
  3. 因爲每一個區塊鏈都是基於前一個區塊鏈產生的,如果有攻擊者要修改之前的記錄,從那之後每一個區塊鏈都要重新付出勞動POW機制通過控制區塊的平均生成時間,降低攻擊者試圖趕上隨後區塊的概率;
  4. 大家幫忙驗證其實是一個集體投票的結果,大多數人決定了最長那條鏈,因爲那條鏈中包含最多的工作量證明,並且投票是基於計算力(CPU),有計算力纔有投票權;
  5. POW機制解決了拜占庭將軍問題 : 即在 互相不信任 的情況下,只要 好人的數量大於壞人,就保證系統的正確運轉(符合大多數的意願),讓系統具備一定的 容錯性,這也就是大家所說的:區塊鏈具備去信任的能力;

POS : Proof of Stake,權益證明 (第二種)

  1. 權益證明 : 主要思想是節點記賬權的獲得難度節點持有的權益成反比, 相對於PoW,一定程度 減少 了數學運算帶來的資源消耗,性能也得到了相應的提升,但 依然是基於哈希運算競爭獲取記賬權的方式;

POW 和 POS 共識機制的不同之處在於:

  • 1 POW 在於對各節點計算出來的結果進行共識;
  • 2 POS 在於對選擇哪個節點進行記賬進行共識;
  • 3 所以不同之處在於: 一個是進行記賬結果的共識, 一個是進行選擇誰進行記賬的共識;(以上屬於自己的理解)

4. 區塊鏈基礎 (散列法hashing)

  1. 在區塊鏈中,散列是作爲區塊、交易和地址的標識符。
  2. 一個散列函數(hash function),即取任何的輸入,就可以產出一個特定大小的輸出。

  3. 散列算法 與 壓縮算法的區別:
    • 簡單地解釋下這兩者之間的區別,N兆視頻數據, 散列法總是會產生相同數量的燈泡,而壓縮一部N兆(MB)視頻的結果,仍然會產生數以百萬計燈泡的一個輸出。一個壓縮過的視頻,可被解壓縮然後獲得原始的視頻。而當一個視頻被散列到僅僅只有256個燈泡時,從這個散列重新構建原始視頻可能性就很小了.

  4. 一個安全的加密散列函數,它的一個關鍵特徵就是,它是單向的。這意味着,從數學和計算機學角度上來看講,從輸出來反推輸入,這幾乎是不可能的。術語爲: 逆原像阻力.

  5. 安全的散列函數,即使輸入僅相差一個bit,也會產生顯著不同輸出
    • 如: passwd1 與 passwd2 分別計算散列, 確保產生的輸出顯著不同; 否則, 如果圖案相似, 那對方就可以推斷出輸入也是類似的.

  6. 加密散列函數也應該是抗碰撞的。 一個碰撞過程,意指當一個散列函數爲超過1個輸入進行運算,而產出相同輸出的結果。如果用散列法運算數據1(可能是一份電子表格),而用散列法運算數據2(可能是一張圖片),這兩者產生了相同的輸出,那麼這個碰撞衝突就發生了。

  7. 散列還享有安全與隱私的優勢。
    • 例如: 一首歌是以數字格式被記錄的,並且這首歌的散列是被記錄在區塊鏈之上的,那任何他人都無法聲稱是他們是第一個創造了這首歌,並生成了這個散列,他們也不會知道歌曲本身:某人不能寫歌,也沒法篡改這個散列。同樣地,除非歌曲或其他數字化財產或數據被表明了,展示在區塊鏈上的僅僅是散列本身而已。 所有權記錄也可以存儲在區塊鏈上,舉個簡單的例子,車輛登記處可以將汽車數據散列(照片,VIN, 車牌)存儲在區塊鏈上,只有車輛所有者,保險公司以及政府會知道這個車輛的實際細節。
>8. 
function withdrawBalance() {
    amountToWithdraw = userBalances[msg.sender];
    if(amountToWithdraw > 0){
        if(!(msg.sender.call.value(amountToWithdraw)())) { throw; }
        userBalances[msg.sender] = 0;
     }
 }

五. 比特幣挖礦
1. 實質是 : 不斷重複計算隨機字符串的哈希值(一種字符串變換運算), 並檢查結果是否滿足特定的需求.
2. 流程上, 是這樣實現的:
* 1 網絡內節點收集有效但還未驗證的交易;
* 2 這些交易以時間先後順序 被放入到區塊(block)中;
* 3 各個節點紛紛加入, 試圖解決工作量問題(及上述的哈希運算);
* 4 節點這種行爲被稱爲挖礦(Mining);

六. 區塊鏈的去中心化共識系統的關鍵:
* 1. 去中心化共識系統的竅門在於:它們怎樣保證每個參與者(完全節點)有一個賬本的副本,並使每個人確信自己的賬本與別人的賬本是同步的。
*
七. 智能合約

  1. 智能合約的本質:
    * 1. 一個可以自動執行的計算機程序;
    * 2. 一個系統的參與者(以太坊中每個合約都有自己的賬戶地址 )
    * 3. 可以對接收到的信息進行迴應, 可以接收和儲存價值, 也可以向外發送信息和價值.
    * 4. 像一個可以信任的人, 按照事先約定的規則執行操作;

  2. 運行環境:
    * 它是運行在 可複製, 共享的賬本上的計算機程序.可以處理信息, 接收,儲存和發送價值;

八. 以太坊:

  1. 以太坊借鑑了比特幣的 區塊鏈技術, 對它的應用範圍進行了拓展.
    * 1. 例如比特幣是利用區塊鏈技術的專用計算器(因爲智能合約支持不完善);
    * 2. 以太坊就是利用區塊鏈技術的通用計算機.( 以太坊 = 區塊鏈 + 智能合約)

本文來自, 多篇博客的閱讀集合…

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章