你們肯定想不到這種干貨題我都能強(qiáng)勢(shì)卻又和諧圓潤地融入自拍屠列!
最近在研究區(qū)塊鏈和比特幣的相關(guān)技術(shù)啦逆,看到這道題就想著寫點(diǎn)東西供大家參考。
如果哪里有說的不對(duì)的地方還希望前輩們多多指教笛洛。
前方多圖多圖多圖
通俗一點(diǎn)地說夏志,區(qū)塊鏈?zhǔn)且粋€(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)怯邪灰仔畔?/p>
的區(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ù)的
功能集合)
礦工們需要競爭完成一種基于加密哈希算法的數(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)。
單身汪們瘋狂競爭遏匆,想破腦袋去解題法挨。只要其中一只汪解出一道題谁榜,就立馬得意洋洋
地昭告天下,示威全部單身汪凡纳,這個(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è)競爭的大環(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ò)拓
撲上的位置常拓,而非真實(shí)的地理位置。)
(圖片來自《精通比特幣》辉浦,可愛的小姑娘來自我)
就在大家如火如荼地緊張解題的關(guān)鍵時(shí)刻弄抬,一個(gè)接收到兔子君B所廣播的節(jié)點(diǎn)的兔子君
C,優(yōu)先發(fā)現(xiàn)了下一個(gè)區(qū)塊-粉宪郊,也就是說綠色陣營的小兔子們的區(qū)塊鏈可以進(jìn)行下一
步延伸掂恕,就會(huì)比紅色陣營的小熊貓們的長度長,紅色陣營小熊貓遺憾出局弛槐。這樣的話
分叉問題就得到了解決懊亡。
(圖片來自《精通比特幣》,可愛的小姑娘來自我)
這里我們需要提到一個(gè)名詞乎串,“共識(shí)攻擊”店枣。一個(gè)很著名的場景就是“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ì)
成功。
上面都是在比特幣場景下進(jìn)行的論述
那么在哪些領(lǐng)域里也會(huì)用到區(qū)塊鏈技術(shù)呢璧亮?
1.銀行業(yè)
作為一種數(shù)字化萧诫,安全防干擾的帳戶,區(qū)塊鏈實(shí)現(xiàn)了銀行業(yè)的核心功能:即價(jià)值的
安全儲(chǔ)存和轉(zhuǎn)移中心枝嘶。也就是說帘饶,在將來的幾年內(nèi),一波基于區(qū)塊鏈技術(shù)的公司或
將影響到銀行業(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生修改、刪除衅枫〖尥В”
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)化禽翼,提高安全性和效率。