區(qū)塊鏈大火,讓我等吃瓜群眾猝不及防。雖然網(wǎng)上文章鋪天蓋地,比如“一圖看懂”系列,但仍然雞同鴨講,莫衷一是,并不知其所以然,頂多知道是個(gè)同步賬本。作為一篇學(xué)習(xí)總結(jié),我希(盡)望(力)本文能作為一篇普及貼,也能讓其他人看懂。所以這里不會深入探討技術(shù)原理,大佬們請繞過。
比特幣是世界上第一個(gè)通過密碼學(xué),而非中央銀行發(fā)行的電子加密貨幣。因?yàn)槠浒l(fā)行總量固定,無中央銀行干預(yù),讓許多”民主人士“認(rèn)為這是極為先進(jìn)的民主思想技術(shù)革命。然而去中心化的系統(tǒng)帶來了一些新問題:
沒有政府背書和資產(chǎn)擔(dān)保,貨幣信任、交易真實(shí)性成了問題。
每個(gè)人都有權(quán)了解這個(gè)世界在發(fā)生什么,信息一旦變化,所有數(shù)據(jù)庫需要同步更新,平等對稱。
沒有集中決策,為了信息對稱,如何達(dá)成共識,變成了難題。
三大問題“交易信任”、“數(shù)據(jù)對稱”、“共識達(dá)成”
解決辦法“非對稱加密”、“P2P網(wǎng)絡(luò)”、“共識機(jī)制”
中本聰用以上三種方法,構(gòu)架出了區(qū)塊鏈技術(shù)結(jié)構(gòu),讓比特幣的發(fā)行流通構(gòu)想得以實(shí)現(xiàn)。
比特幣(bitcoin)誕生于2008年的一篇論文《A Peer-to-Peer Electronic Cash System》并規(guī)定了一些基礎(chǔ)協(xié)議:
圖:比特幣協(xié)議特點(diǎn)
比特幣總量為2100萬枚
平均10分鐘誕生一個(gè)區(qū)塊。
被寫入?yún)^(qū)塊的交易按照手續(xù)費(fèi)高低排優(yōu)先級
區(qū)塊的大小只有 1MB,一筆交易大概是500字節(jié)左右,因此一個(gè)區(qū)塊最多只能包含2000多筆交易。
挖到新區(qū)塊的礦工將獲得獎(jiǎng)勵(lì),一開始(2008年)是50個(gè)比特幣,然后每4年減半,目前(2018年)是12.5個(gè)比特幣
一筆交易確認(rèn)需要等待6個(gè)區(qū)塊
比特幣網(wǎng)絡(luò)每10分鐘,最多只能處理2000多筆交易,換算一下,就是處理速度為3~7筆/秒。
也就是說,比特幣區(qū)塊鏈每秒最多只能處理7筆交易,要是交易數(shù)據(jù)再大點(diǎn),可能連7筆都達(dá)不到。而支付寶一秒處理12萬筆交易。這本應(yīng)在1秒處理的12萬筆交易,比特幣需要10小時(shí)。
每4年獎(jiǎng)勵(lì)減半,那么到了2140年,礦工將得不到任何獎(jiǎng)勵(lì),比特幣的數(shù)量也將停止增加。這時(shí),礦工的收益就完全依靠交易手續(xù)費(fèi)了。
這些數(shù)據(jù)是怎么確定的,眾說紛紜。比如一個(gè)區(qū)塊鏈的大小是1MB,中本聰在設(shè)計(jì)之初也并未預(yù)料到會發(fā)展到今天的規(guī)模,其本身是一個(gè)構(gòu)想的實(shí)驗(yàn)。很多數(shù)據(jù)并未驗(yàn)證,甚至可以說是拍腦袋定的。
比特幣的基礎(chǔ)是加密學(xué),如果不知道一筆錢從哪來,是誰的,誰敢拿它當(dāng)貨幣呢?非對稱加密從技術(shù)上解決了可信性問題。這也是這一類數(shù)字憑證被稱為"加密貨幣"的原因。
所謂非對稱加密,其實(shí)很簡單:加密和解密需要一把公鑰和一把私鑰。
交易的第一件事就是你必須擁有自己的公鑰和私鑰(任何交易所開戶或錢包類網(wǎng)站都會給)。
圖:比特幣交易加密過程通俗版
驗(yàn)證一筆交易是否有效,需要兩步:
1.FROM(誰發(fā)送的,包括兩部分)
Previous tx: 這筆錢的來源賬單的id, 驗(yàn)證資金來源。
scriptSig: 這筆交易的簽名,就是把交易用私鑰做hash
2.TO(誰接受,包括兩部分)
Value: 要發(fā)多少
scriptPubKey: 接收方的公鑰,也就是比特幣地址
對于比特幣,錢不是支付給個(gè)人的,而是支付給某一個(gè)地址,沒有人知道,那些私鑰和地址背后的主人是誰——匿名性。
區(qū)塊鏈(blockchain)是比特幣使用的一種特殊的數(shù)據(jù)庫,是比特幣存在的基礎(chǔ)。任何人都可以架設(shè)服務(wù)器,加入?yún)^(qū)塊鏈網(wǎng)絡(luò),成為一個(gè)節(jié)點(diǎn)。
圖:區(qū)塊鏈結(jié)構(gòu)示意圖
區(qū)塊鏈由一個(gè)個(gè)區(qū)塊(block)組成。區(qū)塊很像數(shù)據(jù)庫的記錄,每次寫入數(shù)據(jù),就是創(chuàng)建一個(gè)區(qū)塊。每個(gè)區(qū)塊包含兩個(gè)部分,區(qū)塊頭和區(qū)塊體。
區(qū)塊頭(Head):記錄當(dāng)前區(qū)塊的元信息。其中包含:
生成時(shí)間
上一個(gè)區(qū)塊的 Hash
區(qū)塊體的Hash
區(qū)塊體(Body):實(shí)際交易數(shù)據(jù)
其中比較重要的概念是“Hash”。所謂 Hash 是對任意內(nèi)容,計(jì)算出一個(gè)長度相同的特征值。而且保證,只要原始內(nèi)容不同,對應(yīng)的 Hash 一定是不同的。比特幣區(qū)塊用的SHA256加密算法。
每個(gè)區(qū)塊的 Hash 都是不一樣的,通過 Hash 標(biāo)識區(qū)塊。
如果區(qū)塊的內(nèi)容變了,它的 Hash 一定會改變。
圖:區(qū)塊結(jié)構(gòu)示意圖
“挖礦”指的是把網(wǎng)絡(luò)上待確認(rèn)的交易寫入新區(qū)塊,并獲得比特幣獎(jiǎng)勵(lì)的過程。
“礦工”是用GPU等硬件設(shè)備進(jìn)行數(shù)據(jù)計(jì)算的一群人。正是這群人,把交易者的數(shù)據(jù)一筆一筆記入帳中?!巴诘V”的機(jī)器叫“礦機(jī)”;成規(guī)模“挖礦”的場地叫“礦廠”。
回顧挖礦歷史,比特幣挖礦總共經(jīng)歷了以下五個(gè)時(shí)代:CPU(20MHash/s)→GPU(400MHash/s)→FPGA(25GHash/s)→ASIC(3.5THash/s)→大規(guī)模集群挖礦(3.5THash/s*X)。
圖:礦廠
“挖礦”道理其實(shí)很簡單,想要挖到新區(qū)塊必算出符合要求的哈希值。你可能會有一個(gè)疑問,計(jì)算一個(gè)哈希值為什么這么難?原來正確的哈希值是有一定要求的:
圖:515798號區(qū)塊信息
1.Difficulty
區(qū)塊頭包含一個(gè)難度系數(shù)(difficulty),這個(gè)值決定了計(jì)算 Hash 的難度。舉例來說,第515798個(gè)區(qū)塊的難度系數(shù)是 3462542391191.56,而第100000個(gè)區(qū)塊鏈難度可只有14484.162361。
2.Target
區(qū)塊鏈協(xié)議規(guī)定,使用一個(gè)常量除以難度系數(shù),可以得到目標(biāo)值(target)。
Target = Targetmax/ Difficulty 顯然,難度系數(shù)越大,目標(biāo)值就越小。
Hash 的有效性跟目標(biāo)值密切相關(guān),只有小于目標(biāo)值的Hash 才是有效的。這就是采礦如此之慢的根本原因。
3.Nonce
區(qū)塊頭里面還有一個(gè) Nonce 值,記錄了 Hash 重算的次數(shù)。
第 515798 個(gè)區(qū)塊的 Nonce 值是213587466,即計(jì)算了 2.1 億次,才得到了一個(gè)有效的 Hash,該區(qū)塊才能加入?yún)^(qū)塊鏈。
4.難度系數(shù)的動態(tài)調(diào)節(jié)
實(shí)際上,新的區(qū)塊有時(shí)候幾分鐘就可能被算出來,有的可能需要幾小時(shí)。為了保證新區(qū)塊在10分鐘左右的時(shí)間內(nèi)產(chǎn)生,并且考慮到硬件設(shè)備的升級,中本聰將Difficulty每2016個(gè)區(qū)塊調(diào)整一次以保證新區(qū)塊平均產(chǎn)生時(shí)間在10分鐘。
圖:分叉示意圖
在挖礦的過程中,如果同時(shí)生成了兩個(gè)新區(qū)快,鏈接著同一個(gè)上級區(qū)塊,便形成了分叉。
如果發(fā)生這種狀況:認(rèn)定率先達(dá)到6個(gè)新區(qū)塊的一條鏈為有效鏈(比特幣交易的六次確認(rèn))。即需要1小時(shí)左右。
一個(gè)很直觀的例子可以說明為何這種經(jīng)濟(jì)博弈模式:
超市付款需要排成一隊(duì),可能有人不守規(guī)矩要插隊(duì)。超市管理員會檢查隊(duì)伍,認(rèn)為最長的一條隊(duì)伍是合法的,并讓不合法的分叉隊(duì)伍重新排隊(duì)。只要大部分人不傻,就會自覺在最長的隊(duì)伍上排隊(duì)。
P2P網(wǎng)絡(luò)保證每個(gè)人的信息同步,任何人都可以成為一個(gè)節(jié)點(diǎn)。每個(gè)節(jié)點(diǎn)都包含了整個(gè)區(qū)塊鏈(目前100G),并且節(jié)點(diǎn)之間時(shí)刻不停的同步信息。
當(dāng)你發(fā)生了一筆交易。你所在的節(jié)點(diǎn)就會把這筆交易告訴另一個(gè)節(jié)點(diǎn),直到傳遍整個(gè)網(wǎng)絡(luò)?!暗V工”搜集各種新發(fā)生的交易,將他們寫入?yún)^(qū)塊鏈。一旦寫入成功,此“礦工”所在節(jié)點(diǎn)的區(qū)塊鏈就成了最新版本,其他節(jié)點(diǎn)會來復(fù)制新增的區(qū)塊,保證全網(wǎng)同步。
圖:P2P節(jié)點(diǎn)分布全球,每個(gè)節(jié)點(diǎn)信息一致
“挖礦”這種行為的本質(zhì)是尋求達(dá)到某一共識,再把信息寫入?yún)^(qū)塊的勞動。這種共識決策其實(shí)不只比特幣所使用的一種方法。
目前主流共識機(jī)制目前有:
POW(Proof of Work)、POS (Proof of Stake)、DPOS(Delegated Proof of Stake)
1.POW(Proof of Work)
一句話介紹:干的快,收的越多。
工作量證明協(xié)議。比特幣所用共識機(jī)制。它要求發(fā)起者進(jìn)行一定量的運(yùn)算,也就意味著需要消耗計(jì)算機(jī)一定的時(shí)間。
優(yōu)點(diǎn):
1)算法簡單,容易實(shí)現(xiàn);
2)節(jié)點(diǎn)間無需交換額外的信息即可達(dá)成共識;
3)破壞系統(tǒng)需要投入極大的成本;
缺點(diǎn):
1)浪費(fèi)能源;
2)區(qū)塊的確認(rèn)時(shí)間難以縮短;
3)新的區(qū)塊鏈必須找到一種不同的散列算法,否則就會面臨比特幣的算力攻擊;
4)容易產(chǎn)生分叉,需要等待多個(gè)確認(rèn);
5)永遠(yuǎn)沒有最終性,需要檢查點(diǎn)機(jī)制來彌補(bǔ)最終性;
2.POS (Proof of Stake)
一句話介紹:持有越多,獲得越多。
權(quán)益證明,最早在 Peercoin 系統(tǒng)中被實(shí)現(xiàn),類似現(xiàn)實(shí)生活中的股東機(jī)制,擁有股份越多的人越容易獲取記賬權(quán)。在POW中,如果用戶花費(fèi)2000美元購買硬件設(shè)備,當(dāng)然會獲得兩倍算力來挖礦;同樣,在POS機(jī)制中投入兩倍的代幣作為押金,就有兩倍大的機(jī)會獲得產(chǎn)生新區(qū)塊的權(quán)利。
優(yōu)點(diǎn):
在一定程度上縮短了共識達(dá)成的時(shí)間;
不再需要大量消耗能源挖礦。
缺點(diǎn):
還是需要挖礦,本質(zhì)上沒有解決商業(yè)應(yīng)用的痛點(diǎn);
3.DPOS (Delegated Proof of Stake)
一句話介紹: 選出代表,高效運(yùn)算
Dan Larimer發(fā)明的這種新共識算法被稱為股份授權(quán)證明機(jī)制(DPoS),應(yīng)用于比特股和Steemit社區(qū)。
每個(gè)股東按其持股比例選定代表,每個(gè)股東將選票授予一名代表。獲票數(shù)最多的前100位代表加1位隨機(jī)代表按既定時(shí)間表輪流產(chǎn)生區(qū)塊。每名代表分配到一個(gè)時(shí)間段來生產(chǎn)區(qū)塊。所有的代表將收到等同于一個(gè)平均水平的區(qū)塊所含交易費(fèi)的10%作為報(bào)酬。該模式可以每30秒產(chǎn)生一個(gè)新區(qū)塊,每次單人有序生產(chǎn)區(qū)塊在正常的網(wǎng)絡(luò)條件下區(qū)塊鏈分叉的可能性極其小,即使發(fā)生也可以在幾分鐘內(nèi)得到解決。
優(yōu)點(diǎn):高效
缺點(diǎn):整個(gè)共識機(jī)制還是依賴于代幣,很多商業(yè)應(yīng)用是不需要代幣存在的。
為什么會有以太坊呢?它的創(chuàng)始人Vitalik Buterin在《以太坊白皮書》前言部分挑明:因?yàn)楸忍貛艣]有賬戶狀態(tài)的概念;而且POW機(jī)制效能低,浪費(fèi)大量時(shí)間和資源。而以太坊作為區(qū)塊鏈平臺將區(qū)塊鏈技術(shù)的發(fā)展帶入到 2.0 時(shí)代。
以太坊要實(shí)現(xiàn)的是一個(gè)內(nèi)置了編程語言(Solidity)的區(qū)塊鏈協(xié)議,那么理論上任何區(qū)塊鏈應(yīng)用都可以用這門語言進(jìn)行定義,運(yùn)行于以太坊的區(qū)塊鏈協(xié)議之上(該協(xié)議的意義與互聯(lián)網(wǎng)時(shí)代的 TCP/IP 協(xié)議相似)。這使得區(qū)塊鏈應(yīng)用開發(fā)者們高效快速地開發(fā)頂層應(yīng)用,變?yōu)榭赡堋?/span>
以太坊涉及的問題非常多,很難一言蔽之。這里只對其地位和意義做簡要了解。如果感興趣可以登陸其官網(wǎng):https://www.ethereum.org/
ICO和其他電子加密貨幣
圖:火幣pro上市幣種
目前交易所上市的電子加密貨幣已經(jīng)不下1000種。那他們是什么?從哪來?什么是山寨幣,分叉幣,ICO?
山寨幣
是我們最初指除比特幣以外的加密貨幣。
分叉幣
是由主鏈分叉出來的新幣,比如比特幣BTC分叉的比特現(xiàn)金B(yǎng)CH。
ICO是Initial Coin Offering的簡稱
所有成功的數(shù)字貨幣以及區(qū)塊鏈項(xiàng)目無一不是社區(qū)項(xiàng)目。常見的ICO里,數(shù)字貨幣和區(qū)塊鏈項(xiàng)目向早期愛好者出售項(xiàng)目代幣。項(xiàng)目團(tuán)隊(duì)通過ICO獲取技術(shù)開發(fā)和市場拓展資金;而項(xiàng)目愛好者通過ICO支持項(xiàng)目,同時(shí)也可在對應(yīng)代幣進(jìn)入交易市場后選擇交易退出。
可查的首個(gè)ICO來自于Mastercoin項(xiàng)目(現(xiàn)已更名為Omni),其在13年7月時(shí)在Bitcointalk(最大的比特幣和數(shù)字貨幣社區(qū)論壇)上宣布通過比特幣進(jìn)行ICO眾籌,并生成對應(yīng)的Mastercoin代幣并分發(fā)給到眾籌參與者。本質(zhì)上來說這次ICO是一種以物換物的行為,即參與者用比特幣換得Mastercoin項(xiàng)目里的代幣。一開始ICO只是數(shù)字貨幣愛好者的一種社區(qū)行為,隨著數(shù)字貨幣以及區(qū)塊鏈的不斷發(fā)展開始被越來越多人接受并參與。絕大部分ICO都是通過比特幣或其他數(shù)字貨幣進(jìn)行的。
幾個(gè)著名的ICO案例:
- 2013年7月,Mastercoin(現(xiàn)更名為Omni):可查的最早ICO項(xiàng)目,通過meta-protocol拓展比特幣功能,募集5000 BTC。
- 2013年12月,NXT(未來幣):首個(gè)完整的PoS區(qū)塊鏈,曾經(jīng)神秘的開發(fā)者,持續(xù)發(fā)展的強(qiáng)大社區(qū)。ICO神話:募集21 BTC(是的你沒看錯(cuò),21BTC,約等于當(dāng)時(shí)6000美元),市值峰值曾到達(dá)過1億美元。
- 2013年-2014年,Bitshares(比特股):曾經(jīng)的“數(shù)字資產(chǎn)二代幣三劍客”之一(另外兩個(gè)為NXT和CounterParty),國內(nèi)數(shù)字貨幣界口水之源,毀譽(yù)參半。其社區(qū)培養(yǎng)了國內(nèi)大量早期ICO以及數(shù)字資產(chǎn)愛好者。
- 2014年7月,Ethereum(以太坊):ICO時(shí)募集3萬余個(gè)比特幣曾創(chuàng)下紀(jì)錄。將智能合約理念推進(jìn)到極致的區(qū)塊鏈項(xiàng)目,讓全世界重新認(rèn)識區(qū)塊鏈公有鏈的項(xiàng)目。近兩年最成功的ICO,也是至今為止除比特幣以外市值最高的數(shù)字貨幣/區(qū)塊鏈項(xiàng)目。近期由于TheDAO事件影響晴雨不定。
- 2015年3月,F(xiàn)actom(公正通):雙代幣設(shè)計(jì),首提存在性證明的區(qū)塊鏈商業(yè)化以及由此導(dǎo)出的基金會與公司雙機(jī)構(gòu)設(shè)置。
- 2016年3月,Lisk:以太坊挑戰(zhàn)者,利用側(cè)鏈的Dapp解決方案。
- 2016年5月,TheDAO:等值1.5億美元破世界紀(jì)錄的ICO眾籌,非典型ICO(其本身不是區(qū)塊鏈)。向世界大聲宣告智能合約時(shí)代到來后一個(gè)月即被黑客攻克,在歷史上刻下了深深的雙重驚嘆號 (該項(xiàng)目目前已經(jīng)失?。?。
- 2017年6月, EOS (Enterprise Operation System) :為商用分布式應(yīng)用設(shè)計(jì)的一款區(qū)塊鏈操作系統(tǒng)。 創(chuàng)始人是比特股創(chuàng)始人、DPOS發(fā)明者Dan Larimer,已經(jīng)創(chuàng)造了一個(gè)新的ICO記錄——5天內(nèi)籌集了1.85億美元。它是以以太坊為募集基礎(chǔ)的代幣。
細(xì)心的觀眾可能已經(jīng)發(fā)現(xiàn),這套民主思想的技術(shù),似乎并沒有那么公平。如果你有足夠資本建立礦場,將會持有大量的比特幣(尤其前期難度不高)。資本逐漸慢慢聚攏到算力集中的少數(shù)礦場的手里,形成馬太效應(yīng),去中心化效應(yīng)減弱。比如現(xiàn)在的比特大陸(一度接近51%的算力),郭宏才也是這樣挖礦起家?,F(xiàn)在挖礦已經(jīng)不是小散戶玩的起的游戲了。
比特幣的區(qū)塊大小為1M,如果比特幣交易越來越多,很多交易就不會在發(fā)生后的第一個(gè)區(qū)塊被打包和確認(rèn),可能要等好幾個(gè)區(qū)塊,甚至更久。比特幣交易的擁堵導(dǎo)致了轉(zhuǎn)賬速度變慢,手續(xù)費(fèi)也越來越高。
中本聰曾提出了在比特幣容量不夠用的時(shí)候應(yīng)該怎樣進(jìn)行擴(kuò)容。白皮書發(fā)布之后,他自己在社區(qū)留言的第一個(gè)問題,就指出了比特幣未來的擴(kuò)容隱患。
區(qū)塊鏈技術(shù)性強(qiáng),技術(shù)分支也越來越多,這里也只聊了九牛一毛。
從業(yè)務(wù)上看,應(yīng)用卻已經(jīng)很多:網(wǎng)易星球、阿里的麻吉寶。然而目前給人的感覺都還是為了做區(qū)塊鏈而區(qū)塊鏈,需求的還沒有真正出現(xiàn)。目前德國、英國、日本等政府認(rèn)可比特幣的價(jià)值,和此前加密貓的誕生,推著幣價(jià)一度走高。不過,區(qū)塊鏈和比特幣到底是鉆石還是郁金香,等待驗(yàn)證還有很多。