區塊鏈入門筆記

區塊鏈入門筆記

       區塊鏈(BlockChain),是區塊(Block)和鏈(Chain)的直譯, 每個區塊存儲規定時間內的交易數據.並通過密碼學的方式.形成一個不可篡改、全員共有的分佈式賬本。

      區塊鏈中的交易是一種去中心化機制,區塊鏈特性:分佈式存儲,數據可溯源,不能被篡改,去中心化。

      哈希:將一串明文數據加密成一串密文,密文就是加密的哈希。

     (1)相同數據加密生成的HASH相同;

     (2)明文可以得到唯一的哈希,但哈希值不能倒推明文;(非對稱算法)

    挖礦的過程就是算哈希的過程。

    什麼叫挖礦?就是找到某個Nonce使滿足生成的哈希值前面有4個0,即滿足了系統給定的難度,匹配Nonce的過程就是挖礦的過程。

    區塊:存儲了當前時間的交易信息(交易地址,發送的比特幣);

    區塊鏈:把區塊一個一個的串聯起來,後面的區塊存儲了上一個區塊的哈希值。

    創世塊:第一個區塊,它的上一個哈希值爲0(沒有上一個哈希,高度爲0)。

    POW:工作證明

    POS:股權證明

    DPOS:委託權益證明

    比特幣的介紹:

    比特幣是新一代的加密數字貨幣,比特幣由計算(挖礦)產生

    交易過程具有安全性,隱私性,可追溯,不可篡改等特性

    比特幣採用區塊鏈作爲底層技術實現上述特性

    比特幣:完全去中心化,總量一定(2100萬枚),匿名記賬

    比特幣區塊:每個區塊大小被限定在1M,每個交易大約250字節,所以每個區塊最多容納4000個交易。由於每個被認可的區塊平均產生時間爲10分鐘,意味着每秒鐘只能處理7個交易。

     Merkle根節點:默克爾樹

    疊疊加密的方式,即使不知道所有的數據,只需要知道這樣的一個默克爾樹根就可以知道數據是否被篡改。

    比特幣中的雙花

    每筆交易都需要先確認對應比特幣之前的狀態,如果它之前已經被標記爲花掉,那麼新的交易會被拒絕;如果詐騙者利用網絡延遲同一筆金額在不同電腦花兩次。

    下一個礦工選擇在A基礎上繼續記賬的話,A分支就會比B分支更長,根據區塊鏈的規則,最長的分支會被認可。

    比特幣的缺陷與解決方案:

    缺陷:交易效率低,交易確認時間長;

    解決方案:

   (區塊鏈1.0時代)

   (1)BCH比特幣進行擴容;  

   (區塊鏈2.0時代)

    (2)ETH每ETH每挖一個區塊獎勵5個以太坊幣,平均每10S左右出一個區塊;

    (區塊鏈3.0時代)

    (3)EOS每秒 (10,000/s100,000/s) EOS將使用併發機制來擴展網絡,可能高達每秒數百萬次的交易。  

     缺陷:POW共識機制引發高耗能問題

     解決方案:

    (1)股權證明(POS)

    (2)股權委託證明(DPOS)

     缺陷:區塊、區塊鏈賬本的容量問題

     解決方案:

    (1)SPV輕錢包

    (2)網頁版錢包

    (3)阻止灰塵交易

    缺陷:比特幣不是圖靈完備的

    解決方案:

   (1)V1.0:比特幣點對點金融支付

   (2)V2.0:引入智能合約,ETH爲代碼,主要與“金融”領域結合

   (3)V3.0:區塊鏈與商業應用的結合,EOS代表

    缺陷:安全性問題、去中心責任化問題。

    分佈式賬本->EVM的虛擬機(用來解析智能合約)->solidity合約編程語言->truffle的智能合約開發框架->web3.js的工具->後套的工具

 

    區塊鏈的發展:

    V1.0: 

    2008 中本聰 比特幣白皮書

    2009 比特幣創世區塊產生

    2010 10000比特幣1個披薩

    V2.0: 2013~2014 以太坊(圖靈完備的支持)、2015 R3成立

    V3.0: 2018 EOS與其它

    區塊鏈技術:

   (1)區塊鏈底層;(2)智能合約(超級賬本,以太坊)(3)掌握區塊鏈技術原理

    區塊鏈的分類:(1)公有鏈;(2)私有鏈;(3)聯盟鏈;

    解決的問題:(1)價值傳遞;

    區塊鏈的架構模型:

    區塊鏈的鏈式結構:

    區塊頭:

 

    鏈式結構:

    哈希函數:

   (1)確定性; (2)單向性; (3)隱祕性; (4)扛篡改; (5)抗碰撞

    實現:MD系列;SHA系列:推薦SHA256,SHA3;

 

    區塊鏈核心技術:

    密碼學和數字簽名用於身份地址標識

    共識算法用於工作量證明、分佈式存儲技術用於存儲交易記錄和區塊,分佈式網絡技術用於網絡通信和節點發現。

    區塊鏈是一個分佈式數據庫、加密貨幣和只能合約的基礎;

    區塊鏈是有着特定結構的數據庫,一個有序向後連接的列表

    區塊按照插入的順序進行存儲,每個塊都被連接到前一個塊

    快速地獲取鏈上的最新塊,並且高效地通過哈希來檢索一個塊

 

    工作量證明pow:

    工作的結果作爲數據加入區塊成爲一個區塊;

    完成這個工作的人也會獲得獎勵(即挖礦獲得比特幣);

    整個“努力工作並進行證明”的機制,叫做工作證明。

 

     爲什麼採用哈希算法?

    不可逆:無法從一個哈希值恢復原始數據,哈希並不是加密

    唯一性:對於特定的數據,只能有一個哈希,並且這個哈希是唯一的

    防篡改:改變輸入數據中的一個字節,導致輸出一個完全不同的哈希

   

    哈希算法特性:

    正向傳遞,給定明文和hash算法,有限時間和有限資源內能計算出hash值

    逆向困難:給定哈市值,有限時間很難逆推出明文

    輸入敏感:原始輸入信息修改一點信息,產生的hash值看起來應該有很大不同

    衝突避免:很難找到兩段不同的明文,使得他們的hash值一致

 

    交易機制:

    區塊鏈能夠安全可靠地存儲交易結果

    在區塊鏈中,交易一旦被創建,就沒有任何人能夠再去修改或刪除

    交易由一些輸入和輸出組合而來

 

    數字貨幣的地址及身份標識:

    某種途徑可以識別出你的交易輸出的所有者,稱之爲身份

    在比特幣中,身份就是一對(或者多對)公鑰(public key)和私鑰

    所謂的地址,只不過是將公鑰表示成人類可讀的形式而已

    公鑰加密算法使用的是成對的密鑰:公鑰和私鑰

    公鑰並不是敏感信息,可以告訴給其他人。但是,私鑰絕不對不能告訴其他人;只有所有者才能知道私鑰,能夠識別,鑑定和證明所有者身份就是私鑰。

    

    總結:筆者寫這篇文章時正在進行區塊鏈的學習,作爲一個新入鏈圈的新人,接下來將繼續記錄相關的技術與筆記。

 

 

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