比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads

解構智能合約_NCE

Author:

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

第一部分·前言

想象一下,你正在駕駛著1969年的MustangMach在美國西部的公路上快速行駛,陽光照耀在華麗的鍍金輪輞上,整條道路只有你和沙漠,一望無際的地平線見證著你和落日的追逐......心曠神怡間,突然一身巨響,你335馬力的快馬被滾滾的白煙吞沒,瞬間變成了蒸汽機車,于是你被迫停在路邊。你打算看看出現了什么問題,當你翻開前車蓋,發現自己完全看不懂。你根本就不知道這該死的機器是怎么工作的,于是你拿起手機準備求救,發現附近沒有信號......

上面描述的情形是不是和你正在做的DApp開發很像?在開發Dapp的過程中,在類比中,豪車是你的智能合約,輪輞和改造過的地方是那些經過深思熟慮的小細節。而一旦出現問題,你就需要在智能合約EVM字節碼中尋找答案,大部分情況下你都完全不知道發生了什么。如果你是Dapp的開發者,并且遇到過上面的尷尬狀況的話,那么以后再也不用擔心了!因為,本系列文章的目的就是解構一個簡單的Solidity合約,查看其字節碼,并將其分解為可識別的結構,直至最低級別。我們將打開Solidity這臺跑車的引擎蓋。在本系列的最后,您在查看或調試EVM字節碼時應該感覺很舒服。本系列的重點是揭開Solidity編譯器生成的EVM字節碼的神秘面紗,它真的比它看起來簡單得多。以下是我們解構時要使用到的智能合約代碼:pragmasolidity^0

EraLend確認遭到攻擊,已暫停所有借款業務:7月25日消息,zkSync生態借貸協議EraLend團隊在Discord發布公告稱,已監測到一起安全事件發生在UTC時間7月25日9:27:21,確認其平臺遭受攻擊。團隊表示,攻擊已經得到控制,攻擊者已經無法繼續行動。受影響的范圍目前正在評估中,并將進一步公布。作為預防措施,EraLend已經暫時暫停了所有的借款操作,以確保資金的安全。目前EraLend正在與跨鏈橋合作伙伴和zkSync合作,以防止任何進一步的可能的資產流出。同時,EraLend正在與網絡安全公司緊密合作,以確定這次攻擊的來源。

EraLend提醒,只有USDC受到了這次事件的影響。所有其他資產仍然安全且未受影響,強烈建議用戶在此時不要存入USDC。[2023/7/25 15:58:00]

functiontotalSupply()publicviewreturns(uint256){returntotalSupply_;}functiontransfer(address_to,uint256_value)publicreturns(bool){require(_to!=address(0));require(_value<=balances);balances=balances-_value;balances=balances+_value;returntrue;}functionbalanceOf(address_owner)publicviewreturns(uint256){returnbalances;}}注意:此合約容易受到溢出攻擊,我們只是為了說明問題,所以力求簡潔。

觀點:SEC可能對XRP案提出上訴,使情況進一步復雜化:金色財經報道,LBank Labs高級研究員Johnny Teng在一份報告中表示,由于投資者采取謹慎立場,交易區間仍然相對狹窄,這主要是受到XRP法律案件持續發展的影響。SEC主席Gary Gensler對法院對XRP代幣證券化的裁決表示失望,這增加了不確定性,SEC可能提出上訴,使情況進一步復雜化。美國政府出售沒收的比特幣和短期持有者獲利的預期拋售壓力,再加上機構參與者的大力支持以及24,300美元左右的大量流動性的存在,正在導致比特幣市場的不確定性加劇,投資者需要謹慎決策。[2023/7/24 15:54:33]

編譯合約

為了編譯合約,我們將使用Remix。當你打開Remix編譯器,單擊文件瀏覽器區域上方左上角的+按鈕,創建新的智能合約。將文件名設置為BasicToken.sol。創建好之后,將上面的代碼粘貼到編輯器上。在右側,轉到“Setting”的選項中,確保選中了“EnablePersonalMode”。另外,要注意選擇的Solidity編譯器版本是“version:0.4.24+commit.e67f0147.Emscripten.clang”。這兩個細節非常重要,否則你將無法查看文中討論的字節碼。接下來,你可以進入Compile選項并單擊Details按鈕,你會看到一個彈出窗口,里面包含Solidity編譯器生成的所有東西,其中一個是名為BYTECODE的JSON對象,它具有“object”屬性,這個就是編譯的合約代碼,它的代碼是這樣的:608060405234801561001057600080fd5b5060405160208061021783398101604090815290516000818155338152600160205291909120556101d1806100466000396000f3006080604052600436106100565763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166318160ddd811461005b57806370a0823114610082578063a9059cbb146100b0575b600080fd5b34801561006757600080fd5b506100706100f5565b60408051918252519081900360200190f35b34801561008e57600080fd5b5061007073ffffffffffffffffffffffffffffffffffffffff600435166100fb565b3480156100bc57600080fd5b506100e173ffffffffffffffffffffffffffffffffffffffff60043516602435610123565b604080519115158252519081900360200190f35b60005490565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205490565b600073ffffffffffffffffffffffffffffffffffffffff8316151561014757600080fd5b3360009081526001602052604090205482111561016357600080fd5b503360009081526001602081905260408083208054859003905573ffffffffffffffffffffffffffffffffffffffff85168352909120805483019055929150505600a165627a7a72305820a5d999f4459642872a29be93a490575d345e40fc91a7cccb2cf29c88bcdaf3be0029沒錯,這些代碼完全沒有可讀性。

Binance.US預計在24小時內恢復簽名銀行的ACH存取款服務:3月30日消息,Binance.US發言人表示,Binance.US預計將在24小時內恢復簽名銀行(Signature Bank)的自動清算中心(ACH)存取款服務。(The Information)[2023/3/30 13:34:34]

部署合約

接下來,轉到Remix中的Run部分。首先,確保您使用的是JavascriptVM。這基本上是一個嵌入式JavascriptEVM+網絡,理想的以太坊訓練場。確保在ComboBox中選擇了BasicToken,并在Deploy輸入框中輸入數字10000。接下來,單擊“Deploy”按鈕進行部署。這部署的是我們創建的BasicToken智能合約實例,最初提供的10000個token由當前在ComboBox帳戶頂部選擇的帳戶擁有,該帳戶會保留我們設置的所有token供應。在“Run”選項卡的“DeployedContracts”中,您可以看到已部署的智能合約,其中包含與合約進行交互的三個字段:transfer,balanceOf和totalSupply。在這里,我們能夠與剛剛部署的智能合約實例進行交互。但在此之前,讓我們來看看合同的“Deploy”究竟是什么意思:在頁面底部的控制臺區域中,你可以看到一條日志“creationofBasicTokenpending...”,然后是一個包含各種字段的事務條目:from,to,value,data,logs和hash。單擊此條目以展開交易信息,你應該看到transaction的date、input,以及我們上面提到的字節碼。所以,創建一個智能合約實例,其中會包含自己的地址和代碼。我們將在下一篇文章中詳細研究這transaction個過程。反匯編字節碼

加密貨幣創新委員Linda Jeng:美國必須建立明確的加密貨幣規則:金色財經報道,加密貨幣創新委員會首席全球監管官Linda Jeng表示,美國必須建立明確的加密貨幣護欄,否則就有可能在創新和市場領導地位方面落后于其他國家。Jeng說“如果你想廣泛采用加密貨幣,你需要制定道路規則。”她說,世界其他地區的立法正在以更快的速度推進。例如,歐盟全面的加密資產市場 (MiCA) 立法如果獲得通過,將為其 27 個成員國提供更強大的加密規則。然而,對該立法的表決已推遲到 4 月。

Jeng表示,包括英國、澳大利亞和香港在內的其他司法管轄區正在制定并“通過磋商”。但她說,世界某些地區仍然存在“混合信號”。例如,在亞洲,香港有興趣向加密貨幣開放其零售市場,而新加坡則更愿意關閉它。Jeng說,“誰是先行者,誰就能影響世界其他地區的法規。”[2023/1/26 11:30:09]

在控制臺中心,transaction框框的右側,有個“debug”按鈕。點擊這個按鈕,你將激活Remix右側區域中的Debugger選項。我們可以一起看看Instructions部分,如果向下滾動,應該是出現以下內容:000PUSH180002PUSH140004MSTORE005CALLVALUE006DUP1007ISZERO008PUSH20010011JUMPI012PUSH100014DUP1015REVERT016JUMPDEST017POP018PUSH140020MLOAD021PUSH120023DUP1024PUSH20217027DUP4028CODECOPY029DUP2030ADD031PUSH140033SWAP1034DUP2035MSTORE036SWAP1037MLOAD038PUSH100040DUP2041DUP2042SSTORE043CALLER044DUP2045MSTORE046PUSH101048PUSH120050MSTORE051SWAP2...為了確保你前面的操作沒有出錯,你可以把你所操作的Remix編譯器中看到的內容與上面進行比較。這其實就是合約的反匯編字節碼。如果您按字節掃描原始字節碼,則EVM會識別與特定操作關聯的特定操作碼。例如:0x60=>PUSH0x01=>ADD0x02=>MUL0x00=>STOP...反匯編的代碼非常低級并且很難看懂,但是我們可以通過這種方式可以開始理解它。Opcode

外媒:FTX與Kraken接觸,尋求潛在的救援交易:金色財經報道,FTX已經與總部位于美國的加密貨幣交易所Kraken就潛在的救援交易進行了接觸。兩位熟悉此事的人士表示,談判的細節還不清楚,它們可能繼續進行,也可能破裂。(the block)[2022/11/10 12:45:33]

在解構智能合約代碼開始之前,你將需要一個基本的工具集理解單個opcode,如PUSH,ADD,SWAP,DUP等的操作碼,到最后,每個操作嗎只能從EVM的堆棧,內存或屬于合約的存儲中壓入一個項或消費一個項。要查看EVM可以處理的所有可用操作碼,可以查看Pyethereum,上面顯示了操作碼列表。要了解每個操作碼的工作原理,Solidity官方的匯編文檔也是一個很好的參考。即使它不是與原始操作碼一一對應,但是非常接近。如果你能讀懂技術文檔,可以閱讀以太坊黃皮書,其實歸根結底都是上面的內容。雖然和大家推薦了這么多文檔,現在從頭到尾閱讀這些資源沒有什么意義,你只要記住有這么個資料就行,我們將在需要的時候使用到它們。指令上面反匯編代碼中的每一行都是EVM執行的操作指令,每條指令都包含一個操作碼,例如,讓我們采用其中一條指令,指令88,將數字4推送到堆棧。這個特殊的反匯編程序解釋說明如下:88PUSH10x04|||||Hexvalueforpush.|OpcodeInstructionnumber盡管反匯編的代碼能讓我們更加理解底層的東西,但它還是讓人摸不著頭腦。我們需要一個能夠解構所有問題的方法。策略

任何一開始看上去不可能完成的任務,其實都可以通過不斷的拆解,分解成可以解決的任務,我們遇到的問題也不例外,面對這個問題,我所采取的策略就是“分而治之”。我們可以試圖找到反匯編代碼的分叉點,并逐漸分解,直到分解成很小的塊,我們將在Remix的調試器中逐步完成。在下圖中,我們可以看到我們對反匯編代碼進行的第一次拆分。

如果你不了解圖表,也不要擔心,你不用一開始就什么都會,我們的系列文章將會循序漸進的介紹。現在就跟著我們的節奏,不斷深入你的豪車的內部結構吧。*本文由AlejandroSantander首發于medium,由獵豹區塊鏈安全翻譯并整理*獵豹區塊鏈安全以金山霸的技術為依托,結合人工智能、nlp等技術,為區塊鏈用戶提供合約審計、情感分析等生態安全服務。您可訪問Ratingtoken官網了解更多

Tags:FFFPUSHUSHNCEFFF價格push幣怎么樣LUSHIBinance dog

pepe最新價格
什么是共識?從可口可樂硬分叉中想到的_BIT

本文來自:碳鏈價值,作者:楊澤,星球日報經授權轉發。“產品性能更強就會得到更多的共識嗎?又或者:共識僅僅是表面的一套程序嗎?答案是否定的.

1900/1/1 0:00:00
波場變形記:揮舞著百億鈔票的RMB玩家_RON

本文來自:鏈捕手,作者:龔荃宇,編輯:李曌,星球日報經授權轉發。成功的營銷策略伴隨著17年ICO的火爆與野蠻生長,加密貨幣市場出現一大批投機的傳銷項目、空氣項目,主要特征是技術含量低、缺乏真實應.

1900/1/1 0:00:00
穩定幣行業簡析_Terra

1、什么是穩定幣1.1定義穩定幣為加密貨幣的一種,旨在最大限度地降低價格波動性。穩定幣的底層邏輯是在建立整個區塊鏈世界的支付體系.

1900/1/1 0:00:00
通證經濟學,那些你不能不知的事!系列(二)通證經濟學中的宏觀命題_PART

編者按:本文來自TritonPartners,作者:TritonPartners,Odaily星球日報經授權發布.

1900/1/1 0:00:00
無幣區塊鏈代表未來?淺談聯盟鏈以及對 Hyperledger、 Corda、FISCO BCOS 的比較_區塊鏈

作者:jolestar最近流行一個說法是幣圈涼了,無幣區塊鏈代表未來。一直以來對區塊鏈技術有幾種看法:只有比特幣,沒有區塊鏈.

1900/1/1 0:00:00
星物種 | 錨定黃金的穩定幣GGC,想通過ICC的形式搶灘穩定幣市場_MAS

最近加密市場幣價大跌,比特幣甚至一度跌破3500美元關口,熊市之下,穩定幣成為投資者避險的工具,多個穩定幣被爆大量增發。穩定幣在今年的加密市場格外惹眼,不僅僅因為加密市場的熊市.

1900/1/1 0:00:00
ads