Mastering Bitcoin
===
1. 介紹
2. 比特幣的原理
---
### 比特幣是什麼呢 ?
* 分佈式的點對點(P2P)網路系統。
* 沒有中央服務器
* 所有節點共同維護帳本
* 透過<span style="color:red">**挖礦**</span>來獲取比特幣。
---
### 比特幣的系統組成
* 去中心化的點對點網路 - 比特幣協議
* 公共的交易帳簿 - 區塊鍊
* 去中心化的數學和確定性的貨幣發行 - 分佈式挖礦
* 去中心化的交易驗證系統 - 交易腳本
---
### 比特幣是要解決什麼問題 ?
* 雙重支付
* 錢的真實性,非偽造 - 利用基於密碼學的<span style="color:green">**數位簽章**</span>
* 以往<span style="color:red">**中心化銀行**</span>的存在,容易遭受駭客攻擊
* 分佈式計算的難題 - 拜占庭將軍問題
---
### 拜占庭將軍問題
在一個不可靠、有威脅的網路,通過訊息交換來達成共識。
中間可能會有錯誤的訊息交換,這樣要如何達成共識呢?
* 比特幣透過工作量證明(POW),對這個問題提出一個可行的方案,是分佈式計算的一大突破。
---
![](https://i.imgur.com/dE9hN1g.png =600x400)
---
### 挖礦是什麼 ?
* 解決數學上的難題(SHA-256),以太幣為 SHA-3
* 同時驗證交易
* 由系統給予挖礦者比特幣當作獎勵
* 動態調整難度
* 平均每10分鐘會有新的區塊出現 ,以太幣大約15秒
---
### POW (Proof Of Work) 工作量證明
* 共識決演算法
* 非中本聰首創
* 決定區塊鍊產生分叉(fork),要跟隨哪條鏈。
---
### Transcation (Tx 交易)
* 分成輸入和輸出
* 每筆的輸入都是之前的輸出
* 可以有多個輸入和多個輸出。
* 通常輸入的總和會大於輸出,中間的差額為給礦工的手續費。
* 通常越高手續費的交易會越快被驗證
* 沒辦法退款 ,只可以進行反向交易
* <span style="color:red">支出者</span>用<span style="color:red">私鑰</span>對輸入進行數位簽章
* 支出者用<span style="color:red">接受者</span>的<span style="color:red">公鑰</span>包裝輸出
---
### Transcation Example
![](https://i.imgur.com/geUD8Eu.png =600x400)
---
![](https://i.imgur.com/JJAayIb.jpg =600x400)
---
![](https://i.imgur.com/l2ig9sB.png =600x400)
---
![](https://i.imgur.com/FlrEoSg.png =600x400)
---
![](https://i.imgur.com/Mfa6jqn.png =600x400)
---
![](https://i.imgur.com/JDr5zTc.png =600x400)
---
### 如何避免被竄改
* 每個區塊都會跟前一個區塊有關,行成一條鍊。
* 因此更改一個區塊,之後的區塊也要跟著修改
* 交易被收入區塊,過了60分鐘通常就會認為已經無法竄改,即6個區塊的時間。
---
### 交易竄改和深度的關係
#### 越<span style="color:red">深</span>的區塊越難竄改
![](https://i.imgur.com/ddlIwXx.png =600x400)
如果改277316 , 277317 和277318 都要有對應的修改。
---
### 隱密性
每筆的交易都是<span style="color:red">公開</span>,且網路上有多份相同的帳本,這樣何來的隱密性呢?
* 一個人可以持有多個公開地址。
* 只要別把錢換成現實貨幣,沒人可以知道這個地址是誰所擁有的。
* 因此近年勒索軟體又開始復甦,也是因為比特幣(或模仿幣)。
---
## Reference
[bitcoin wiki](https://zh.wikipedia.org/wiki/%E6%AF%94%E7%89%B9%E5%B8%81)
[拜占庭將軍問題](https://zh.wikipedia.org/wiki/%E6%8B%9C%E5%8D%A0%E5%BA%AD%E5%B0%86%E5%86%9B%E9%97%AE%E9%A2%98)
{"metaMigratedAt":"2023-06-14T13:57:20.968Z","metaMigratedFrom":"Content","title":"Mastering Bitcoin","breaks":true,"contributors":"[]"}