區塊鏈技術與應用視頻筆記(1-4)

第1講 課程簡介

課程基本信息

在這裏插入圖片描述

課程大綱

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

第2講 比特幣中的密碼學原理

比特幣中用到兩個功能:哈希和簽名

哈希

密碼學中用到的哈希cryptographic hash function
兩個重要的性質:

collision resistance(哈希碰撞)

輸入空間無限,輸出空間有限
collision free
沒有高效的方法可以人爲地製造哈希碰撞。brute-force(暴力破解)
無法從數學角度證明,一個哈希函數不存在哈希碰撞
例如,MD5現在已經可以人爲地進行哈希碰撞

hiding

已知H(x)無法推出x,即結果不會泄露輸入(暴力破解可以)。
輸入空間無限大;
輸入空間比較均勻,各種取值差不多

利用以上性質可以得到:
digital commitment
digital equivalent of a sealed envelop
爲了實現輸入空間無限大和均勻分佈,添加隨機數nonce,整體取哈希:H(x | nonce)

puzzle friendly:挖礦的過程沒有捷徑,只有不斷的嘗試。difficulty to solve, but easily to verify。體現工作量證明
挖礦的過程:不斷嘗試nonce,是的H(Block Header)<= target

比特幣中使用的哈希函數是SHA-256,SHA是Secure Hash Algorithm

簽名

比特幣中的賬戶管理方式:去中心化
建立公鑰和私鑰(public key, private key)。公鑰相當於銀行賬戶,私鑰相當於銀行賬戶密碼。
asymmetric encryptic algorithm(非對稱加密算法),加密使用公鑰,解密使用私鑰。

加密

使用同一個人的公鑰和私鑰
我要發信息給你,使用你的公鑰加密信息,你再用你自己的私鑰解密。

解密

私鑰保存在本地

比特幣系統是不加密的,信息是公開的。
公鑰和私鑰是用來做簽名的。
發佈交易用自己的私鑰簽名,其他人驗證簽名用我的公鑰。

比特幣系統中,一般是先對一個message取一個hash,再對hash值簽名。

不斷產生大量的公私鑰對,也難以出現一對完全相同的公私鑰對
a good of source randomess

第3講 比特幣的數據結構

hash pointer

區塊鏈是由一系列哈希指針連接的
tamper-evident log (防篡改日誌)
在這裏插入圖片描述

Merkly Tree

與普通二叉樹不同的是,利用哈希指針
只需要檢測最後一個hash值(root hash),就可以判斷是否被修改

在這裏插入圖片描述
Merkly tree 提供Merkly proof
區塊鏈分爲全節點和輕節點,手機比特幣錢包使用輕節點。找到
在這裏插入圖片描述

時間空間複雜度

  • proof of membership / proof of inclusion
    O(log(n))

  • proof of non-membership
    複雜度爲O(n)

根據哈希指針排序的Merkly Tree是sorted Merkly Tree,,比特幣並沒有採用這樣的結構
沒有環的情況下都可以使用hash pointer

第4講 BTC-協議

1、誰發行貨幣

2、double spending(雙重花費)

一個交易過程
在這裏插入圖片描述
A給B轉賬
輸入要包含A的btc來源,A的公鑰(便於共同驗證和記賬)
輸出:B的公鑰哈希
驗證:A給B轉賬的輸入,鑄幣階段A的輸出哈希。兩者驗證

輸入和輸出都是一段腳本Bitcoin Script

區塊

Block header:

  • version
  • hash of previous block header
  • Merkly root tree
  • target
  • nonce

Block body

  • transaction list

節點:

  • full node:保存區塊鏈所有,驗證每一個交易。又叫full validating node
  • light node:只保存block header的信息,無法獨立驗證交易的合法性

記賬

distributed consensus

(分佈式共識)簡單的例子就是distributed hash table
FLP impossiable result,在異步的網絡中,網絡傳輸沒有上限,但凡有一個用戶出現faulty,整個系統就無法取得共識

FLP impossibility result

在一個異步系統中,網絡時延沒有上限,但凡有一個成員是faulty,也無法達成共識

CAP theorem

Consistency
Availibility
Partition tolerance
任何一個分佈式系統中,上述三個性質最多隻能滿足兩個

Paxos

保障一致性

共識協議

Consensus in BTC
首要問題membership,誰有投票權
hyperledger fabic(聯盟鏈)
sybil attack(女巫攻擊,產生大量賬號類似水軍攻擊)
比特幣利用計算力投票

分叉攻擊(Forking attack)

從區塊鏈中間插入一個區塊,以回滾已經發生的交易
在這裏插入圖片描述

  • 接受區塊必須在最長合法鏈上
  • 區塊鏈在正常情況下也會發生分叉,如兩個節點在差不多時間內記賬
  • 如果出現等長分叉,會持續一段時間,等到下一個區塊的出現。被丟棄的區塊叫orphon block(孤兒區塊)、
  • 分叉上的交易不被接受

獎勵(block reward)

coinbase transaction是產生比特幣的唯一來源,出塊獎勵爲50BTC,21w之後獎勵減半,21w之後再減半

發佈了59 篇原創文章 · 獲贊 12 · 訪問量 9655
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章