從比特幣的起源說起,談?wù)剠^(qū)塊鏈的前世今生
![](http://image.woshipm.com/wp-files/img/99.jpg)
什么是區(qū)塊鏈技術(shù)?對(duì)于區(qū)塊鏈你了解多少?文章從比特幣起源說起,幫你更進(jìn)一步的熱值區(qū)塊鏈。
談起區(qū)塊鏈前世今生,我們不得不先說一下比特幣。因?yàn)楸忍貛藕蛥^(qū)塊鏈如魚水之間一樣有著太多的關(guān)系。
比特幣的起源
2008年,一位化名為中本聰?shù)娜?,在一篇為《比特幣:一個(gè)點(diǎn)對(duì)點(diǎn)的電子現(xiàn)金系統(tǒng)》的論文中首先提出了比特幣。中本聰結(jié)合以前的多個(gè)數(shù)字貨幣發(fā)明,如B-money和HashCash,創(chuàng)建了一個(gè)完全去中心化的電子現(xiàn)金系統(tǒng),不依賴于通貨保障或是結(jié)算驗(yàn)證保障的中央權(quán)威。
關(guān)鍵的創(chuàng)新是利用分布式計(jì)算系統(tǒng)(稱為”工作量證明”算法)每隔10分鐘進(jìn)行一次的全網(wǎng)”選拔”,能夠使用去中心化的網(wǎng)絡(luò)同步交易記錄。這個(gè)能優(yōu)雅的解決雙重支付問題(即一個(gè)單一的貨幣單位可以使用兩次,此前,雙重支付問題是數(shù)字貨幣的一個(gè)弱點(diǎn),并通過一個(gè)中央結(jié)算機(jī)構(gòu)清除所有交易來處理)。
比特幣打開了區(qū)塊鏈大門
- 區(qū)塊鏈技術(shù)是比特幣原創(chuàng)的核心技術(shù)。在比特幣被發(fā)明之前世界上并不存在區(qū)塊鏈這個(gè)東西。
- 比特幣發(fā)明之后,很多人參考比特幣中的區(qū)塊鏈實(shí)現(xiàn),使用類似的技術(shù)實(shí)現(xiàn)各種應(yīng)用,這類技術(shù)統(tǒng)稱區(qū)塊鏈技術(shù)。用區(qū)塊鏈技術(shù)實(shí)現(xiàn)的各種鏈即為區(qū)塊鏈。
區(qū)塊鏈技術(shù)的巨大價(jià)值
其實(shí)區(qū)塊鏈技術(shù)最核心的就是解決信任成本的問題,去中心化去中介是區(qū)塊鏈技術(shù)的核心概念。區(qū)塊鏈藐視一切禁錮我們頭腦的舊思維,它將顛覆交易執(zhí)行的管理方式和集中型控制模式。區(qū)塊鏈松開了信任的韁繩,這韁繩曾經(jīng)牢牢控制在各種中心機(jī)構(gòu)的手中,例如銀行、政策制定者、清算中心、政府、大公司等。
區(qū)塊鏈讓人們擺脫了這些老舊的控制節(jié)點(diǎn)。例如,交易雙方完全可以在區(qū)塊鏈上進(jìn)行交易的認(rèn)證,而不再需要一個(gè)清算中心。信用的實(shí)現(xiàn)應(yīng)該是無償?shù)模粦?yīng)該掌握在某種集中型的權(quán)威手中,這種權(quán)力要么利用信用收稅,要么肆意操縱,玩弄各種形式的費(fèi)用、訪問權(quán)、許可權(quán)等等。所以我相信未來的區(qū)塊鏈遍地開花之時(shí),將引爆一個(gè)新的紀(jì)元。
什么區(qū)塊鏈技術(shù)?
從本質(zhì)上講,區(qū)塊鏈技術(shù),是一種交易記錄的存儲(chǔ)技術(shù)。它對(duì)交易記錄進(jìn)行永久性存儲(chǔ),而且存儲(chǔ)之后永遠(yuǎn)無法刪除,只能按照次序加入新的交易,由此對(duì)所有的交易歷史進(jìn)行永不結(jié)束的記載。這個(gè)看似簡(jiǎn)單的功能描述,實(shí)則含義深刻。它促使我們,重新思考如何去創(chuàng)建交易、存儲(chǔ)數(shù)據(jù)和交換資產(chǎn)。它是一場(chǎng)巨大變革的起點(diǎn)。
一句話描述區(qū)塊鏈技術(shù)?
基于密碼學(xué)安全的分布式賬簿網(wǎng)絡(luò)技術(shù)。
區(qū)塊鏈技術(shù)核心點(diǎn)
- 一個(gè)點(diǎn)對(duì)點(diǎn)分布式網(wǎng)絡(luò)(各網(wǎng)絡(luò)節(jié)點(diǎn)同步數(shù)據(jù))
- 一份所有交易的賬簿數(shù)據(jù)(區(qū)塊鏈)
- 一個(gè)去中心化的交易驗(yàn)證(基于密碼學(xué)交易安全、腳本驗(yàn)證交易實(shí)現(xiàn)合約或智能合約)
- 一個(gè)去中心化的定量貨幣發(fā)行(分布式挖礦、礦池挖礦協(xié)議、工作量證明生成新區(qū)塊)
一、點(diǎn)對(duì)點(diǎn)的P2P網(wǎng)絡(luò)(Peer to Peer)
1.1 網(wǎng)絡(luò)工作原理
- 新的交易向全網(wǎng)進(jìn)行廣播
- 每一個(gè)節(jié)點(diǎn)都將收到的交易信息納入一個(gè)區(qū)塊中
- 每個(gè)節(jié)點(diǎn)都嘗試在自己的區(qū)塊中找到一個(gè)具有足夠難度的工作量證明
- 當(dāng)一個(gè)節(jié)點(diǎn)找到了一個(gè)工作量證明,它就向全網(wǎng)進(jìn)行廣播
- 當(dāng)且僅當(dāng)包含在該區(qū)塊中的所有交易都是有效的且之前未存在過的,其他節(jié)點(diǎn)才認(rèn)同 該區(qū)塊的有效性
- 其他節(jié)點(diǎn)表示他們接受該區(qū)塊,而表示接受的方法,則是在跟隨該區(qū)塊的末尾,制造 新的區(qū)塊以延長(zhǎng)該鏈條,而將被接受區(qū)塊的隨機(jī)散列值視為先于新區(qū)快的隨機(jī)散列值
1.2 區(qū)塊鏈網(wǎng)絡(luò)組成部分
1.3 區(qū)塊鏈網(wǎng)絡(luò)詳細(xì)流程圖
二、區(qū)塊鏈(Block Chain)
2.1 區(qū)塊鏈原理及簡(jiǎn)介
區(qū)塊鏈的實(shí)現(xiàn)方案首先提出一個(gè)“時(shí)間戳服務(wù)器”。時(shí)間戳服務(wù)器通過對(duì)以區(qū)塊(block)形式存在 的一組數(shù)據(jù)實(shí)施隨機(jī)散列而加上時(shí)間戳,并將該隨機(jī)散列進(jìn)行廣播,就像在新聞或世界性新聞組網(wǎng)絡(luò)(Usenet)的發(fā)帖一樣組成一個(gè)樓層鏈條。顯然,該時(shí)間戳能夠證實(shí)特定數(shù)據(jù)必然于某特定時(shí)刻是的確存在的,因?yàn)橹挥性谠摃r(shí)刻存在了才能獲取相應(yīng)的隨機(jī)散列值。每個(gè)時(shí)間戳應(yīng)當(dāng)將前一個(gè)時(shí)間戳納入其隨機(jī)散列值中,每一個(gè)隨后的時(shí)間戳都對(duì)之前的一個(gè)時(shí)間戳進(jìn)行增強(qiáng), 這樣就形成了一個(gè)鏈條。
區(qū)塊鏈形象圖
2.2 區(qū)塊鏈的連接
礦工會(huì)根據(jù)工作量證明每過特定時(shí)間挖到新的區(qū)塊(如比特幣:根據(jù)難度系數(shù),工作量證明算法全網(wǎng)算力大概10分鐘左右才能產(chǎn)生一個(gè)新區(qū)塊;難度系數(shù)會(huì)根據(jù)全網(wǎng)算力的增加而調(diào)整,永遠(yuǎn)保證大概10分鐘產(chǎn)生一個(gè)新的區(qū)塊)。節(jié)點(diǎn)會(huì)在”父區(qū)塊哈希值“字段找出包含它的父區(qū)塊的哈希值。這是節(jié)點(diǎn)已知的哈希值,也就是如下圖中第277314塊區(qū)塊的哈希值。故這個(gè)區(qū)塊是這個(gè)鏈條里的最后一個(gè)區(qū)塊的子區(qū)塊,因此現(xiàn)有的區(qū)塊鏈得以擴(kuò)展。節(jié)點(diǎn)將新的區(qū)塊添加到鏈條的尾端,使區(qū)塊鏈變長(zhǎng)到一個(gè)新的高度277315。
下圖展示了三個(gè)區(qū)塊的連接:
2.3 區(qū)塊鏈 – 比特幣創(chuàng)世區(qū)塊信息
三、交易(Transactions)
我們定義,一枚電子貨幣(an electronic coin)是這樣的一串?dāng)?shù)字簽名:每一位所有者通過對(duì)前一次交易和下一位擁有者的公鑰(Public key) 簽署一個(gè)隨機(jī)散列的數(shù)字簽名,并將這個(gè)簽名附加在這枚電子貨幣的末尾,電子貨幣就發(fā)送給了下一位所有者。而收款人通過對(duì)簽名進(jìn)行檢驗(yàn),就能夠驗(yàn)證該鏈條的所有者。
3.1 復(fù)式記賬薄式交易
3.2 交易中的輸入與輸出
一筆數(shù)字貨幣的交易是一個(gè)含有輸入值和輸出值的數(shù)據(jù)結(jié)構(gòu)。該數(shù)據(jù)結(jié)構(gòu)植入了將一筆資金從初始點(diǎn)(輸入值)轉(zhuǎn)移至目標(biāo)地址(輸出值)的代碼信息。數(shù)字貨幣交易的輸入值和輸出值與賬號(hào)或才身份信息無關(guān)。你應(yīng)該將它們理解成一種被特定密鑰信息鎖定的一定數(shù)量的數(shù)字貨幣。只有擁有者這個(gè)密鑰信息的人可以解鎖。
交易流程圖
一般交易,最常見的交易形式是從一個(gè)地址到另一個(gè)地址的簡(jiǎn)單支持。這種交易也常常包含給支付者”找零“。
集合型交易,是集合多個(gè)輸入到一個(gè)輸出的模式,相當(dāng)于現(xiàn)實(shí)生活中將很多硬幣和紙幣兌換為一個(gè) 大額面鈔。
分散型交易,是將一個(gè)輸入分配給多個(gè)輸出,這類交易類似于老板給員工發(fā)工資的情形,從一個(gè)賬號(hào)轉(zhuǎn)賬給多個(gè)賬號(hào)。
3.3 交易數(shù)據(jù)(Transactions Data)
下圖為比特幣的交易數(shù)據(jù)結(jié)構(gòu):
四、工作量證明(Proof-of-Work)
4.1 工作量簡(jiǎn)介
為了在點(diǎn)對(duì)點(diǎn)的基礎(chǔ)上構(gòu)建一組分散化的時(shí)間戳服務(wù)器,僅僅像報(bào)紙或世界性新聞網(wǎng)絡(luò)組 一樣工作是不夠的,我們還需要一個(gè)類似于亞當(dāng)·柏克(Adam Back)提出的哈?,F(xiàn)金(Hashcash) 。在進(jìn)行隨機(jī)散列運(yùn)算時(shí),工作量證明機(jī)制引入了對(duì)某一個(gè)特定值的掃描工作,比方說 SHA-256 下,隨機(jī)散列值以一個(gè)或多個(gè)0 開始。那么隨著 0 的數(shù)目的上升, 找到這個(gè)解所需要的工作量 將呈指數(shù)增長(zhǎng),但是檢驗(yàn)結(jié)果僅需要一次隨機(jī)散列運(yùn)算。
我們?cè)趨^(qū)塊中補(bǔ)增一個(gè)隨機(jī)數(shù)(Nonce),這個(gè)隨機(jī)數(shù)要使得該給定區(qū)塊的隨機(jī)散列值出現(xiàn) 了所需的那么多個(gè)0。我們通過反復(fù)嘗試來找到這個(gè)隨機(jī)數(shù),找到為止。這樣我們就構(gòu)建了一 個(gè)工作量證明機(jī)制。只要該 CPU 耗費(fèi)的工作量能夠滿足該工作量證明機(jī)制,那么除非重新完 成相當(dāng)?shù)墓ぷ髁?,該區(qū)塊的信息就不可更改。由于之后的區(qū)塊是鏈接在該區(qū)塊之后的,所以想 要更改該區(qū)塊中的信息,就還需要重新完成之后所有區(qū)塊的全部工作量。
4.2 挖礦
- 挖礦是增加數(shù)字貨幣供應(yīng)的一個(gè)過程,挖礦同時(shí)還保護(hù)著數(shù)字貨幣系統(tǒng)的安全。
- 礦工們?cè)谕诘V過程會(huì)得到兩種類型的獎(jiǎng)勵(lì):創(chuàng)建新區(qū)塊的新幣獎(jiǎng)勵(lì),以及區(qū)塊中所含的交易費(fèi)。
4.3 礦池挖礦
在激烈的算法競(jìng)爭(zhēng)的環(huán)境中,個(gè)體礦工獨(dú)立工作(solo挖礦)是沒有一點(diǎn)機(jī)會(huì)。他們可以通過礦池協(xié)議合作組成礦池,共同協(xié)作挖礦分享獎(jiǎng)勵(lì)。
五、區(qū)塊鏈常用術(shù)語(yǔ)
比特幣
首字母大寫的Bitcoin用來表示比特幣的概念或整個(gè)比特幣網(wǎng)絡(luò)本身。例如:“今天我學(xué)了些有關(guān)Bitcoin協(xié)議的內(nèi)容。”
而沒有大寫的bitcoin則表示一個(gè)記賬單位。例如:“我今天轉(zhuǎn)出了10個(gè)bitcoin。”該單位通常也簡(jiǎn)寫為BTC或XBT。
比特幣地址
比特幣地址就像一個(gè)物理地址或者電子郵件地址。這是別人付給你比特幣時(shí)你唯一需要提供的信息。然而一個(gè)重要的區(qū)別是,每個(gè)地址應(yīng)該只用于單筆交易。
對(duì)等式網(wǎng)絡(luò)
對(duì)等式網(wǎng)絡(luò)是指,通過允許單個(gè)節(jié)點(diǎn)與其他節(jié)點(diǎn)直接交互,從而實(shí)現(xiàn)整個(gè)系統(tǒng)像有組織的集體一樣運(yùn)作的系統(tǒng) 。對(duì)于比特幣來說,比特幣網(wǎng)絡(luò)以這樣一種方式構(gòu)建——每個(gè)用戶都在傳播其他用戶的交易。而且重要的是,不需要銀行作為第三方。
哈希率
哈希率是衡量比特幣網(wǎng)絡(luò)處理能力的測(cè)量單位。為保證安全,比特幣網(wǎng)絡(luò)必須進(jìn)行大量的數(shù)學(xué)運(yùn)算。當(dāng)網(wǎng)絡(luò)達(dá)到10Th/秒的哈希率時(shí),就意味著它能夠進(jìn)行每秒10萬億次的計(jì)算。
交易確認(rèn)
交易確認(rèn)意味著一筆交易已經(jīng) 被網(wǎng)絡(luò)處理且不太可能被撤銷。當(dāng)交易被包含進(jìn)一個(gè)塊時(shí)會(huì)收到一個(gè)確認(rèn),后續(xù)的每一個(gè)塊都對(duì)應(yīng)一個(gè)確認(rèn)。對(duì)于小金額交易單個(gè)確認(rèn)便可視為安全,然而對(duì)于比如1000美元的大金額交易,等待6個(gè)以上的確認(rèn)比較合理。每一個(gè)確認(rèn)都成 指數(shù)級(jí)地降低交易撤銷的風(fēng)險(xiǎn)。
塊鏈
塊鏈?zhǔn)且粋€(gè)按時(shí)間順序排列的比特幣交易公共記錄。塊鏈由所有比特幣用戶共享。它被用來驗(yàn)證比特幣交易的永久性并防止雙重消費(fèi)。
密碼學(xué)
密碼學(xué)是數(shù)學(xué)的一個(gè)分支,它讓我們創(chuàng)造出可以提供很高安全性的數(shù)學(xué)證明。電子商務(wù)和網(wǎng)上銀行也用到了密碼學(xué)。對(duì)于比特幣來說,密碼學(xué)用來保證任何人都不可能使用他人錢包里的資金,或者破壞塊鏈。密碼學(xué)也用來給錢包加密,這樣沒有密碼就用不了錢包。
簽名
密碼學(xué)簽名是一個(gè)讓人可以證明所有權(quán)的數(shù)學(xué)機(jī)制。對(duì)于比特幣來說,一個(gè)比特幣錢包和它的私鑰通過一些數(shù)學(xué)魔法關(guān)聯(lián)到一起。當(dāng)你的比特幣軟件用對(duì)應(yīng)的私鑰為一筆交易簽名,整個(gè)網(wǎng)絡(luò)都能知道這個(gè)簽名和已花費(fèi)的比特幣相匹配。但是,世界上沒有人可以猜到你的私鑰來竊取你辛苦賺來的比特幣。
錢包
比特幣錢包大致實(shí)體錢包在比特幣網(wǎng)絡(luò)中的等同物。錢包中實(shí)際上包含了你的私鑰,可以讓你消費(fèi)塊鏈中分配給錢包的比特幣。和真正的錢包一樣,每個(gè)比特幣錢包都可以顯示它所控制的所有比特幣的總余額,并允許你將一定金額的比特幣付給某人。這與商家進(jìn)行扣款的信用卡不同。
區(qū)塊
一個(gè)塊是塊鏈中的一條記錄,包含并確認(rèn)待處理的交易。平均約每10分鐘就有一個(gè)包含交易的新塊通過挖礦的方式添加到塊鏈中。
雙重消費(fèi)
如果一個(gè)不懷好意的用戶試圖將比特幣同時(shí)支付給兩個(gè)不同的收款人,就被稱為雙重消費(fèi)。比特幣挖礦和塊鏈將就兩比交易中那筆獲得確認(rèn)并被視為有效在網(wǎng)絡(luò)上達(dá)成一致。
私鑰
私鑰是一個(gè)證明你有權(quán)從一個(gè)特定的錢包消費(fèi)比特幣的保密數(shù)據(jù)塊,是通過一個(gè)密碼學(xué)簽名來實(shí)現(xiàn)的 。如果你使用的是錢包軟件,你的私鑰就存儲(chǔ)在你的計(jì)算機(jī)內(nèi);如果使用的是在線錢包,你的私鑰就存儲(chǔ)在遠(yuǎn)程服務(wù)器上。千萬不能泄露私鑰,因?yàn)樗鼈兛梢宰屇阆M(fèi)對(duì)應(yīng)比特幣錢包里的比特幣。
挖礦
比特幣挖礦是利用計(jì)算機(jī)硬件為比特幣網(wǎng)絡(luò)做數(shù)學(xué)計(jì)算進(jìn)行交易確認(rèn)和提高安全性的過程。作為對(duì)他們服務(wù)的獎(jiǎng)勵(lì),礦工可以得到他們所確認(rèn)的交易中包含的手續(xù)費(fèi),以及新創(chuàng)建的比特幣。挖礦是一個(gè)專業(yè)的、競(jìng)爭(zhēng)激烈的市場(chǎng),獎(jiǎng)金按照完成的計(jì)算量分割。并非所有的比特幣用戶都挖礦,挖礦賺錢也并不容易。
Satoshi聰
Satoshi是標(biāo)明一個(gè)比特幣的最小單位的常用單位 100,000,000聰?shù)扔? 比特幣 (BTC)
作者:陶海軍;騰訊通訊充值與彩票業(yè)務(wù)部 高級(jí)工程師
來源:微信公眾號(hào):騰訊大講堂
題圖來自PEXELS,基于CC0協(xié)議
我想哭,一頭霧水啊
完全一臉懵逼
看不太懂??,要是能對(duì)比下傳統(tǒng)的交易記錄技術(shù)就好了??
??
??