以太坊如何計算交易成本

2021-09-21 06:04:05 字數 3187 閱讀 8823

在傳送位元幣交易時,其費用與其大小成比例。輸入和輸出越多,它就越貴。再加上未決交易的因素,交易費用可能僅基於這兩個因素就會飆公升。

對於以太坊,鑑於我們正在談論協議中的程式語言,對於非常少的文字或**(在btc中可能非常便宜的東西),可能對計算要求非常高。 讓我們來看看這個迴圈,例如:

while (i++ < 1000)
這個迴圈意味著只要i小於1000,將其增加1然後將i和j相加並將結果寫入j ,然後再次執行。如果i為0,則此迴圈將執行1000次,或者更多,如果它是負數。

為了以公平的方式支付這種計算成本,因為它必須立即在所有礦工的機器上執行,並且他們將資源和時間花在它上面,這裡引入了gas的概念。gas用於支付evm內部所謂的智慧型合約(以太坊計畫)的執行費用。例如,上面的i+j是乙個求和運算,每次執行時需要3個gas,因此如果執行1000次則需要3000個gas,因此如果執行1000次則需要3000個gas。

為了正確解釋gas ,我們首先介紹evm 。

evm代表以太坊虛擬機器 。但是什麼是虛擬機器呢?

虛擬機器虛擬機器是在特定計算機上執行的軟體,其包含完全封裝在主計算機內的另一作業系統。例如,虛擬機器允許您在linux內部執行windows,在windows內部執行windows,在macos上執行windows,如下圖所示,或任何其他組合。

我們使用虛擬機器將我們日常使用計算機的環境與我們工作或程式設計的環境分開。這樣我們就可以防範病毒(它們無法破壞虛擬機器並進入主作業系統),有助於防止無限迴圈崩潰我們的主作業系統,並保持硬碟驅動器損壞,如臭名昭著的wannacry勒索軟體。此外,vm允許我們在linux上使用windows遊戲,或者允許我們輕鬆地在相同程式語言環境的不同版本中程式設計,而不會混淆它們。

evm以太坊虛擬機器內置於以太坊協議上執行的軟體中。它執行智慧型合約——以solidity語言編寫的以太坊程式。evm包含在以太坊網路的完整節點中,在其中執行這些以太坊使用者編寫的程式。

但是,這些程式的執行並不是免費的。礦工們用自己的電力,時間和硬體來做這件事。為了支付他們執行計算機指令的努力(例如「將值5儲存到變數x中」),引入了gas的概念。

就像美元有美分一樣,以太也有自己的基本單位:wei。 如果我們將wei作為以太的基本單位,我們得到下面的定義表:

這就是在乙太網單元之間的單位轉換。

根據這個資訊**,目前的天然氣平均**是10gwei(10千兆wei)。看到1gwei是乙太網的十億分之一,上述儲存1kb字的成本是640000*10,即640萬gwei。這相當於0.0064eth,每個以450美元的**,約為2.88美元。

從上表開始到文章的這個位置的文字大約是1kb。因此,將這一小段文字儲存到區塊鏈中實際上需要2.88美元。但是,這只是儲存成本!我們的智慧型合約也可能有一些邏輯,如求和或乘以然後儲存數字,或在特定的挖掘塊上啟用的觸發器等。顯然,將資料儲存到區塊鏈本身是非常昂貴的。bigchaindb或ipfs中的儲存效果更好,而區塊鏈是全域性處理和驗證資料的更好解決方案。

為什麼需要gas?

為什麼直接支付gas而不是ether的成本?

evm可以執行的所有可能操作的所有gas**都在以太坊協議和我們連線到它的客戶端(程式)中進行硬編碼,如geth,eth,parity等。如果**在乙太網中列出,那麼每當以太的價值波動時我們就必須更新**,以便將計算工作的**保持在正常範圍內並保持系統可用,這顯然是不可持續的。

通過在成本之上新增這個gas層,並用gwei支付gas費用,我們可以選擇改變交易中使用的gas量以及支付的金額。它完全在我們的控制之下,不會使系統失去平衡。

這引導我們進入上一節。

限價/成本與**

gas限制是我們願意花在交易上的最大gas量。我們用於廣播以太坊交易的大多數軟體都能夠自動估算執行功能所需的gas量。它通常會立即建議乙個值。例如,簡單的貨幣a-> b交易通常只需要21000個gas。更複雜的那些稱為特定智慧型合約功能的可能會遇到數十萬甚至數百萬的gas。消耗的gas量稱為gas成本。

作為使用者,我們可以修改我們想要在交易上花費的gas數量並減少它,但如果交易在執行期間耗盡了gas,我們就會丟失我們傳送的gas。它已被花費並且交易被拒絕。另一方面,如果我們提供的gas量超過需要的數量,剩餘部分將退還給我們。因此,傳送比執行交易所需的更多gas總是更好。

gas成本是每單位gas的gwei**。

因此,以太坊交易的總成本實際上是必需gas的數量乘以gwei每gas單位的**。這是我們支付的最高交易費用; 任何額外的gas都會退還,因此費用往往被高估。

我們來看乙個例子。

在上圖中,我們正在執行一項交易,由於其複雜性,估計它將需要135963gas。以25gwei的**,我們支付的最高交易費是1.57美元,這在檢視我們傳送的總金額時是微不足道的(0.38eth = 178美元)。如果我們將天然氣的**提高到250gwei,那麼交易成比例地變得更加昂貴:

[上傳失敗...(image-a0110d-1556193053505)]

較高的費用可以有效地鼓勵礦工在佇列中的其他人之前處理我們的交易,從而加快執行速度。如果我們不急,我們可以將gas**保持在起始值,交易確認不應超過10分鐘。但如果我們匆忙並希望在幾秒鐘內完成(例如,如果我們正在處理拍賣),那麼很容易提高gas**並犧牲一些錢來保證成功。

gas是以太坊虛擬機器中每次計算操作所花費的工作單位。這是以太幣,以太坊協議的代幣,並且每個計算操作都有不同的gas成本。gas**(gwei或乙太網的十億分之一)根據網路擁塞和使用者對快速確認的偏好而變化。

對於我們想要在以太坊網路上部署的智慧型合約,兩個術語很重要:gas限制和gas**。gas限制是我們願意花在執行交易上的最大gas量。實際需要的gas量(僅在交易執行後才知道)稱為gas成本。gas**是每單位gas的**,以gwei(或乙太網的十億分之一)表示。交易總成本將是gas成本和gas**的乘積,而最高交易費用將是gas限價減去gas**的乘積。差額退還給交易的發件人以保持系統公平和可用。

以太坊交易教程

最近很多人都在問我挖出來的以太坊如何交易,我在這裡系統的給大家進行介紹。目前以太坊等虛擬貨幣有兩種交易方式,我具體的講述一下。場外交易就是個人與個人之間的交易,有一些 提供了這樣的交易方式,就跟 很類似,有一些人在 上掛出一些買的訂單或者賣的訂單,如果你對他的訂單滿意,你就可以跟他進行交易,值得注意...

以太坊交易簽名

以太坊的transcation結構如下 以下為交易本身資料資訊 let accountnonce uint64 let price bigint let gaslimit bigint let recipient address let amount biguint var payload data...

以太坊是什麼?以太坊交易可靠嗎?

以太坊 ethereum 是乙個開源的有智慧型合約功能的公共區塊鏈平台,為眾多加密資產和去中心化應用提供底層支援,被稱為位元幣區塊鏈之後的 第二代區塊鏈 其網路原生加密貨幣為以太幣 ether,簡稱eth 也有以 以太坊 代指以太幣的說法。以太坊 以太幣 作為早期的加密貨幣之一,因其平台在金融生態發...