1. 出塊時間。html
比特幣出塊時間是平均10分鐘,而以太坊約是15秒。python
2.獎勵。git
以太幣獎勵爲5以太幣,而且每次出塊獎勵不減小,大都會後改成了3個以太幣。比特幣是每次減半,第一塊的是50個比特幣。以後每一塊都減半程序員
3.區塊記錄量。github
以太幣記錄量遠高於比特幣web
4.有叔塊(uncle block)獎勵。算法
由於以太坊的出塊時間很短,很容易出現兩個節點同時出塊的狀況,爲了使得全部同時出塊的節點均可以獲得獎勵,減小無用礦工。數據庫
在區塊中傳遞的合約,或者說是傳遞的字符串,不過不是單純的字符串和信息,而是一段可執行的腳本,好比說,有觸發條件,有交互能力npm
應用:第一個成功應用的就是電子貓,發佈方一旦發佈出去,後面本身都不能修改;以後應用最多的就是電子賭場了。1:公信力好,代碼是公開透明的,莊家是不能做弊的(也能夠說沒有莊家),並且沒有中央服務器;2:賭過程很難被監控被追蹤,一旦入局不可逆轉,並且金額走向沒法追蹤編程
特色:一、公開透明的策略,任何人均可以檢查其代碼邏輯可靠性;二、即時與區塊鏈代幣支付結合,典型如以太坊。三、去中心化和持續生命力,代碼發佈後,即使發佈方倒閉,解散,其產品依然會在鏈上運行。
虛擬機都是跨平臺的
以太坊實現了一個叫Ethereum Virtual Machine(EVM)的運行時環境,相似JVM,它的主要工做是執行智能合約的字節碼,EVM「位於區塊鏈之上」,而JVM主要是執行目標代碼(字節碼),內存回收機制好像也不同。
能夠,銀行私有鏈用JVM,安全機制高。
以太坊的軟件開發語言是其最大特性之一,由於對區塊鏈進行編程是一項首要目標。以太坊具備四種專用語言:Serpent (受Python啓發)、 Solidity (受JavaScript 啓發)、 Mutan(受Go 啓發) 和 LLL (受Lisp 啓發),都是爲面向合約編程而從底層開始設計的語言。
Solidity是一種智能合約高級語言,運行在Ethereum虛擬機(EVM)之上。
Solidity是以太坊的首選語言,它內置了Serpent的全部特性,它的語法接近於Javascript,是一種面向對象的語言,這下降了學習門檻,易於被掌握和使用,由於JavaScript是Web開發者的經常使用語言。所以,Solidity充分利用了現有數以百萬程序員已掌握JavaScript這一現狀。
但做爲一種真正意義上運行在網絡上的去中心合約,它又有不少的不一樣,下面列舉一些:
Serpent與Python之間的主要區別有:
缺陷: 最近Zeppelin Solution團隊發現其編譯器有一個嚴重的bug
提示:升級Serpent的時候,須要先pip uninstall ethereum-serpent而後python setup.py install。避免使用pip install ethereum-serpent,由於pypi上的包八成已通過時了。
提高以太坊上應用程序的安全性
談着以前須要瞭解以太坊目前須要解決的難題有哪些?將來的需求是什麼?
Vitalik Buterin:目前的挑戰主要是技術性問題,大致分爲如下三類:
第一,可擴展性。咱們要增長區塊鏈的容量,這一性能主要反映在每秒可處理的原始交易數。目前以太坊每秒鐘可處理15筆交易左右,但要知足主流採用,還須要數千倍的提高。
第二,隱私性。咱們須要努力確保在使用區塊鏈應用時不會泄露我的隱私數據。
第三,安全性。 咱們須要在技術上幫助社區最大程度地下降數字資產被盜的風險,私鑰遺失、智能合約代碼漏洞等風險也要最小化。
在實用性方面也存在着一些挑戰,但相較於核心協議和平臺自己,每一個單獨應用的開發團隊對實用性有着更大的影響 。
但目前咱們已經有不少可靠的解決方案來應對以上全部的挑戰 。例如,咱們有專門的團隊在研究狀態通道技術,分片技術和Plasma技術來解決可擴展性方面的問題。拜占庭硬分叉已經完成,並且它的加密功能也達到可用狀態,但在構建基礎設施以及利用它們的方面還有不少細節工做要作。
安全性分爲兩個方面。首先,要保證以太坊自己是安全的。這將經過Casper權益證實算法(PoS)獲得改進。目前算法已經接近完成,測試網已經運行,並且其餘語言的算法實現也已經在編寫。 其次,是以太坊上應用程序的安全性。這將經過一系列技術手段來解決,包括以太坊上編程語言的創新,好比Vyper(https://vyper.online),以及形式化驗證的改進,和更完善的智能合約開發標準
1.部署一個合約,合約地址爲:
0x2bda4364bb076187f0ef0067a61ccb95d636e383
2.經過 geth js 交互控制檯從 coinbase 帳戶轉 1 個 ether 給合約地址
查看合約地址中 ether 數量:
web3.fromWei(web3.eth.getBalance("0x2bda4364bb076187f0ef0067a61ccb95d636e383"),"ether") 0
3.解鎖 coinbase 帳號
personal.unlockAccount(eth.coinbase, "account_pwd", 10000000000)
4.轉帳
eth.sendTransaction({from:eth.coinbase,to:"0x2bda4364bb076187f0ef0067a61ccb95d636e383",value:web3.toWei(1,"ether")})
5.當 geth 中的地址發生交易時,geth 服務的日誌(請查看Ethereum 私有鏈和 web3.js 使用如何設置 geth 日誌) 會打印出相似下面這樣的日誌:
I1112 11:51:15.338680 eth/api.go:1185] Tx(0xb3515f0245f0f14f2756e45f402a8dd058b387e596ca50fb3ec9213390596c17) to: 0x2bda4364bb076187f0ef0067a61ccb95d636e383
6.此時說明交易已經發生了,等待被區塊鏈確認狀態(pending)
7.能夠開啓挖礦 miner.start(1) 來確認這筆交易
8.確認後關閉挖礦 miner.stop()
9.此時再查看合約地址上的 ether 數量,你就能夠發現增長了一個
無論什麼類型的交易,都包含:
在以太坊狀態全局範圍內的合約能夠與在相同範圍內的合約進行通訊。他們是經過「消息」或者「內部交易」進行通訊的。咱們能夠認爲消息或內部交易相似於交易,不過與交易有着最大的不一樣點—它們不是由外部擁有帳戶產生的。相反,他們是被合約產生的。它們是虛擬對象,與交易不一樣,沒有被序列化並且只存在與以太坊執行環境。
當一個合約發送一個內部交易給另外一個合約,存在於接收者合約帳戶相關聯的代碼就會被執行
1. Mist
說到以太坊錢包,第一個要說的固然就是Ethereum官方錢包+瀏覽器 Mist。Mist是一個錢包(全節點錢包通俗的來講就是同步了所有的以太坊區塊信息的錢包)。也就是說打開錢包後,電腦會自動同步所有的以太坊區塊信息,若是設備和網絡的條件過關的狀況下,目前(17年9月8日)大概須要半天左右的時間。
優點:
劣勢:
下載地址: http://ethfans.org/wikis/Mist-Mirror
2. Parity
原以太坊基金會部分紅員,開發的錢包。功能強大,也是一個全節點錢包。 PS:主要掌握這個錢包就好了
優點:
劣勢:
下載地址: http://ethfans.org/wikis/Ethcore-Parity-Mirror
3. MyEtherWallet
MyEtherWallet 做爲一個輕錢包,上手難道不大,無需下載,在直接在網頁上就能夠完成全部的操做。在MyEtherWallet上生成的私鑰由用戶自我保管,平臺方並沒有備份。
優點:
劣勢:
4. imToken
移動端錢包,操做簡便,容易上手,功能齊全,在imToken上生成的錢包私鑰保存在手機本地,平臺方並沒有備份。
優點:
劣勢:
下載地址: https://token.im/
5. MetaMask
MetaMask的錢包屬性偏弱,更多的是起到使Chrome瀏覽器兼容以太坊網絡的做用
優勢:
缺點:
下載地址: https://metamask.io/
6. Legder
硬件錢包,安全性頗高的錢包,官方提供的軟件功能較爲侷限。能夠配合MyEtherWallet使用。
優勢:
缺點:
以太坊客戶端Geth在以太坊智能合約開發中最經常使用的工具(必備開發工具),一個多用途的命令行工具。
命令用法
geth [選項] 命令 [命令選項] [參數…]
版本:
1.7.3-stable
命令:
account 管理帳戶
attach 啓動交互式JavaScript環境(鏈接到節點)
bug 上報bug Issues
console 啓動交互式JavaScript環境
copydb 從文件夾建立本地鏈
dump Dump(分析)一個特定的塊存儲
dumpconfig 顯示配置值
export 導出區塊鏈到文件
import 導入一個區塊鏈文件
init 啓動並初始化一個新的創世紀塊
js 執行指定的JavaScript文件(多個)
license 顯示許可信息
makecache 生成ethash驗證緩存(用於測試)
makedag 生成ethash 挖礦DAG(用於測試)
monitor 監控和可視化節點指標
removedb 刪除區塊鏈和狀態數據庫
version 打印版本號
wallet 管理Ethereum預售錢包
help,h 顯示一個命令或幫助一個命令列表
是以太坊錢包
這個錢包的特色有幾個,一個是它由於是從新寫的代碼,因此跑起來更快,佔用系統的資源更少。第二個特色是它的同步功能作得更好,因此其餘錢包好久不能同步的的時候,它仍是可以很快同步。第三個特色,它雖然是一個全節點錢包,可是它把那些很早的區塊只留下了區塊頭,其餘內容刪減了,因此同步好的區塊的大小也就幾個G,而若是是用以太坊的官方全節點錢包,光區塊大概就得有40個G。第四個特色,這個對ICO特別有用,就是它可以設置定時發送交易,可以在到達某個區塊數的時候自動發送轉帳交易。
配合圖形界面使用就能完成交易 https://blog.csdn.net/liyuechun520/article/details/79747215
web3.js是以太坊提供的一個Javascript庫,它封裝了以太坊的JSON RPC API,提供了一系列與區塊鏈交互的Javascript對象和函數,包括查看網絡狀態,查看本地帳戶、查看交易和區塊、發送交易、編譯/部署智能合約、調用智能合約等,其中最重要的就是與智能合約交互的API。
Web3.js 在 npm 裏做爲一個節點模塊,在 bower 和 component 裏做爲一個可嵌入的 js 和一個 meteor.js 包。
優缺點 ?這個我暫時還不是很清楚,先留這裏
ps:gas能夠有效的防止惡意攻擊,由於擁有gas的大部分都是以太坊的內部人員。
智能合約,就是一些代碼,運行整個分佈式網絡中。因爲網絡中的每個節點都是一個全節點。這樣的好處是容錯性強,壞處是效率低,消耗資源與時間(譯者注:原來只在一個節點執行一次就行,如今全部節點中每個,都要執行如出一轍的運算)。由於執行計算要花錢,而要執行的運算量與代碼直接相關。因此,每一個在網絡運行的底層操做都須要必定量的gas。gas只是一個名字,它表明的是執行所須要花費的成本(注:因爲以太坊是圖靈完備的,隨便一個死循環就將致使網絡不可用,因此引入了gas的概念)。整個分佈式網絡引入了強制限制,來避免停機問題。所以若是你寫一個死循環,當gas耗盡後,網絡就會拒絕執行接下來的操做,而且回滾你以前的全部操做。
gas的價格由市場決定,相似於比特幣的交易費機制。若是你的gas價格高,節點則將優先由於利益問題打包你的交易。
通常來講,在Ethereum中計算和存儲東西比在傳統環境中作的更爲昂貴,可是,Ethereum爲您的代碼提供了上述咱們討論過的那些好的屬性,這多是同樣有價值的。
通常來講,在以太坊網上讀取狀態是免費的,只有寫入狀態是收費的
在以太坊中一個比較重要的概念就是費用(fees),由以太坊網絡上的交易而產生的每一次計算,都會產生費用—沒有免費的午飯。這個費用是以稱之爲」gas」的來支付。
gas就是用來衡量在一個具體計算中要求的費用單位。gas price就是你願意在每一個gas上花費Ether的數量,以「gwei」進行衡量。「Wei」是Ether的最小單位,1Ether表示10^18Wei. 1gwei是1,000,000,000 Wei。
對每一個交易,發送者設置gas limit和gas price。gas limit和gas price就表明着發送者願意爲執行交易支付的Wei的最大值。
例如,假設發送者設置gas limit爲50,000,gas price爲20gwei。這就表示發送者願意最多支付50,000*20gwei = 1,000,000,000,000,000 Wei = 0.001 Ether來執行此交易。
記住gas limit表明用戶願意花費在gas上的錢的最大值。若是在他們的帳戶餘額中有足夠的Ether來支付這個最大值費用,那麼就沒問題。在交易結束時任何未使用的gas都會被返回給發送者,以原始費率兌換。
在發送者沒有提供足夠的gas來執行交易,那麼交易執行就會出現「gas不足」而後被認爲是無效的。在這種狀況下,交易處理就會被終止以及全部已改變的狀態將會被恢復,最後咱們就又回到了交易以前的狀態—完徹底全的以前狀態就像這筆交易歷來沒有發生。由於機器在耗盡gas以前仍是爲計算作出了努力,
因此理論上,將不會有任何的gas被返回給發送者。
這些gas的錢到底去了哪裏?發送者在gas上花費的全部錢都發送給了「受益人」地址,一般狀況下就是礦工的地址。由於礦工爲了計算和驗證交易作出了努力,因此礦工接收gas的費用做爲獎勵。
一般,發送者願意支付更高的gas price,礦工從這筆交易總就能得到更多的價值。所以,礦工也就更加願意選擇這筆交易。這樣的話,礦工能夠自由的選擇一筆交易本身願意驗證或忽略。爲了引導發送者應該設置gas price爲多少,礦工能夠選擇建議一個最小的gas值他們願意執行一個交易。
存儲也有費用
gas不只僅是用來支付計算這一步的費用,並且也用來支付存儲的費用。存儲的總費用與所使用的32位字節的最小倍數成比例。
存儲費用有一些比較細微的方面。好比,因爲增長了的存儲增長了全部節點上的以太坊狀態數據庫的大小,因此激勵保持數據存儲量小。爲了這個緣由,若是一個交易的執行有一步是清除一個存儲實體,那麼爲執行這個操做的費用就會被放棄,而且因爲釋放存儲空間的退款就會被返回給發送者。
費用的做用是什麼?
以太坊能夠運做的一個重要方面就是每一個網絡執行的操做同時也被全節點所影響。然而,計算的操做在以太坊虛擬機上是很是昂貴的。所以,以太坊智能合約最好是用來執行最簡單的任務,好比運行一個簡單的業務邏輯或者驗證簽名和其餘密碼對象,而不是用於複雜的操做,好比文件存儲,電子郵件,或機器學習,這些會給網絡形成壓力。施加費用防止用戶使網絡超負荷。
以太坊是一個圖靈完備語言(短而言之,圖靈機器就是一個能夠模擬任何電腦算法的機器。對於圖靈機器不太熟悉的人能夠看看這個 和這個 )。這就容許有循環,並使以太坊受到停機問題 的影響,這個問題讓你沒法肯定程序是否無限制的運行。若是沒有費用的話,惡意的執行者經過執行一個包含無限循環的交易就能夠很容易的讓網絡癱瘓而不會產生任何反響。所以,費用保護網絡不受蓄意攻擊。
你也許會想,「爲何咱們還須要爲存儲付費?」其實就像計算同樣,以太坊網絡上的存儲是整個網絡都必需要負擔的成本。
爲了賺取以太幣,你必須有etherbase(或coinbase)地址。這個etherbase默認爲你生成的第一個帳戶。若是你沒有etherbase地址,geth –mine就不會開啓。
你能夠在命令行從新設置etherbase:
1 2 |
geth --etherbase 1 --mine 2>> geth.log // 1 is index: second account by creation order OR geth --etherbase '0xa4d8e9cae4d04b093aac82e6cd355b6b963fb7ff' --mine 2>> geth.log |
你也能夠在控制檯從新設置etherbase:
1 |
miner.setEtherbase(eth.accounts[2]) |
注意你的etherbase沒必要是本地帳戶地址,只要是現存的就能夠。
不一樣 coinbase是指本地帳戶,意思是你設置的 etherbase是默認給你生成的
18位
不論何時只要多個路徑產生了,一個」分叉「就會出現。咱們一般都想避免分叉,由於它們會破壞系統,強制人們去選擇哪條鏈是他們相信的鏈。
爲了肯定哪一個路徑纔是最有效的以及防止多條鏈的產生,以太坊使用了一個叫作「GHOST協議(GHOST protocol.)」的數學機制。
GHOST = Greedy Heaviest Observed Subtree
簡單來講,GHOST協議就是讓咱們必須選擇一個在其上完成計算最多的路徑。一個方法肯定路徑就是使用最近一個區塊(葉子區塊)的區塊號,區塊號表明着當前路徑上總的區塊數(不包含創世紀區塊)。區塊號越大,路徑就會越長,就說明越多的挖礦算力被消耗在此路徑上以達到葉子區塊。使用這種推理就能夠容許咱們贊同當前狀態的權威版本。
一種數據結構,它會存儲每一個賬戶的狀態(存儲鍵值對關係)。這個樹的創建是經過從每一個節點開始,而後將節點分紅多達16個組,而後散列每一個組,而後對散列結果繼續散列,直到整個樹有一個最後的「根散列」。
「前沿」是以太坊的最第一版本, 只有命令行界面,主要使用者是開發者
「家園」增長了相似 Windows系統那樣的圖形界面普通用戶也能夠方便地體驗以太坊的功能
「大都會」加入了—個像谷歌瀏覽器那樣的瀏覽器,除了使用方便以外,它還擁有一個強大的應用商店,能夠安裝插件實現更多功能。第三個版本在2017年年末發佈了出來
拜占庭硬分叉在第437萬個區塊高度發生,時間是2017年10月16日,引入了zk-Snarks 及 抽象帳戶等。
預計在2018年實施, 主要的特性就是平滑處理掉全部因爲"拜占庭"所引起的問題,並引入 PoW 和 PoS 的混合鏈模式。
「寧靜」目前尚未肯定發佈時間,預計它會將前三個版本採用的工做量證實(Pow) 共識機制切換到混合的共識機制
簡單說就是,在不透露交易細節的狀況下驗證了交易記錄。零知識證實能夠有效保護交易隱私,隱藏交易來源並防止追溯,同時也能保證交易是安全的,由於任何試圖修改交易的行爲都沒法經過驗證。
例子:零知識證實應用最廣的就是洗錢和跨境支付。
1)A要向B證實本身擁有某個房間的鑰匙,假設該房間只能用鑰匙打開鎖,而其餘任何方法都打不開。這時有2個方法:
①A把鑰匙出示給B,B用這把鑰匙打開該房間的鎖,從而證實A擁有該房間的正確的鑰匙。
②B肯定該房間內有某一物體,A用本身擁有的鑰匙打開該房間的門,而後把物體拿出來出示給B,從而證實本身確實擁有該房間的鑰匙。
後面的②方法屬於零知識證實。好處在於在整個證實的過程當中,B始終不能看到鑰匙的樣子,從而避免了鑰匙的泄露。
2)A擁有B的公鑰,A沒有見過B,而B見過A的照片,偶然一天2人見面了,B認出了A,但A不能肯定面前的人是不是B,這時B要向A證實本身是B,也有2個方法。
①B把本身的私鑰給A,A用這個私鑰對某個數據加密,而後用B的公鑰解密,若是正確,則證實對方確實是B。
②A給出一個隨機值,並使用B的公鑰對其加密,而後將加密後的數據交給B,B用本身的私鑰解密並展現給A,若是與A給出的隨機值相同,則證實對方是B。後面的方法屬於零知識證實。
3)有一個缺口環形的長廊,出口和入口距離很是近(在目距以內),但走廊中間某處有一道只能用鑰匙打開的門,A要向B證實本身擁有該門的鑰匙。採用零知識證實,則B看着A從入口進入走廊,而後又從出口走出走廊,這時B沒有獲得任何關於這個鑰匙的信息,可是徹底能夠證實A擁有鑰匙。
POS 就是基於擁有的數量和時間得到證實的共識算法,它不像POW注重算力競爭,而是強化了擁有的意義,好比在銀行存的錢越多,存的越長 則收益越大
缺點:POS也存在一些問題,好比馬太效應,最後系統決策和收益依然會集中在少數寡頭手裏,除此以外,當礦工熱潮退卻後,如何保證有效的工做節點數量來完成運算,也是值得觀察的
以太坊中PoS協議的實現, 剛開始每100個區塊將有一個採用PoS協議挖出
在的以太坊有兩類帳戶:即外部帳戶和合約帳戶,以太坊正在試圖模糊兩者的界限,即你能夠同時擁有合約帳戶和外部帳戶,這種作法本質上就是讓用戶按照合約帳戶的格式來定義外部帳戶。
爲了確保以太坊的礦工能加入到新鏈條中來,開發團隊引入了"難度炸彈"機制。它會使難度係數呈指數增長以致於讓挖礦變得幾乎不可能的。
所謂硬分叉是分叉方約定,在某個區塊節點開始,啓用新的系統架構繼續前進,再也不和主鏈保持一致,但同時繼承了該節點前的全部區塊。在這個節點以後,雙方各自挖各自的礦,各自爆各自的區塊,各走各的路。好比:公司有一本對公帳本,有一本內部帳本,兩個帳本徹底獨立
能解決什麼問題:在我看來有兩點:1.黑客發起針對The DAO智能合約多個漏洞的攻擊,其中也包含了遞歸調用漏洞,並向一個匿名地址轉移了3600萬個以太幣,致使以太坊選擇硬分叉啓用新的系統架構;2.不少人爲了發行ICO經過以太坊割點韭菜的錢
缺點:硬分叉不須要主鏈容許或經過,任何人均可以發起硬分叉,均可以基於本身的理解和判斷髮起一個新的分支,但對於信仰者來講,每一個分叉都是對共識的撕裂,是在破壞共識。共識算法自己就是防範故障或者惡意分叉的,而人爲強行分叉顯然是算法所不能處理的。
代幣合約標準,一系列經過以太坊智能合約發佈的代幣制定了代幣發放的通用規則。該標準是目前經過ICO發行代幣的基礎準則。
該標準可以確保基於以太坊的代幣在整個生態系統中以一種可預測的方式進行,使去中心化應用程序和智能合約能夠在整個平臺上彼此協做,全部代幣都遵循一個固定的安全標準。
ERC-20 標準是在2015年11月份推出的,使用這種規則的代幣,表現出一種通用的和可預測的方式。簡單地說,任何 ERC-20 代幣都能當即兼容以太坊錢包(幾乎全部支持以太幣的錢包,包括Jaxx、MEW、imToken等,也支持 erc-20的代幣),因爲交易所已經知道這些代幣是如何操做的,它們能夠很容易地整合這些代幣。這就意味着,在不少狀況下,這些代幣都是能夠當即進行交易的。
ERC20 是各個代幣的標準接口。ERC20 代幣僅僅是以太坊代幣的子集。爲了充分兼容 ERC20,開發者須要將一組特定的函數(接口)集成到他們的智能合約中,以便在高層面可以執行如下操做:
ERC20 讓以太坊區塊鏈上的其餘智能合約和去中心化應用之間無縫交互。一些具備部分但非全部ERC20標準功能的代幣被認爲是部分 ERC20兼容,這還要視其具體缺失的功能而定,但整體是它們仍然很容易與外部交互。
ERC-20標準還有待完善。其中一個障礙是,將令牌直接發送給令牌的智能合同將致使資金損失。這是由於一個令牌的合同只會跟蹤和分配資金。例如,當您從錢包中向另外一個用戶發送令牌時,該錢包將調用令牌的合約來更新數據庫。因此若是您試圖將令牌直接傳輸到令牌的合約中,那麼因爲該令牌的合約沒法響應,因此金錢就「丟失」了。
ERC223要解決的首要問題是什麼?
自從引入ERC20令牌標準以來,幾乎全部的基於以太坊的令牌都成功的接受了這個新標準。然而其自身的缺點須要及時解決,這即是ERC223令牌誕生的緣由。
ERC20標準沒法經過接收方合同處理傳入的交易。這是該令牌存在的最大問題,也是開發者一直但願改進的地方。ERC20令牌沒法將令牌發送給一個與這些令牌不兼容的契約,也正由於這樣,部分資金存在丟失的風險。
Reddit上的一篇文章指出,因爲被髮送到「錯誤」的合同上,大約價值40萬美圓的ERC20令牌被困,這對整個以太坊生態系統而言是一個巨大的威脅。幸運的是,ERC223令牌能夠解決這一難題,前提是該令牌可以得到批准並被引入。
ERC223令牌標準將向現有的ERC20標準引入一個新功能,以防止意外轉移的發生。ERC223令牌標準能夠防止令牌在以太坊網絡上丟失。
假設 ERC223 令牌標準可以取代ERC20成爲新的標準,現有令牌的發行方須要作一些艱難的決定。由於,從現實狀況來看,無論用何種方式,從ERC20轉換到ERC223是不可能的,一樣的,全部ERC20令牌都須要在ERC223標準下從新部署。這也意味着任何交易平臺的上市都須要更新他們的信息和地址。這是一個艱苦的過程,這也就意味着,在將來不多有現有的令牌被有效地轉換爲ERC223。
正如Alex van de Sande在Reddit上指出的那樣,「更方便」的過程多是建立新的令牌,它們是經過持有舊令牌的合同支持的。這多是大多數項目最合理的選擇,但只有時間才能肯定哪些選項將被實施
Ethereum Improvement Proposals - 以太坊改進協議
2017年10月16日下午1點22分,全球市值排名第二的加密貨幣以太坊執行了第5次硬分叉。此次硬分叉將帶來一系列的以太坊改進提案(EIPs)。
具體而言:硬分叉帶來的改變包括如下方面:
一、增長‘REVERT’操做符,容許處理錯誤不須要花費掉全部的gas(EIP 140)
二、如今交易接收方能夠包括一個狀態字段,用以指出交易成功仍是失敗(EIP 658)
三、在alt_bn128 (EIP 196)和配對檢查上 (EIP197)增長橢圓曲線和標量乘法,容許ZK-Snarks和其它加密數
四、支持大數模冪 (EIP 198),實現RSA簽名驗證和其它加密應用。
五、支持可變長度返回值 (EIP 211)
六、增長‘STATICCALL’操做符,容許對其它合約進行非狀態改變調用(EIP 214)
七、修改難度調整公式,將叔塊計算在內(EIP100)
八、冰河期/難度炸彈延期一年,區塊獎勵從5個以太坊降到3個以太坊 (EIP 649)
是一個區塊的父區塊與當前區塊父區塊的父區塊是相同的。
因爲以太坊區塊生產時間(大概15秒左右)比比特幣(大概10分鐘左右)要快不少。更短的區塊生產時間的一個缺點就是:更多的競爭區塊會被礦工發現。
這些競爭區塊一樣也被稱爲「孤區塊」(也就是被挖出來可是不會被添加到主鏈上的區塊)
Ommers的目的就是爲了幫助獎勵礦工歸入這些孤區塊,Ommer區塊會收到比全區塊少一點的獎勵。
官方解釋:經過向智能合約提供數據,它現實世界和區塊鏈之間的橋樑
個人理解:預言機相似於一頭豬耳朵上的耳環,經過耳環就能夠了解到這頭豬從出生到如今經歷的一切,像何時出生、何時打的針...
公有鏈是目前咱們熟知的比特幣,以太坊,瑞波幣這些,每一個人均可以參與,每一個人均可以在上面進行交易,若是支持智能合約,每一個人也均可以發佈本身的應用。
聯盟鏈是指一些願意彼此實現共信的機構和組織共同組建的,爲各自機構提供共識信用和價值傳遞的平臺,這樣只要聯盟不存在一家獨大的狀況,仍是能夠實現共識基礎,並且相對來講可能價值更大一些,我其實以爲聯盟鏈是有一些市場機會的。
私有鏈目前是不少金融機構正在考慮的,在本身的體系內搭建一套區塊鏈系統,不公開對外服務,可是提供內部的共識網絡,解決諸如信用證書,合同管理等問題。但私有鏈缺少共識,也須要公權機構背書,與傳統中心化相比價值有限,只能說防黑客篡改可能略微有點意義。
以太坊用來測試功能的網絡,好比拜占庭分叉以前先在測試網絡(Ropsten)上運行一段時間,穩定後再發布到公有鏈(正式網絡)。
以太坊測試網絡有:
這是一個組織(就像,一羣人),其中,使用代碼來保證最終的強制執行,而不是使用傳統的法律文件。這羣人使用智能合約來作常見組織作的全部的事情,好比在某件事上進行投票,好比決定是否對什麼進行投資等等。
反作用是決策,管理,以及對什麼進行投資的結果將會不可改變的存儲在區塊鏈上。
以前slock.it建立了標準的DAO框架來講明這個理念。在這裏有對DAO概念的總覽,以及如何使用框架來實現一個本身的DAO(注:這個項目因爲bug被黑客攻擊了)。
若有理解不對的地方歡迎指正