Ipfs
IPFS 中的默克爾樹
Merkle Tree(DAG)與 IPFS 有什麼關係?我觀察到,與區塊鏈不同,IPFS 不需要逐級散列。如何在 IPFS 中散列所有數據?
每個 Merkle 都是有向無環圖 (DAG),因為每個節點都通過其名稱訪問。Merkle 的每個分支都是其本地數據的雜湊,因為它可以快速訪問而不是通過其原始內容訪問。這將有助於防止循環(假設沒有雜湊衝突),因為無法將第一個創建的節點連結到最後一個節點以創建最後一個引用。
根據 IPFS 白皮書:
DHT 和 BitSwap 允許 IPFS 形成一個龐大的點對點系統,用於快速、穩健地儲存和分發塊。在這些之上,IPFS 建構了一個 Merkle DAG,一個有向無環圖,其中對象之間的連結是嵌入在源中的目標的加密雜湊。這是對 Git 資料結構的概括。Merkle DAG 為 IPFS 提供了許多有用的屬性,包括:
- 內容定址:所有內容都由其多重雜湊校驗和唯一標識,包括連結。
- 防篡改:所有內容都通過其校驗和進行驗證。如果數據被篡改或損壞,IPFS 會檢測到它。
- 重複數據刪除:所有擁有完全相同內容的對像都是相等的,並且只儲存一次。這對於索引對象特別有用,例如 git 樹和送出,或數據的公共部分。