以太幣交易所 以太幣交易所
Ctrl+D 以太幣交易所
ads
首頁 > FIL幣 > Info

靚號地址也可以安全 ?詳解無許可多鏈部署的唯一安全方法_CRE

Author:

Time:1900/1/1 0:00:00

1.6億美元不翼而飛,而丟失資金的Wintermute是業內最敏銳的做市基金之一,在9月份的一個早上,當Wintermute負責人醒來時,發現他們的一個重要錢包丟失了9位數的資金。那是什么導致了Wintermute被盜?這是由一個靚號地址生成器中糟糕的隨機性引起的。黑帽黑客從頭開始暴力破解私鑰&公開地址對,然后,大量的加密資產就這么被轉走了。

還有一個關于IndexedFinance被盜的故事,他們在2021年10月被盜走了1600萬美元,然后被盜資金轉移到了以0xba5ed…開頭的地址。他們不知道的是,這個靚號地址也受到了困擾Wintermute的糟糕隨機性漏洞的影響,2022年9月,所有的錢都再次被盜,流向了另一個黑客錢包地址。盜賊是無情的。

那這些天才開發者到底遇到了什么問題,我們能從中學到什么?

左邊是用于WETH合約的普通地址。右側是用于MEV機器人優化的帶有14個前導零的靚號地址。最常見的靚號地址類型是帶有許多前導零的地址。

首先,什么是靚號地址?靚號地址是指用戶刻意創建與其錢包或智能合約相關聯的公共地址,也許它以0x0000000開頭,也許以0xdeadbeef開頭,也許是其他規律的地址。它們受歡迎的原因有幾個:

1、Gas優化:Wintermute因為使用了一個有多個前導零的EOA地址而節省了15000美元。聽起來很傻嗎?很多人都同意,但這就是EVM的工作方式!如果你的地址中有很多零,那么交易gas費用就能下降。所以你如果用一個很多前導零的智能合約地址,當用戶在和它交互時,他們會感到很開心,因為這可以為他們省錢。

以太坊黃皮書描述了前導零地址如何可以實現更便宜的gas

Celsius開始出售山寨幣,包括127萬枚LINK、283萬枚SNX、445萬枚1INCH等:金色財經報道,據Lookonchain監測,Celsius開始出售山寨幣,其中:127萬枚LINK(850萬美元)、283萬枚SNX(784萬美元)、12597枚BNB(300萬美元)、445萬枚1INCH(226萬美元)、853萬枚ZRX(190萬美元)和43.9萬枚FTT(71.3萬美元)被轉移至FalconX;186,149枚BONE(23.5萬美元)被存入歐易OKX。[2023/7/17 10:59:27]

2、協議品牌。你知道1inch代幣合約是以0x111111111開頭……的嗎?

1inch代幣合約

3、多鏈重復性。在我看來,這是重中之重,也是為什么每個協議都應該為它們的部署使用一個靚號地址。你的應用可以存在于15條不同的EVM鏈上,并且在任何地方都具有相同的地址!這對開發者和用戶來說不是更容易嗎?

那什么時候靚號地址是安全的?

以太坊地址有兩種類型:外部擁有賬戶和智能合約賬戶。如果你使用過像MetaMask這樣的錢包,其中的每個地址都是一個EOA,它是用來簽署消息和進行交易處理的。將此與Uniswap合約等智能合約賬戶進行比較,人們可以與之交互,但它不能在不被觸發的情況下采取自己的行動。總結一下,很簡單,靚號地址對EOA賬戶來說是不安全的,但對于智能合約賬戶是安全的。

那為什么會是這樣?我們將在下面進行更詳細的解釋,但這取決于靚號地址是如何生成的。對于EOA賬戶,你循環使用數百萬個私鑰,直到找到一個與美觀的公共地址相對應的私鑰。然而,私鑰控制著EOA賬戶內的資金,因此,如果你用來遍歷私鑰的隨機性遭到破壞,那么你的整個賬戶就會被毀了。另一方面,創建智能合約靚號地址只需要遍歷公共種子,這些種子不授予智能合約的任何管理權限。

Coinbase:新加坡元的轉賬由渣打銀行提供,不收取任何費用:金色財經報道,加密貨幣交易所Coinbase (COIN.O)將允許新加坡客戶通過當地銀行將資金轉入或從賬戶中轉出。該公司在一份聲明中表示,新加坡元的轉賬由傳統銀行渣打銀行(Standard Chartered)提供,不收取任何費用。

此前,用戶只能通過Visa或Mastercard借記卡或信用卡購買加密貨幣,或在Coinbase賬戶內外轉賬加密貨幣。(路透社)[2023/3/15 13:04:51]

這就是為什么Wintermute會失敗,而OpenSea卻成功的原因——用不安全的軟件在不安全的內存中生成私鑰是不好的。但是以這種方式生成公共種子卻非常好!所以EOA靚號地址是一條破產之路,而智能合約靚號地址是一條成功之路。

為什么協議需要靚號地址

更簡單的文檔!你可以在所有鏈上指向一個合約地址;用戶可驗證!只有當且僅當字節碼是逐字節匹配時,才會出現相同的合約地址;開發者可驗證!由于相同的合約地址只發生在完全匹配的情況下,因此你可以在部署腳本中捕捉到棘手的小修改;更簡單的集成!其他協議可以將你的合約地址硬編碼到它們的多鏈代碼中,而不必使用基于chainId的if語句;注:我們即將深入研究一份詳細說明手冊。這是第一次把所有的部分放在一起,我們正在深入技術領域,目標受眾是具有在鏈上部署智能合約經驗的智能合約開發人員。如果你感興趣,請繼續閱讀,但如果不適合你,請不要擔心跟不上!最后還有一個額外的技術挑戰(有獎勵)。

智能合約靚號地址

有一種方法可以生成100%安全的智能合約靚號地址,無論你使用哪種軟件,迭代技術是否公開泄露都無關緊要。它被稱為“CREATE2工廠法”,這不僅提供了靚號地址,而且還是確保你在多條鏈上擁有相同合約部署地址的萬無一失的方法。它還允許其他人無需信任地代表你部署代碼,而無需任何私鑰共享或nonce假設。

首先,快速概述一下如何選擇智能合約地址。有兩個部署選項,分別是?CREATE?和?CREATE2?。當你直接從EOA部署智能合約時,默認流程是CREATE。該地址是通過將合約創建者地址與合約創建者nonce進行哈希運算來確定的。這個nonce是指一個地址發送了多少筆交易,所以一個新的錢包是從0開始,每次發送一筆新交易都會增加1。以下是CREATE部署的智能合約地址的神奇公式:

數字支付平臺Wirex、加密貨幣做市商B2C2已撤回向英FCA的注冊申請?:1月30日消息,數字支付平臺Wirex、加密貨幣做市商B2C2等在美國開展業務的加密公司已撤回向英國金融行為監管局(FCA)的注冊申請。FCA高管Sarah Pritchard在本月早些時候的一封信中表示,85%尋求監管機構批準的公司無法證明他們符合規定的最低標準。

Pritchard補充稱,作為注冊流程的一部分,我們發現了與客戶盡職調查、風險評估、交易和持續監控(以及)治理等關鍵控制相關的重大失誤。FCA還懷疑,一些被拒絕的加密公司的負責人缺乏有效和安全運營業務所需的經驗和知識。希望在英國開展業務的公司對現行制度表示不滿,一些領導人表示,現行制度過于強調審查單個公司,而不是建立一套標準。[2023/1/30 11:35:45]

new_address=hash(sender,nonce)

不太常見,但更有趣的,是使用CREATE2部署的智能合約地址,以下是其公式:

new_address=hash(0xFF,sender,salt,bytecode)

前者看起來更簡單,對吧?但是,讓我們舉一個例子,說明與更健壯的CREATE2流程相比,這種簡單性在哪些方面會產生不利影響。

AiryAlice:多鏈出了問題

想象一個名叫Alice的crypto開發者創建了兩個智能合約:一個名為GriddleSwap的Uniswap分叉,以及一個名為ph00ts的NFT項目。它們都是不可變的獨立原語,這意味著沒有外部依賴或跨鏈橋風險。Alice使用nonce0將GriddleSwap部署到以太坊,然后使用nonce1將ph00ts部署到以太坊。遺憾的是,Alice的注意力持續時間很短,在將她的工作部署到第二大智能合約平臺幣安智能鏈之前,她在加密推特上分心了幾分鐘。

定投工具Mean Finance上線以太坊:12月29日消息,基于美元成本平均法(DCA)的定投工具Mean Finance上線以太坊,用戶可以選擇固定時間買入支持的以太坊上資產并存儲Euler Finance獲取額外收益。[2022/12/29 22:13:29]

糟糕,搞砸了部署順序!

但是等等!她搞砸了部署順序,在GriddleSwap之前部署了ph00ts。由于智能合約地址僅依賴于創建者地址,并且在部署區塊鏈中,以太坊gridleswap與BSCph00ts具有完全相同的地址!雪上加霜的是,以太坊ph00ts的地址與BSCGriddleSwap的地址相同。認為終端用戶會感到困惑是一種保守的說法。事實上,它可能被惡意部署者濫用,以欺騙人們認為在鏈上的合約行為是相同的——這是一個公平的假設,給定相同的地址!

細心的Alice:仍然會有問題

即使Alice在部署時很認真,并且從不混淆她的nonce順序,還有其他的問題。如果Alice正確部署到以太坊和BSC上,但隨后在Polygon上進行了一筆不相關的交易,則nonce0已被用完。她永遠不能在那里部署GriddleSwap,因為她的nonce已經增加了。因此,必須不惜一切代價保護部署者私鑰。如果Alice泄露了它,惡意破壞者就可以進行不相關的交易。如果Alice丟失了它,她也將失去在新鏈上再次部署到該地址的能力。這是一個永久性的漏洞,依賴于一個誠實的個人來保護私鑰。?如果連比特幣core開發者做不到,那我們其他人又該如何做到呢?

解決方案:CREATE2

值得慶幸的是,有一種更好的方法可以跨鏈獲得一致的地址——不依賴于秘密私鑰,不依賴于單個部署者,并且在整個過程中可以抵抗部署者的錯誤。請記住用于查找使用CREATE2部署的智能合約地址的公式:

new_address=hash(0xFF,sender,salt,bytecode)

第一個參數?0xFF?是一個可以忽略的常數值。第二個參數(senderaddress)可以通過在大多數EVM鏈中選擇z0age的CREATE2Factory部署0x0000000000FFe8B47B3e2130213B802212439497來保持一致。第三個參數是一個用戶選擇的?salt,我們可以用它來找到一個靚號地址,然后在鏈上保持不變。第四個是合約字節碼,它可以作為一個有用的完整性檢查,以確保我們在鏈上部署完全相同的功能。無論任何單個部署者做什么,所有四個參數都可以保持相同。

Web3社交網絡Soclly正以3000萬美元估值尋求300萬美元融資:11月17日消息,Web3 社交網絡 Soclly 正在以 3000 萬美元的估值尋求 300 萬美元融資。該公司基于 LensProtocol 構建,面向 Web3 行業 KOL、教育工作者和藝術家。Soclly 幫助用戶基于 Polygon 區塊鏈創建去中心化和可組合社交圖譜,讓 Web3 創作者更好地與讀者或觀眾進行互動,同時掌握自己的社交數據、圖譜和內容。[2022/11/17 13:18:26]

為什么這樣更好呢?與私鑰不同,部署者選擇的salt是可以被公開的!知道salt可以部署合約,但對合約資產或功能的控制為零。因為它不綁定任何秘密信息,所以任何人都可以在不泄露或共享私鑰的情況下將合約部署到新鏈上。字節碼參數還確保當且僅當字節碼*相同*時,這些新的無許可部署將具有相同的地址。因此,最終用戶無需做詳細的代碼差異就能得到更強的保證。

有關更深入的概述,請參閱?OpenZeppelin的科普文章?。

創建你自己的靚號地址

認為以太坊合并后,工作量證明就沒用了嗎?再想一想!同樣的GPU功能,有助于為比特幣區塊尋找具有大量前導零的哈希原像,在為EVM智能合約找到具有大量前導零的哈希原像方面也非常出色。來自OpenSea的z0age找到了一個簡單的設置來創建你自己的靚號地址。

1、使用?vast.ai?啟動一個GPU示例實例,每秒嘗試約20億次,成本約為25美分/小時:

Image:nvidia/openclGPU:1xRTX3090需要分配的磁盤空間:1.83GB2、SSH并安裝rust+create2crunch

sudoaptinstallbuild-essential-y;curl--proto'=https'--tlsv1.2-sSfhttps://sh.rustup.rs|sh-s---y;source"$HOME/.cargo/env";gitclonehttps://github.com/0age/create2crunch&&cdcreate2crunch;sed-i's/0x4/0x40/g'src/lib.rs

3、運行種子搜索。對于環境變量,INIT_CODE_HASH是合約創建代碼的keccak256。可以在此處?找到一個打印出來的樣本代工測試-確保在消耗大量計算資源之前對其進行驗證!LEADING應該是你想要的前導零字節數,TOTAL應該是你想要在合約地址中的總零字節數。

exportFACTORY="0x0000000000ffe8b47b3e2130213b802212439497";exportCALLER="0x0000000000000000000000000000000000000000";exportINIT_CODE_HASH="0xabc...def";exportLEADING=5;exportTOTAL=7;cargorun--release$FACTORY$CALLER$INIT_CODE_HASH0$LEADING$TOTAL

當z0age首次發布他的repo時,它能夠在上述vastAI硬件上每秒運行19億次嘗試。從那時起,矢量化在某些OpenGL內核上變得瘋狂起來,我觀察到每秒有21.5億次嘗試。這意味著找到一個5前導零字節地址需要256^5/(2150000000*60)~=8分鐘,找到一個6前導零字節地址需要256^6/(2150000000*3600)~=36小時,找到一個7前導零字節地址需要256^7/(2150000000*86400)~=387天。請注意,一個字節等于兩個十六進制字符,因此一個5前導字節的地址將有10個零。當然,這種搜索可以完全并行化,隨著時間的推移,實際成功的概率將遵循泊松分布。

部署CREATE2工廠

精明的讀者可能已經注意到,CREATE2Factory在所有鏈上都已經存在于0x0000000000FFe8B47B3e2130213B802212439497。這有點像雞生蛋還是蛋生雞的問題,一致的地址部署如何依賴于一致的地址部署?

當我最初了解到這種方法時,我以為它只是一個由比我更聰明的人持有的私鑰(上面的“細心的Alice”場景)。但它實際上比這健壯得多!ENS創始人NickJohnson的“無密鑰交易”方法利用了這樣一個事實,即你可以從任何交易簽名中恢復公共地址,而無需知道簽署它的相應私鑰。因此,可以創建一筆交易,然后為其發明一個偽造的簽名,例如僅由2組成的簽名。存在這個偽造簽名的私鑰,但沒有人知道它是什么。但是我們可以恢復“無密鑰簽名”對應的公共地址,給它發送一些ETH,然后將簽名的交易提交給內存池。盡管這種方法很模糊,但它是一筆有效的交易,而且實際上是唯一可以從這個公共地址發出的有效交易。

結果呢?任何人都可以在沒有任何專有信息的情況下將factory部署到新的鏈上,同時防止惡意行為者造成損害。創建一個只能部署一個事務的單用途EOA是非常巧妙的技術。

無密鑰交易過程中創建的具體地址和合約

這可以通過三個簡單的“forgecast”命令來完成。字節碼太長,無法在此處復制,但你可以按照?https://github.com/ProjectOpenSea/seaport/blob/main/docs/Deployment.md?上的說明,在你選擇的任何鏈上無需許可地部署CREATE2Factory!

當然,如果已經部署過了,就沒有必要再部署了。

旁注:EIP-155要求是糟糕的

簡短的嘗試來支持我的L1治理冒險行為,請隨意跳過。EIP-155?是Vitalik于2016年提出的一項提案,其引入了“鏈ID”的概念以防止重放攻擊。每條鏈都有自己的唯一標識符——以太坊是1,BSC是56,Polygon是137——這些標識符將包含在已簽名的交易中以防止重放攻擊,它很快被以太坊采用,而其他所有EVM鏈都跟著采用了這個提案。這很好,但問題來了,當選擇幾條鏈,例如Evmos最近決定明確禁止EIP-155前的交易?,在奇怪的理由下,它可以防止一個操作錯誤,即Optimism將2000萬OP代幣發送到Wintermute不存在的一個多重簽名地址,聲稱擁有但從未初始化。但是,禁用155之前的交易會顯著破壞一整套跨鏈部署,例如CREATE2factory以及Seaport等領先項目。這些治理提案應該立即回滾,像這樣的保護細節應該來自錢包而不是共識層。如果多鏈是未來,那么這些不必要的限制,將是頂級項目部署在你的區塊鏈上的巨大障礙。

有趣的東西:部署賞金

今天https://delegate.cash部署在7個不同的EVM鏈以及與這些鏈對應的7個測試網上。所有這些的合約地址都是相同的:0x00000000000076A84feF008CDAbe6409d2FE638B。

那這就夠了嗎?不,我們需要更多的鏈。因為delegatecash是一個零依賴的獨立原語,這意味著多鏈的風險實際上為零。這是純粹的好處!因此,對于前5名將delegatecash智能合約部署并驗證到新鏈和相應的測試網上的人,我將獎勵100USDC獎金!

你需要在此處?使用開源存儲庫中的部署腳本。這可能需要部署CREATE2Factory,并且不要忘記Etherscan驗證!愉快部署,享受體驗式學習!

Tags:CREREACREAEATNolian CreditsCREAMcream幣團隊GREATAPE

FIL幣
強勢回歸:5大數據指標透析1月加密市場_NFT

加密貨幣市場以強勁趨勢開啟2023年,?1月鏈上指標已顯示出較大增長和活躍度,尤其是在?NFT?市場、DeFi?和游戲等垂直領域.

1900/1/1 0:00:00
可以加杠桿做空NFT了?從nftperp來盤點NFT永續合約賽道_NFT

引言 一直以來,NFT市場都在致力于解決「流動性不足」的問題,從NFT的估值定價、撮合方式等方面切入,許多優秀的產品和創新機制不斷出現推進了NFT金融化的持續發展.

1900/1/1 0:00:00
揭秘 SUDO 空投大贏家:如何獲得價值百萬美元空投?_UDO

1月31日,NFT交易協議sudoswap正式發布治理代幣SUDO并開啟治理模塊,SUDO的Lockdrop和Airdrop也正式開放.

1900/1/1 0:00:00
2023 年比特幣投資者應關注的 7 個因素_比特幣

比特幣雜志PRO在比特幣網絡中看到了令人難以置信的強大基本面,我們在宏觀經濟趨勢的背景下,激光聚焦于其市場動態。比特幣的目標是成為世界儲備貨幣,這是一個不可低估的投資機會.

1900/1/1 0:00:00
揭秘NFT GOD社交賬號被盜真相,一個小疏忽損失全部Crypto資產_NFT

一位在推特上很受歡迎的NFT網紅NFTGod發現他的整個數字生活都被侵犯了,因為他在谷歌上點擊了一個釣魚廣告鏈接。這位有影響力的人說,黑客讓他失去了足以改變他一生的一筆凈資產.

1900/1/1 0:00:00
黃益平:關于央行數字貨幣與加密貨幣的一些猜想與思考_數字人

央行數字貨幣的收益和成本,最終取決于數字貨幣體系的具體設計。各國在設計央行數字貨幣時,需要考慮防止商業銀行脫媒、隱私保護、激勵措施、化解金融風險等多個維度,數字人民幣“雙層分發+無支付利息”等設.

1900/1/1 0:00:00
ads