Uniswap 怎麼『空投』UNI 的?
2 min readSep 19, 2020
前情提要: Uniswap 在前幾天推出了治理代幣:
不過跟過去很多專案會採用的空投方法:『把代幣直接轉到帳號』的方式不一樣,你需要去『領取』。
至於他怎麼實作領取的呢?他也不是直接把所有人(25萬個 address)可領取的資訊全部寫在鏈上。(這樣太耗資源了)
他們採用了 Merkle Proof 的方式。 Merkle Proof 背後的 Merkle Tree 是一種將資訊編碼的方式,在這個例子裡,這棵 Merkle Tree 的每一個節點都是可以領取 UNI 的地址跟可以領取的數量。
而這個 Merkle Tree 最終的根節點:Merkle Root ,才再被放到智能合約裡。僅僅只要存短短的0xc8500f8e2fcf3c9a32880e1b973fb28acc88be35787a8abcf9981b2b6。
領取時,提供你的節點(地址跟數量)加上 Merkle Proof,合約就可以驗證這個節點是不是真的存在在這棵以該 Merkle Root 為根的樹下。
使用這個非常簡潔的方法,Uniswap 把空投代幣的成本轉移到了使用者身上(當然也塞住了網路 xD)。
參考資料: