當前位置:首頁 » 以太坊知識 » 以太坊call函數發起方

以太坊call函數發起方

發布時間: 2025-04-03 17:46:38

A. GSN這個項目來自哪裡

什麼是GSN

以太坊來說,轉賬、發Token、調用合約等交易都是需要支付手續費Gas,不能白piao,Gas是保障以太坊網路穩定運行的重要手段。
然而在現實生活中,為了推廣產品,免費甚至補貼用戶是互聯網企業慣用的獲客手段,普羅大眾早已被這些企業教育的習慣了白P。
如果企業開發了一款Dapp,想要推廣到市場,告訴用戶「我們這是基於區塊鏈的,你要想使用得先去買得以太幣,哦,現在一個以太幣要3000多人民幣!」,估計大多數人直接轉身離開,剩下得大多數直接跳腳罵娘了,只有很少數極客可能會去體驗下。這也是Dapp很難被大眾接受的一個重要原因。

為了解決這個問題,GSN應運而出!
GSN的全稱是Gas Station Network,翻譯過來就是加油站網路。GSN將本該由用戶支付的Gas轉嫁到了其它願意為用戶買單的人身上(一般為Dapp開發者),並且能夠保證交易的真實性。
image.png

GSN目前有兩個版本,v1和v2,在實現和流程上有所不同。本篇內容是基於v2版本整理。
二、相關角色

2.1 客戶端-Client

客戶端也就是各種Dapp,是GSN架構的最上層。客戶端負責發起對原交易進行簽名,並將簽名後的原交易發送到中繼伺服器中。

2.2 中繼伺服器-RealServer

中繼伺服器主要用來處理用戶的元交易請求,主要的功能包括:

通過調用中繼路由(RelayHub)合約,判斷付款人(Paymaster)是否允許為該筆交易支付手續費,並且有足夠的以太幣
中繼伺服器將交易發送到鏈上
對於中繼伺服器,多個客戶端可以使用一個,也可以一個客戶端對應一個。
2.3 付款人-Paymaster

付款人交易Gas的實際支付者。付款人是一個智能合約,該合約最重要的是交易過濾器」 acceptRelayedCall「,決定了可以為哪些交易支付費用。
常用的過濾器包括:

白名單
令牌認證
對特定方法放行
鏈下委託授權
2.4 中繼路由-RelayHub

中繼路由本身是一份智能合約,提供的功能包括:

維護一份中繼器列表,供客戶端查詢
提供RelayHub.balances[recipient]方法,供中繼伺服器在支付Gas前檢查Dapp開發者已存入足夠的ETH
中繼路由合約可以自行部署,也可以直接使用GSN提供的。自行部署的RelayHub無法共享已存在的中繼器。
以太坊主網上的RelayHub合約地址:
2.5 中繼接收合約-RelayRecipient

每個支持GSN的DApp都需要繼承RelayRecipient,並提供與RelayHub通信的介面。在部署Dapp合約時,需要初始化RelayHub的地址。
需要注意的是,在繼承RelayRecipient合約後,使用_msgSender()替代msg.sender獲取元交易的用戶信息。

B. Consensys CTF - "以太坊沙盒"

Consensys CTF “以太坊沙盒”的解答如下

一、合約解析

  • 首先,通過contractlibrary.com網站解析二進制代碼,得到了一個典型的Solidity源碼結構。
  • 合約包含4個函數和兩個uint256[]數組全局變數。

二、函數分析

  • 合約中的函數包括對array_0的賦值、set_array、owners以及一個復雜的涉及delegatecall的函數40x2918435f。
  • 函數40x2918435f復雜,需滿足三個條件,其中一個條件是msg.sender必須是owner數組中的一員。

三、owner數組的改變

  • 在沒有直接設置owner數組的函數下,可以通過set_array間接改變owner數組。
  • 利用Solidity中動態數組在storage的存儲方式,計算array[0]和owner[0]對應的storage key差值,通過set_array方法調整owner數組。

四、滿足第三個條件

  • 構造一個不含特定位元組的合約。
  • 通過手動編寫合約並利用ctf的第四個函數delegatecall該合約,實現清理sandbox中的ETH。

五、利用create2函數

  • 使用create2函數創建臨時合約。
  • 將合約地址作為參數贈予該臨時合約,其初始化代碼執行selfdestruct函數,轉移所有ETH至合約部署人。

六、完成清理過程

  • 通過opcode編寫runtime code,部署HackCTF合約。
  • 調用ctf的第四個函數,將合約地址作為參數傳入,完成清理過程。

以上方法提供了對以太坊沙盒合約的深入理解和破解策略,旨在幫助理解合約的攻擊與防禦機制。

C. 以太國際空間誰知道怎麼玩。EIS幣怎麼交易

現在我們大家都很關注關於以太坊方面的問題,那麼關於以太幣怎麼交易?我想我們大家應該會很想了解一些內容,那麼下面就讓我們小編在這里就來為大家好好的介紹一下很多內容關於以太幣怎麼交易?以太坊的交易最直觀解釋:從外部賬戶發送到區塊鏈上的另一個賬戶的消息和簽名的數據包。

包含如下內容:
發送者的簽名
接收的地址
轉移的數字貨幣數量等內容
以太坊上的交易都是需要支付費用,和比特幣以比特幣來支付一定的交易費用不同,以太坊上固定了這個環節,那麼這個間接理解是以太坊的一種安全防範錯誤,防止了大量的無意義的交易,保證一定的安全性,特別是智能合約的創建、執行、調用都需要消耗費用,那麼也保證了整個系統的穩定性,防止了一些鏈上無意義的惡意行為。
交易手續費
以太坊的核心是EVM,以太坊虛擬機,那麼在EVM中執行的位元組碼都是要支付費用。也就是經常看到的Gas、Gas limit、Gas Price這幾個概念。
Gas:字面理解就是汽油,以太坊和日常的汽車一樣需要Gas才能運行。Gas是一筆交易過程中計算消耗的基本單位。有一個列表可以直觀看到在以太坊中操作的Gas消耗量:
操作Gas消耗具體內容
step1執行周期的默認費用。
stop0終止操作是免費的。
suicide0智能合約賬戶的內部數據存儲空間,當合約賬戶調用suicide()方法時,該值將被置為null。
sha320加解密
sload20在固定的存儲器中去獲取
sstore100輸入到固定的存儲器中
balance20賬戶余額
create100創建合約
call20初始化一個只讀調用
memory1擴充內存額外支付的費用
txdata5交易過程中數據或者編碼的每一個位元組的消耗
transaction500交易費用
contract creation53000homestead中目前從21000調整到53000
所以有些公司或者個人覺得區塊鏈技術去中介化,不需要中心伺服器,這種開發模式是比較便宜的,但是事實上區塊鏈的開發不比之前的那些傳統軟體開發來的便宜。
Gas Price:字面理解汽油價格,這個就像你去加油站,95#汽油今天是什麼價格。一個Gas Price就是單價,那麼你的交易費用=Gas*Gas Price,然後以以太幣來ether來支出。當然你覺得我不想支付費用,你可以設置Gas Price為0,但是選擇權在礦工手中,礦工有權選擇收納交易和收取費用,那麼最簡單的想想很難讓一個礦工去接收一個價格很低的交易吧。另外提一句,以太坊默認的Gas Price是1wei。
Gas Limit:字面理解就是Gas的限制,限制是必要的,沒有限制就沒有約束。這個Gas Limit是有兩個意思的。首先針對單個交易,那麼這個表示交易的發起者他願意支付最多是多少Gas,這個交易發起者在發起交易的時候需要設置好。還有一個是針對區塊的Gas Limit,一個單獨的區塊也有Gas的限制。
假設幾個場景來說明Gas的使用:
用戶設置Gas Limit,那麼在交易過程中,如果你的實際消耗的Gas used
用戶設置Gas Limit,那麼交易過程中,如果你的實際消耗的Gas used > Gas Limit,那麼礦工肯定發現你的Gas不足,這個交易就無法執行完成,這個之後會回滾到執行之前的狀態,這個時候礦工會收取Gas Price*Gas Limit。
區塊的Gas Limit,區塊中有一個Gas上限,收納的交易會出現不同的用戶指定的Gas Limit。那麼礦工就會根據區塊限制的Gas Limit來選擇,「合理」選擇打包交易。
具體交易
以太坊上交易可以是簡單的以太幣的轉移,同時也可以是智能合約的代碼消息。列個表格看下交易的具體內容:
代碼內容
from交易發起者的地址、不能為空,源頭都沒有不合理。
to交易接收者的地址(這個可以為空,空的時候就表示是一個合約的創建)
value轉移的以太幣數量
data數據欄位。這個欄位存在的時候表示的是,交易是一個創建或者是一個調用智能合約的交易
Gas Limit字面理解就是Gas的限制,限制是必要的,沒有限制就沒有約束。這個Gas Limit是有兩個意思的。首先針對單個交易,那麼這個表示交易的發起者他願意支付最多是多少Gas,這個交易發起者在發起交易的時候需要設置好。還有一個是針對區塊的Gas Limit,一個單獨的區塊也有Gas的限制。
Gas Price一個Gas Price就是單價,那麼你的交易費用=Gas*Gas Price,然後以以太幣來ether來支出。以太坊默認的Gas Price是1wei。
nonce用於區別用戶發出交易的標識。
hash交易ID,是由上述的信息生成的一個hash值
r、s、v交易簽名的三部分,交易發起者的私鑰對hash簽名生成。
交易分三種類型
轉賬:簡單明了的以太坊上的以太幣的轉移,就和比特幣類似,A向B轉移一定數量的以太幣。這種交易包含:交易發起者、接收者、value的數量,其餘類似Gas Limit、hash、nonce都會默認生成。所以你會看到一段代碼:
web3.eth.sendTransaction({ from: "交易發起者地址", to:「交易接收者地址」, value: 數量});
智能合約創建:創建智能合約就是把智能合約部署到區塊鏈上,那麼這個時候to是一個空的欄位。data欄位則是初始化合約的代碼。所以看到代碼:
web3.eth.sendTransaction({ from: "交易發起者地址", data: "contract binary code"});
智能合約執行:合約創建部署在區塊鏈上,那麼執行就是會加上to欄位到要智能合約執行的地址,然後data欄位來指定調用的方法和參數的傳遞,所以看到代碼:
web3.eth.sendTransaction({ from: "交易發起者地址", to:「合約執行者地址」, data:「調用的方法和參數的傳遞」});
以上大致就是交易的類型。
交易的確認
和比特幣一樣,以太坊的交易需要後續區塊確認後,節點同步後、才能確認。簡單理解就是多挖出一些區塊來,通過驗證後這一筆交易才算確認,以太坊時常會出現擁堵的情況,所以有時候需要等待確認。
轉賬、合約交易流轉
首先交易發起者A發起一筆轉賬交易,那麼發送的格式如下:
代碼具體內容
from交易發起者的地址
to交易接收者的地址
value轉移的以太幣數量
GasGas的量
Gas PriceGas的單價
data發送給接收者的消息
nonce交易編號
節點驗證:以太坊網路中會有節點收到A發送出來的消息,那麼會去檢查這個消息格式時候有效,然後計算Gas Limit。這個時候回去驗證A的以太坊余額,如果余額不足,那麼就返回錯誤,不予處理。一旦A發送的消息通過了節點的驗證,那麼節點就會把這個交易放到交易存儲池中。並廣播到區塊鏈網路。
礦工驗證:那麼寫入區塊鏈必須要礦工打包,礦工在接收到A發出的交易,會和其他交易一塊打包,普通轉賬交易打包即可,那麼合約調用的交易則需要在礦工本地的EVM上去執行調用的合約代碼,代碼執行過程中檢查Gas的消耗。一旦Gas消耗完了,那麼就回滾,如果Gas足夠那麼返回多餘的Gas。並廣播到區塊鏈網路。
其餘節點:重復節點驗證步驟,然後合約也會在本地EVM上執行驗證。通過驗證後同步區塊鏈。
首先還是發起者A發起一個創建智能合約的交易請求。格式如下:
代碼具體內容
from交易發起者的地址
to0
value轉移的以太幣數量
GasGas的量
Gas PriceGas的單價
data合約代碼
nonce交易編號
節點驗證:
以太坊網路中會有節點收到A發送出來的消息,檢查交易是否有效,格式是否正確,驗證交易簽名。計算Gas,確定下發起者的地址,然後查詢A賬戶以太幣的余額。如果余額不足,那麼就返回錯誤,不予處理。一旦A發送的消息通過了節點的驗證,那麼節點就會把這個交易放到交易存儲池中。並廣播到區塊鏈網路。
礦工驗證:
礦工將交易打包,那麼會根據交易費用和合約代碼,來創建合約賬戶,在賬戶的空間中部署合約。這里說下合約地址(智能合約賬戶的地址是有發起者的地址和交易的隨機數作為輸入,然後通過加密演算法生成)。交易確認後會把智能合約的地址返回給A。且廣播到區塊鏈網路。
其餘節點:
重復節點驗證步驟,驗證區塊,在節點的內存池中更新A的智能合約交易,同步區塊鏈,且智能合約部署在自己本地的區塊鏈中。

D. Foundry的基本使用總結

本文列舉了 foundry 中常用的命令,方便後續查閱。使用 foundry 的工具主要涉及三大組件,分別對應不同的功能,接下來將詳細介紹每個組件的使用方法和應用場景。

在使用 foundry 之前,需要先安裝。可以通過訪問 foundry 的官方網址 getfoundry.sh 進行安裝。對於 mac 系統用戶,可以使用以下命令進行安裝:

foundry

foundry 工具包含三大組件,分別是 cast、anvil 和 forge。

**cast 使用**

cast 是用於執行以太坊 RPC 調用的命令行工具。它支持智能合約調用、發送交易和檢索鏈數據等操作。cast 與 web3 的交互十分便捷,即使是非代碼開發者也能輕松使用進行鏈上數據查詢。

使用示例:

cast rpc eth_blockNumber --rpc-url=$ETH_RPC_URL

cast 支持環境變數 ETH_RPC_URL,讀取時無需在命令中體現,只需設置該變數即可。

**cast 查詢功能**

- **區塊高度**:使用 `cast rpc eth_blockNumber` 查詢。
- **區塊信息**:使用 `cast block` 查詢。
- **交易信息**:使用 `cast tx` 查詢。
- **交易回執查詢**:使用 `cast receipt` 查詢。

**使用 jq 進行數據處理**

`jq` 是一個靈活的輕量級命令行 JSON 處理器,用於處理 JSON 輸入並生成 JSON 輸出。可應用於處理 cast 查詢結果。

**交易模擬**

`cast run` 命令可用於模擬交易,以進行測試或研究特定交易場景。

**錢包相關功能**

`cast wallet new` 可創建新錢包,通過 `cast wallet sign` 進行簽名操作。此外,`cast resolve-name` 和 `cast lookup-address` 功能用於 ENS 查詢。

**合約相關功能**

在使用查看源代碼功能前,需設置 `ETHERSCAN_API_KEY` 環境變數。`cast etherscan-source` 可用於查看合約源代碼,通過 `-d` 參數保存結果。調用合約函數則使用 `cast call`。

查詢合約存儲位置的 `cast index` 命令可根據類型、鍵和槽位編號計算存儲位置。

**anvil 使用**

`anvil` 提供了模擬從主網 fork 的功能,通過 `casat —fork-url=$ETH_RPC_URL` 實現。常用命令參數包括 `—accounts`、`—balance` 和 `—fork-block-number`。

**forge-智能合約開發框架**

`forge init` 命令初始化項目,`forge build` 編譯代碼,`forge test` 進行自動化測試。日誌列印可通過 `emit log` 或 `console2.log` 實現,確保在使用 `forge test` 時使用 `—vvv` 參數以顯示列印內容。

`cheatcode` 功能允許在測試合約中通過 `vm` 修改虛擬機狀態,如 `vm.warp` 修改時間戳、`vm.startPrank` 和 `vm.stopPrank` 修改發件人、`vm.deal` 修改余額等。

`forge snapshot` 功能允許在每個測試用例的 gas 使用上創建快照,有助於優化 gas 費用。

**代碼示例**

### 修改 ERC20 代幣余額
在進行 ERC20 代幣余額修改時,可以使用 `vm.deal` 函數。如果在測試環境中未部署 ERC20 合約,可通過 fork-url 直接使用主網的 ERC20 合約。

### fork-url 在代碼中的實現
在代碼中實現 fork-url 可以通過 `vm.envAddress` 函數讀取 vm 中的環境變數地址,進而實現針對不同測試網路的靈活測試用例編寫。

本文詳細介紹了 foundry 的基本使用方法,旨在為開發者提供便捷的工具鏈,提高智能合約開發和測試的效率。通過上述指南,開發者能夠更加熟練地掌握 foundry 的核心功能,為區塊鏈項目開發提供有力支持。

E. 井通幣值得投資嗎

1.投資有風險,不能直接判斷是否值得投資,井通不只是是一個項目,而是一個系,因為這個創始人割韭菜太牛,並不只發了這一個幣,而是發了前前後後十幾個幣。 井通創始人周沙,筆名井底望天,別看他的筆名這么謙虛,割起韭菜那可一點也不含糊。周沙的個人資料,貴州人,美國國籍,2013年在矽谷開創井通科技公司,在無錫和北京開設分公司,發行多個數字貨幣,ICT智通鏈、TCT、SWTC、FST、墨客MOAC、SPC、CALL、大數據DADT、VCC等十幾種幣。 大部分已經歸零或下架,只剩下MOAC和SWTC可以交易。這個周沙絕對是一個割韭菜高手,不只是發行數字貨幣,還組織資金盤「斯威特聯盟」割韭菜5000軟妹幣。 每個幣都是以割韭菜收場,目前他發行的十幾個幣,只剩下兩個幣還在流通,只不過已經接近歸零了。 剩下的兩個幣,其中之一就是swtc,這個幣號稱第一公鏈,竟然代碼提交次數是空白,你就知道這是一個騙子項目了。
2.這個幣SWTC 是SWTC公鏈的原生數字資產,說的好像這個項目真的做了一個公鏈,准備與其他公鏈競爭一樣, 不管怎麼樣,這個代幣還是上鏈了,只不過上的是兩個小交易所,一個是幣贏國際站,一個是滿幣。 SWTC Coin的應用場景包括但不限於以下方面:增值服務、激勵手段、信用質押、跨鏈跨通證計價單位。同時,SWTC Coin可以保障系統運行的穩定和安全,提高惡意攻擊的成本 是不是看上去非常專業,不得不說騙子現在越來越專業,不然怎麼能夠騙到那麼多錢? 我們再看看他剩下另一個還可以交易的幣墨客MOAC,走勢跟swct一模一樣,一路走低,所有進場的都被埋了。 最高價161元,現在剩下0.1元,這是跌了多少?我都不會算了,是跌了1610倍嗎?還能不能跌的再狠一點? 這兩個雖然接近歸零,還是井通發行的最好的兩個幣,好歹還能在交易所流通,而其他幣要麼已經歸零,或者被交易所下架。 在幣圈這個很少有盈利項目的地方,玩的就是共識,玩的就是口碑。
拓展資料:
1.19年開始走傳銷的路線,提供36%的年化收益,是不是相當誘人?但是幣價卻一路走低,從8厘跌到1厘。 傳銷盤一般都是先上漲,然後暴跌割韭菜,但是井通幣swtc不一樣,從頭到尾都是下跌。 傳銷的後進場者一般從市場上買幣,但是井通幣不一樣,直接從創始人的錢包里買幣,不管買多少,市場上的幣價都不會上漲。通過這種方式創始人出貨100多億swtc,價值5000萬人民幣。 井底望天割韭菜的套路並不是特別高明,但是他的膽子非常大,敢用國家隊的旗號騙人,所以騙了很多人,而且井通發行數字貨幣,不僅收以太坊,他連法幣也敢收,一般項目方發幣,只敢收以太坊或比特幣,很少有人敢收法幣的。
2.創始人井底望天之所以敢如此明目張膽的割韭菜,還有一個重要原因是他的美國國籍,這種人可能只計劃在國內割韭菜,賺了錢去美國享受,反正他已經是美國人了。 但是,只要犯法,中國的法律也照樣會制裁你。 普通人想要在幣圈不被黑心項目方割韭菜,唯一的辦法就是只買比特幣,長期看比特幣跑贏99%的山寨幣。

熱點內容
比特幣網吧挖礦 發布:2025-04-04 12:54:56 瀏覽:927
萊特幣昨日最低多少 發布:2025-04-04 12:48:16 瀏覽:559
騰訊出了什麼區塊鏈 發布:2025-04-04 12:45:22 瀏覽:265
挖完壽司以太坊怎麼變少了 發布:2025-04-04 12:21:22 瀏覽:275
區塊鏈落地支付 發布:2025-04-04 12:09:20 瀏覽:148
不允許中國區塊鏈技術 發布:2025-04-04 12:09:18 瀏覽:802
深圳區塊鏈公司合夥人 發布:2025-04-04 12:08:34 瀏覽:706
比特幣哪一年發行的價格多少 發布:2025-04-04 12:01:23 瀏覽:518
usdt怎麼提現數量不足 發布:2025-04-04 11:55:50 瀏覽:678
trx卷腹講解 發布:2025-04-04 11:54:31 瀏覽:956