比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads
首頁 > 火必APP > Info

以太坊是如何運作的?(一)_以太坊

Author:

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

前言:本文主要闡述當前以太坊的具體運作原理,有助于我們理解以太坊背后的各種概念和操作,適合初學者閱讀。介紹不管你是否了解它究竟是什么,也許你已經聽說過以太坊區塊鏈。因為它在新聞中經常出現。假如你對以太坊沒有基本了解,閱讀本文可能有點摸不著頭腦。那以太坊到底是什么?它本質上是公共數據庫,它保存數字交易的永久記錄。重要的是,這個數據庫并不要求任何中心機構來維持和保護它的安全。相反,它作為一個“去中介信任”的交易系統進行運作,這是一種框架,在其中個人可以進行對等交易,同時無需任何第三方或彼此之間的信任。還感到困惑嗎?這就是本文可以發揮作用的地方。我的目標是從技術層面來解釋以太坊是如何運作的,這里不會有復雜的數學或嚇人的公式。即使你不是程序員,我也希望你至少能有所收獲。如果有部分太過于技術化和太過于晦澀,這也沒有關系。你不需要懂得所有細節。我建議只需從大的層面去理解它。本文中提到的主題都是以太坊黃皮書中的概念剖析。我添加了自己的解釋和圖表,這樣更容易理解。如果你對技術挑戰感興趣,也可直接閱讀黃皮書。區塊鏈的定義區塊鏈是一種“具有共享狀態的加密安全的交易單例機。”讓我們拆解一下。“加密安全”是指所創建的數字貨幣由復雜的數學算法來保證它的安全,這個算法很難被破解。想一下各種防火墻。他們幾乎不可能欺騙系統,例如創造虛假交易、刪除交易記錄等。“交易的單例機”是指有單個規范實例機負責所有在系統中創建的交易。換句話說,這里有一個所有人都相信的單一全球事實。“具有共享狀態”是指存儲在這個機器上的狀態是共享的,向每個人公開。以太坊實現的是這種區塊鏈的范式。以太坊區塊鏈的范式闡述以太坊區塊鏈本質上是基于交易的狀態機。在計算機科學中,狀態機指的是讀取一系列的輸入的東西,基于這些輸入,會轉換到新的狀態。有了以太坊的狀態機,我們從“創世狀態”開始。這類似于空白平板,沒有任何交易在網絡上發生過。當交易執行,創世狀態轉換為某種最終狀態。在任何時間點,最終狀態代表以太坊的當前狀態。以太坊的狀態有數百萬的交易。這些交易組成區塊。一個區塊包含一系列的交易,并且每個區塊與其前一個區塊鏈接在一起。要讓一個狀態轉換到下一個狀態,交易必須是有效的。一個交易要被認可為有效,必須經過驗證的過程,這個過程稱之為挖礦。一群節點花費它們的計算資源來創建包含有效交易的區塊,這就是挖礦。網絡上的任何節點都可以聲明自己是礦工節點,都可以試圖創建和驗證區塊。全世界有很多礦工試圖在同一時間創建和驗證區塊。當向區塊鏈提交區塊時,每個礦工都會提供一個數學“證明”,該證明作為一個保證:如果證明存在,區塊必須有效。對于要添入主鏈的區塊,礦工必須比其他競爭對手更快地證明。通過讓礦工提供數學證明的方法來驗證每個區塊的過程也就是所謂的“工作量證明”。驗證新區塊的礦工會被獎勵一定數量的價值,以激勵他們完成此項工作。什么樣的價值?以太坊區塊鏈使用原生數字代幣“Ether”。每次礦工證明了一個區塊,新的Ether代幣就會產生并給予礦工獎勵。你可能會想:用什么來保證大家都在同一條鏈上?我們怎么能肯定不會存在一部分礦工決定創建自己的鏈?在上文也提到,我們把區塊鏈定義為一個具有共享狀態的交易單例機。使用此定義,我們可以理解,正確的當前狀態是一個單一的全球事實,每個人都必須接受。如有多種狀態會毀掉整個系統,因為它不可能就哪個狀態才是正確狀態方面達成一致。如果鏈有多條,你可能在一條鏈上有10個代幣,另外一條上有20個代幣,還有一條上有40個代幣。在這種情況下,無法確定那條鏈是最“有效”的。不管什么時候,只要有多條路徑,就會產生“分叉”。我們通常希望避免分叉,因為它們會破壞系統并強迫人們選擇相信那一條鏈。

基于zkRollup的以太坊二層網絡Taiko發布首個公共測試網:12月28日,據官方消息,基于 zkRollup 的以太坊二層網絡 Taiko 發布測試網 Sn?fellsj?kull。目前該測試網支持開發者部署智能合約,并向普通用戶開放交易測試和 L2 節點運行等功能。[2022/12/28 22:12:13]

為了決定那條路徑是最有效的,并且防止多條鏈產生,以太坊使用稱為“GHOST協議”的機制。“GHOST”=“GreedyHeaviestObservedSubtree”簡單來說,GHOST協議說我們必須挑選耗費最多算力的那條路徑。決定那條路徑的一個方法是使用最新區塊的區塊編號,它表示當前該路徑的全部區塊總數。區塊編號越高,路徑就越長,抵達“葉區塊”所需的挖礦工作量就越大。使用這種推理方法,我們能夠就當前狀態的規范版本達成一致。

現在你已經多少了解一些區塊鏈的大概,讓我們更加深入了解以太坊系統的主要組件:l賬戶l狀態lgas和費用l交易l區塊l交易執行l挖礦lPoW開始前要注意一個事情:本文說的X的“哈希”時,通常是指以太坊使用的KECCAK-256哈希。賬戶以太坊的全球“共享狀態”是由很多小的對象組成,這些賬戶通過消息傳遞框架實現彼此交互。每個賬戶都有一個與之關聯的狀態以及一個20字節的地址。以太坊中的地址是160位比特的標識符,用于標識任何賬戶。有兩種類型的賬戶:l外部賬戶,由私鑰控制,沒有與之關聯的代碼。l合約賬戶,由合約代碼控制,有與之關聯的代碼。外部賬戶Vs.合約賬戶理解外部賬戶和合約賬戶之間的根本區別是非常重要的。通過創建及使用其私鑰簽名一個交易,外部賬戶能夠給其他外部賬戶或其他合約賬戶發送消息。兩個外部賬戶之間的消息只是簡單的價值傳輸。但從外部賬戶發送到合約賬戶的消息可以激活合約賬戶的代碼,允許它執行各種操作與外部賬戶不同,合約賬戶無法自行啟動新的交易。相反,合約賬戶僅能夠通過響應其他它們收到的交易來觸發自身的交易。比如從外部賬戶或從其他的合約賬戶的交易來觸發。我們會在“交易和消息”章節中了解到更多合約到合約的請求。因此,任何以太坊區塊鏈上發生的操作始終由外部賬戶所觸發的交易來啟動。

以太坊穩定幣總發行量突破250億美元 創歷史新高:據DeBank數據顯示,以太坊穩定幣總發行量已突破250億美元,創下歷史新高,本文撰寫時為251.9億美元。以太坊穩定幣是用于以太坊區塊鏈網絡中的法幣,通常和法幣價格鉚定,由第三方審計,有真實美元作為儲備或由復雜的算法來保障其價格。按照發行量計算,目前排名前三的以太坊穩定幣分別是:1、USDT:15,119,922,415美元,發行量占比60.25%;2、USDC:5,436,997,485美元,發行量占比21.59%;3、DAI:1,556,959,405美元,發行量占比6.18%。[2021/1/27 13:38:18]

賬戶狀態賬戶狀態由四個部分組成,無論賬戶類型是什么,它們都存在:Nonce:如果該賬戶是外部賬戶,這個數代表從這個賬戶地址發出來的交易數。如果該賬戶是合約賬戶,則該nonce是該賬戶創建的合約數。余額:該地址擁有的Wei數。每個Ether有1e+18Wei。StorageRoot:MerklePatricia樹的根節點的哈希值。Merkletree對該賬戶的存儲內容的哈希進行編碼,默認情況下為空。CodeHash:該賬戶EVM代碼的哈希。對合約賬戶而言,這是被哈希后并存儲為CodeHash的代碼。對于外部賬戶而言,codehash字段是空字符串的哈希。世界狀態我們知道以太坊的全球狀態包括賬戶地址和賬戶狀態之間的映射。該映射存儲在MerklePatriciatree樹的數據結構中。Merkle樹是一種由一組節點組成的二叉樹,其中:l樹底部的大量葉節點包含底層數據l一組中間節點,其中每個節點都是兩個子節點的哈希l一個根節點,也是由兩個子節點的哈希形成,表示樹的頂部樹底部的數據是通過拆分數據產生,這些數據我們希望存儲進入塊中,然后把塊拆分進入桶中,之后取每個桶的哈希并重復相同的過程,直到剩余的哈希總數變為只有一個:根哈希。Merkle樹要求每個存儲其中的值都有一個鍵。從樹的根節點開始,鍵應該告訴你要遵循哪個子節點,以獲取相應的值,值是存儲在葉節點上的。在以太坊的案例中,狀態樹的鍵/值映射是在地址和它們相關的賬戶之間的,包括了每個賬戶的余額、nonce、codeHash、StorageRoot。

以太坊近24小時內鏈上交易額有所上升,約為7.69億美元:Tokenview數據顯示,以太坊近24小時內鏈上交易額為2046912.59 ETH,同比24小時前上升28.15%,近24小時內鏈上交易數為1114822筆,同比上升8.99%;昨日以太坊活躍地址數為568052個,較前日下降16.64%,較近7日日均活躍地址數下降13.34%;昨日新增地址數為146550個,較前日下降51.71%,較近7日日均新增地址數下降31.04%。 昨日單筆超過1000 ETH的大額轉賬共計252筆,較前日上升78.72%,較近7日平均大額轉賬筆數下降87.04%。[2020/10/20]

相同的trie結構也被用于存儲交易和收據。更具體來說,每個區塊都有一個“塊頭”,塊頭存儲三種不同Merkletrie結構的根節點哈希,包括:l狀態triel交易triel收據trie

把所有這些信息有效地存入Merkletries的能力在以太坊中非常有用,因為我們有“輕客戶端”和“輕節點”。請記住,區塊鏈由一堆節點維護。廣義上講,有兩類節點:全節點和輕節點。完整節點通過下載整個鏈數據來同步區塊鏈,從創世區塊到當前區塊,執行其中包含的所有交易。通常,礦工存儲完整到歸檔節點,因為它們要去挖礦必須執行該操作。無須執行任一操作也可以下載完整節點。無論如何,任何全節點包括所有鏈。但,除非一個節點有必要執行每個交易或為方便查詢歷史數據,否則,沒有必要存儲整條鏈的數據。這也是輕節點概念的由來。無須下載和存儲完整鏈的數據以及執行所有交易,輕節點僅下載鏈頭,從創世區塊到當前區塊的塊頭,而無須執行任何交易或檢索任何相關的狀態。由于輕節點可以訪問區塊頭,區塊頭包含了三種tries的哈希,它們依然能夠輕易生成和接收可驗證的答案,如關于交易、事件、余額等。這樣做能行的原因是Merkle樹中的哈希是向上傳播的——如果一個惡意用戶試圖把虛假交易置入Merkle樹的底部,這樣的改變會導致上面節點的哈希發生變化,然后會繼續改變上面節點的哈希,如此傳遞下去,最終改變了樹根的哈希。

動態 | BCH雪崩交易顯示 最終速度比以太坊快10倍:過去幾周,比特幣現金(Bitcoin Cash, BCH)的開發者和社區成員一直在討論一種名為雪崩的預先達成共識的方法。現在BCH的支持者已經開始注意到該協議已經應用于Bchd的全節點實現,以及在BCH主網上正式運行的概念證明。 BCH的支持者們還討論了交易最終速度如何比以太坊網絡快6-10倍。BCH開發者和Bitbox創始人Gabriel Cardona在Twitter上解釋到:“交易在1.559723305秒內完成——比ETH快10倍——這是一個強大的游戲改變者。”[2019/2/11]

想要驗證數據的任何節點都能使用“Merkle證明”來達成目的。Merkle證明包含:l要證明的一堆數據和它的哈希l樹的根哈希l“分支”

所有讀取證明的人都能驗證分支的哈希是沿著樹向上一致的,因此,給定的區塊實際上是在樹中的某個位置上。總之,使用MerklePatricia樹的好處是該結構的根節點在加密方面依賴于存儲在樹上的數據,因此根節點哈希能夠用于該數據的安全標識。既然區塊頭包含狀態、交易以及收據樹三者的根哈希,因此,任何節點都可以驗證一小部分的以太坊狀態,而無需存儲所有狀態,完整節點可能會非常大。--未完待續---

聲音 | 以太坊聯合創始人:以太坊生態系統第一層已建立 第二層于今年分叉并趨向成熟:據Cointelegraph報道,以太坊聯合創始人Joseph Lubin今日表示:以太坊生態系統中最基本的“第一層”現已建立,今年將會看到“第二層”系統分叉和趨向成熟。Lubin說:“我們正在進入一個空間,在這個空間中,以太坊可以作為第一層信任系統,而在此之上,我們將建立第二層系統并擁有成千上萬的交易,我們將在今年看到它分叉。”[2018/7/11]

Tags:以太坊區塊鏈ERKMER以太坊幣在中國合法嗎區塊鏈的未來發展前景與應用TERK幣BidCommerce

火必APP
數字貨幣期權受關注,對沖基金花數百萬元買看漲期權_CAP

編者按:本文來自bloomberg,作者:AlastairMarsh譯者:星球日報茶涼編輯:盧曉明根據彭博社報道,為了在崩潰的加密市場中求得生存.

1900/1/1 0:00:00
各國加密貨幣稅收消息不斷,瑞典稅務局開出100萬美元的稅務賬單_區塊鏈

近日,瑞典加密貨幣交易者LinusDunker收到瑞典稅務局STA高達100萬美元的稅務賬單,并聲稱征稅要求不合理。據悉,這只是STA受理的與加密貨幣相關案件中的一例.

1900/1/1 0:00:00
小白也能看懂的“零知識證明”原理_ARK

編者按:本文來自hackernoon.com,作者:OscarW譯者:星球日報茶涼零知識證明或零知識協議是一種基于概率的驗證方法.

1900/1/1 0:00:00
現實世界資產的代幣化_INC

編者按:本文來自藍狐筆記,作者:AddisonCameron-Huff,來源于nasdaq,由“藍狐筆記”公眾號社群的“SL”翻譯,Odaily星球日報經授權發布.

1900/1/1 0:00:00
鏈網應考慮采用路徑模型_區塊鏈

編者按:本文來自巴比特,原作者:蔡維德,北航區塊鏈實驗室主任,KevinTsai,UniversityofCaliforniaatIrvine名譽教授,星球日報經授權發布.

1900/1/1 0:00:00
比特幣是個“垃圾股”_比特幣價格

“巴特模式”是比特幣圖表中一個眾所周知的模式,甚至在Twitter和reddit上成為了一個模因。這是指比特幣價格經歷一段平穩時期后的突然波動.

1900/1/1 0:00:00
ads