首頁(yè)技術(shù)文章正文

精通比特幣系列第一篇:前沿

更新時(shí)間:2018-04-20 來(lái)源:黑馬程序員 瀏覽量:

當(dāng)下,要問(wèn)最火爆的概念是什么,那么這個(gè)桂冠必定被”區(qū)塊鏈”摘得,自正月以來(lái),“比特幣”、“區(qū)塊鏈”、“ICO”等等概念鋪天蓋地,占據(jù)了各大版面,刷爆了我們的朋友圈,幣市井噴式的爆發(fā)讓很多傳統(tǒng)行業(yè)的人驚掉了下巴,同時(shí)又匪夷所思的發(fā)問(wèn):比特幣到底是什么?區(qū)塊鏈又是什么?兩者有什么關(guān)系?比特幣在哪里?能拿在手里么?...


從時(shí)間順序講,是先有比特幣,后有區(qū)塊鏈;從從屬關(guān)系講,區(qū)塊鏈?zhǔn)菑谋忍貛派铣殡x出來(lái)的概念,比特幣是區(qū)塊鏈上的應(yīng)用,由于比特幣是區(qū)塊鏈的始祖,雖然其與時(shí)下區(qū)塊鏈概念有一些區(qū)別,但它仍極具代表性,所以,在這里我們主要介紹比特幣(BTC,bitcoin),我們將用一系列文章,從最基本的概念聊起,細(xì)數(shù)一下比特幣的前世今生,從多個(gè)角度看看比特幣,從比特幣入手,逐步開(kāi)啟認(rèn)知區(qū)塊鏈的大門。


關(guān)于區(qū)塊鏈,我們聽(tīng)到最多的描述是:區(qū)塊鏈?zhǔn)且粋€(gè)去中心化的,不可偽造,匿名的,基于密碼學(xué)的分布式賬本,    這里面涵蓋的信息比較多,我們先了解一下比特幣的基本信息,如下圖:


 1524210219112_1.png


說(shuō)說(shuō)中本聰:


比特幣的創(chuàng)始人“中本聰”是一個(gè)神秘人士,至今無(wú)法確定其身份,他是“密碼朋克”組織成員之一,“密碼朋克”一個(gè)匯集精英IT極客的加密郵件系統(tǒng),維基解密網(wǎng)創(chuàng)始人阿桑奇、萬(wàn)維網(wǎng)發(fā)明者Tim-Berners Lee爵士等都是其成員。在2008年金融危機(jī)爆發(fā)之后,政府和銀行管理經(jīng)濟(jì)的能力遭到各方質(zhì)疑,信用降入谷底,政府隨意增發(fā)美元,導(dǎo)致物價(jià)飛速上漲,中本聰對(duì)這種中心機(jī)構(gòu)隨意影響市場(chǎng)的現(xiàn)象十分不滿,他想建立一個(gè)無(wú)需中心機(jī)構(gòu)參與的金融系統(tǒng),重塑金融秩序,即將貨幣去中心化,所以他在2008年10月31日發(fā)布了比特幣白皮書(shū),即《比特幣:一種點(diǎn)對(duì)點(diǎn)的現(xiàn)金支付系統(tǒng)》, 并在次年(2009年1月3日)發(fā)布了首個(gè)比特幣系統(tǒng)客戶端,公諸于世,最初比特幣系統(tǒng)僅有幾個(gè)人共同使用,且由中本聰自己負(fù)責(zé)維護(hù)代碼,后期隨著比特幣社區(qū)人才的加入,中本聰逐漸隱退,從此銷聲匿跡,將所有維護(hù)工作交給社區(qū)人員,現(xiàn)在比特幣有一個(gè)專業(yè)的核心開(kāi)發(fā)團(tuán)隊(duì)維護(hù),社區(qū)良性發(fā)展。


說(shuō)說(shuō)比特幣系統(tǒng):


比特幣系統(tǒng)是一個(gè)開(kāi)源的軟件,它對(duì)所有人都是開(kāi)放的,每個(gè)人都可以下載并運(yùn)行,只要在上面創(chuàng)立賬號(hào),每個(gè)人都可以參與到比特幣的交易中來(lái),包括接收和發(fā)送比特幣。


我們都知道比特幣系統(tǒng)是一個(gè)電子交易系統(tǒng),既然存在交易,那么就一定需要貨幣媒介,在比特幣系統(tǒng)里面,起到流通媒介的貨幣我們稱之為比特幣(BTC),那么它從哪里來(lái)呢?比特幣系統(tǒng)是去中心化的,沒(méi)有中心發(fā)行貨幣機(jī)構(gòu),那它到底如何產(chǎn)生呢? 對(duì)此,比特幣系統(tǒng)有一個(gè)獨(dú)特的發(fā)行比特幣機(jī)制,即挖礦,挖礦使得比特幣從無(wú)到有的產(chǎn)生,并且比特幣系統(tǒng)制定了一個(gè)挖礦產(chǎn)生BTC數(shù)量的遞減規(guī)則,隨著挖礦的進(jìn)行,貨幣持續(xù)發(fā)行量逐漸減少,最終完成全部比特幣的發(fā)行工作,使系統(tǒng)內(nèi)比特幣數(shù)量穩(wěn)定在一個(gè)2100萬(wàn)這個(gè)數(shù)值,且永不增發(fā)。


至此我們了解到比特幣的產(chǎn)生來(lái)自于挖礦,挖礦又是什么?誰(shuí)負(fù)責(zé)挖礦?想深入了解比特幣網(wǎng)絡(luò),我們需要先了解幾個(gè)概念。


說(shuō)說(shuō)比特幣的相關(guān)概念:


節(jié)點(diǎn):每一個(gè)運(yùn)行比特幣客戶端的設(shè)備都是一個(gè)節(jié)點(diǎn),節(jié)點(diǎn)與節(jié)點(diǎn)間互聯(lián),同步數(shù)據(jù),從而構(gòu)成整個(gè)比特幣網(wǎng)絡(luò)


礦工:每個(gè)擁有強(qiáng)大計(jì)算能力的節(jié)點(diǎn)都可以成為礦工,他們通過(guò)運(yùn)行比特幣的挖礦程序進(jìn)行挖礦


挖礦:由礦工執(zhí)行挖礦,礦工在設(shè)備上(也可能是專業(yè)的挖礦設(shè)備)上運(yùn)行一個(gè)程序,這個(gè)程序會(huì)拼命的找一個(gè)滿足要求的數(shù)字,如果找到了,那么這個(gè)礦工就有會(huì)爭(zhēng)取到記賬的權(quán)利,有權(quán)對(duì)網(wǎng)絡(luò)中存在的轉(zhuǎn)賬交易進(jìn)行打包,并且記錄到賬本中,進(jìn)而得到比特幣獎(jiǎng)勵(lì),這個(gè)過(guò)程很像開(kāi)采埋藏在地底下礦物的過(guò)程,所以我們稱之為挖礦,并且該過(guò)程沒(méi)有捷徑可走,從而有效避免了作弊的可能


算力:算力即計(jì)算的能力,上面說(shuō)了,挖礦要運(yùn)行計(jì)算程序,找到目標(biāo)數(shù)字,這個(gè)算力就是礦工設(shè)備的計(jì)算能力,即每秒鐘能做多少次運(yùn)算查找,查找這個(gè)數(shù)字的過(guò)程是運(yùn)行一個(gè)哈希算法(一個(gè)密碼學(xué)算法),我們稱之為“哈希碰撞”,算力的單位是hash/s,即每秒種能碰撞多少次,算力越強(qiáng),計(jì)算速度越快,獲得記賬權(quán)的幾率就越大


共識(shí)機(jī)制:是指被整個(gè)區(qū)塊鏈網(wǎng)絡(luò)共同認(rèn)可的、能夠讓陌生節(jié)點(diǎn)間達(dá)成共同認(rèn)可的規(guī)則,只要節(jié)點(diǎn)按照這個(gè)規(guī)則做事,做出來(lái)的結(jié)果就會(huì)得到對(duì)方的認(rèn)可,從而達(dá)到彼此信任的目的。比特幣網(wǎng)絡(luò)使用的共識(shí)機(jī)制是POW(Proof of Work,工作量證明),上述所說(shuō)的比特幣挖礦過(guò)程就是POW共識(shí)機(jī)制,共識(shí)機(jī)制還有很多其他的方式,如POS(Proof of stake,權(quán)益證明),DPOS(Delegated Proof of stake,股份授權(quán)證明機(jī)制)等等


區(qū)塊,區(qū)塊鏈:所謂區(qū)塊就是賬本的一頁(yè),里面記錄了在一個(gè)時(shí)間段內(nèi)(比特幣系統(tǒng)10分鐘出一個(gè)區(qū)塊)整個(gè)比特幣系統(tǒng)產(chǎn)生的所有交易,每個(gè)區(qū)塊被打上時(shí)間戳(時(shí)間戳就是把產(chǎn)生這個(gè)區(qū)塊的具體時(shí)間),按照嚴(yán)格的先后順序,連接起來(lái),形成一個(gè)賬本,這個(gè)賬本就是”區(qū)塊鏈“


介紹的概念比較多,我們整理一份導(dǎo)圖,梳理一下:


 1524210232206_2.png


現(xiàn)在我們模擬一下整個(gè)交易流程,以方便大家理解比特幣系統(tǒng):


Alice是一個(gè)客戶,她想買一杯咖啡,向Bob支付0.1個(gè)比特幣,具體過(guò)程如下:


Alice登錄自己的錢包(比特幣客戶端,或者其他比特幣錢包),輸入對(duì)方Bob的地址(相當(dāng)于銀行卡號(hào)),輸入轉(zhuǎn)賬金額0.1BTC,選擇交易手續(xù)費(fèi)(手續(xù)費(fèi)可以為零,那么這條交易被寫入?yún)^(qū)塊鏈的優(yōu)先級(jí)會(huì)降低,轉(zhuǎn)賬就會(huì)被延遲),點(diǎn)擊發(fā)送,那么這條交易就會(huì)被發(fā)送到比特幣網(wǎng)絡(luò)中去,當(dāng)某個(gè)礦工收到這筆交易之后,會(huì)先校驗(yàn)一下這筆交易的有效性(校驗(yàn)過(guò)程我們后續(xù)再講),當(dāng)確定這是一筆有效的交易之后,會(huì)把這筆交易暫存到本地的“待確認(rèn)交易池”中,同時(shí)將這筆交易廣播到其他節(jié)點(diǎn),每一個(gè)節(jié)點(diǎn)都可以獨(dú)立驗(yàn)證這筆交易的有效性,然后再向外傳播,通過(guò)這種P2P網(wǎng)絡(luò),這筆交易迅速的在整個(gè)網(wǎng)絡(luò)中發(fā)布。當(dāng)一個(gè)新的挖礦周期開(kāi)始時(shí)(10分鐘),礦工會(huì)從“待確認(rèn)交易池”中取出合適的交易,將交易打包,隨即開(kāi)始挖礦,即做哈希碰撞,試圖最先找到那個(gè)符合條件的目標(biāo)數(shù)字,一旦某個(gè)礦工A算出這個(gè)數(shù)值,礦工A便向整個(gè)網(wǎng)絡(luò)公布結(jié)果,所有其他礦工收到這條消息后,立刻停止運(yùn)算,驗(yàn)證這個(gè)數(shù)值是否有效,當(dāng)其他節(jié)點(diǎn)確認(rèn)該數(shù)值有效后,礦工A得到記賬權(quán),將他打包的區(qū)塊添加到區(qū)塊鏈上,同時(shí)獲得新生的比特幣獎(jiǎng)勵(lì),整個(gè)網(wǎng)絡(luò)同步最新的賬本,隨即進(jìn)入下一輪挖礦競(jìng)爭(zhēng)中去,循環(huán)往復(fù)。


當(dāng)包含Alice的這筆轉(zhuǎn)賬的區(qū)塊被礦工寫入到區(qū)塊鏈之后,Bob的賬戶中便會(huì)收到Aclie的轉(zhuǎn)賬。實(shí)際網(wǎng)絡(luò)中,需要6個(gè)區(qū)塊確認(rèn)之后,Bob才能使用這筆轉(zhuǎn)賬,這是比特幣系統(tǒng)為了安全而設(shè)置的限制,我們后續(xù)再講。


同樣,我們畫一個(gè)圖,便于理解:


1524210242363_3.png

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!