# 區塊鏈 ## DeFi v.s Cefi * DeFi(去中心化金融) 現在虛擬貨幣的交易方式 * CeFI(中心化金融) 傳統的金融服務 ## 為什麼還要有去中心化? * 更方便簡單的交易 * 門檻低 ## 區塊鏈運作方式 * P2P * 每個節點都可以是client/server * 礦工決定那些帳本可以寫在上面 ## 實際運作模式 * 監聽交易 -> 打包交易 -> 挖礦 -> 挖到就廣播驗證是否合法 or 沒挖到就去驗證其他人的紀錄是否合法 ## Hash(雜湊) * 單向函數 * 輸入不受限,但輸出是有限定的長度 * 輸出結果唯一 => sha256,md5等加密模式 * 注意 由於輸入空間不受限,一定存在碰撞,唯一方法為Brute force(暴力破解) ## 比特幣 * sybil attack(女巫攻擊) 比特幣是透過節點投票,只要產生大量的節點就能在投票中拿到大量票數 * PoW * Proof of Work(透過工作量證明阻擋女巫攻擊),沒必要打自己工作量過高產出的東西 * 區塊鏈的安全是掌握在礦工手裡 * 如何驗證 將人家的挖到的礦放到自己的帳本做驗證,再去統計哪個鏈是最長的鏈。舉例:當一個挖到況的資訊進帳本做驗證,會有其他礦工做驗證(共識機制),只有大家都承認的交易才算數,共識機制不同不能互相做交易。 * Fork 為甚麼需要分岔? 分岔是區塊鏈修復Bug/軟體升級的方法 * State Fork * Soft Fork * 版本更新/新增功能 * 共識增加新的約束 * Hard Fork * 多個節點無法形成共識產生多個版本 * 51% attack * 單一節點掌握多數算立 * Fork attack * 擁有越多算力的人越容易出塊 * 被打包進區塊鏈的才回被承認 * Double Spending Attack(雙花) ![](https://i.imgur.com/cNAt7vA.png) * 數字貨幣是可以複製的,複製倆便可以雙花 ## 乙太坊 * 簡介 * Pow * 總發行量無限 * 有圖靈完備的程式語言 * Solidity * 圖靈完備 * 完成布署就不能修改,會公開大眾檢驗 * 尚未成熟,常有版本更新 * 不支援浮點運算 * Gas * 交易的手續費 * 智能合約也會消耗Gas * 全新的Gas=> EIP 1559 * ERC * 統一智能合約規範 * ERC-20 * ERC-721 * NFT標準 * 撰寫智能合約就能發行自己的NFT * 需要記錄每一筆資產