通俗一點(diǎn)地說,區(qū)塊鏈是一個(gè)收錄所有歷史交易的總帳,每個(gè)區(qū)塊中包含若干筆交易記錄。如果說區(qū)塊鏈?zhǔn)琴~本,那么區(qū)塊就是賬本的每一頁。交易的細(xì)節(jié)都被記錄在一個(gè)網(wǎng)絡(luò)里任何人都可以看得到的公開賬簿上。
區(qū)塊就是很多交易數(shù)據(jù)的集合,它被標(biāo)記上時(shí)間戳和之前一個(gè)區(qū)塊的獨(dú)特標(biāo)記。有效的區(qū)塊獲得全網(wǎng)絡(luò)的共識(shí)認(rèn)可以后會(huì)被追加到主區(qū)塊鏈中。區(qū)塊鏈?zhǔn)怯邪灰?a target="_blank">信息的區(qū)塊從后向前有序鏈接起來的數(shù)據(jù)結(jié)構(gòu)。
在這里,我用比特幣相關(guān)知識(shí)舉個(gè)栗子解釋一下。
在比特幣領(lǐng)域中,存在“礦工”這樣一個(gè)概念。礦工是指通過不斷重復(fù)哈希運(yùn)算來產(chǎn)生工作量的各個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)。(每個(gè)節(jié)點(diǎn)都是路由,區(qū)塊鏈數(shù)據(jù)庫,挖礦,錢包服務(wù)的功能集合)
礦工們需要競(jìng)爭(zhēng)完成一種基于加密哈希算法的數(shù)學(xué)難題,答案存在于新的區(qū)塊中,誰優(yōu)先解出這個(gè)答案,誰就能在p2p網(wǎng)絡(luò)中廣播聲明自己已經(jīng)獲得這個(gè)區(qū)塊,其他的曠工就會(huì)意識(shí)到在這局里已經(jīng)輸了,就會(huì)立馬開始下一個(gè)區(qū)塊的挖掘工作。每個(gè)礦工在他的區(qū)塊中都有一筆特殊的交易,他們會(huì)將新生成的比特幣(當(dāng)前每塊25個(gè)比特幣,2016年也就是今年減半)作為報(bào)酬,然后支付到自己的比特幣地址中。一旦這個(gè)區(qū)塊被認(rèn)可被驗(yàn)證,也就是被添加到區(qū)塊鏈中,他的這筆報(bào)酬就可以變?yōu)榭捎每上M(fèi)的狀態(tài)。
在比特幣體系中,平均每十分鐘就可以發(fā)現(xiàn)一個(gè)新的區(qū)塊, 在完全去中心化的比特幣網(wǎng)絡(luò)中(即不受任何第三方控制),每個(gè)完整節(jié)點(diǎn)中獨(dú)立自動(dòng)發(fā)生難度調(diào)整,讓新區(qū)塊的產(chǎn)出速率維持在平均每十分鐘一個(gè)。
一個(gè)block產(chǎn)生的產(chǎn)生時(shí)間=難度值x2的32次方/hashrate
(hashrate是每秒運(yùn)算的hash數(shù)量)
難度值difficulty=最大目標(biāo)值/當(dāng)前目標(biāo)值
我來擬人化地解釋一下。
單身汪們要找女票,國民岳母說我有好多女兒,這樣吧我給你們出點(diǎn)題目,解出一個(gè)就給其中一個(gè)姑娘的微信號(hào)。
單身汪們瘋狂競(jìng)爭(zhēng),想破腦袋去解題。只要其中一只汪解出一道題,就立馬得意洋洋地昭告天下,示威全部單身汪,這個(gè)姑娘是我的啦,你們放棄吧。其他單身汪們即使不服也沒有辦法,惆悵懊惱也不是個(gè)事兒啊,還是麻溜地立馬去解下一道題目吧。這只喜贏姑娘的幸運(yùn)小汪被岳母認(rèn)可后還能得到25個(gè)貨幣單位的彩禮,簡直人生贏家。
岳母會(huì)通過解題的速率去調(diào)整題目的難度,有時(shí)候吧,出的太難了,好久沒小伙子有能力來上門提親,她一尋思,這可不行,這女兒不能砸手里啊,得把題目難度降一點(diǎn)。有時(shí)候難度太簡單,不到10個(gè)時(shí)間單位就嫁出去一個(gè),這更不行,趕緊使用難度提升技能。對(duì)了今年就是2016年,岳母的禮金還會(huì)減半。。。
。。不鬧了。。回到正題。。
上面所描述的其實(shí)就是“挖礦”的概念
所謂挖到礦就是要猜到一個(gè)nonce值讓該區(qū)塊的摘要值小于一個(gè)會(huì)根據(jù)難度而線性調(diào)整的目標(biāo)值,這也是所謂的工作量證明。簡單一點(diǎn)說,就是重復(fù)計(jì)算去塊頭額哈希值,不斷地改變參數(shù),直到與哈希值匹配的一個(gè)過程。
當(dāng)節(jié)點(diǎn)創(chuàng)建一個(gè)候選區(qū)塊的時(shí)候,那曠工就準(zhǔn)備開始進(jìn)行挖礦。礦機(jī)開始超高速運(yùn)行SHA256算法,這些硬件會(huì)通過USB鏈接到存在于電腦上的挖礦節(jié)點(diǎn)上,然后挖礦節(jié)點(diǎn)會(huì)將區(qū)塊頭信息傳給這些硬件,讓他們進(jìn)行非常高頻的nonce測(cè)試。
當(dāng)一項(xiàng)交易被區(qū)塊收錄的時(shí)候,可以被認(rèn)為是一次確認(rèn)。在此區(qū)塊之后每產(chǎn)生一個(gè)區(qū)塊,此項(xiàng)的交易數(shù)就再加一。當(dāng)確認(rèn)數(shù)目到達(dá)六次以上的時(shí)候,通常就能認(rèn)為此項(xiàng)交易比較安全并且不可逆轉(zhuǎn)。那么現(xiàn)在,這筆交易已經(jīng)在比特幣網(wǎng)絡(luò)上傳播開,但只有通過驗(yàn)證且加到一個(gè)區(qū)塊中的時(shí)候,這筆交易才能成為區(qū)塊鏈的一部分。
新的交易不斷地涌入比特幣網(wǎng)絡(luò),當(dāng)節(jié)點(diǎn)們看這些交易的時(shí)候,會(huì)將這些交易臨時(shí)放到自己各自維護(hù)的一個(gè)臨時(shí)的交易池中,當(dāng)曠工創(chuàng)建出一個(gè)區(qū)塊以后,便可以把這些交易從交易池中拿出放到這個(gè)新區(qū)塊中,然后通過解決一個(gè)難度很大的問題去證明這個(gè)區(qū)塊的合法性。
下圖是我在http://blockchain.info網(wǎng)站上隨機(jī)截取的一個(gè)區(qū)塊。
一般來說,個(gè)體礦工自己一個(gè)人獨(dú)立進(jìn)行挖礦在這樣一個(gè)競(jìng)爭(zhēng)的大環(huán)境中是幾乎沒有可以盈利的可能的。因?yàn)樗麄兊乃懔ψ屗麄兒茈y靠一己之力可以挖到區(qū)塊去平衡他所付出的硬件設(shè)備費(fèi)用及相關(guān)的電力費(fèi)用。所以在這樣的時(shí)候,他們會(huì)選擇加入礦池。眾多礦工組合成礦池,匯聚大家的算力,然后一起分享獎(jiǎng)勵(lì)。所以不出意外的話最后一行中間那個(gè)大的綠箭頭后面的一串字符就是一個(gè)礦池的地址而非個(gè)人礦工的,該礦池獲得了25個(gè)比特幣的獎(jiǎng)勵(lì),多的后面的零頭是參與挖礦所得的礦工費(fèi)。
現(xiàn)在我們點(diǎn)開那個(gè)收幣地址,看一下里面的信息。
1CK6KHY6MHgYvmRQ4PAafKYDrg1ejbH1cE (二維碼自動(dòng)識(shí)別)
藍(lán)色框的31confirmation就是說明這條交易已經(jīng)被驗(yàn)證31次,當(dāng)數(shù)目達(dá)到120次時(shí),就證明這條交易成立。
你也可以打開終端,運(yùn)行
$curl https://blockchain.info/unspent?active=1CK6KHY6MHgYvmRQ4PAafKYDrg1ejbH1cE
也可以進(jìn)行查詢
像這樣:
小彩蛋
我們可以認(rèn)識(shí)一下比特幣領(lǐng)域的創(chuàng)世區(qū)塊
右邊是比特幣創(chuàng)始人中本聰留下的一句話。
“The Times 03/Jan/2009 Chancellor on brink of second bailout for banks” 這句話正是泰晤士報(bào)當(dāng)天的頭版文章標(biāo)題。
我們回到區(qū)塊鏈。
上面我提到過,每個(gè)區(qū)塊頭都會(huì)進(jìn)行SHA256哈希加密,生成一個(gè)哈希值,通過這個(gè)值,我們可以在區(qū)塊鏈中識(shí)別出特定區(qū)塊,并且每個(gè)區(qū)塊頭都還包含它的父區(qū)塊的哈希值。
每一個(gè)子區(qū)塊都只有一個(gè)父區(qū)塊,但一個(gè)父區(qū)塊可以暫時(shí)擁有很多子區(qū)塊,這種情況被稱為區(qū)塊鏈分叉。這種只有當(dāng)不同的礦工在同一時(shí)刻發(fā)現(xiàn)不同的區(qū)塊時(shí)才會(huì)發(fā)生。這時(shí)解決的方法就是,每一個(gè)節(jié)點(diǎn)總是選擇并嘗試延長擁有最大工作量證明(最長或者最大難度)的區(qū)塊鏈。
舉個(gè)例子:
我們現(xiàn)在有一個(gè)區(qū)塊鏈-藍(lán)
位于X地區(qū)的曠工與位于Y地區(qū)的曠工同時(shí)發(fā)現(xiàn)了兩個(gè)區(qū)塊。
我們假設(shè):
曠工熊貓君A發(fā)現(xiàn)區(qū)塊-紅,
礦工兔子君B發(fā)現(xiàn)區(qū)塊-綠。
當(dāng)熊貓君A,兔子君B節(jié)點(diǎn)分別在比特幣網(wǎng)絡(luò)廣播的時(shí)候,部分節(jié)點(diǎn)會(huì)先收到熊貓君A的廣播,部分會(huì)先收到兔子君B的廣播,然后分為兩派陣營的節(jié)點(diǎn)會(huì)分別開始以他們接收到的區(qū)塊作為父區(qū)塊,進(jìn)行深一步的挖礦活動(dòng)。(這里節(jié)點(diǎn)的地理意義指的是網(wǎng)絡(luò)拓?fù)渖系奈恢茫钦鎸?shí)的地理位置。)
就在大家如火如荼地緊張解題的關(guān)鍵時(shí)刻,一個(gè)接收到兔子君B所廣播的節(jié)點(diǎn)的兔子君C,優(yōu)先發(fā)現(xiàn)了下一個(gè)區(qū)塊-粉,也就是說綠色陣營的小兔子們的區(qū)塊鏈可以進(jìn)行下一步延伸,就會(huì)比紅色陣營的小熊貓們的長度長,紅色陣營小熊貓遺憾出局。這樣的話分叉問題就得到了解決。
這里我們需要提到一個(gè)名詞,“共識(shí)攻擊”。一個(gè)很著名的場(chǎng)景就是“51%攻擊”。如果一群礦工擁有了全網(wǎng)51%的算力,那么只要他們聯(lián)合起來就可以打擊整個(gè)比特幣網(wǎng)絡(luò)。他們可以認(rèn)為地去制造一個(gè)分叉的區(qū)塊鏈實(shí)現(xiàn)雙重支付,拿我們上文的例子舉例,攻擊者在區(qū)塊-紅中進(jìn)行過了交易,結(jié)果他強(qiáng)行制造出區(qū)塊-綠,并且區(qū)塊-綠中將原本的交易替換成另一筆交易(把原本應(yīng)該給賣家的錢打入自己同伙的錢包中),然后在區(qū)塊綠的基礎(chǔ)上再計(jì)算一個(gè)區(qū)塊-粉,這樣包含偽造的區(qū)塊的區(qū)塊鏈就比包含真實(shí)交易的區(qū)塊紅高出一個(gè)高度,此時(shí),包含雙重支付的惡意區(qū)塊鏈將取代真實(shí)區(qū)塊鏈,從而實(shí)現(xiàn)詐騙。
51%的概念并不是說攻擊者需要全網(wǎng)51%的算力才能進(jìn)行攻擊,理論上來說不到51%也是可以實(shí)現(xiàn)攻擊的,我們只是說擁有超過51%的算力的攻擊幾乎我們就可以判定它一定會(huì)成功。
上面都是在比特幣場(chǎng)景下進(jìn)行的論述
那么在哪些領(lǐng)域里也會(huì)用到區(qū)塊鏈技術(shù)呢?
1.銀行業(yè)
作為一種數(shù)字化,安全防干擾的帳戶,區(qū)塊鏈實(shí)現(xiàn)了銀行業(yè)的核心功能:即價(jià)值的安全儲(chǔ)存和轉(zhuǎn)移中心。也就是說,在將來的幾年內(nèi),一波基于區(qū)塊鏈技術(shù)的公司或?qū)⒂绊懙姐y行業(yè)。
2.支付和轉(zhuǎn)賬
區(qū)塊鏈技術(shù)能夠避開繁雜的系統(tǒng),在付款人和收款人之間創(chuàng)造更直接的付款流程,不管是境內(nèi)轉(zhuǎn)賬還是跨境轉(zhuǎn)賬,這種方式都有著低價(jià)、迅速的特點(diǎn),而且無需中間手續(xù)費(fèi)。
3.網(wǎng)絡(luò)安全
雖然區(qū)塊鏈的系統(tǒng)是公開的,但其核驗(yàn)、發(fā)送等數(shù)據(jù)交流過程卻采用了先進(jìn)的加密技術(shù)。這種技術(shù)不僅確保了數(shù)據(jù)的正確來源,也確保了數(shù)據(jù)在中間過程不被人攔截。如果區(qū)塊鏈技術(shù)的應(yīng)用更為廣泛,那么其遭受黑客襲擊的概率也可能會(huì)下降,因此人們認(rèn)為區(qū)塊鏈系統(tǒng)要比傳統(tǒng)系統(tǒng)更為穩(wěn)妥。區(qū)塊鏈系統(tǒng)之所以能降低傳統(tǒng)網(wǎng)絡(luò)安全風(fēng)險(xiǎn),一大原因就是它解除了對(duì)中間人的需求。
4.選舉
大家的投票“絕不可能被我們——即程序員,學(xué)校管理員或?qū)W生修改、刪除?!?/p>
5.智能合同
智能合同實(shí)際上是在另一個(gè)物體的行動(dòng)上發(fā)揮功能的電腦程序。和普通電腦程序一樣,智能合同也是一種“如果-然后”功能,但區(qū)塊鏈技術(shù)實(shí)現(xiàn)了這些“合同”的自動(dòng)填寫,無需人工介入。這種合同最終可能會(huì)取代法律行業(yè)的核心業(yè)務(wù),即在商業(yè)和民事領(lǐng)域起草和管理合同的業(yè)務(wù)。
6.股票交易
許多年來,各個(gè)公司都在想方設(shè)法簡化股票的購買、銷售和交易過程,新興的區(qū)塊鏈技術(shù)創(chuàng)企認(rèn)為他們能夠超越以往,實(shí)現(xiàn)整個(gè)流程的自動(dòng)化,提高安全性和效率。
有國內(nèi)互聯(lián)網(wǎng)金融長期觀察者說,“區(qū)塊鏈目前的情況類似于TCP/IP(1969年出現(xiàn)的技術(shù),30年后應(yīng)用才全面盛開)或者HTML剛出來的時(shí)候找不到落地的應(yīng)用,除了比特幣外,缺乏殺手級(jí)應(yīng)用,比特幣只是區(qū)塊鏈1.0,而智能合約是2.0,區(qū)塊鏈的較高應(yīng)用是對(duì)應(yīng)到物聯(lián)網(wǎng),做到實(shí)時(shí)信用確權(quán)?!?/p>
我個(gè)人認(rèn)為區(qū)塊鏈技術(shù)是很有前景的領(lǐng)域,值得有興趣的各位學(xué)習(xí)研究。
區(qū)塊鏈被真正廣泛運(yùn)用還有一段很長的路要走,大家要做的,就是積累技術(shù)等待成熟時(shí)機(jī)的出現(xiàn)。
評(píng)論
查看更多