區(qū)塊鏈1.0:貨幣與比特幣

區(qū)塊鏈(Blockchain)是一種分布式數(shù)據(jù)庫,起源自比特幣。

區(qū)塊鏈?zhǔn)且淮褂妹艽a學(xué)方法相關(guān)聯(lián)產(chǎn)生的數(shù)據(jù)塊,用于驗(yàn)證其信息的有效性(防偽)和生成下一個(gè)區(qū)塊,區(qū)塊鏈和比特幣是一起誕生的,比特幣也是區(qū)塊鏈1.0時(shí)代最重要的應(yīng)用。

區(qū)塊和區(qū)塊鏈

(示意圖:一個(gè)典型的區(qū)塊結(jié)構(gòu))


(創(chuàng)世區(qū)塊)


區(qū)塊鏈?zhǔn)怯蓞^(qū)塊串成的鏈,每一個(gè)區(qū)塊都在頭部保存了上一個(gè)區(qū)塊的HASH值,從而形成了鏈?zhǔn)降慕Y(jié)構(gòu),比較特殊的是,比特幣的第一個(gè)區(qū)塊(也被稱為創(chuàng)世區(qū)塊)是由一個(gè)據(jù)信叫中本聰?shù)娜藰?gòu)造而成的,創(chuàng)世區(qū)塊沒有指向任何區(qū)塊。

有了創(chuàng)世區(qū)塊之后,人們就可以通過”挖礦“來制造比特幣,”挖礦“其實(shí)就是創(chuàng)建區(qū)塊的過程,其本質(zhì)是解決數(shù)學(xué)問題:

sha256(sha256(new_block_template)) <= target

new_block_template是一個(gè)新的區(qū)塊模板,一個(gè)新的區(qū)塊需要包含任意數(shù)量的當(dāng)前沒有確認(rèn)的交易和區(qū)塊的基本信息,其中coinbase交易和隨機(jī)數(shù)由礦工任意填寫。

我們知道sha256運(yùn)算的范圍是0~2^256-1共2^256種可能,而且sha256的運(yùn)算結(jié)果分布足夠均勻隨機(jī),所以礦工們想要解上面的不等式,只能有一種辦法:不停的變換隨機(jī)數(shù)和/或coinbase字段然后重復(fù)計(jì)算hash值以期找到滿足不等式的block。礦工一旦找到滿足上述不等式的block,廣播到比特幣網(wǎng)絡(luò)并被網(wǎng)絡(luò)接受,新的區(qū)塊就被創(chuàng)建了,所有的礦工會(huì)在這個(gè)新區(qū)塊的基礎(chǔ)上構(gòu)建下一個(gè)區(qū)塊。

根據(jù)中本聰?shù)脑O(shè)想,區(qū)塊應(yīng)該每10分鐘創(chuàng)建一個(gè),所以,比特幣的網(wǎng)絡(luò)會(huì)每隔2016個(gè)區(qū)塊review一次區(qū)塊的平均產(chǎn)出時(shí)間,如果小于10分鐘,說明參與不等式求解的”計(jì)算能力“增多,需要適量調(diào)小target以增加解題的難度,反之,就會(huì)增大target以減小解題的難度。參與區(qū)塊創(chuàng)建的礦工會(huì)得到比特幣的獎(jiǎng)勵(lì),這筆獎(jiǎng)勵(lì)最初為50BTC,每隔210000個(gè)區(qū)塊(約四年時(shí)間)減半,最終減少到0,目前每個(gè)區(qū)塊的挖礦獎(jiǎng)勵(lì)為25BTC,在今年晚些時(shí)候會(huì)減少到12.5BTC。

交易

這里先明確一點(diǎn),比特幣網(wǎng)絡(luò)里面,其實(shí)并不存在所謂的比特幣,存在的只是很多”沒有花費(fèi)的交易(unspent transaction outputs ,UTXO)”,UTXO指經(jīng)過網(wǎng)絡(luò)驗(yàn)證,卻沒有出現(xiàn)在其它任何交易inputs里面的交易。礦工們創(chuàng)建區(qū)塊,其實(shí)只是創(chuàng)建了一個(gè)特殊的UTXO(即coinbase):這個(gè)特殊的交易沒有輸入(任意填寫),只有輸出。

到這里大家可能很困惑了, 我們先來看下交易的典型結(jié)構(gòu):

(coinbase交易, 假設(shè)該交易的id為f5d8ee39a430901c91a5917b9f2dc19d6d1a0e9cea205b009ca73dd04470b9a6)


(普通交易)

我們從coinbase開始來解釋比特幣網(wǎng)絡(luò)的交易,礦工在創(chuàng)建區(qū)塊時(shí),coinbase是可以寫入任意內(nèi)容的,一個(gè)正常的礦工可能會(huì)這么做:Inputs字段寫入一些自己個(gè)性化的內(nèi)容和隨機(jī)內(nèi)容(以滿足上文中的不等式),Outputs中的Value字段填寫挖礦獎(jiǎng)勵(lì),scriptPubKey字段寫入一段腳本,這段腳本使得自己下次可以“花費(fèi)”掉這筆交易。

這里先鋪墊一下比特幣的私鑰、公鑰和地址的關(guān)系:

比特幣私鑰(private key)類似于密碼,是一段只有你自己知道的不限制長度的數(shù)據(jù),一般為了保證安全性,會(huì)使用真隨機(jī)數(shù)發(fā)生器生成不少于256bit的數(shù),私鑰通過單向算法SECP256K1生成公鑰(public key),再將公鑰經(jīng)過單向算法RIPEMD160生成公鑰哈希(public key hash),最后將公鑰哈希經(jīng)過BASE58編碼加上校驗(yàn)值后生成比特幣地址(address),如下圖所示,即,有了私鑰,我們可以推出所有,有了公鑰,可以推算出地址(和公鑰哈??梢曰ハ噢D(zhuǎn)換), 但是不能推出私鑰。

(比特幣私鑰、公鑰、地址之間的關(guān)系)


回到上面,我們來看下一個(gè)普通的交易是如何“花費(fèi)”掉之前的交易的,普通交易的inputs就不能隨便填寫了,需要填寫你可以花費(fèi)掉的交易,并向全網(wǎng)證明這的確是你可以花費(fèi)的交易,具體過程參照上面的coinbase交易和普通交易,普通交易的發(fā)起人指明要“花費(fèi)”coinbase這一UTXO,并在inputs的scriptSig字段里填上了自己的簽名和公鑰,廣播到全網(wǎng),接受到這筆交易的節(jié)點(diǎn)通過如下過程驗(yàn)證交易:

首先執(zhí)行scriptSig,將簽名和公鑰入棧

接著執(zhí)行scriptPubKey的第一個(gè)命令OP_DUP復(fù)制棧頂元素

接著執(zhí)行OP_HASH160,獲取公鑰的哈希

接著入棧pub_hash’ (35df7e6daa60393b0ed2474a21713a845a2212dd)

接著執(zhí)行OP_EQUALVERIFY校驗(yàn)棧頂?shù)膬蓚€(gè)元素(pub_hash和pub_hash’)是否相等,相等則繼續(xù)執(zhí)行,不等則驗(yàn)證失敗,退出執(zhí)行。這一步的意義是保證之前的交易的送達(dá)地址和這次交易的發(fā)送地址匹配(公鑰哈希和地址是等價(jià)的)

最后執(zhí)行OP_CHECKSIG使用pub和sig校驗(yàn)簽名,校驗(yàn)通過這筆交易即會(huì)被網(wǎng)絡(luò)接受,否則,退出執(zhí)行。只有持有正確私鑰的人才能執(zhí)行正確的簽名操作,所以這一步的意義是驗(yàn)證該交易是否由實(shí)際擁有人發(fā)起。

上述過程是一個(gè)標(biāo)準(zhǔn)的“Pay-to-PubkeyHash”, 即比特幣網(wǎng)絡(luò)標(biāo)準(zhǔn)的轉(zhuǎn)賬腳本結(jié)構(gòu),實(shí)際上比特幣提供了一個(gè)類似Forth語言,基于堆棧的腳本系統(tǒng),使得使用者可以完成一些更復(fù)雜的交易邏輯。

比特幣的問題

區(qū)塊鏈容量問題

比特幣的核心理念是去中心化,所有的節(jié)點(diǎn)都保留區(qū)塊鏈的完整副本,但是截止目前,整個(gè)區(qū)塊鏈的容量已經(jīng)超過60GB,這使得運(yùn)行一個(gè)比特幣節(jié)點(diǎn)的成本開始變得高昂,變相使得比特幣的節(jié)點(diǎn)變少,這與比特幣去中心化的初衷相背離。

算力攻擊問題

自從專業(yè)的礦機(jī)被發(fā)明已來,比特幣網(wǎng)絡(luò)的挖礦難度越來越大,個(gè)人獨(dú)立挖礦已經(jīng)變得基本不可能,礦工們基本都是把自己的算力接入到集中式的礦池來參與挖礦,目前全網(wǎng)最大的兩個(gè)礦池算力之和已經(jīng)超過全網(wǎng)的50%,這帶來一個(gè)問題,因?yàn)槔碚撋峡刂瞥^全網(wǎng)50%算力就可以篡改區(qū)塊的生成,這給比特幣帶來了信任危機(jī)。

匯率波動(dòng)問題

目前比特幣交易市場已經(jīng)完全淪為了投機(jī)市場,小白投資者往往被莊家操盤血本無歸,期貨、杠桿等各種衍生工具更是加劇了這一過程。

法律問題

目前多數(shù)國家并不承認(rèn)比特幣的合法地位,比特幣由于其去中心化的特性也并不易被監(jiān)管,這使得基于比特幣的賭博、毒品和軍火交易也異常猖獗,這些也給其未來發(fā)展添加了很大的變數(shù)。

總結(jié)

比特幣本身更像是一個(gè)試驗(yàn)性的產(chǎn)物,有著許多缺點(diǎn)和不完善的地方。但比特幣帶來的區(qū)塊鏈技術(shù)的去中心化、分布式自治等卻有著革新未來的力量,我們將在2.0和3.0章節(jié)里繼續(xù)分享有關(guān)區(qū)塊鏈的創(chuàng)新和可能的未來。


參考:

[1]比特幣,https://zh.wikipedia.org/wiki/%E6%AF%94%E7%89%B9%E5%B8%81

[2]區(qū)塊鏈,https://zh.wikipedia.org/wiki/%E5%8C%BA%E5%9D%97%E9%93%BE

圖片來源bitcoin86.com

本文作者:熊榮正(點(diǎn)融黑幫),2016年4月加入點(diǎn)融成都數(shù)據(jù)團(tuán)隊(duì)參與數(shù)據(jù)相關(guān)產(chǎn)品研發(fā)。曾參與比特幣相關(guān)創(chuàng)業(yè)項(xiàng)目,對比特幣、區(qū)塊鏈、互聯(lián)網(wǎng)金融等領(lǐng)域比較感興趣。平時(shí)喜歡吃、睡、聽音樂。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容