以太坊基礎詳解
阿新 • • 發佈:2018-11-10
以太坊背景:
為了解決位元只能應用於支付領域而設計的一種新的公鏈
概念:
以太坊是一個建立區塊鏈技術之上的去中心化應用平臺。允許任何人在該平臺中建立和使用通過區塊鏈技術執行的去中心化應用,被稱為區塊鏈2.0。
優點
- 以太坊平臺對底層的區塊鏈進行了封裝,讓區塊鏈開發者可以直接上層應用平臺進行開發,只需要專注於應用本身的開發,降低開發難度
- 與bitcoin相比,以太坊採用的是賬戶模型,不再使用UTXO
①:節省空間,每筆交易只有一個輸入,一個輸出,一個簽名
②:更加容易理解
③:編碼簡單,不需要寫複雜的指令碼
- 共識
①:以太坊採用改進的POW,避免了比特幣的能耗問題
②:Ethash記憶體難解,不再是單純依靠算力
- 智慧合約:和比特幣相比,以太坊引入的是一個圖靈完備的智慧合約開發語言
缺陷
- TPS低,不適合快速大量的交易
- 以太坊網路節點不適合儲存大檔案
錢包與瀏覽器
- 以太坊錢包可以理解為以太坊客戶端,也可以認識是一個開發者工具,主要提供賬戶管理,轉賬,挖礦,智慧合約的部署與執行
- 圖形化錢包:Mist
- 資料瀏覽器
- etherscan.io:可以瀏覽以太坊各項資料包括區塊鏈相關資訊以及token
- myetherwallet.com:可以通過該網站做以太坊相關操作
- stateofthedapps:瀏覽以太坊DAPP的網站
智慧合約
- 概念:在計算機領域,智慧合約批一種計算機協議,這類協議一旦部署就能自稱執行和自我校驗,不再需要人為干預
- 優點:
- 較低的人為干預
- 精確執行
- 執行成本較低
- 去中心化權威
- 缺點:合約本身一旦出現問題,將會無法修改與修復
- 合約部署流程
- 啟動一個以太坊節點
- 可以使用web3.js等庫提供的API進行合約呼叫
- 部署到以太坊上
- 編譯智慧合約
- 編寫智慧合約
- GAS:手續費(燃料)
以太坊貨幣
- 1 eth = 10^18 wei
- 1 eth = 10^9 gwei
以太坊架構詳解
- 上層:DAPP,錢包,客戶端,JS框架
- 底層:相關的框架模組
以太坊核心概念
- 賬戶
- 外部賬戶:就是管理以太幣的賬戶,被公鑰-私鑰控制
- 合約賬戶:合約賬戶被儲存在賬戶中的合約程式碼控制
- 共同點:都可以持有以太幣;都可以傳送交易
- 區別:
①:控制方不同,合約賬戶由合約程式碼控制,外部賬戶由私鑰控制
②:外部賬戶不包含程式碼,合約賬戶包含合約程式碼
5.以太坊賬戶內部結構
|
外部賬戶 |
合約賬戶 |
Nonce |
該賬戶地址傳送的交易數量。出現在交易欄位中,防止雙花 |
該賬戶所建立的合約數量 |
Balance |
賬戶餘額 |
賬戶餘額 |
storageRoot |
Merkle根節點雜湊 |
Merkle根雜湊 |
codeHash |
預設為空 |
賬戶的EVM code(編譯後的智慧合約位元組碼) |
- EVM(以太坊虛擬):以太坊智慧合約的執行環境
- 交易:從外部賬戶發出的訊息(簽名資料包)
①:交易內容
- Gas
- 傳送的額外資料‘
- 賬戶餘額
- 用於確認傳送者的簽名
- 訊息接收者
②:TPS(交易吞吐量):以太坊每秒能處理的交易數量
③:Gas
- 燃料,也就是手續費,以太坊每執行一筆交易都會收取一定數量的gas,設定gas的目的是限制交易執行所需要的工作量。
- 在執行交易的過程中,如果gas消耗完了,但是,交易還沒有執行完成,會觸發out-of-gas,同時,當前呼叫 的所有狀態都會被回滾。被消耗的gas不會退還
- Gaslimit:由交易發起人決定,在交易過程最多允許消耗的gas數量
- Gasprice:gas單價,以gwei表示,gasprice是打包交易時選取交易的衡量標準之一
- gasUsed:實際消耗的gas
- 在交易執行過程中,如果實際消耗的gas小於gaslimit,的gas會以ether的方式退還給交易發起者。
- 以太坊狀態轉換:交易執行過程中,以太坊從一個正確的狀態轉換為另一個正確的狀態的過程
- 常見的DAPP
- Cryptokitties:以太坊遊戲
- DAO:去中心化的自治組織
- WeFund:去中心化的眾籌平臺
- 事件:利用現有的規則解析日誌記錄
- 共識:
- 以太坊當前採用的共識演算法仍然是POW(ethash)
- 與比特幣的工作證明機制不同,該演算法加入記憶體難度,使得以算力為核心不再可靠
- 叔區塊
- 從位元的意義上來說,就是一個廢區塊
- 概念:符合了難度條件,但是在區塊的交易中沒有被確認的區塊