摘要:基于以太坊項目,以太坊團隊目前運營了一個公開的區塊鏈平臺以太坊網絡。主要特點以太坊區塊鏈底層也是一個類似比特幣網絡的網絡平臺,智能合約運行在網絡中的以太坊虛擬機里。以太坊采用交易作為執行操作的最小單位。
以太坊將比特幣針對數字交易的功能進一步進行了拓展,面向更為復雜和靈活的應用場景,支持了智能合約這一重要特性。
以太坊項目簡介以太坊:項目最初的目標是打造以個智能合約的平臺,該平臺支持圖靈完備的應用,按照智能合約的約定邏輯自動執行,理想情況下將不存在故障停機、審查、欺詐,以及第三方干預等問題
以太坊核心實現是基于比特幣網絡的核心思想進行了拓展,因此在很多設計特性上都與比特幣網絡十分類似。
基于以太坊項目,以太坊團隊目前運營了一個公開的區塊鏈平臺——以太坊網絡。智能合約開發者使用官方提供的工具和以太坊專用應用開發語言 Solidity,可以很容易地開發出運行在以太坊網絡上的“去中心化”應用。
以太坊區塊鏈底層也是一個類似比特幣網絡的P2P網絡平臺,智能合約運行在網絡中的以太坊虛擬機里。網絡自身是公開可接入,任何人都可以接入并參與網絡中數據的維護,提供運行以太坊虛擬機的資源。
與比特幣項目相比,以太坊區塊鏈的技術特點主要包括:
支持圖靈完備的只能合約,設計了編程語言 Solidity 和虛擬機 EVM
選用了內存需求較高的哈希函數,避免出現強算力礦機、礦池攻擊
叔塊激勵機制,降低礦池的優勢,并減少了區塊產生間隔(10分鐘降低到15秒左右)
采用賬戶系統和世界狀態,而不是UTXO,容易支持更復雜的邏輯
支持PoW共識算法,并計劃支持效率更高的PoS算法
核心概念基于比特幣的核心思想,以太坊提出了許多創新的技術概念:智能合約、基于賬戶的交易、以太幣和燃料
智能合約
智能合約是以太坊中最為重要的一個概念,即以計算機程序的方式來締結和運行各種合約。
智能合約作為運行在以太坊虛擬機中的應用,可以接受來自外部的交易請求和事件,通過觸發運行提前編寫好的代碼邏輯,進一步生成新的交易和事件,可以進一步調用其他智能合約。
智能合約的執行結果可能對以太坊網絡上的賬本狀態進行更新。這些修改由于經過了以太坊網絡中的共識,一旦確認后無法被偽造和篡改
賬戶
以太坊直接用賬戶來記錄系統狀態,每個賬戶存儲余額信息、智能合約代碼和內部數據存儲等。以太坊支持在不同的賬戶之間轉移數據,以實現更為復雜的邏輯。
以太坊賬戶分為兩種類型:
合約賬戶: 存儲執行的只能合約代碼,只能被外部賬戶來調用激活
外部賬戶: 以太幣擁有者賬戶,對應到某公鑰。賬戶包括 nonce、balance、storageRoot、codeHash 等字段,由個人來控制
當合約賬戶被調用時,存儲其中的智能合約會在礦工出的虛擬機中自動執行,并消耗一定的燃料。燃料通過外部賬戶中的以太幣進行購買
交易
交易在以太坊中是指從一個賬戶到另一個賬戶的消息數據。消息數據可以是以太幣或者合約執行參數。
以太坊采用交易作為執行操作的最小單位。每個交易包括如下字段:
to : 目標賬戶地址
value : 可以指定轉移的以太幣數量
nonce : 交易相關的字串
gasPrice : 執行交易需要消耗的 Gas價格
startgas : 交易消耗的最大 Gas 值
signature : 簽名信息
以太幣
以太幣是以太坊網絡中的貨幣。以太幣主要用于購買燃料,支付給礦工,以維護以太坊網絡運行智能合約的費用。
燃料
燃料(Gas),控制某次交易執行指令的上限。每執行一條合約指令會消耗固定的燃料。當某個交易還未執行結束,而燃料消耗完時,合約執行終止并回滾狀態。
為了支持更復雜的智能合約,以太坊在不少地方進行了改進,包括交易模型、共識、對攻擊的防護和可擴展性
智能合約相關設計運行環境
以太坊采用以太坊虛擬機作為智能合約的運行壞境。以太坊虛擬機是一個隔離的輕量級虛擬機環境,運行在其中的智能合約代碼無法訪問本地網絡、文件系統或其他進程。
對同一個智能合約來說,往往需要在多個以太坊虛擬機中同時運行多份,以確保整個區塊鏈數據額一致性和高度的容錯性。但這也限制了整個網絡的容量
開發語言
以太坊為編寫智能合約設計了圖靈完備的高級編程語言。目前Solidity是常用的以太坊合約編寫語言之一。
智能合約代碼編寫完畢后,用編譯器編譯為以太坊虛擬機專用的二進制格式(EVM bytecode),右客戶端上傳到區塊鏈中,之后在礦工的以太坊虛擬機中運行
交易模型以太坊采用了賬戶的模型,狀態可以實時地保存到賬戶里,而無需像比特幣的UTXO模型那樣去回溯整個歷史。
共識以太坊目前采用了基于成熟的PoW共識的變種算法Ethash協議作為共識機制。為了防止ASIC礦機礦池的算力攻擊,跟原始PoW的計算密集型Hash運算不同,Ethash執行時需要消耗大量內存,反而跟計算效率關系不大。
降低攻擊以太坊網絡在降低攻擊方面的核心設計思想仍然是通過經濟激勵機制防止少數人作惡:
所有交易都要提供交易費用,避免DDos攻擊
程序運行指令數通過Gas來限制,所消耗的費用超過設定上限時就會被取消,避免出現惡意合約
提高擴展性可擴展性是以太坊網絡承接更多業務量的最大制約。以太坊項目未來希望通過分片機制來提高整個網絡的擴展性。
分片:是一組維護和執行同一批智能合約的節點組成的子網絡,是整個網絡的子集。
分片前,所有節點都需要處理所有的智能合約,節點的處理能力會限制網絡的最大處理能力。分片后,同一片內的合約處理是同步的,彼此達成共識,不同分片之間則可以是異步的,可以提高網絡整體的可擴展性。
總結文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/24125.html
摘要:查詢以太坊的主幣可以直接公鑰地址查詢,使用其里面的方法。幣種名稱幣種余額小數位以上的幾個方法可以獲取其代幣信息。但是獲取的余額同樣是以以太坊最小單位為單位的數值,所以需要對其進行處理。 這段時間有幸能接觸到區塊鏈,這對于一個前端來說是一個全新的世界。同時,也特別感謝領導給我機會,能讓我接觸學習這方面的東西。以下是這段時間的學習總結,可能認識比較淺薄,但是覺得寫出來也是對自己學習的一個交...
摘要:區塊鏈最早出現在比特幣開元項目中。了不起的社會學實驗比特幣的誕生年化名中本聰的人發布比特幣白皮書,并在年公開了實現代碼比特幣的意義和價值比特幣首次真正從實踐意義上實現了安全可靠的去中心化數字貨幣機制。 區塊鏈最早出現在比特幣開元項目中。比特幣在誕生和發展過程中,借鑒了來自數字貨幣、密碼學、博弈論、分布式系統、控制論等多個領域的技術成果,作為核心支撐結構的區塊鏈技術大放異彩。 從實體貨幣...
摘要:關鍵步驟完成對一批交易的共識新區塊添加到區塊鏈結構上,被大家認可,確保未來無法被篡改比特幣的這種基于算力尋找串的共識機制稱為工作量證明。 定義與原理 定義 維基上給出定義: 一種分布式數據庫技術,通過維護數據塊的鏈式結構,可以維持增長的、不可篡改的數據記錄 基本原理 區塊鏈包括三個概念: 交易: 一次對賬本的操作,導致賬本狀態的一次改變,如添加一條轉賬記錄 區塊: 記錄一段時間內發生...
摘要:以太坊客戶端快速入門以太坊客戶端的項目是。參考資料文章中的列表對應的鏈接可以參考第頁下一篇文章我們將會介紹以太坊連載八客戶端的安裝與定制二感謝朝夕團隊參與的翻譯和校驗。 以太坊C++客戶端:cpp-ethereum 快速入門 以太坊C++客戶端的Github項目是 webthree-umbrella。 我們將恢復到 cpp-ethereum-github 作為項目重啟的一部分。 如果...
摘要:側鏈側鏈協議允許資產在比特幣區塊鏈和其他區塊鏈之間互轉。實現了比特幣區塊鏈的擴展證明在比特幣系統中驗證交易時,涉及交易合法性檢查雙重花費檢查腳本檢查等。 比特幣項目簡介 比特幣是基于區塊鏈技術的一種數字貨幣實現,比特幣網絡是歷史上首個經過大規模、長時間檢查的數字貨幣系統 比特幣網絡在功能上具有如下特點: 去中心化: 意味著沒有任何獨立個體可以對網絡中的交易進行破壞,任何交易請求都需要...
閱讀 3616·2023-04-25 23:32
閱讀 2039·2019-08-30 15:55
閱讀 2651·2019-08-30 15:52
閱讀 3109·2019-08-30 10:54
閱讀 839·2019-08-29 16:16
閱讀 645·2019-08-29 15:09
閱讀 3647·2019-08-26 14:05
閱讀 1632·2019-08-26 13:22