为什么IPFS的multihash可以解码?

Why IPFS's multihash can decode?

我读过这个 Whosebug post:

$ echo "Hello World" | ipfs add -n
$ added QmWATWQ7fVPP2EFGu71UkfnqhYXDYH566qy47CnJDgvs8u QmWATWQ7fVPP2EFGu71UkfnqhYXDYH566qy47CnJDgvs8u

base58

12 - 20 - 74410577111096cd817a3faed78630f2245636beded412d3b212a2e09ba593ca
<hash-type> - <hash-length> - <hash-digest>

ipfs cat

$ curl "https://ipfs.infura.io:5001/api/v0/object/data?arg=QmWATWQ7fVPP2EFGu71UkfnqhYXDYH566qy47CnJDgvs8u"

Hello World

所以我想知道 ipfs 的解码是如何工作的?

据我所知,sha-256 哈希函数是单向哈希,对吗?

基本上,IPFS 是一种(键,值)存储服务。您从 ipfs add 命令获得的 multihash 是值的 multihash,也是使用 ipfs getipfs object 命令从 IPFS 服务检索值的密钥。

使用 IPFS 服务的 http api,curl "https://ipfs.infura.io:5001/api/v0/object/data?arg=keyipfs object data 命令完全相同。

所以这不是关于解码哈希,它只是用你的密钥(多重哈希)获取值。