區塊鏈基礎

區塊鏈技術到底是什么?

區塊鏈:一種分布式的記賬系統(分布式數據庫)。通過全網共同驗證交易、維護數據庫的方式實現去中心化的目的。

基于密碼學和分布式數據庫的技術,將每個參與者都變成一個權力中心,通過共識算法和密碼函數解決現實場景中的信任問題。

像電子鏈表,新數據出現,根據共識規則把所有數據打成一個新區塊,連接再原鏈條的后面。每個參數者下載保存完整鏈條

區塊鏈特性:

  • 去中心
  • 去信任
  • 數據透明
  • 數據不可篡改

什么是1:1準備金保證的數字貨幣?

準備金:金融機構為了應對大額提款時具備充足的清償能力,會按庫存現金比例存放在中央銀行的存款。

1:1準備金:每一枚數字貨幣都有一個實物背書。有實物背書的數字貨幣比較穩定,可以作為投資者規避風險的工具。

  • Tether公司發行的USDT: 1:1 的準備金保證,一枚USDT就有1美元背書
  • 委內瑞拉政府發行的‘石油幣’:50億桶原油為其背書,一石油幣等價于一桶原油
  • BitShares平臺推出的BitUSD 與美元掛鉤
  • 與人民幣掛鉤的BitCNY等

比特幣地址和密鑰之間有什么關系?它是如何生成的?

比特幣地址:

  • 接收,發送時都會用到比特幣地址
  • 由數字和字母組成的字符串,以1和3開頭
  • 以收款方形式出現

比特幣:

  • 建立在密碼學基礎上
  • 其地址也是匿名的
  • 不包含所有的任何信息

中本村利用橢圓曲線算法ECC先產生了比特幣的公鑰和私鑰,然后進行一系列的數字簽名運算得出我們使用的比特幣的地址。

  • 私鑰隨機生成器生成
  • 私鑰通過橢圓曲線算法、哈希函數等單向、不可逆算法推導公鑰以及地址。
  • 總共2100萬,出塊時間10分鐘左右,4年減半,首次是依次出50枚。
  • 私鑰用來聲明用戶對比特幣的所有權
  • 由私鑰推導出公鑰,反之則不行。
  • 非對稱機密算法在這里承擔了權威第三方認證到的工作

實際交易:

  • 使用比特幣錢包接收生成的比特幣地址
  • 轉賬時掃描二維碼或手動輸入接收方的轉賬地址,完成交易
  • 加密貨幣一般接收打一筆匯款后就會改一次比特幣地址、
    • 鼓勵使用新地址交易,便于提高匿名性
    • 同一錢包舊地址依然可用

比特幣是如何發行的?

比特幣:一種建立在區塊鏈技術上的加密貨幣,沒有特定的發行機構,是由系統自動生產一定數量的比特幣作為礦工獎勵來完成發行過程的。

比特幣區塊鏈:相當于一個賬本,每個區塊都是賬本中的一頁,所有比特幣交易都需要通過礦工挖礦,來記錄到這個賬本中。

礦工挖礦:通過一系列算法,計算出符合要求的哈希值,從而爭取到記賬權

  • 試錯的過程:每秒產生的隨機哈希碰撞次數越多,計算出正確的哈希值概率越大
  • 最先計算出的就將比特幣交易打包成一個區塊,記錄到整個區塊,獲得獎勵
  • 激勵礦工維護區塊鏈的安全性不可篡改

什么是比特幣全節點?它對整個比特幣網絡意味著什么?

節點:

  • 礦工
  • SPV輕錢包的普通用戶
  • 全節點用戶(比特幣去中心化特性):通過比特幣客戶端,下載并保有完整區塊鏈數據的節點。他們能夠獨立效驗所有比特幣交易,并且實時更新數據。

早起沒有其余用戶的比特幣網絡中,所有運行比特幣客戶端的都可以看做一個全節點,保存著整個比特幣區塊鏈的數據,并且形成一個點對點的網絡。

交易過程:
  1. 新交易出現,接收到的節點會都每筆交易是否余額充足可供支出是否存在雙花問題腳本是否符合規定等條件進行驗證。
  2. 驗證通過,發給網絡其他節點,并將這些信息保存在本地內存中。
  3. 所有節點完成對交易的驗證之后,這筆交易就保存在了所有全節點的內存中。
  4. 從而確保了交易的安全性和區塊鏈的不可篡改性

通常情況:比特幣節點數量越多,網絡安全性越高

比特幣區塊鏈上的交易是如何進行的?

交易:本質上就是資產所有權的轉移
比特幣交易:記錄在區塊鏈當中的比特幣所有權的轉移。就是一個地址向領一個地址轉賬的過程。

比特幣交易過程中,使用到了公鑰私鑰,來確認比特幣的所有權以及對交易進行簽名。私鑰是隨機字符串,私鑰可以推出公鑰。所以擁有私鑰,就擁有比特幣的支配權。

發起交易 -> 私鑰簽名(許可,不被修改) -> 廣播到比特幣網絡等待確認 -> 礦工計算哈希值爭取記賬權 -> 打包成區塊 -> 上傳到區塊鏈中 -> 6個以上區塊確認 -> 轉賬完成

比特幣交易就是經過簽名運算,表達價值轉移的過程。通過比特幣網絡傳輸,礦工打包到區塊,永久保存在區塊鏈上。

交易 = 輸入 + 數額 + 輸出

比特幣錢包中的賬戶余額指的是什么?

比特幣余額:比特幣錢包應用派生出來的產物,中本聰設計的比特幣系統中,沒有余額這個概念,只設計了UTXO的概念。

UTXO:未花費的交易輸出。每一筆比特幣交易實際上都是由若干個交易輸入和交易輸出組成的。

  • UTXO一旦創建就不能被分割。只能全部花費掉,如果有余,多余的會再轉給自己,產生新的UTXO,周而復始。
  • 比特幣錢包中所看到的賬戶余額,實際上是錢包通過掃描區塊鏈并聚合所有屬于該用戶的UTXO計算得來的。
UTXO和賬戶系統對比
  • UTXO只看最后一次交易,賬戶系統需要看所有的增減操作。隨著時間和交易量的加大,效率差異會越來越大。
  • UTXO未來可以裁剪歷史老數據,而賬戶系統則不能丟棄老數據,前者區塊鏈可以控制住整體大小,而后者只能持續膨脹。

為什么說助記詞和私鑰同樣重要?

私鑰:由加密算法生成的一個32字節隨機數,由64個十六進制的字符組成。一個錢包只有一個私鑰,不能修改。沒有規律可讀性低

助記詞:代替私鑰,方便記憶。將64位私鑰轉換成若干個常見的英文單詞或其他語言版本的詞匯,這些詞匯均從固定的詞庫中得到,不同錢包可以使用不同的詞庫

  • 助記詞只會在創建錢包的時候出現
  • 私鑰的另一個表現形式

一筆有效的比特幣交易經歷了哪些步驟?

1、交易發起方生成私鑰(橢圓曲線算法ECC),對交易進行數字摘要,濃縮成字符串,再用私鑰對摘要簽名

  • 數字簽名:確保信息來源以及數據的完整性,方式交易信息被偽造
  • 修改交易信息后,原數字簽名就失效了。

2、將交易信息和數字簽名廣播到整個網絡,接收到的礦工,通過公鑰解密數字簽名,驗證。通過則由礦工打包上傳到區塊鏈

  • 用錢包轉賬的時候,只需要填寫轉賬地址、轉賬金額、礦工費即可

比特幣的哈希函數

哈希函數是信息技術領域的基石,也是比特幣協議的總要組成部分。

  • 公鑰產生
  • 地址產生
  • 挖礦等

哈希函數就是一種特殊的數字方程式,也叫散列算法

  • 可將任意長度的二進制值映射為較短且固定長度的隨機字符串(哈希值)
  • 隨機性
  • 抗碰撞性
  • 不可從結果反推原始輸入值

每個區塊都會引用前一個區塊的哈希值,環環相扣,緊密連接。

全節點錢包和輕錢包的區別?

錢包:管理私鑰、地址以及區塊鏈數據的作用

區塊鏈數據維護方式來分類

  • 全節點錢包
    • 參與到網絡的數據維護中,同步了區塊鏈上的所有數據
    • 更為隱秘、驗證更快
    • 代表性的 Bitcoin Core
    • 需要大硬盤空間
  • 輕錢包
    • 參考了中本聰提出的SPV機制
    • 不存儲完整的區塊鏈數據
    • 也會下載新區塊的數據,但是會對數據法分析,只保存于自身想過的交易數據。
    • 運行時依賴比特幣上其他全節點
    • 代表性的 Electrum和Bither

什么是雙花問題?

數字化貨幣系統中,由于數據的可復制性,使得系統可能存在同一筆數字資產因不當操作被重復使用的情況,稱之為雙花

解決辦法:

  • 依賴第三方信任即構對數據進行中心化管理,并通過實時修改賬戶余額的方法
  • 去中心化的點對點價值傳輸系統中,比特幣采用UTXO、時間戳等技術解決
    • 接收到交易的,會先去驗證是否被花費過(存在于UTXO中),不存在,驗證失敗
    • 防止一個UTXO被重復使用,加入了時間戳
      • A 將 1BTC 同時轉給B,C ,兩筆交易僅有一筆會完成。
      • 挖礦節點會記錄優先接收到的手續費高的那筆交易
      • 交易被先后記錄,根據時間戳的數據,最先被記錄的交易才能成功驗證。
      • 即使2個交易分別被2個節點記錄并驗證為有效交易,且將各自挖出包含相關交易的新區塊同時廣播到比特幣網絡中。也不會出現雙花現象
        1. 根據比特幣協議,當兩個節點同時生產新區塊時,區塊鏈會出現分叉
        2. 只有最先生成新區塊并成為當前最長鏈上的交易,才能被認證。
        3. 通常超過6個區塊對交易進行確認之后,該轉賬過程才算成功
  • 比特幣區塊鏈中也會出現雙花問題,比如”遭受51%算力攻擊”的時候。

什么是區塊鏈的共識機制?

非對稱加密、時間戳等密碼學技術,讓其在沒有第三方權威機構支持下,實現有效的價值信息轉移。

共識機制:解決了“區塊鏈如何再分布式場景下達成一致性”這以問題。

由于點對點交易,使各個節點所觀察到交易事務的先后順序出現一定差異。所以需要一套機制,在差不多時間內對發生事務的先后順序達成共識

共識機制:在區塊鏈網絡內起到決定誰負責生成新區塊以及維護區塊鏈統一的作用。

  • PoW(工作量證明):按勞分配。(比特幣之外,萊特幣、以太坊等加密貨幣)
  • PoS(權益證明):股權分配的PoS機制,根據用戶持幣量以及持幣時間來發放利息的制度.
  • DPoS(股份授權證明):權益證明機制下衍生出來的共識方案,最早被應用于比特股
  • 分布式一致性算法:如PBFT,則是傳統場景下常用的共識機制。

科學家普遍認為,在分布式場景下達成完全一致性是不可能的,所以基于區塊鏈設計各種共識機制,是在犧牲一部分代價的基礎上實現一致性的

  • 因為網絡延時的情況下,會出現極少部分礦工同一時間生成合格區塊的情況。此時就會產生分叉
  • 需要等待6個區塊確認后才承認最長的鏈為合法鏈。

POW , POS 與 DPOS 一切都為了共識
簡單說區塊鏈中的POW、POS、DPOS共識算法及其優缺點

拜占庭將軍問題指的是什么?

區塊鏈解決了聞名已久的拜占庭將軍問題

拜占庭軍隊內所有將軍必需達成一致的共識,才能更好地贏得勝利。但是,在軍隊內有可能存有叛徒,擾亂將軍們的決定。這時候,在已知有成員不可靠的情況下,其余忠誠的將軍需要在不受叛徒或間諜的影響下達成一致的協議。

萊斯利·蘭伯特( Leslie Lamport )通過這個比喻,表達了計算機網絡中所存在的一致性問題。這個問題被稱為拜占庭將軍問題。

參考:哈希派 | 區塊鏈課堂100問匯總

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。