跳至正文
面向全球華人的數位資產觀察全球視角 · 地區背景
鏈觀 BTC866CHAIN VIEW
區塊鏈技術

CREATE2 地址:提前可計算不等於合約可信

CREATE2由部署者、Salt和初始化代碼哈希確定地址,合約部署前就可能得出目的地。可預測地址方便工程設計,但不等於對項目身份、權限或安全作出認證。

閱讀語言繁體中文简体中文English한국어РусскийالعربيةEspañol (México)Tiếng Việtไทย
CREATE2 地址:提前可計算不等於合約可信

原創主題配圖: 鏈觀 BTC866 原創主題圖解 · ChainView BTC866 Editorial · CC BY 4.0

地址可以先計算

CREATE2由部署者、Salt和初始化代碼哈希確定地址,合約部署前就可能得出目的地。可預測地址方便工程設計,但不等於對項目身份、權限或安全作出認證。

公式使用的部署者不是宣傳頁面作者,而是鏈上實際執行部署的地址。若經工廠部署,要確認工廠和調用關係。Salt的可讀名稱也沒有額外可信度,用戶不應因為某個字符串像品牌名稱就降低核驗標準。

初始化與運行代碼不同

地址公式綁定的是初始化代碼相關輸入,最終運行行為還受構造、配置和外部依賴影響。代理升級和管理權限可能繼續改變行為,需要查看實際部署狀態。

初始化代碼可能包含構造參數,外部依賴和狀態會影響最終行為。源代碼一致仍需核對編譯與部署輸入,代理中的業務邏輯與管理合約還要分開。文章可列檢查項,但不能保證普通讀者自行審閱就足以發現所有風險。

尚未部署不能當作已審計

沒有運行時代碼的地址不能按完整合約分析,宣傳過或外觀熟悉也不能證明控制權。不同鏈上相同地址尤其不能自動當作同一個服務,必須核對網路。

同一個預測地址在未部署狀態可能只顯示餘額,瀏覽器沒有代碼頁不表示地址屬於普通私鑰帳戶。區分不存在代碼、代碼已部署和代理邏輯可升級三種狀態,對轉賬後能否取回資產的理解尤其重要。

資金進入前核對依據

閱讀部署者、實際字節碼、初始化參數和管理員安排,確認文檔對應本次部署。不要僅憑一個預計算地址就轉入貴重資產,也不應把驗證代碼公開等同於完整安全審計。

若合同文檔提前公佈地址,保存公告日期和明確網路,部署完成後再比對實際字節碼與初始化參數。出現變化應詢問官方說明,不根據社群解釋直接接受新地址。核驗可以只讀完成,不需簽名來證明觀察者身份。

保存部署證據鏈

用無資金示例記錄預計算結果、部署交易和部署後的狀態,再解釋哪些字段一致。文章僅討論機制和防護核對,不提供利用部署差異攻擊他人的操作。規則版本改變後需重做判斷。

部署證據表還可列創建交易、運行代碼哈希、管理員與後續升級記錄。哈希一致只說明所比較字節一致,不自動證明業務安全。避免把確定性工程特徵包裝成收益保證,或者將地址可預測誤寫為任何人都能控制。

技術檢查單依次記錄“部署者地址”“部署鹽值”“初始化代碼”“實際狀態”,把標準規定、軟體實現和這次實際觀察分欄。先做無資金、只讀的小範圍檢驗,保存版本與區塊引用,出現缺失就說明無法確認的環節。不同客戶端的結果不一致時核對參數和資料範圍,不憑一個頁面斷言整個協議失效。解釋應讓讀者理解邊界,而不是讓複雜術語成為安全保證。

資料來源

  1. EIP-1014 CREATE2 (在新視窗開啟)
  2. Solidity contract creation (在新視窗開啟)