以太坊基礎——組成以太坊的原子元素

買賣虛擬貨幣
歡迎來到關於加密貨幣主題的下一個系列。作為市場資本化的第二大貨幣,以太幣(一種貨幣,以及以太幣背後的以太坊組織)是加密貨幣領域的一個引人入勝的發展。在從比特幣的優缺點中吸取教訓之後,以太坊的主要目標並不是提供另一種加密貨幣,而是以一種去中心化的方式交換資金。相反,以太坊表達的意圖是“建立用於構建去中心化應用程式的替代協議”,在此基礎上使用以太幣來完成交易。雖然以太坊已經存在了近5年,所以現在還沒有那麼令人震驚,但在當時,人們對比特幣的語義優勢的看法發生了徹底的轉變——加密貨幣是用於貨幣交換的,僅此而已?以太坊的歷史以太坊的創始人維塔利克·位元林(Vitalik Buterin)是一名程式設計師,也是《比特幣》雜誌的聯合創始人。他一直堅持比特幣需要包含某種指令碼語言,這樣他就可以使用區塊鏈來開發應用程式。他的建議似乎沒有取得任何進展,所以他決定建立自己的系統。在眾籌活動中,Vitalik的開發者團隊和眾多支持者購買了以太幣,最終在2015年7月,以太坊正式釋出,實現了Vitalik的夢想。好了,這就是以太坊的歷史和目的,這也為我們接下來的旅程提供了基礎的背景知識。在本文和後續文章中,我們計劃探索我們所瞭解和使用(或投資)的加密貨幣背後的基本概念。以太坊擁有豐富的資訊,可以為大量的此類研究提供資訊。以太坊的基石
讓我們從以太坊的構建模組開始。以太坊最基本的狀態是由被稱為“賬戶”的物件組成的。帳戶透過其20位元組的地址來引用。要使以太坊狀態的轉換髮生變化,必須在帳戶之間直接轉移值或資訊。

帳戶本身包含四個不同的欄位:

1. 隨機數是“A numberused once”的混搭。這是一個計數器,以確保每個交易只處理一次。
2. 該帳戶包含任意時間的以太幣餘額(在下面討論)。
3. 如果這是一個合約帳戶(下面還討論了兩種型別的帳戶之一),該帳戶將具有合約程式碼,並且該程式碼在啟用時會執行某種操作。
4. 該帳戶預設包含一個空的儲存量,但可以根據需要填充。

如果你對加密貨幣世界有任何先驗知識,我敢肯定你知道以太幣——以太坊的數字貨幣。以太幣負責支付以太坊生態系統中的交易費用。但是,您可能不知道以太坊實際上包含兩種不同的帳戶型別:

外部擁有的帳戶-這些不包含任何程式碼。相反,它們只是透過建立和簽署交易來傳送訊息。
合約帳戶——這些帳戶包含可能與內部儲存互動、傳送訊息甚至建立其他合約的程式碼。

合約

在我們繼續之前,瞭解以太坊使用術語“合約”的方式是非常重要的。從這個意義上說,“合約”並不是指雙方之間有約束力的協議;相反,以太坊建議將這些合約視為自主代理,在訊息或交易觸發時執行程式碼,並跟蹤它們自己的內部資訊。如果您曾經編寫過軟體,那麼您可能遇到過基於事件的程式設計或回撥函式——這基本上類似於合約的行為方式。

賬戶

好了,快速回顧一下,因為這些資訊可能比較密集(但是非常值得學習!)。以太坊是一個主要致力於構建去中心化應用程式(dapps)的加密平臺。以太坊中有許多帳號,它們包含資訊,並使用以太坊的加密貨幣“以太幣”進行互動。很好,所以我們知道了以太坊是什麼,它是由什麼組成的,以及如何付款——但是帳戶如何與其他帳戶互動呢?當然,以太幣是用來支付交易的,但什麼是交易呢?

讓我們從一開始就直接獲取我們的術語——以太坊具有可以在帳戶之間傳送的交易和訊息。具體來說,當訊息在合約之間傳輸時,交易從外部擁有的帳戶傳送。

交易由上圖中顯示的欄位組成。

· 每個交易都有一個接收者。
· 它還包括一個標識傳送方的簽名。
· 傳送方包括要傳送給接收方的特定數量的以太幣。
· 它包括一個可選的資料欄位來以防萬一(但不需要使用它)。
· STARTGAS的值(在下一段中討論)
· GASPRICE的價值(在下一段中討論)

前三個欄位對於任何型別的正常貨幣轉賬都是很容易理解的——一個指定的一方向另一個指定的一方傳送特定數量的貨幣。可以使用可選資料欄位,但通常為空白。

交易費用

STARTGAS和GASPRICE是以太坊非常獨特的術語。網際網路上的任何這種規模的系統都必須為某種型別的拒絕服務攻擊做好準備。這些價值被用來減輕這種威脅。以太坊的單個計算步驟消耗1個GAS(其中GAS是計算的基本單位)。STARTGAS值限制了允許交易執行的計算步驟的總數。

從本質上講,這有助於限制拒絕服務攻擊,因為採礦者事先就知道一輪特定的驗證需要多長時間,如果要求的步驟過多,還會提前發出警告。GAS價格表示傳送方為每個計算步驟支付的費用。每個位元組的交易資料通常需要5個GAS為每個位元組傳輸。綜合這些,我們得知總交易費用是STARTGAS * GASPRICE,並會在交易發生之前從帳戶餘額中減去。這些都限制了潛在攻擊者透過對網路上的每個交易使用不斷增加的以太幣所造成的損害。

從本質上講,攻擊者可以發起大型攻擊,但是代價非常高,並且自然受到限制。

這是一筆交易。這是以太坊內部網路通訊的兩種型別之一。什麼是訊息?

訊息

· 訊息由上圖中顯示的欄位組成。
· 每個訊息都有一個隱式的傳送方和接收方。
· 要隨訊息一起傳送的以太幣的數量。
· 可選資料欄位只是以防萬一(但不必使用它)。

STARTGAS的值。

顯然,上面的欄位與交易中的欄位稍有不同,但是作為物件的訊息和交易基本上是相同的。最大的區別:通訊方——訊息由合約產生,而交易由外部參與者產生。在合約程式碼的執行過程中,呼叫操作碼用於生成訊息。此資訊傳遞給接收者的方式與從外部參與者發起的交易傳遞給接收者的方式非常類似。 

是什麼GAS

讓我們再多討論一下GAS是如何工作的。這裡的想法有點類似於比特幣交易市場。如果您想首先驗證您的特定塊,您需要付出更高的代價。以太坊網路中的礦工受到了與比特幣類似的激勵——為特定的操作支付更多的GAS,你可能會更快地完成交易。

如果你不著急,你可以支付少量的GAS,直到礦工願意接受你的交易。對於每一個由採礦者驗證的交易塊,都存在一個GAS塊限制,即一個特定塊只能包含特定多的計算。採礦者會開出一個快速的GAS價格,這將確保你的交易被推到網路佇列的最前面,從而獲得更高的價格;如果你有時間,你也可以付一個安全的低價。標準GAS價格表示當前網路上的平均GAS價格。

以太坊概述

唷,我們挺過來了。這些是以太坊的基本元素。在下一篇文章中,我們將更多地討論以太坊的功能,即狀態轉換函式和智慧合約中的程式碼執行。還有很多東西需要深入研究,所以請繼續關注我們對以太坊的研究。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;