攻擊者用自己的金鑰重鑄整條鏈,收據檢視器照樣判通過
收據鏈 194 條、9,841 筆全部驗得過。但離線單檔檢視器有個結構性極限:整條鏈被重鑄一次,它仍然通過。這不是漏洞,是簽章的定義邊界。
#鏈驗證抓不到的三件事
| 抓不到 | 為什麼 |
|---|---|
| 截斷 | 鏈沒有可信的鏈頭。砍掉尾巴一樣通過。 |
| 分叉 | 同一個人對同一事件簽兩條不同內容的鏈,兩條都驗得過。 |
| 漏記 | 從來沒被寫下的事件,收據無法宣稱自己是其中一筆。 |
#R455:離線檢視器的極限
我們做了一個零外部資源、零網路請求的單檔離線檢視器,把收據內嵌在檔案裡,file:// 直接開就跑得完全鏈驗證:
| 檔案 | 大小 |
|---|---|
exhibit/receipts/receipt_viewer.html | 0.3 MB |
exhibit/receipts/receipt_viewer_multiparty.html | 4.5 MB |
然後攻擊它:
#為什麼這不是一個可以修掉的漏洞
這一句話在多方執行那裡有一個更尖銳的版本:
簽章指認的是金鑰,不是主體。金鑰的多數不等於獨立主體的多數。
#緩解做法
#為什麼我們選擇把它講清楚而不是修掉
#這件事對「可究責」這個定義的意義
我們的定義是:特定金鑰所簽署之事件的可追溯與可核驗性。}}
#誠實邊界
#接下來
- 指名機制與它的數學上界:named-dissent
- 收據的五層語彙與等級:收據
- 「可究責」為什麼不等於「可信」:可究責層

