對比特幣與區(qū)塊鏈技術(shù)的學(xué)習(xí)與思考

什么是比特幣

比特幣概念由中本聰2009年提出,是一種P2P形式的數(shù)字貨幣朴艰,點對點的傳輸意味著一個去中心化的支付系統(tǒng)呵晚。

比特幣價格查詢網(wǎng)站

比特幣核心技術(shù)是區(qū)塊鏈技術(shù),這是一種全新的思想撮珠,這種技術(shù)建立于一個缺乏信任的通訊網(wǎng)絡(luò)當(dāng)中如何構(gòu)建一個去中心化的交易模式芯急。

現(xiàn)在我們社會交易都離不開貨幣驶俊,我國使用的是人民幣進(jìn)行交易饼酿,然后支付寶和微信支持電子貨幣,其中有一個共同特點就是想鹰,這些貨幣都會有一個中間的監(jiān)管平臺負(fù)責(zé)管理整個平臺的貨幣管理辑舷。比如支付寶后臺負(fù)責(zé)貨幣的消費槽片、充值以及轉(zhuǎn)賬还栓。試想一下,如果說一個沒有信任的環(huán)境下氓皱,人們是否會去相信這樣的一個中間的平臺來管理自己的財產(chǎn)。在支付寶剛剛上線的時候股淡,用戶量為0的時候唯灵,是什么讓用戶愿意把自己的錢投入到支付寶的平臺上的?其中最重的就是信任關(guān)系網(wǎng)絡(luò)垢揩,支付寶不僅僅是支付寶叁巨,它建立了一個人們普遍能接受的信用體系,以此為依托才有了淘寶和之后的其它產(chǎn)品蚀瘸。

那么對于在一個缺乏信任的網(wǎng)絡(luò)上的節(jié)點來說贮勃,如果某一個匿名告訴你苏章,它有一個安全的支付平臺枫绅,你可以把自己的資金轉(zhuǎn)入,然后能在任何一個地方消費棵譬,是否會相信订咸?注意重點在于網(wǎng)絡(luò)節(jié)點之間缺乏信任酬诀,這表現(xiàn)在你看到的ip可能并不是他的真實ip瞒御,你很難根據(jù)現(xiàn)有的信息找到這個節(jié)點的具體位置,對方提供的信息你也無法保證真實性趾唱√瘃可以想象宛乃,很難在這樣的環(huán)境中建立一個安全的中間平臺負(fù)責(zé)交易。


那么區(qū)塊鏈技術(shù)如何解決呢躬贡?區(qū)塊鏈技術(shù)利用了一個龐大的節(jié)點網(wǎng)絡(luò)的大部分節(jié)點的共同承認(rèn)某一個事件為真來承認(rèn)該事件來解決信任問題拂玻,也就是說空骚,如果對于某一個計算結(jié)果,如果網(wǎng)絡(luò)中的大部分節(jié)點都認(rèn)為這個結(jié)果為真熬甚,那么這個結(jié)果就被所有人承認(rèn)了乡括;那么接下來總結(jié)一下基于這種模式設(shè)計的比特幣更細(xì)節(jié)的原理:

區(qū)塊鏈?zhǔn)潜忍貛诺慕灰子涗浀馁~本诲泌,每一個想要使用比特幣交易網(wǎng)絡(luò)的用戶首先需要注冊一個賬戶铣鹏,這個賬戶是一個使用非對稱加密技術(shù)得到的兩把“鑰匙”,一個是公鑰葵第,類似于用戶名卒密,一個是私鑰棠赛,類似于密碼睛约,公鑰可以計算出賬戶的地址,私鑰可以計算出公鑰而芥,但是不能反過來棍丐,在一筆交易中需要有比特幣的轉(zhuǎn)出地址和轉(zhuǎn)入地址以及交易數(shù)量沧踏;

區(qū)塊鏈的鏈?zhǔn)侨绾涡纬傻哪厣倭海棵恳粔K區(qū)塊由區(qū)塊頭和交易信息組成褥芒,區(qū)塊頭中保存了上一個區(qū)塊的hash值捺宗,這樣就形成了一個鏈?zhǔn)降慕Y(jié)構(gòu)被因,在一個已經(jīng)形成的鏈里邊,如果要修改其中一個鏈的結(jié)果凰锡,那就需要修改這個區(qū)塊以及之后的所有區(qū)塊內(nèi)容掂为,并且還需要取得其他大部分節(jié)點的承認(rèn),在高額的計算成本之下昼扛,這種情況是不可能被實現(xiàn)的抄谐,因此可以實現(xiàn)數(shù)據(jù)的唯一性瞧栗。

注意這種情況的前提是前一塊區(qū)塊中任何一個數(shù)據(jù)的修改都會使其hash值發(fā)生變化,這表示如何設(shè)計一個hash函數(shù)讓區(qū)塊的數(shù)據(jù)具有“唯一性指紋”非常重要挣惰,并且這也是區(qū)塊鏈安全的前提保證憎茂。

比特幣采用的SHA256加密算法保證了數(shù)據(jù)的“唯一性”竖幔,并且不會被反向解析是偷,也就是說不能通過hash值計算出數(shù)據(jù)募逞。


SHA256加密算法原理

在這樣的前提下,我們可以建立一個安全的鏈?zhǔn)浇Y(jié)構(gòu)留特,這個鏈?zhǔn)浇Y(jié)構(gòu)中后一個通過hash值指向前一個,并且基于hash值保證了結(jié)構(gòu)的唯一性苟蹈,那么右核,如何在這個結(jié)構(gòu)當(dāng)中存儲數(shù)據(jù)呢蒙兰?

區(qū)塊由區(qū)塊頭和交易信息組成,交易信息里保存的就是交易的數(shù)據(jù)搜变,包括每一筆交易的轉(zhuǎn)出轉(zhuǎn)入地址挠他,后邊討論更多的細(xì)節(jié)問題。

然后區(qū)塊鏈自身的hash值通過自身擁有的全部數(shù)據(jù)計算出來贸呢,也就是說包括前一個節(jié)點的hash拢军,本身的交易記錄等等,一旦有人想修改某一個節(jié)點的交易記錄就會導(dǎo)致該節(jié)點的hash值變化然后不被后邊的節(jié)點所承認(rèn)固蛾。

在上邊的描述中艾凯,建立了一個安全的可以保存交易數(shù)據(jù)的區(qū)塊鏈懂傀,那么交易由誰來負(fù)責(zé)記錄,交易的貨幣—比特幣又從何而來恃泪?

在上邊的描述中我們可以知道,如果我們需要加入一個新的節(jié)點杈笔,那么我們需要獲取最新的區(qū)塊鏈hash值糕非,這個很容易查到朽肥,然后是獲取當(dāng)前區(qū)塊鏈網(wǎng)絡(luò)中的交易記錄衡招,這個通過P2P網(wǎng)絡(luò)可以獲得每强,然后組裝出一個新的區(qū)塊,并在區(qū)塊鏈網(wǎng)絡(luò)中進(jìn)行廣播浪箭,然后其他的節(jié)點同步奶栖。這里就有很多的細(xì)節(jié)問題了门坷,為什么一個節(jié)點要幫助區(qū)塊鏈生成新的區(qū)塊?如何解決多個節(jié)點同時生成區(qū)塊的問題冻晤?

首先鼻弧,為什么一個節(jié)點需要消耗自己的資源去為區(qū)塊鏈計算新的節(jié)點温数?這就是獎勵機制蜻势,也是比特幣最初的來源的地方,比特幣剛剛發(fā)行的時候規(guī)定每個區(qū)塊的記錄者可以獲得50個比特幣的獎勵够傍,,在交易記錄的第一個記錄中保存這個特殊的交易寂诱,叫做coinbase交易安聘;然后是記錄網(wǎng)絡(luò)中尚未被記錄的其他交易,形成一個新的區(qū)塊丘喻,這里還需要保證的是每個區(qū)塊的大小不能超過1M泉粉,現(xiàn)在平均一個區(qū)塊中會保存500筆交易記錄榴芳。

第二個問題,如何解決多個節(jié)點同時生成的最新區(qū)塊讨彼?因為獎勵機制的存在肌括,很多節(jié)點都會去競爭這個記錄者,這就會導(dǎo)致可能會出現(xiàn)多個區(qū)塊黑滴;比特幣使用工作量證明的方式來解決問題袁辈,因為每個數(shù)據(jù)塊都會根據(jù)自己的數(shù)據(jù)生成自己的數(shù)據(jù)指紋珠漂,在區(qū)塊中加入一個nonce字段媳危,用來存放一個隨機數(shù),然后根據(jù)變化這個隨機數(shù)使得區(qū)塊可以生成不同的數(shù)字指紋鸣皂,然后再加入一個難度字段寞缝,表示生成的數(shù)字指紋必須滿足某種條件才算合理,這樣的話在難度設(shè)置合理的情況下滩届,就可以從概率上降低在同一時間同時出現(xiàn)兩個區(qū)塊的情況帜消。比特幣要求計算出來的數(shù)字指紋滿足前n個值為0券犁,可以想象在hash函數(shù)生成值沒有規(guī)律的情況下汹碱,n越大咳促,計算難度也就越大跪腹,這樣的話每個節(jié)點如果想要獲得獎勵冲茸,就需要去枚舉這個nonce值以生成滿足條件的hash值缅帘,然后組裝出新的區(qū)塊,并廣播逗栽,直到大部分人都承認(rèn)了之后這個節(jié)點就被加入了區(qū)塊中彼宠。

如今的區(qū)塊數(shù)據(jù)總量已經(jīng)有80多G弟塞,也就是說如果你要加入這個挖礦網(wǎng)絡(luò)中决记,你需要先下載一個80G的電子賬本。

那么節(jié)點之間如何解決廣播的問題呢惭适?由于區(qū)塊鏈網(wǎng)絡(luò)是一個P2P網(wǎng)絡(luò)癞志,因此沒有一個固定的中間轉(zhuǎn)發(fā)服務(wù)器來轉(zhuǎn)發(fā)數(shù)據(jù)凄杯;比特幣這里使用的是DNS服務(wù)器秉宿,通過向DNS服務(wù)器發(fā)起查詢可以得到ip地址然后實現(xiàn)數(shù)據(jù)廣播描睦。

  1 #!/usr/bin/python
  2
  3 import socket
  4 import json
  5
  6 if __name__ == '__main__':
  7     nodes = socket.getaddrinfo("seed.bitcoin.sipa.be", None)
  8     print json.dumps(nodes, indent=2)

這個代碼可以通過向DNS服務(wù)器發(fā)起查詢找到ip地址列表,在比特幣客戶端中隔崎,DNS服務(wù)器是寫死在代碼中并且有專門的人進(jìn)行維護(hù)的爵卒。

在比特幣最開始的設(shè)計當(dāng)中撵彻,最開始每一筆交易獎勵50個比特幣陌僵,然后每210000個區(qū)塊之后轴合,獎勵數(shù)額減半,可以計算出比特幣的總量是有限的拾弃,不會超過2100w值桩,這樣種總量上限不變的特性,導(dǎo)致比特幣有了一些特別的屬性豪椿,比如收藏屬性奔坟。那么在比特幣挖礦達(dá)到上限之后,挖礦沒有來收入來源搭盾,礦工退出導(dǎo)致網(wǎng)絡(luò)節(jié)點的下降咳秉,比特幣又怎么辦呢?其實礦工的收入不僅僅是記錄區(qū)塊時的獎勵鸯隅,還有為別人記錄賬單的手續(xù)費澜建;因為每一個區(qū)塊大小的限制導(dǎo)致不能保存過多的交易記錄向挖,那么如果交易記錄過多何之,記錄著如何選擇呢?這里交易對象可以在交易記錄中放置一份小費蒜危,記錄者根據(jù)小費選擇交易記錄進(jìn)行存儲,因此礦工會有一筆額外的收入,自然小費越高,就會越快地被保存在區(qū)塊中崔兴。

因為去中心化的緣故位谋,導(dǎo)致沒有任何機構(gòu)可以監(jiān)管貨幣的交易過程,因此很多不法分子利用比特幣作為交易貨幣,再加上比特幣通縮性的性質(zhì),導(dǎo)致比特幣在一段時間內(nèi)價值持續(xù)升高饱岸。但是當(dāng)獎勵趨近于零的時候百框,如何維持節(jié)點數(shù)量保持網(wǎng)絡(luò)的穩(wěn)定,我認(rèn)為這是一個需要考慮的問題聂抢,另外就是現(xiàn)在的賬本太大闸拿,導(dǎo)致一個普通用戶想要進(jìn)入網(wǎng)絡(luò)中需要承擔(dān)的成本也會比較大。

但是,比特幣給我們帶來的不僅僅是比特幣俐筋,我們應(yīng)該更多的在意區(qū)塊鏈這個技術(shù),它在一個復(fù)雜并且不受信的網(wǎng)絡(luò)環(huán)境中建立了一個去中心化的信用機制,我們?nèi)绾卫眠@個技術(shù)去實現(xiàn)更多的產(chǎn)品以及謀求更大的利益,這才是應(yīng)該考慮的屈留。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末沫勿,一起剝皮案震驚了整個濱河市蔓挖,隨后出現(xiàn)的幾起案子角溃,更是在濱河造成了極大的恐慌,老刑警劉巖陕壹,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绊袋,死亡現(xiàn)場離奇詭異展姐,居然都是意外死亡教馆,警方通過查閱死者的電腦和手機悲敷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人作煌,你說我怎么就攤上這事病瞳。” “怎么了?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長辫诅。 經(jīng)常有香客問我档痪,道長,這世上最難降的妖魔是什么侧戴? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任稀颁,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘消别。我一直安慰自己,他們只是感情好骑脱,可當(dāng)我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪苍柏。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天袱耽,我揣著相機與錄音,去河邊找鬼吼蚁。 笑死,一個胖子當(dāng)著我的面吹牛塘淑,可吹牛的內(nèi)容都是我干的存捺。 我是一名探鬼主播,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼瓷胧!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起反肋,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤诉探,失蹤者是張志新(化名)和其女友劉穎艳馒,沒想到半個月后恶守,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡贡必,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年兔港,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片仔拟。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡衫樊,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出利花,到底是詐尸還是另有隱情科侈,我是刑警寧澤,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布炒事,位于F島的核電站臀栈,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏挠乳。R本人自食惡果不足惜权薯,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一姑躲、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧盟蚣,春花似錦黍析、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至牍戚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間虑粥,已是汗流浹背如孝。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留娩贷,地道東北人第晰。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像彬祖,于是被迫代替她去往敵國和親茁瘦。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,486評論 2 348

推薦閱讀更多精彩內(nèi)容