買比特幣 買比特幣
Ctrl+D 買比特幣
ads
首頁 > DYDX > Info

DATA:教你用ETH進行聊天-ODAILY_Future data network

Author:

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

前言

前段時間,PolyNetwork被盜事件的一個小插曲,一地址向黑客地址轉賬在inputdata中告知其USDT已被凍結,不要使用USDT,黑客知曉后向該地址轉賬13.37ETH。

事后很多人便通過inputData在區塊鏈上“聊天”向黑客“索要”虛擬貨幣,那么我們經常在區塊鏈瀏覽器中看到的inputData到底是什么?知道創宇區塊鏈安全實驗室為您解答。

Inputdata

在以太坊協議中,當交易為合約創建時,inputdata是賬戶初始化程序的EVM代碼;

而當交易為消息調用時,inputdata是合約函數調用數據。

正常情況下簡單的消息調用如調用轉賬函數時需要填寫你要轉賬的地址_to和你要轉賬的數量_amount,這些基本信息都包含在inputdata里面。

我們通過一個調用合約的轉賬交易具體分析,來理解消息調用時inputdata的結構。

解析形式:

原始形式:

譚建榮:數字經濟要以數字技術為基礎,數字技術中尤其以數字孿生和元宇宙技術為重點:金色財經現場報道,由南京市建鄴區人民政府、中國產學研合作促進會、中國移動通信聯合會員宇宙產業工作委員會、南京信息工程大學主辦的“南京2023元宇宙應用共創大會”上,中國工程院院士、浙江大學教授、南京信息工程大學元宇宙研究院首席科學家譚建榮發表主題為《元宇宙:從“概念”到產業變革的驅動力》的演講,指出數字化是數字經濟的重要基礎,數字經濟要以數字技術為基礎,數字技術中尤其以數字孿生和元宇宙技術為重點,如果把元宇宙技術與人工智能結合起來,就能構建起栩栩如生的數字空間,以虛控實、虛實結合,能夠同時拉動數字空間與物理空間的消費。[2023/5/23 15:20:35]

我們將原始的inputdata分為三個部分進行分析:

0xa9059cbb:函數標識符

000000000000000000000000345d8e3a1f62ee6b1d483890976fd66168e390f2:第一個參數為address即你要轉賬的地址,并補位到32字節即64個16進制字符

0000000000000000000000000000000000000000000054b7d8ed70650b290000:第二個參數為value即你要轉賬的數量,并補位到32字節即64個16進制字符

通過對比分析我們可以發現inputdata的基本結構為函數標識符+參數。

鏈游公會YGG子公司YGG Japan完成約309萬美元私募融資:1月30日消息,鏈游公會YGG子公司YGG Japan完成4億日元(約309萬美元)私募融資,Square Enix、SEGA、GREE、MARBLEX、enish、Adways Ventures、Coincheck、Gate.io Labs、Vector、Infinity Ventures Crypto (IVC)、CAICA DIGITAL、Days Inc.、Emoote、Arriva Studio、Calorful Marketing 、Kingdomverse、ForN Gaming Guild、Eureka Entertainment共18家公司參投。新資金將用于招聘、產品研發和游戲推廣。通過此輪融資,YGG Japan累計融資金額達到約7.5億日元(約合580萬美元)。

此前去年7月份消息,YGG Japan完成280萬美元種子輪融資,Animoca Brands等參投。[2023/1/30 11:36:23]

函數標識符

這里的函數標識符即為函數選擇器,根據官方文檔可知函數選擇器是某個函數簽名的Keccak哈希的前4字節。

我們可以通過代碼bytess4(keccake256("transfer(adddress,uint256)"))或者在線工具獲取這種函數簽名。

下圖可以看出加密結果的前四個字節(a9059cbb)跟inputdata中函數標識符一致。

Ari Paul:BTC在2024年底會超過11萬美元:金色財經報道,區塊鏈投資公司Blocktower Capital創始人Ari Paul在社交媒體上稱,我認為BTC在2024年底會超過11萬美元。(目前的價格是23000美元)。 如果我們只考慮當前的周期,感覺是相對激進的預測,但放大到2017年,感覺是相當合理的。我們現在已經有5年的價格壓縮期了。沒有什么是可以保證的,沒有人知道未來,我只能提供有根據的猜測。要怎樣才能做到這一點呢?目前BTC市值為4430億美元,我們將有大量新的加密貨幣交易產品(基金、交易所產品等),可以像GBTC那樣帶來可觀的法幣收入。

此外,11萬美元將是2021年ATH的2倍。在目前的宏觀環境下,這對我來說是可信的,但具有挑戰性。如果我們回到宏觀風險上,只是回到2021年狂熱的一半,11萬美元感覺是相當保守的。

這個預測如果是錯的?如果我們出現全面衰退,下個季度股票下跌30%,我的基本情況將是BTC的新低點。 也許我們在2024年底低于12000美元,而不是高于110000美元。 還有許多其他風險。[2023/1/29 11:34:38]

這里之所以要將函數簽名截斷到四個字節是考慮到Gas成本問題。

在一筆交易中0字節需要支付4gas,而非0字節需要68gas也就是0字節的17倍。

在SHA-3加密中生成的32字節隨機字符串更傾向于多的非0字節,所以大概成本是32x68=2176gas,而截斷成本大概為4x68=272gas,可見截斷到四個字節能夠節省約8倍的gas費。

而函數標識符的作用是指定調用哪一個函數,在同一個合約中兩個不同函數的SHA-3簽名的前4字節相同的概率是十分小的,所以截斷到四個字節實際不會影響函數調用。

NFT銷售額連續第二年在圣誕節前后下滑:金色財經報道,據NFT數據跟蹤器CryptoSlam的數據,在2021年,NFT交易量從12月22日的8080萬美元下降到12月25日的6430萬美元。

與2021年相比,2022年的圣誕交易量下降了80%,原因是今年的加密貨幣市場不景氣。這種低迷對NFT市場交易影響很大,導致過去八個月的交易量連續下降,值得一提的是,Yuga Labs的Bored Ape Yacht Club的底價在假期前上漲。(TheBlock)[2022/12/29 22:13:36]

參數

在evm執行字節碼的約定中,靜態類型左補齊零至64長度,而動態類型則是右補齊零至64長度。

歸納下常見的靜態類型:uint,bool,Address,bytes,動態數組類型:bytes,string,address,bytes32.....

我們通過pyethereum的ABI編碼函數來研究不同數據類型的編碼方式。

靜態類型

先導入encode_abi函數

importrlpfromethereum.abiimportencode_abi

我們以函數transfer(address,uint256)為例

>encode_abi(,

).hex()

000000000000000000000000345d8e3a1f62ee6b1d483890976fd66168e390f2

Mechanism Capital聯創Andrew Kang:從基本面來看“ETH很貴”:金色財經報道,加密投資公司Mechanism Capital聯合創始人兼合伙人Andrew Kang在社交媒體對以太坊基本面進行了分析,他表示,以太坊gas價格已經回到“DeFi Summer”之前的水平,但ETH價格已經較峰值下跌了75%,網絡收益/活動下降幅度更大,在ETH交易價格峰值時,其市盈率為33倍,但現在是123倍,如果按照前者計算,ETH合理的交易價格是360美元,所以從基本面來看,ETH很貴,但風險投資持有大量潛在資本,可以在高位購入ETH“買貴”,這可能導致ETH在33倍市盈率以上觸底。ETH可以被看做是是一種“商品-貨幣-股權”的混合體,市盈率的重要性在牛市中無關緊要,但在熊市中卻是底部設定者密切關注的。[2022/7/18 2:19:59]

0000000000000000000000000000000000000000000000000000000000000001

對于小于32字節的定長數組會被自動填充到32字節:

>encode_abi("],).hex()

//自動填充0

0000000000000000000000000000000000000000000000000000000000000001

0000000000000000000000000000000000000000000000000000000000000002

0000000000000000000000000000000000000000000000000000000000000003

動態類型

動態類型編碼要稍微復雜一些,需要先計算偏移量進行占位處理,我們通過一個簡單的例子來具體說明。

>encode_abi(","uint256","uint256"],

,,]

).hex()

//參數1的偏移量:32*3=96十六進制0x600000000000000000000000000000000000000000000000000000000000000060

//參數2的偏移量=參數1偏移量+參數1數據部分長度=96+32*4=224十六進制0xE000000000000000000000000000000000000000000000000000000000000000e0

//參數3的偏移量=參數2偏移量+參數2數據部分長度=224+32*4=352十六進制0x1600000000000000000000000000000000000000000000000000000000000000160

//偏移量0x60位置開始傳入參數1的數據

0000000000000000000000000000000000000000000000000000000000000003//元素個

00000000000000000000000000000000000000000000000000000000000000a1//第一個數組元素

00000000000000000000000000000000000000000000000000000000000000a2//第二個數組元素

00000000000000000000000000000000000000000000000000000000000000a3//第三個數組元素

//0xe0位置。參數2的數據

0000000000000000000000000000000000000000000000000000000000000003

00000000000000000000000000000000000000000000000000000000000000b1

00000000000000000000000000000000000000000000000000000000000000b2

00000000000000000000000000000000000000000000000000000000000000b3

//0x160位置。參數3的數據

0000000000000000000000000000000000000000000000000000000000000003

00000000000000000000000000000000000000000000000000000000000000c1

00000000000000000000000000000000000000000000000000000000000000c2

00000000000000000000000000000000000000000000000000000000000000c3

短地址攻擊

經過前面的分析當靜態類型如address長度不足32字節時EVM會根據規則將長度補齊到32字節,如果當轉賬的地址以00結尾,如0x641988625108585185752230bde001b3ebd0fc00,轉賬時將地址后面的兩個零去掉,EVM依然會認為address_to是32位的,所以它會從_value的高位取0來補充,amount的位數會多兩位也就是會乘以256。

攻擊過程如下:

將惡意轉賬地址最后一個字節的0去掉

函數標識符:a9059cbb

轉賬地址:

000000000000000000000000641988625108585185752230bde001b3ebd0fc

轉賬金額:

00000000000000000000000000000000000000000000000000000000000000001

由于EVM的補位規則,解析結果為:0xa9059cbb000000000000000000000000641988625108585185752230bde001b3ebd0fc0000000000000000000000000000000000000000000000000000000000000000100

我們分解后發現,轉賬金額已經多了兩位也就是多了一個字節,即為原來轉賬的256倍

函數標識符:a9059cbb

轉賬地址:

000000000000000000000000641988625108585185752230bde001b3ebd0fc00

轉賬金額:

00000000000000000000000000000000000000000000000000000000000000100

如何在inputdata附著信息

在以太坊中直接進行轉賬交易的inputdata字段默認是沒有內容的,但是我們可以通過設置錢包實現文章開頭的“聊天功能”。

我們以MetaMask錢包為例展示如何通過轉賬在inputdata字段附著一些額外的信息。

1、首先我們需要打開錢包高級選項的顯示十六進制數據開關

2、在轉賬時將你要附著的信息通過十六進制編碼后填入下方十六進制數據中,記得在開頭加上0x然后進行轉賬

3、轉賬成功后在etherscan中就能夠看到附著信息

總結

我們能夠通過交易中的inputdata將一些信息永久存儲在區塊鏈中,可以通過此項技術在食品藥品監管部門的產品防偽溯源、財稅部門的電子票據打假驗真、學術成果存證等方面實現應用落地。

Tags:DATPUTUTDDATAHealth Data Chainintelligencefogcomputerchainutd幣合法嗎Future data network

DYDX
OOT:Footprint:如何尋找有增長潛力的NFT項目?-ODAILY_RIN

撰文:Footprint分析師Vincy(vincy@footprint.network) 日期:2021年11月 數據來源:NFTDashboardNFT與2019年DeFi一樣.

1900/1/1 0:00:00
區塊鏈:五個顯示金融領域區價值的塊鏈用例-ODAILY_數字貨幣詐騙案例大全

金融業通過對區塊鏈技術進行大量投資以及擴大其使用范圍,繼續在區塊鏈應用方面處于領先地位。德勤2020年3月關于區塊鏈趨勢的報告顯示,38%的金融服務公司預計在未來一年內對區塊鏈技術投資500萬美.

1900/1/1 0:00:00
PRINT:Footprint周報:公鏈Fantom暴漲,AnySwap貢獻超40%成最大第三方跨鏈橋-ODAILY_PRI

撰文:Footprint分析師Simon(simon@footprint.network) 日期:2021年10月 本周概況: I.TVL 本周據FootprintAnalytics數據顯示.

1900/1/1 0:00:00
NAN:「 Web 3.0—World Online 」 線下活動圓滿落幕,Web 3.0 蓄勢待發-ODAILY_WOR

2021年12月22日,由WorldMobile、IOHK主辦,Blocklike、DreamLabs聯合主辦的以「Web3.0—WorldOnline」為主題的線下活動在上海圓滿落幕.

1900/1/1 0:00:00
NFT:Element平臺發布NFT打新資產推薦活動,用戶可免費獲得心儀資產-ODAILY_LEM

官方消息,去中心化NFT多鏈交易平臺Element在推特上發布了“你推薦,我買單”的NFT打新資產推薦活動,用戶將自己心儀的NFT打新資產在社區進行分享,收獲最多互動的用戶將成為最終贏家.

1900/1/1 0:00:00
USDT:一套能夠即時(但限比率)存入提取的Optimistic Bridge 設計-ODAILY_usdt幣好賣嗎

本文是QuarkChain創始人兼CEO周期博士在ethresear.ch上提出的可即時存入提取的Optimistic跨鏈橋方案.

1900/1/1 0:00:00
ads