最近關于用戶和 Move 智能合約交互,不需要授權 (Approve) 是更安全還是更不安全的爭論很多,這里嘗試用通俗的方式來解釋一下二者背后的區別以及 Move 這樣設計背后的思想。
我們先理解一下用戶和智能合約交互的方式。當我們簽了一個交易,去調用一個鏈上的智能合約,就好比從物理世界進入了一個智能合約的數字世界,我們在這個數字世界有一個分身,而這個分身做什么,是智能合約定義的。
在 EVM 中,每個合約都相當于一個獨立的小世界,分身進入這個世界后,只能操作用戶在當前合約世界中的狀態(資產)。
比如進入 swap 世界,想用自己的 usdt 交換其他資產,而 usdt 存在定義 usdt 的那個合約世界,沒辦法直接在 swap 中以自己的身份從 usdt 合約里提取資產。于是用戶只能先去 usdt 的合約世界執行 approve,告訴 usdt 的合約,swap 可以代自己提取自己的資產,然后再進入 swap 世界進行操作。
知情人士:上海浦東發展銀行將購買浦發硅谷銀行50%股權:金色財經報道,據南華早報引用知情人士消息,美國硅谷銀行在中國的合資公司浦發硅谷銀行可能會被上海浦東發展銀行(SPDB)接管。上海浦發銀行可能會買斷其持有的50%股權,這是一系列選擇中的“首選”。另一種選擇是允許另一家外國投資者收購浦發硅谷銀行。中國監管方將很快為該合資企業找到解決方案。[2023/3/13 13:01:31]
操作完成之后,再去 usdt 那邊取消授權(revoke)。但這里的 approve 和 revoke 操作都需要獨立的交易,用戶往往為了節省 gas 費用,不進行 revoke,結果如果 swap 合約出安全問題,用戶的資產就可能在不知情的情況下被盜取。
數據:火必上ETH期貨合約的未平倉合約達一個月高點:12月25日消息,Glassnode數據顯示,火必上ETH期貨合約的未平倉合約為48,705,588.43美元,達一個月高點。[2022/12/26 22:07:06]
而在 Move 中,所有的合約都在一個大的數字世界運行。用戶的數字分身可以自由的在合約間移動,執行任何操作,同時用戶的狀態(資產)存在用戶自己的存儲空間。
用戶從 swap 入口進入,從自己的余額提取 usdt,交換,存儲可以在同一個交易里原子化完成。這種模式給合約帶來更自由的組合模式,可以玩出很多 EVM 上很難實現的組合玩法,這也是 EVM 上的賬戶抽象方案想實現的模式。當然,這也帶來了新的安全挑戰。
BTFS V2.2.1主網- Wirth已上線:據官方消息,BTFS V2.2.1主網- Wirth已上線,更新內容包括:節點聲譽體系;Dashboard新增配置管理相關選項;支持通過URL參數配置API endpoint地址。
BitTorrent文件系統(BTFS)既是一種協議,也是一種網絡應用,它提供了一種內容可尋址的點對點機制,用于在去中心化的文件系統中存儲和共享數字化內容,同時,它也為去中心化應用(Dapp)提供了一個基礎平臺。BTFS團隊一直在根據最新的網絡運行情況和BTT市場行情等,進行上傳價格、空投獎勵方案等一系列動態調整。[2022/9/2 13:04:36]
那 EVM 中能否直接增加一個特性,讓合約間的調用可以把用戶身份直接帶過去?這個技術上是可以實現的,但 EVM 中支持動態調用,可以調用任意地址的合約,讓這種操作的風險變的很難度量,同時 EVM 的狀態變更對用戶和錢包都不友好,錢包很難通過狀態變化對用戶進行提示。
數據:5月11日以來USDT流通供應量下降172.4億美元:8月8日消息,CoinMarketCap統計數據顯示,5月11日以來,USDT的流通供應量下降了172.4億美元,同期USDC供應量增加了73億美元,BUSD供應量也增加7億美元,DAI供應量減少了16億美元。此外7月20日左右USDT、USDC、BUSD、DAI四個穩定幣的總市值歷史上首次高于以太坊總市值。[2022/8/8 12:09:34]
而 Move 中解決這個安全挑戰有兩個方法:
1. 在預執行合約的時候把合約執行后的狀態變更提示給用戶,讓用戶可以知道這個交易操作了自己的哪些重要資產,以及執行后的結果。這個方法 StarMask 中已經實現,參看鏈接以及附圖 https://starcoin.medium.com/starmask-v4-6-
2. 可能有部分合約可以通過設置條件,讓一部分用戶預執行的時候無法發現狀態變更。@0xmetazen 的分析 https://twitter.com/0xmetazen/status/1582581013972414465 ,但 Move 中沒有動態調用,合約在部署時,它的執行邏輯就是確定的。可以通過靜態分析字節碼,得到合約所有可能路徑上操作的狀態,在區塊瀏覽器或錢包里提示給用戶。
EVM 和 Move 的兩種方案,帶來的安全風險是不一樣的。Approve 方案的安全風險是把一個即時的授權變為長期授權,它的風險不是立刻發生的,比如合約漏洞未被發現或者惡意合約放長線釣大魚。而一旦發生,用戶往往很被動,很多用戶可能都忘記授權過哪些合約了。
而 Move 的方案給了合約更大的自由權,遇到惡意合約會有較大風險,但這種風險是即刻發生的,是可以通過技術手段來檢測的。最壞的情況,至少前面沖的快到人趟坑了,可以給后面的人警示,惡意合約會快速暴露出來。
最后,世上沒有銀彈,不可能靠用了某種技術就解決了所有安全問題,需要鏈,工具,用戶一起努力。
對 Move 用戶的安全建議:
1. 選用狀態變更提示更完備的錢包,并嘗試理解錢包的提示。
2. 不要隨意和來源未知或未開源的 DApp 交互。
3. 如果做不到上面兩點,可以等別人先趟一下坑。
Move 在安全方面的挑戰以及改進方案不僅僅是這些,我會在《為什么是 Move》系列的安全篇里詳述,想了解的朋友可以關注一下。
區塊律動BlockBeats
媒體專欄
閱讀更多
金色早8點
金色財經
1435Crypto
吳說區塊鏈
blockin
比推 Bitpush News
Block unicorn
Foresight News
Odaily星球日報
Bankless
DeFi之道
原文作者:WHeart其實在很早之前,我就計劃寫一篇《Web3 新手教程》,送給 想要進入Web3 或者 剛剛進入Web3 的小伙伴,但是考慮到兩點原因,我還是打算把這件事推遲一些時日.
1900/1/1 0:00:00橋是一種通信協議,用于促進區塊鏈之間的信息傳輸(消息、資金或其他數據)。建造橋雖然有用,但卻是一件有風險的事情。區塊鏈歷史上最代價慘重的一些黑客攻擊都僅針對橋.
1900/1/1 0:00:00加密貨幣在2021年實現了巨大的飛躍,而到了今年,由Terra事件引發的大崩盤延續至今,也許大家對這個領域一直反反復復的"夏去冬來"并不感到陌生了.
1900/1/1 0:00:00出品:LD Capital Research作者:0xRJ_eth(Twitter:@0xRJ_eth)今天主要是從一個自上而下結合時間發展的視角整理了以太坊擴容方案.
1900/1/1 0:00:00隨著香港金融科技周、新加坡金融科技周的結束,Web 3領域的相關話題也被徹底引爆,從香港和新加坡當地政府的態度來看,東南亞已然成為了Web 3從業者的天堂.
1900/1/1 0:00:00公共物品在任何大規模生態系統中都是一個非常重要的話題,但通常也是一個難以定義的話題。這里有三種不同的定義:經濟學家:非排他性和非競爭性物品,這兩個技術術語合在一起意味著很難通過私有財產和基于市場.
1900/1/1 0:00:00