買以太坊 買以太坊
Ctrl+D 買以太坊
ads
首頁 > Luna > Info

AVE:Lendf.Me被盜是ERC-777之過嗎?從協議、標準與兼容性思考_Kurai MetaVerse

Author:

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

「此次黑客攻擊主要是利用 imBTC 資產 ERC777 標準的漏洞進行了重入攻擊。回調機制允許黑客反復將偽造的 imBTC 作為抵押物借出款項。」

——dForce 公告

上述安全事件得到初步解決,為受害者(比如橙皮書老哥在 DeFi 里虧光又回本的兩天)感到高興。被攻擊的細節也已經得到了披露,但究竟是什么導致了漏洞,仍有不同的聲音。

有的認為是 ERC777 的不足;有的認為是兼容性的問題;有的認為 imBTC 實現的問題。在此,我覺得有些概念必須明確,才能方便我們對事實的探討。

協議:漢語中的「協議」一詞具有多義性。我們這里指的協議,不是法律意義上的「合約 / 契約 (Contract)」,也不是「軟件許可證 (License)」,而是通信中的「協議 (Protocol)」。在電信領域,協議是通信系統中的兩個或多個實體交換信息的系統規則。

標準:標準是「為了在一定的范圍內獲得最佳秩序,經協商一致制定并由公認機構批準,共同使用的和重復使用的一種規范性文件。」

DeFi借貸平臺Everlend Finance以流動性緊縮為由關閉其應用程序:金色財經報道,基于 Solana 的 DeFi 借貸協議 Everlend Finance 已關閉其應用程序平臺,Everlend團隊已將該平臺轉為僅提款模式,并敦促用戶刪除其資產。公告稱,該應用程序將繼續運行,直到處理完所有提款。該團隊還概述了在未來兩周內支付所有已籌集和未使用資金的計劃。Everlend 將關閉的決定歸因于 DeFi 借貸參與者面臨的流動性緊縮。[2023/2/2 11:43:33]

標準不一定是協議,因為標準不只是通信領域的。而協議也不一定是標準,因為標準必須得到規范的確認。但通信標準一定是通信協議。因此,標準必須由一些指定的組織頒布。比較知名的標準組織有 ISO、ITU、IETF 等。例如 TCP 作為一種傳輸標準,就是 IETF 頒發的 RFC-793 所決定的。

ERC777 是協議嗎?

是的。

當然我個人傾向于另外一種表達,ERC777 包含了協議。ERC777 定義了一種代幣類型,規定了代幣合約的屬性、開放的接口及實現的功能,用于規范以太坊地址與 ERC777 代幣合約間的通信,這是通過接口完成的。但 ERC777 也包含了通信協議外的東西,例如 decimals() 這個函數用來查詢 token 的精度,這顯然是通信協議,但按照 ERC777 的要求必須返回 18,這就不屬于通信協議的范疇。

富藝斯亞洲將于2月14日啟動My Kawaii Valentine網上拍賣:2月8日消息,富藝斯亞洲宣布將于 2 月 14 日至 22 日舉辦主題為My Kawaii Valentine的網上拍賣,據悉,本次網上拍賣不僅囊括奈良美智、 Mr.Doodle、五木田智央、凱瑟琳·伯爾尼哈特(Katherine Bernhardt)、及艾得佳·普連斯(Edgar Plans)等炙手可熱的當代藝術家之作,還將呈現六件由 MonoC、Maciej Kuciara、Lili Tae 和 Pomme Chan 等來自不同背景的數字藝術家所創作的 NFT 作品。

本次參拍的 NFT 作品中,最受矚目的當屬全球首件由虛擬人 MonoC 創作、以拍賣數據驅動的 NFT 作品《Drowning in Love》。此作品將由My Kawaii Valentine網上拍賣期間預計收集至少十萬個實時數據點,由 MonoC 以演算法的方式創作成一件 NFT。其他 NFT 作品亮點包含由波蘭數字藝術家馬切伊·庫恰拉(Maciej Kuciara)所創作的《金屬之軀》,以及來自泰國曼谷的插畫家麗麗·泰(Lili Tae)所創作的《愛,我》等。[2022/2/8 9:38:16]

ERC777 是標準嗎?

LendHub新增支持BAGS借貸挖礦LHB:據官方消息,LendHub已于1月23日19:00上線支持BAGS的借貸挖礦。目前,LendHub是火幣生態鏈Heco最大的借貸平臺,已支持Heco上HT、HUSD、HBTC、ETH、HDOT、HFIL 、HPT、USDT 、HLTC、MDX,以及BAGS 11種資產借貸挖礦LHB。

LendHub是一個基于火幣生態鏈Heco的去中心化借貸平臺,支持多個Heco幣種的質押借貸,用戶通過在LendHub上進行質押或借貸即可獲得激勵通證LHB獎勵。

Basis Gold是一種建立在火幣生態鏈Heco上的算法穩定幣協議,通過該協議可以動態調整貨幣供應量以滿足貨幣需求的變化。[2021/1/23 13:16:43]

是的。從名字就能看出來。

EIP 777: ERC777 Token Standard (ERC 代幣標準)。

這里隱含了一點是什么呢,如果你發行了一個 token,說它是 ERC777 的 token,那么必須要實現此標準定義的所有接口。同時,這個 token 必須回溯兼容 ERC20 標準。這是什么意思呢?

中幣支持LEND智能合約置換為AAVE:根據Aave官方說明,Aave已經啟動通過智能合約將原LEND代幣按照100LEND:1AAVE的比例轉換為AAVE新代幣,新的AAVE持有人將可以根據持幣權重參與Aave protocol協議的治理。

根據中幣官方公告,中幣將支持LEND(Aave Protocol)智能合約置換為Aave Protocol(AAVE),置換后,用戶將持有AAVE,10月10日14:00暫停LEND充提,16:00停止LEND/USDT交易。同時將于10月11日14:00開啟AAVE/USDT交易,并開放AAVE充值、提現。更多詳情請關注中幣官方公告。[2020/10/9]

什么是兼容性?

兼容性是指硬件之間、軟件之間或是軟硬件組合系統之間的相互協調工作的程度。

根據標準文檔,ERC777 對 ERC20 是 backward compabitlity,這是什么意思呢?

向后兼容(backward compatibility),又稱向下兼容(downward compatibility),回溯兼容,在計算機中指在一個程序、庫或硬件更新到較新版本后,用舊版本程序創建的文檔或系統仍能被正常操作或使用(包括輸入數據)、在舊版本庫的基礎上開發的程序仍能正常編譯運行,或較舊版的硬件仍可在新版使用的情況。

動態 | 阿聯酋RAKBANK與BDO Unibank合作 客戶可使用RippleNet轉賬至菲律賓:阿聯酋零售和商業銀行RAKBANK,與菲律賓一家提供全方位服務的全能銀行BDO Unibank合作,計劃加強其目前在菲律賓的匯款業務。RAKBANK先前已加入RippleNet,此次合作將使客戶能夠通過RippleNet,使用RAKBANK的轉帳服務RMT,以安全的方式立即將錢轉入該國境內的任何銀行。(ambcrypto)[2020/2/24]

什么意思,如果我們把 ERC20 看作舊版本,把 ERC777 看成新版本。回溯兼容指的就是,ERC20 的任何接口,在 ERC777 中都得到了實現。換句話說,假設一個 token 直接從 ERC20 升級到了 ERC777 (實際上不可能,但我們可以做這樣的假設),原先通信方式仍然有效,但這不代表最終的結果是一致的。這點非常重要!首先來看一個例子。

關于兼容性的例子

SQL 注入

「SQL 注入是一種將 SQL 代碼添加到輸入參數中,傳遞到服務器解析并執行的一種攻擊手法。」

簡單說,用戶可以通過公開的接口來實現對數據庫的攻擊。例如:

我們在登錄網站時,會輸入用戶名和密碼,服務器后臺會判斷用戶名密碼是否匹配,來決定是否能讓用戶登錄。

假設我們在輸入時,用戶名輸入:user'-- (注意--后面有個空格,單引號閉合 user 左邊的單引號),密碼隨意輸入,如:111,然后點擊提交按鈕。等價于 SQL 語句:

SELECT * FROM user WHERE username = 'user'-- 'AND password = '111'

由于「--」之后的部分被注釋掉了,無論密碼是正確或者是錯誤的,用戶都可以成功登錄。

當然,實際上的代碼沒有這么簡單。你如果看了這段話嘗試去攻擊網站,是不會成功的。

這和兼容性有什么關系呢?解釋一下。

假設 一個網站遵循用戶協議 U20,只允許用戶名是字母,因此用戶無法輸入 ' 和-這兩個符號。當然不僅前端輸入框限制,后端也會檢查每個字符是否都符合條件。換句話說,在接口傳遞參數的時候,不允許這兩個符號出現,這個接口是符合 U20 的。這時,不會出現示例中的 SQL 注入問題。(但不確定是否其它注入可能。)

某天,網站的用戶協議進行了升級,變成了 U777,新的用戶可以使用 ' 和- 作為用戶名了,接口也需要進行升級。U777 對 U20 當然是回溯兼容的,因為舊的用戶仍然可以使用用戶名登錄,也可以使用舊的界面和接口登錄。而新的用戶則需要前端和后端代碼升級后才能登錄。

如果前端和后端只是簡單地對上述兩個字符不加限制,勢必會導致上述 SQL 注入問題。但這個要怪罪接口升級嗎?

很顯然,不是的。協議只是保證符合規范地將用戶的輸入傳遞給后端,協議升級后,這仍然正確地完成了。而新的字符帶來的風險,是需要后端代碼重新評估的,也可以認為后端代碼與新的協議不兼容。

這是后端代碼的問題嗎?這是協議升級的問題嗎?都不是。而是因為協議升級后,讓用戶產生了足以摧毀系統的超能力。

再把話題扯遠一點,列車的最高速度從 20km/h 提到 100km/h,鐵軌仍然和列車兼容。但噪音是否會造成沿途居民的影響,道口是否需要提高安全等級呢?這顯然是要重新審視的。

應該怎么做?

回溯兼容不代表安全,因為新的特性必然具有外部性,而這個外部性是讓其它實體很難預期的,所謂「安全是動態的」。回到剛才的例子,有兩種做法。

一是提前對各種外部性進行判斷。后端代碼非常謹慎,假裝不知道用戶的輸入是受限的,按照全字符集來進行處理,這樣無論協議怎么升級,后端都是安全的。

二是靈活但審慎的策略。在協議升級時前,重新評估安全性,并做好修改和測試工作后重新部署。

根據例子的復雜度,兩種做法都是可行的。更重要的是,為了避免重復勞動,提高效率,減少安全問題出現的可能,應當對共性問題進行標準化嘗試。

例如,用戶登錄是個邏輯簡單,且非常普遍的場景。為了防止 SQL 注入,就有例如 Prepared Statement 之類的標準化做法,完全不需要閉門造車。而回到開頭的那個問題,我更想引用慢霧的一段話「第三方 DeFi 平臺在接入的時候,應需要充分考慮平臺本身的業務邏輯與接入代幣之間的兼容性,才能避免因兼容性發生不必要的安全問題。而不是簡單的將問題歸咎于協議和代幣提供方。」

為什么 ERC777 難以得到推廣

為什么 ERC777 兼容了 ERC20,且提供了比 ERC20 更強大的功能,仍然不能得到廣泛的應用呢?除了 ERC20 代幣已經廣泛使用,大家寧肯忍受它的缺點,使用 approve and transferFrom 這種并不那么安全的方法,也不愿或無法升級外,還有一個重要的原因是:光兼容 ERC20 是不夠的,還需要兼容現有的其它協議。如果每個協議都要單獨評估應用 ERC777 的風險,成本太高,且容易造成誤解,這顯然不利于它的推廣。

我們是否可以把公共的常用功能抽象出來,形成標準的實現?例如「存款」這個操作,如果它有針對不同代幣標準的標準參考實現,那么許多問題出現的概率就會降到很低。

至少,我們也應該小心所有和我們打交道的人,每個合約都要小心所有與其打交道的合約,來避免出現不必要的安全問題。因為「不斷地他添來另外的你我 / 使我們豐富而且危險。」(穆旦,《詩八首》,1942 年。)

Tags:777LENDENDAVE777幣圖片SolendDLEGENDS價格Kurai MetaVerse

Luna
COIN:不懂期貨 如何投資?_kava幣最新價格

上周發生的 WTI 原油期貨穿倉事件吸引了很多人的注意。作為衍生品的一種,我們今天借此機會談論一下期貨的歷史和發展。期貨交易在美國和世界各地都有著悠久的歷史.

1900/1/1 0:00:00
SEC:Kik和SEC均反對對方提出的即決判決動議_sec幣是什么意思

美國證券交易委員會(SEC)和Kik Interactive均在4月24日對彼此提出的即決判決動議提出反對.

1900/1/1 0:00:00
比特幣:瘋狂的數字貨幣概念股:半月最高漲幅近50% 平均上漲15%_區塊鏈技術不包括哪一項

4月15日,農業銀行App內測數字貨幣DC/EP的界面在網上流傳,界面上顯示的功能包括掃碼支付、碰一碰、DC兌換查詢和錢包管理掛靠等。隨后,中國銀行也傳出數字貨幣內測消息.

1900/1/1 0:00:00
數字人:金色觀察 | 央行數字貨幣短期不會全面推廣 概念股逐步“降溫”_數字貨幣

央行數字貨幣內測消息以來,相關概念股熱度不減。不過,考慮到前期數字貨幣僅限于試點,短期內不會大量發行和全面推廣,概念股正逐步“降溫”.

1900/1/1 0:00:00
COI:金色前哨 | a16z尋求為第二支加密貨幣基金籌集4.5億美元資金_BTC

英國《金融時報》周二報道,硅谷投資巨頭Andreessen Horowitz(a16z)正尋求為其第二支專注于加密貨幣的基金籌集4.5億美元資金.

1900/1/1 0:00:00
加密貨幣:金色觀察 | 幣安再被攻擊被迫停業 盤點幣安宕機史_加密貨幣市場規模

幣安被攻擊網頁無法打開,陷入徹底被迫停業。4月29日,據社區反饋,幣安目前或遭受攻擊,有社群客服建議用戶使用梯子訪問Binance或APP,合約頁面暫時卡頓,若進入平臺需使用備用站點.

1900/1/1 0:00:00
ads