區塊鏈簡介


概要

區塊鏈是去年比較火的概念, 而讓它這么出名的一個經典應用就是比特幣. 區塊鏈並不是指一種特殊的新技術, 而是一系列技術方案的集合, 通過這些技術方案的結合, 解決了去中心化的信用問題.

區塊鏈是概念, 比特幣則是區塊鏈落地的一個實例.

區塊鏈包含的技術

  1. 去中心化 區塊鏈本質是一個 分布式的數據庫 , 沒有中央服務器, 所有的內容分布式的緩存在各個客戶端.
  2. 信息編碼: 目的是防止信息被篡改 信息編碼采用 SHA 算法, 因為它有以下特點:
    • 原始信息編碼后成 固定長度的字符串, 也就是 指紋
    • 無法從指紋反推出原始信息
    • 原始信息修改一點點, 指紋就發生很大的變化
  3. 加密: 目的是驗證信息的真實性 一般采用非對稱加密算法, 比如 ECC(橢圓曲線算法)

區塊鏈的傳輸過程

  1. 發送方
    • 原文 –> SHA 算法 –> 指紋
    • 指紋 –> ECC 算法 + 私鑰 –> 密文
    • 原文 + 密文 + ECC 公鑰 –> 發送廣播
  2. 接收方
    • ECC 公鑰 + 密文 –> 指紋 1
    • 原文 –> SHA 算法 –> 指紋 2
    • 指紋 1 == 指紋 2 –> 接受成功; 否則信息非法

區塊鏈的問題

  1. 客戶端的信息如何同步? 當某個客戶端 A 要改變自己的信息的時候, 比如 AB 進行了付款.
    這時 A 會廣播交易信息, 所有接受到交易信息的客戶端會同步自己的賬本.

  2. 區塊鏈分叉如何處理? 比如, 以比特幣為例:

    • 客戶端 A, B 賬本是同步的, 最新的節點都是 x
    • A 基於當前賬本挖到了新的比特幣, A 的賬本變成 x –> y, 並且廣播
    • 同時, B 也基於當前賬本挖到了新的比特幣 z, B 的賬本變成 x –> z, 並且廣播
    • 同步之后, 賬本就發生了分叉, x –> y/z

    如何解決分叉並不是區塊鏈定義的范疇, 而是具體區塊鏈應用自己定,
    比特幣 來說: 如果出現分叉, 那么分叉之后, 先達到 6 個區塊的那個分支, 被認為是主鏈, 另一個分叉被廢棄.

對於上面那個例子, y 和 z 之后, 誰先到 6 個區塊, 誰就是主鏈, 另一個分叉會被廢棄.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM