本文由 FilCloud 編譯整理
訂閱英文原版 :https://tinyletter.com/ipfsnewsletter
Multihash
有時,雜湊演算法可能被證明是不安全的,這意味著它不再符合我們先前定義的特徵。這已經發生了 sha1。隨著時間的流逝,其他演算法可能證明不足以實現IPFS和其他分散式資訊系統中的內容定址。因此,為了支援多種密碼演算法,我們需要能夠知道使用哪種演算法來生成特定內容的雜湊。
那麼我們該怎麼做呢?為了支援多種雜湊演算法,我們使用 multihash。
Multihash 格式
multihash 是自描述雜湊本身包含描述其兩個長度和什麼加密演算法生成的它的後設資料。多種格式的 CID 具有永不過時的功能,因為它們使用多重雜湊來 支援多種雜湊演算法,而不是依賴特定的雜湊演算法。
多重雜湊遵循TLV 模式(type-length-value)。本質上,“原始雜湊”的字首是type所應用的雜湊演算法和length的雜湊。
type
:所述的識別碼的加密演算法來生成的雜湊(例如的識別符號sha2-256
將是18
-0x12
在十六進位制) -參見multicodec 表對於所有識別符號length
:雜湊的實際長度(使用sha2-256
它將是256
位,等於32個位元組)value
:實際的雜湊值
為了將 CID 表示為緊湊字串,而不是純二進位制(一系列1
s和0
s),我們可以使用基本編碼。首次建立 IPFS 時,它使用base58btc
編碼來建立如下所示的 CID:
QmY7Yh4UquoXHLPFo2XbhXkhBvFoPwmQUSa92pxnxjQuPU
Multihash 格式和base58btc
編碼啟用了 CID 的第一個版本,現在稱為版本0(CIDv0
),並且其初始Qm...
字元仍然易於發現。
但是,隨著時間的流逝,人們對這種多雜湊格式是否足夠感到懷疑:
我們如何知道使用什麼方法對資料進行編碼?
我們如何知道使用什麼方法來建立 CID 的字串表示形式?我們會一直使用
base58btc
嗎?
為了解決這些問題,有必要升級到CID的下一個版本。在接下來的課程中,我們將探討在規範中新增了哪些內容,以使我們成為當前的CID版本:CIDv1
。
非常感謝您對 IPFS&Filecoin 專案的持續支援。我們很高興繼續與您一起,為人類資訊建立一個強大的,去中心化和高效的基礎。