---
# System prepended metadata

title: 0306課程筆記
tags: [108下學期選修課]

---

---
tags: 108下學期選修課
---

# 0306課程筆記

---
## 課程筆記 by F74052099 陳思齊
上課時邊聽邊記的，因為之前沒有接觸過區塊鏈，有些地方可能理解不正確，因此有任何錯誤歡迎直接修正！
### [Hyperledger](https://www.hyperledger.org/) - Linux 基金會之下的一個基金會
四個比較重要的計畫
* Hyperledger Fabric
* Hyperledger Sawtooth 做供應鏈、物流
* Hyperledger Besu 
* Hyperledger Burrow

### DLT: 分布式帳本(Distributed ledger Technology)
這是一個概念，實作的方法有 6 種 (現在只有查到 5 種，歡迎補充)
* Block chain(和 DLT 不同，只是大家習慣把 DLT 叫區塊鏈)
* DAG
* Hash graph
* Holochain
* Tempo (radix)

#### DLT 特性

* Distributed
    * 如果資料放在 DB, DB 壞掉資料就不見
    * Replication 技術 (1990 年出來的)
        * 用兩台以上的主機，一台主要(master)其他(slave)備份
        * 衍生出的問題: 安全性
            * 駭客駭進去 master，改東西沒有人會發現，因為直接備份到 slaver
    * Distribution
        * Consensus 變成 masters (每個節點平等，沒有 slave 了)，駭進去一台主機，如果其他 master 發現資料不對(被竄改、壞掉了) -> 改回來
        * E.g. 有 100 個 master，要改 51 台 master 資料才會改掉
        * 把 master(peer) 散佈在世界各地 --> distribution
* Programmable
* Secure
    * 用密碼學技術(cryptial) 把資料做 hash ，變成一個字串(token)
* Immutable (不可篡改性)
    * 這邊講的是過去的資料不可修改，但不代表資料不能更正(可以用其他方式修正)
        * E.g. 原本要存 100 元，但銀行行員輸入成 1000
        * 不能把輸入的 1000 刪掉(不可更改)，但是能存另一筆 -900 扣掉 (更正)

![](https://i.imgur.com/WXaIYTK.png)

### Hyperledger Frabic 運用的領域排名
這六個佔了 hyperledger 商業應用的 90%
1. 金融業
    * 現在全球已經有 60% 以上導入區塊鏈系統，保證資訊安全
    * 大陸 90% up 銀行都導入了
2. IOT payment
    * 把錢存在汽車 (tesla)
    * 這套系統是能自駕、付錢、embeded
    * 讓硬體去付錢，要做三件事(VISA 把這三段都做好了，flow chain 只能前兩個)
        * 新式軟硬整合
        * Token
        * 清算技術
3. Digital Idendity (數位認證)
    * E.g. 口罩販賣機，要確認身份 -> 要身分證… 辨識你沒有拿別人的領之類
4. Energy Trading 能源交易系統
    * 尤其歐洲 e.g. 太陽能 
5. Health care
6. Supply chain

### 聯盟鏈 - 由三種技術組成
* Public blockchain
* Private blockchain
* Hybrid blockchain(混合鏈 - 把 public & private 合再一起)
    * 會衍生這個不是因為技術問題，而是為了解決法規問題


### 區塊鏈在商務要考慮的重點(衡量是不是適合在商業使用)
* 法規問題
    * 監管問題
        * 主機放在哪，就受哪裡的當地監管
            * E.g. 美國主機的資料(程式碼等等)，如果要到中國，會受盡出口管制
* Privacy & Permissing 隱私 & 權限問題
    * 才考慮到公鏈、私鏈
* Business Process
    * Corda 的 SDK 是用 Kotlin 寫的，但銀行 IT 部門都用 Java, C++ -> 以公司決策來說，要找新的會 Kotlin 的人或是去學 --> 公司不想用，想要有 Java 寫的就好
    * 因此後來 Beru 就用 Java
    * E.g. 大公司永遠不可能變更他的表單系統(開戶流程等等)。就算你跟銀行說，區塊鏈能簡化流程，他也不會願意改公司的 flow
* Data Protection
    * 資料切片…

---

* hyperledger fabric 交易流程
a. endorser
b. committer
c. ordering => responsible of consensus
d. CA
e. peers

1. 由client上的CLI或者SDK進行proposal議案的提出。client會依據智能合約chaincode根據背書策略endorse policy決定把proposal發往哪些背書的peer節點，而peer節點進行投票，client匯總各背書節點的結果；
2. client將獲得多數同意的議案連同各peer的背書（包括其投票結果以及背書籤名）交給orderring service，而orderer會匯總各client遞交過來的trasaction交易，排序、打包。
3. orderer將交易打包成區塊block，然後通知所有commit peer，各peer各自驗證結果，最後將區塊block記錄到自己的ledger賬本中。
>[reference ](https://zhuanlan.zhihu.com/p/42066789)
> [name=F74072138 黃上睿] 

---