# 網路安全期中考重點
---
## 區塊鍊 四個共識 比特幣3-由比特幣談區塊鏈.ppt P23~P27
----
1. 區塊鏈是一種去中心化的記帳技術,參與到系統的節點,可能不屬於同一組織、彼此無需信任,區塊鏈數據由所有節點集體維護,每個參與的維護節點都能複製獲得一份完整記錄的拷貝。
----
3. 四個共識:
- 獨立驗證:每個節點依據標準程序對每個傳播中的交易進行獨立驗證,然後再傳播。
- 採礦競賽:採礦節點每隔一段時間(約10分鐘)將收集到之交易記錄獨立打包成候選區塊,然後進行採礦競賽,勝利的礦工取得記帳權利,將成功的候選區塊(PoW)公開,並將成功的候選區塊加到區塊鏈上。
----
3. 四個共識:
- 區塊鏈接:每個節點獨立對公開的成功候選區塊進行驗證,並將成功的候選區塊加到區塊鏈上。
- 分叉共識:當區塊鏈有分叉時,每個節點對區塊鏈進行獨立選擇,在工作量證明機制下,選擇累計工作量最大的區塊鏈(選擇較長之區塊鏈)。
---
## 可靠的資料庫 比特幣1-區塊鏈簡介.ppt P4
----
- 可信:每筆資料均經集體驗證(集體維護、驗證、監督)
- 可靠:資料庫內容極不可能被篡改或被撤銷(極大化篡改成本)
- 安全:資料庫永遠存在(即時集體維護大量複本)
- 方便:不需向任何人或機構申請,可隨時取得所需之資料(滿足去中心化特性)
---
## 區塊鍊區塊內容 識別 區塊頭 比特幣3-由比特幣談區塊鏈.ppt P18~P20
----
1. 區塊鍊區塊:
- 區塊是在公開帳簿(區塊鏈)中集合多個交易記錄的資料結構,它由一個區塊頭和緊跟其後構成區塊主體的一長串交易組成。
- 區塊頭是80位元組,平均每個交易大約是250位元組
----
1. 區塊鍊區塊:
- 一個區塊的大小限制在1Mbyte,故一個區塊最多可容納4000個交易,以每10分鐘產生一個區塊來算,大約每秒鐘可接受7筆交易。
- 區塊結構
----
1. 區塊鍊區塊:
- 區塊頭結構
---
## 私密金鑰、公開金鑰、比特幣地址 三者關係 比特幣5-比特幣之安全技術.ppt P2、P62
----
- 比特幣系統中利用ECC(橢圓曲線加密法)作為比特幣擁有者之身份證明: 私鑰、公鑰、比特幣地址。
- 利用公鑰之雜湊值來代表身份(比特幣地址) 。
- 利用私鑰對交易之雜湊值作簽章,來證明交易由自己發出
- 利用私鑰對UTXO之雜湊值作簽章,來證明自已對UTXO之擁有權。
----
- 
---
## UTXO 識別 內容 比特幣3-由比特幣談區塊鏈.ppt P13~P16
----
1. Unspent Transaction Output(**UTXO**) : 某筆交易之第幾筆輸出(交易ID:i),它被記錄在比特幣的UTXO pool中(UTXO池,就是比特幣的狀態) , 並被整個網路識別的一定量的比特幣, 只能被使用 (當成交易之輸入)一次,一個UTXO被用過後就從UTXO pool中移除。
----
2. 一筆交易輸出(**TXO**) : 
---
## 鎖定腳本、解鎖腳本 出現在哪 合法交易驗證 比特幣6-比特幣交易、區塊.ppt P26~P30
----
- UTXO鎖定和解鎖
- 比特幣的交易驗證依賴於兩類腳本來驗證比特幣交易:
鎖定腳本和解鎖腳本。
- 鎖定腳本是放在輸出UTXO上的“障礙”,它明確定義今後花費這筆輸出的條件(腳本)。
----
- UTXO鎖定和解鎖
- 解鎖腳本是提供“解決”或滿足在此UTXO輸出上設定的花費條件所需的資訊(腳本),若能通過驗證,它將允許此UTXO輸出被消費。
- 對於比特幣交易中的每一個輸入,驗證軟體會先檢索輸入所指向的UTXO。
- 這個UTXO包含定義花費條件的鎖定腳本。
- 接下來,驗證軟體會讀取花費這個UTXO的輸入中所包含的解鎖腳本,並執行這兩個腳本。
----
- UTXO鎖定和解鎖
- 通常解鎖腳本提供資料供鎖定腳本執行,若執行結果為真,則驗證此交易成立(此UTXO可被花用) ,若執行結果錯誤則,拒絕此交易。
- 只有能滿足所有輸入UTXO條件的交易,才可能記錄到區塊鏈中,並被執行,導致UTXO被標記為“已使用”,然後從有效的(未使用)UTXO池中移除。
---
## 比特幣缺點 如何解決 區塊鏈概說.pptx P21~P22
----
1. 圖靈不完備(Turnning Incomplete) :為避免羅輯炸彈,無法設定太複雜之鎖定條件
- 以gas作為交易記錄執行之小費單位:解決邏輯炸彈問題,達成圖靈完備,礦工在為交易記錄執行時,每一個動作均需付定額gas ,"一分工、一分錢","沒錢不作、錢不夠小費沒收"
----
2. 價值盲(Value-blindness):無法依未來未知之條件,設定付款條件
- 可在帳戶內設定複雜程式(合約),依未來未知之條件,設定付款條件:解決價值盲
----
3. 缺少狀態(State-blindness) :UTXO僅已用/未用兩個狀態
- 以帳戶代替UTXO,作為交易標的:解決狀態盲,將"我(aa)有xx錢,要把yy錢給某人(bb)",改成"由我的帳戶(aa)轉yy錢給帳戶(bb)"。以帳戶餘額為狀態
4. 區塊鏈盲(Blockchain-blindness):區塊鏈上無區塊之標示或指標,不易搜尋
- 在區塊頭加入區塊標示:解決區塊盲
---
## 51%攻擊 比特幣7-比特幣共識、採礦.pptx P71~P72
----
- 共識攻擊的一個典型場景就是“51%攻擊”。
- 想像這麼一個場景,一群礦工控制了整個比特幣網路51%的計算能力,他們聯合起來打算攻擊整個比特幣系統。
- 由於這群礦工可以生成絕大多數的區塊,他們就可以通過故意製造區塊鏈分叉來實現“雙重支付”或者通過拒絕服務的方式來阻止特定的交易或者攻擊特定的錢包位址。
----
- 區塊鏈分叉/雙重支付攻擊:指的是攻擊者通過不承認最近的某個交易,並在這個交易之前重構新的區塊,從而生成新的分叉,進而實現雙重支付。
- 有了充足計算能力的保證,一個攻擊者可以一次性篡改最近的6個或者更多的區塊,從而使得這些區塊包含的本應無法篡改的交易消失。
----
- 值得注意的是,雙重支付只能在攻擊者擁有的錢包所發生的交易上進行,因為只有錢包的擁有者才能生成一個合法的簽名用於雙重支付交易。攻擊者只能在自己的交易上進行雙重支付攻擊,但當這筆交易對應的是不可逆轉的購買行為的時候,這種攻擊就是有利可圖的。
- 目前中國擁有世界五大礦池的其中三個,總計算能力超過50% 。
---
## 交易由產生、傳播、收集、包裝區塊、區塊鏈鏈接經過程序 交易何時確認 比特幣1-區塊鏈簡介.ppt P30~P31
----
- 比特幣交易Transaction:
- 一個交易:
我有那些錢(UTXO) input,
要給那些人各多少錢(UTXO)output
----
- 比特幣交易Transaction:
- 交易要被確認,我要提出說明:
1.錢從那裡來(那個UTXO) :那一筆交易的第幾個輸出
2.是你的嗎? :提出證明證明這些錢是你的 (解鎖)
3.這筆錢還沒被花用過! :這個UTXO還在比特幣狀態中?
----
- 一個交易被收錄到區塊中,而這區塊被鏈接到區塊鏈上後,這交易就被確認且執行:
- 交易執行會造成比特幣狀態改變:
一些舊的UTXO(在交易之input) 從狀態中被移除(花掉了) ,
一些新的UTXO(在交易之output)被加入狀態中(新增)
---
## 採礦競賽 多久比一次 報酬 比特幣3-由比特幣談區塊鏈.ppt P45~P48
----
- 每個礦工會在他的區塊中包含一個特殊的交易(創幣交易),它將新生成的比特幣(目前每區塊為12.5比特幣),加上這個區塊內所有交易內含的交易費總和,作為報酬支付到他自己的公開金鑰上,如果他找到了使得新區塊有效的解法(採礦成功),他就會得到這筆報酬。
----
- 比特幣採礦就像是一個巨大的多人數獨遊戲,一旦有人發現正解之後,這個數獨遊戲會自動調整困難度以使遊戲每次需要大約10分鐘解決,想像一個有幾千行幾千列的巨大數獨遊戲,如果給你一個已經完成的數獨,你可以很快地驗證它。
{"metaMigratedAt":"2023-06-15T15:04:49.310Z","metaMigratedFrom":"YAML","title":"網路安全期中考重點","breaks":true,"contributors":"[{\"id\":\"67cc0609-0962-4f11-94b5-4d464dfaecdb\",\"add\":4592,\"del\":745}]"}