###### tags: `PUBTA`, `PUBTA_BTC`
BTC 001 密碼學原理
===
video: https://www.youtube.com/watch?v=0XbzvsuPmzI&list=PLnTPdMjBRmAYehJkVbAXqxO-0cc9ALC6V&index=2
# Cryptocurrency
- 加密貨幣是不加密的,區塊鏈上的交易內容(帳戶地址、轉帳金額)都是公開的
# 比特幣使用密碼學中兩個功能
## 哈希:***cryptographic hash function(SHA-256)***
- **collision resistance**:
- 用途:可用來對 message 取 digest,用來檢測對 message 的竄改
- 理論無法證明
- **hiding**:哈希函數的計算過程是單向、不可逆的,即哈希值無洩漏有關輸入的任何資訊
- 前提:輸入空間要足夠大、分布要比較均勻
- 輸入後加 nonce 再取哈希:H(x || nonce)
- 用途:可和 collision resistance 性質結合來實現 digital commitment(digital equivalent of a sealed envelope)
- **puzzle friendly**:哈希值的計算事先無法預測,因此,若希望計算出的哈希值落在某個範圍內,只能一個一個試
- 比特幣挖礦的 Proof-of-Work:H(block header) $\leq$ target
- difficult to solve, but easy to verify
## 簽名
- 比特幣開戶:創立一組公私鑰對(public key, private key),源自 **asymmetric encryption** algorithm
- ***簽名用私鑰,驗證簽名用公鑰***
- 假設:產生公私鑰時,有 a good source of randomness(簽名時也需要)
{"metaMigratedAt":"2023-06-14T23:31:03.948Z","metaMigratedFrom":"Content","title":"BTC 001 密碼學原理","breaks":true,"contributors":"[{\"id\":\"0e71eb5d-50d3-4ad7-930f-2871ad460aa4\",\"add\":1041,\"del\":128}]"}