以太坊 相關資源連結
加密貨幣
名詞介紹
Geth
- 啟動 geth
geth --datadir "/root/chain" console
- 其中 datadir用於指定數據目錄。這個目錄不能夠預先創建,否則命令會失敗
帳戶 (地址)
- 產生私鑰 (32 Byte)
- 由私鑰推導出公鑰,ECDSA 算法 (64 Byte)
- 公鑰推導出地址 (20 Byte)
- 公鑰 (64 Byte)
- 公鑰進行 Keccak-256 hash,變成 32 Byte
- 32 Byte 前的 12 Byte 移除,剩下的 20 Byte 就是地址
- 帳戶地址
- 合約地址
(Genesis File)
GAS
- BitCoin 是發行自己的數字貨幣
- Eth 希望是用相同的規範(protocal),創造自己的利用(ex 貨幣, 合約)
- 可是你在使用他的服務產生自己的利用時,是需要礦工的支援
- Gas 就是你付費給礦工的單位(手續費)
- => 運行一個合約要付出一定的 Gas
- Gas 同時也要能夠確保合約能夠停止
- BitCoin 的手續費是以交易大小作計算
- Eth 是以礦工運算的複雜度做計算
- Gas 是隨市場波動而改變
- 如何計算 Gas: …
- wei 1e-18
- Gwei 1e-9
Token
PoS
Proof-of-Stack
- 工作量證明
- PoW 在資源的浪費太高了
- 當你在鍊上擁有的 Eth 越多,時間越長,你就應該擁有較高的寫帳權力
- sharping algo
- 想解決運算太慢而無法 handle 以後更高的交易量
- 資料庫的概念
- 礦工分組 => 效能提升
- PoS 難點:
- 需計算擁有多少 Eth & 擁有多久
- 統計擁有 Eth 量是需要不被外界影響的 => 不能寫在 client (可以騙你我有)
- 可能需要用 sandbox
PoW, PoA, PoS
與 Bitcoin 的差別
https://read01.com/oBazm3.html
EVM
Memory
圖靈完備語言
Hash Speed
- Bitcoin 平均交易需要 10 分鐘,而 Ethereum 只要 15 秒
- 在 Bitcoin 中,若 A 區塊尚未擴散,B 區塊就已經產生了話,可能會只有一個區塊進入主鏈,被放棄的區塊內的交易就不會發生
- 為了避免這個狀況,Eth 獎勵礦工納入上一輪被丟失的區塊
- 被丟失的區塊稱作孤塊 (Orphaned block),這些被納入的孤塊稱作叔塊 (Uncle block) ,這套獎勵機制名為 GHOST 演算法
Ether 錢包
線上錢包
Mist
Parity
智能合約
clock century regret direct flip match erase core arrange baby about horse
可支援繼承 要可以被查詢的記得記 public
主要內容
- address (地址 / 帳號)
- 使用者
- 合約
- stats(狀態)
- 會進入 hash 運算裡
- 可永久保留,使用者用來記錄合約的相關資訊
- Ethereum的設計機制是不鼓勵儲存state的,用到state耗費的gas特別高
- function(動作)
- 對這合約狀態產生影響的動作
- gas(手續費)
- 每執行一次 函式都要付出相對應該付的費用
- 合約提供越多 gas,礦工會越想優先做這個合約的 pow,導致此合約越快被寫入區塊
- event
- 可以與外部 oricalization 連接
交易
都是先把錢給網路(合約),保證你有著麼多錢
event
- 比較便宜 (GAS)
valuable
- 比 event 貴很多 (GAS)
Solidity
合約步驟
- 合約宣告
contract ContractName { address public owner; address public receiver; ... }