V神出面闢謠,君士坦丁堡升級Create2新智慧合同建立功能不存在漏洞
在2月15日以太坊核心開發人員的電話會議上,針對此前有傳言稱,即將在君士坦丁堡升級中釋出的新智慧合同建立功能將對安全產生負面影響,以太坊創始人Vitalik Buterin和其他核心開發者已經對此進行了否認。
(圖片來源: unsplash )
這個受到爭議的功能叫做“ Create2”——被包含在以太坊改進提案(EIP)EIP-1014——旨在允許與區塊鏈上還不存在的合約進行互動,具體地說就是,“鏈上還不存在,但只能依賴於最終可能包含程式碼的地址。”
一些ETH開發者擔心Create2可能會給網路引入一個潛在的嚴重攻擊媒介,因為據說該功能可能會使智慧合約在部署後被編碼並改變其地址。有人曾質疑,這一功能是否“意味著所有擁有自毀能力(其程式碼中的函式)的合約在後君士坦丁堡時代,現在都比以前更值得懷疑?”
在對此進行討論時,以太坊開發者Jeff Coleman強調“關於Create2,有一件事是違反直覺的,那就是理論上重新部署可以更改合約位元組碼,因為地址只是對初始化(init)程式碼的一個提交(commitment)。人們需要注意初始化程式碼是審計的一部分,[…]非確定性初始化程式碼會成為一個問題。”
Coleman強調,那些想要稽核他人程式碼的人需要注意潛在的“奇怪現象”。特別是當你把Create2和Create1結合起來的時候,因為後者對地址標識的假設很弱,無論隨機數是什麼。”他補充道:
“我們期待的結果是……它將有所有的地址[…]]通過初始化程式碼壓縮。我們需要基於內容(content)的合約定址,而不僅僅是基於訂單的定址,這就是Create1。所以如果我們實現以Create2為標準,並完全擺脫合約自毀功能....我們可能就可以放棄合約隨機數的概念。”
像Coleman一樣,Vitalik Buterin討論了Create2的長期路線圖,他說:
“需要記住的是,這麼做更多是為了將來,如當考慮租金和刪除時;這種方法可以在沒有自毀操作的情況下,導致合約處於一個狀態(state)或不處於一個狀態。不過,這不是我們需要在接下來的幾周內解決的問題,但是當我們把ETH 2.0分片納入虛擬機器(VM)規範中時,記住這一點仍然很有用。”
除了Create2之外,開發人員還指出,他們已經找到了一家潛在的獨立公司,對一種名為“ProgPoW”的抗ASIC工作量證明(PoW)演算法進行基準測試。
在以太坊繼續朝著最終的PoS目標發展的過程中,開發人員投票決定實施該演算法,從而抵抗專業的ASIC礦機,不過最近他們決定推遲該演算法的推出,直到第三方審計完成。值得注意的是,正在進行的非正式線上投票顯示,大多數人贊成實施ProgPoW。