“真行者珞珈山訴苦,假猴王水簾洞謄文。” ——《西游記·第五十八回》
在《西游記》中,六耳獼猴冒充猴王孫悟空,以假亂真,騙過了唐僧,騙過了眾神,縱使是照妖鏡也分不出真假。現在,智能合約遇上了“六耳獼猴”,又會擦出怎樣的火花?
在智能合約中,構造函數負責一些數據的初始化工作,owner值一般也會放在構造函數中進行初始化。owner是智能合約擁有者的稱呼,也常被用來作為該合約的超級管理員。對代幣合約來說,owner可能被分配的權限有:鑄造/銷毀代幣、凍結代幣等。如果開發者以錯誤的語法創建“構造函數”,造成構造函數缺失,致使“六耳獼猴”以假亂真,瞞過了開發者,最后使得攻擊者成為合約的擁有者(owner),那么攻擊者便可依賴owner的權限,對代幣進行增發或銷毀等操作,進而可能造成整個代幣的崩盤。
智能合約解決方案提供商Data Gumbo完成400萬美元C輪融資:8月10日消息,智能合約解決方案提供商 Data Gumbo 宣布完成 400 萬美元 C 輪融資,本輪融資由沙特阿美旗下 Saudi Aramco Energy Ventures 和挪威能源巨頭 Equinor 旗下風投 Equinor Technology Ventures 聯合領投。
據悉,Data Gumbo 首個智能合約市場目前已推出能夠立即部署的 40 多個智能合約模板,參與 Data Gumbo 智能合約的企業網絡已覆蓋 180 多家,幫助客戶及其業務網絡能夠安全地進行交易,從而提高運營效率、問責制、透明度和現金流確定性。[2022/8/10 12:16:28]
在Solidity語言中,當函數名和合約名相同時,此函數就是合約的構造函數,在合約對象創建時,會先調用構造函數對相關的數據進行初始化。
Juno開發人員:主網暫停源于惡意智能合約攻擊,網絡正在修復中:4月7日消息,由于網絡攻擊,基于Cosmos的區塊鏈Juno于周二下線。根據該項目官方推特轉發的消息,截至發稿時該網絡仍處于離線狀態,但沒有用戶資金受到影響,Juno核心開發團隊表示正在修復中。一位不愿透露姓名的Juno核心開發人員表示,網絡崩潰源于一個惡意智能合約,該合約被偽裝成一個簡單的“hello world”程序。可疑的攻擊者在三天的時間里向智能合約發送了超過400筆交易,這顯然是一個反復試驗的過程,最終鎖定了一個特定的交易組合,導致網絡崩潰。 開發人員稱,攻擊者利用了一個區塊鏈漏洞,Juno計劃在攻擊發生后的幾個小時內通過更新來解決這個漏洞。該開發者表示,該漏洞已被公開披露,因為它影響了所有使用CosmWasm智能合約平臺的區塊鏈。此前消息,Juno在區塊高度2578108處停止出塊。(CoinDesk)[2022/4/7 14:09:13]
以太坊Solidity 0.4.22版本中引入了關鍵字constructor,新的構造函數聲明形式:constructor() public { },引入的目的是用以替代低版本中將合約名作為構造函數名的語法形式,從而避免開發者筆誤造成構造函數命名錯誤的問題。引入的這個關鍵字看似平淡無奇,實則意蘊深刻,且聽我慢慢道來。
天氣信息提供商AccuWeather通過運行Chainlink節點將天氣數據帶入智能合約:金色財經報道,天氣信息提供商AccuWeather周三宣布,正在啟動一個Chainlink節點,以將其天氣API直接放置在基于區塊鏈的智能合約上。AccuWeather API包括天氣信息,例如溫度、降水、風速和自然災害分類。該氣象公司稱,AccuWeather驅動的智能合約的一些可能用途包括NFT。[2021/8/5 1:35:23]
下面以ethernaut靶場的Fallout題目為例進行分析。一眼看去,這似乎是一個正常沒有漏洞的合約代碼,但經過仔細觀察發現,該合約存在一個致命錯誤——構造函數名稱與合約名稱不一致,Fallout合約的構造函數被寫錯成了Fal1out(字母l和數字1的差異),這樣的錯誤使其成為了一個被public修飾的普通函數,失去了構造函數僅在合約部署時被調用的特性,使得任何人都可以調用。該題目源碼如下圖所示:
OKEx CEO JayHao:EVM上線可使以太坊上的智能合約遷移到OKExChain:歐易OKEx CEO Jayhao在微博表示,眾所周知,EVM是一個以太坊虛擬機,其設計是用于在以太坊網絡上執行和調用智能合約。OKExChain即將支持Cosmos WASM和EVM雙虛擬機模式,以太坊虛擬機(EVM)上線后開發者就可以使用以太坊的開發工具與語言在OKExChian上進行智能合約部署。簡單來講,你可以理解為EVM相當于是一座橋,橋梁搭建好后,所有以太坊上的智能合約可直接遷移到OKExChain部署運行,萬事俱備只欠東風[2021/2/24 17:48:28]
聲音 | eToro CEO:以太坊仍是最受歡迎的智能合約平臺:據bitcoinexchangeguide消息,eToro CEO Yoni Assia接受采訪時表示,他看好以太坊這一全球最常用的智能合約平臺,以太坊區塊鏈在未來將通過新的應用程序和智能合約技術獲得大量價值。[2018/9/11]
圖 1
在Fal1out函數中直接指定了函數調用者的地址即為owner,所以只需要調用Fal1out函數即可實現對合約owner的更改。如下圖所示:
圖 2
“假猴王”Fal1out想借著一些字體類型的相似字符的視覺差異混淆視聽,可最終還是沒能逃過我們的“火眼金睛”。
在過去也曾發生過類似的安全事件,包含著假構造函數的合約被成功發布到主鏈上,其中比較出名的是“MorphToken事件”,其因為一個看似很小的問題而造成了數千萬市值的代幣被增發。合約代碼地址:https://etherscan.io/address/0x2ef27bf41236bd859a95209e17a43fbd26851f92#code
在Owned合約中,由于首字母大小寫的錯誤,導致本該成為構造函數的Owned成為了普通函數owned,且被public修飾,可供任何人調用。如下圖所示:
圖 3
MorphToken合約繼承了Owned合約,并在自己的構造函數內進行了owner的初始化,但是父合約Owned的owned函數是可供任何人調用的,攻擊者便可通過調用owned函數更改合約的所有者owner。owner的初始化代碼如下圖所示:
圖 4
由上述可知,任何人都可以通過調用合約的owned函數,成為合約的擁有者(owner)。如下圖所示:
圖 5
失之毫厘,差之千里,一個小小的字母錯誤,卻導致了合約的代幣的崩盤。代幣也被惡意增發。如下圖所示:
圖 6
建議更換Solidity 0.4.22及以上版本,并使用正確的constructor()語法。如下圖所示:
圖 7
切記: constructor()前并無function,function constructor() public { }為錯誤的構造函數形式。
如果要使用低于0.4.22的版本,則一定要著重檢查函數名是否和合約名一致。如下圖所示:
圖 8
在智能合約中因開發者粗心,而造成安全漏洞的事件層出不窮,“千里之堤,潰于蟻穴”,成都鏈安-安全實驗室在此給出如下建議:
1、 開發者在編寫智能合約敏感函數(如構造函數、回退函數fallback)時,應嚴格按照官方要求的代碼書寫規范,注意不要出現字符錯誤等情況。
2、 在某些情況下,編譯器會對constructor的錯誤使用發出警告,開發者應予以正確對待,不可認為其只是警告信息而忽略不處理。
3、 在合約正式上線前一定要找專業可信的機構做好合約代碼的審計工作。
Tags:OWNNER以太坊TORTop Down Survival ShooterMineral幸運以太坊toro幣APP注冊需要投資嗎
AAX交易所平臺通證AAB于6月28日正式上線區塊鏈數字資產錢包麥子錢包。用戶可以登陸麥子錢包發送、接收、存儲AAB資產,并可以通過麥子錢包連接硬件錢包實現AAB的離線存儲.
1900/1/1 0:00:00從6月15日Compound推出其治理代幣COMP的流動性挖礦以來,不到一個月,流動性挖礦成為加密圈最熱話題,且越來越多的項目正在推出各自的流動性挖礦,那么.
1900/1/1 0:00:00本周的技術周刊,包含以太坊、波卡、Filecoin、Hyperledger等網絡的技術類新聞消息.
1900/1/1 0:00:00在數字時代中,數字化文檔的認證性、完整性和不可否認性,是實現信息化安全的基本要求。數字簽名則是滿足上述要求的主要方式之一,亦是現代密碼學的研究內容之一.
1900/1/1 0:00:00吳忌寒和詹克團又開戰了。這次事件的焦點是“世紀云芯”的管理層任命變動。吳忌寒免除周鋒原任世紀云芯總經理職務(詹克團與周鋒之間有親屬關系),隨后詹克團回應,吳忌寒無法代表比特大陸免除世紀云芯相關職.
1900/1/1 0:00:00作為一家成立了近三年的合約平臺,58COIN雖然爭議不斷,但是根據公開渠道信息顯示,其在用戶資金安全方面從未出現過紕漏,要知道58作為合約平臺的領頭羊,單合約日平均成交量早已是億級體量.
1900/1/1 0:00:00