以太坊2.0將棄用Keccak256,而啟用SHA256雜湊演算法?
我們知道,比特幣使用了SHA256雜湊演算法,而以太坊目前則使用的是Keccak256雜湊演算法(SHA3的變種),然而,根據以太坊2.0主要研究者Justin Ðrake的最新推文訊息表明,以太坊在2.0的PoS階段,也可能會棄用Keccak256而改用SHA256雜湊演算法。
Justin表示:
我們正耐心等待以太坊3.0的一個可行的STARK/SNARK/MPC友好型雜湊函式。”
關於不使用SHA3,而使用SHA256的質疑
這一宣告的發表,似乎有些突然,就連go-ethereum客戶端核心開發者Nick Johnson也有點不解,他留言提問道:
“為什麼是SHA256,而不是SHA3,且通過預編譯/操作碼來支援SHA256?”
Justin Ðrake答曰:
“因為以太坊1.0只對Keccak256演算法(通過操作碼)和SHA256(通過預編譯)有好的支援。出於各種原因,我們需要與以太坊1.0相容(Eth1.0到Eth2.0的存款,Eth2.0在Eth1.0的輕客戶端,Eth1.0邏輯Eth2.0資料執行引擎,Eth1.0最終使用Eth2.0...)”
但Nick Johnson似乎依舊沒有理解,他繼續回覆說:
“我不明白這是如何回答我的問題的?無論選擇哪一種,你都可通過預編譯或操作碼支援SHA256和Keccak256。”
Justin Ðrake:
“Eth1.0對SHA3沒有很好的支援,這可能會排除SHA3對於信標鏈(beacon chain)和分片默克爾化(shard Merkleisation)的支援。Eth2.0 dApp 可使用他們想要的任何雜湊函式。”
Nick Johnson:
“但是,只要你支援將SHA256或keccak256作為預編譯/操作碼,就不能使用你想要的任何雜湊函式作為“主”函式?或者就此而言,新增這個ETH2.0雜湊函式作為一個ETH 1.0中的預編譯函式?”
此後,Justin Ðrake便不再對任何留言進行回覆,也沒有作出任何進一步的解釋。
截至目前,尚未有其他以太坊2.0研究者發表類似聲音,似乎我們暫無法確認以太坊2.0是否會啟用SHA256演算法,但從以上的隻言片語中,我們可推斷出,Justin Ðrake或許認為SHA256雜湊函式對於以太坊2.0而言是足夠安全的,其更多考慮的是與以太坊1.0以及其他區塊鏈專案的互操作性問題。
以太坊2.0使用SHA256雜湊演算法,這事的可能性有多大?歡迎發表你的觀點。