區(qū)塊鏈學(xué)習(xí)-比特幣

  • 區(qū)塊鏈綜述
    區(qū)塊鏈本質(zhì)上是一種分布式的數(shù)據(jù)庫,這個數(shù)據(jù)庫的基本單位就是區(qū)塊纬黎。
    這個數(shù)據(jù)庫被網(wǎng)絡(luò)中的所有節(jié)點(diǎn)一起維護(hù)幅骄,所有的節(jié)點(diǎn)都是公平的,任何人都有資格查看所有的交易信息本今。任何人如果想更改數(shù)據(jù)拆座,必須擁有大于全網(wǎng)50%的算力,確保它生成區(qū)塊的速度超過其他所有節(jié)點(diǎn)之和冠息。所以挪凑,只要擁有足夠的用戶和正常的礦工,那么這個區(qū)塊鏈就不可能出現(xiàn)異常交易铐达。

  • 高度
    區(qū)塊鏈?zhǔn)且粭l由一個個區(qū)塊組成的鏈岖赋,每個區(qū)塊都存有上一個區(qū)塊的hash值檬果,所以也可以理解成一條有序的鏈瓮孙。而高度就是指一個區(qū)塊到最新區(qū)塊的距離。

  • 挖礦
    區(qū)塊鏈中比較重要的一個環(huán)節(jié)就是挖礦选脊,所謂挖礦杭抠,其實(shí)就是生成區(qū)塊的過程。礦工的任務(wù)是收集網(wǎng)絡(luò)上未處理的交易信息恳啥,然后將這些信息生成一個區(qū)塊偏灿,最先生成合法區(qū)塊的礦工視為挖礦成功,獲得挖礦獎勵和這個區(qū)塊的手續(xù)費(fèi)钝的。礦工的獎勵是整個區(qū)塊鏈唯一產(chǎn)出比特幣的地方翁垂,但是這個獎勵會逐年遞減铆遭,最終2140年之后不再產(chǎn)生新的比特幣,總量維持在2100W枚沿猜。

  • 工作量證明
    任何人都可以成為礦工枚荣,但是為了維護(hù)秩序,必須加大挖礦的門檻啼肩,防止有人惡意生成區(qū)塊橄妆。比特幣就采用了一種工作量證明機(jī)制。


    區(qū)塊頭結(jié)構(gòu).png

比特幣的工作量證明機(jī)制其實(shí)很簡單祈坠,就是通過不斷替換區(qū)塊頭中nonce字段的值害碾,使得最后整個區(qū)塊的hash值小于一個數(shù)值,這個數(shù)值就是難度赦拘,為了防止出現(xiàn)因?yàn)閚once字段長度過低導(dǎo)致無法生成區(qū)塊的情況慌随,時間戳字段和區(qū)塊中第一筆交易信息都可以更改 。
產(chǎn)生一個合法的區(qū)塊頭需要進(jìn)行大量的計算躺同,但是驗(yàn)證一個合法的區(qū)塊只需要一次計算儒陨,因此雖然大部分節(jié)點(diǎn)不參與挖礦,但是可以快速的驗(yàn)證合法區(qū)塊笋籽,達(dá)成共識蹦漠,然后把合法的區(qū)塊廣播出去,通知其他正在挖礦的節(jié)點(diǎn)本輪結(jié)束车海,快速開始下一輪挖礦笛园。
為了穩(wěn)定區(qū)塊的生成速度在10分鐘每塊,比特幣的難度每過2016塊改變一次侍芝。

  • 分叉
    因?yàn)楸忍貛攀且粋€分布式的網(wǎng)絡(luò)研铆,同時可能有多個礦工在挖礦,如果兩個礦工幾乎同時都完成了一個區(qū)塊的生成州叠,也就是說這兩個礦工在對方挖礦成功的消息到達(dá)自己這里之前棵红,把自己挖礦成功的消息廣播了出去。這個時候咧栗,有些節(jié)點(diǎn)會收到了兩條挖礦成功的消息逆甜,實(shí)際上這個區(qū)塊鏈也就被分成了兩個分支。在這兩個分支長度相同的時候致板,這兩個分支暫時都是合法的交煞,礦工可以在任何一個分支上繼續(xù)挖礦,直到一條分支的長度長于另一條斟或,所有節(jié)點(diǎn)都會選擇較長的那個分支作為主分支素征。
    所以,一筆交易被確認(rèn)之后,并不意味著這筆交易一定生效御毅,很可能這筆交易被放在了分叉的分支上根欧,最終被淘汰了,因此比特幣建議當(dāng)確認(rèn)數(shù)大于6的時候端蛆,再處理交易成功之后的操作咽块。
  • 默克爾樹
    默克爾樹算法允許輕節(jié)點(diǎn)的出現(xiàn),即節(jié)點(diǎn)只維護(hù)區(qū)塊鏈的頭信息欺税,在確認(rèn)的時候侈沪,再下載需要的信息即可,無需維護(hù)所有的交易信息晚凿,保證了客戶端的輕巧和方便亭罪。
    默克爾樹算法中,這棵樹可以是一個多叉樹歼秽,但是在區(qū)塊鏈應(yīng)用中应役,維護(hù)的是一棵二叉樹。


    spv1.png

這個二叉樹的每個葉子節(jié)點(diǎn)是具體的值燥筷,每個非葉子節(jié)點(diǎn)箩祥,是根據(jù)它的子節(jié)點(diǎn)的值通過某種hash算法得到的,這樣一層一層的直到根節(jié)點(diǎn)肆氓。
在區(qū)塊鏈頭信息里袍祖,就包含了這樣的一個根節(jié)點(diǎn)的值,這樣只要下面的交易信息稍有改動谢揪,算出來的根節(jié)點(diǎn)的值就會改變蕉陋,這時候校驗(yàn)一下就可以確認(rèn)數(shù)據(jù)的正確性。
更重要的是校驗(yàn)的時候拨扶,只需要拿到這棵樹的一部分信息凳鬓,就可以確認(rèn)一筆交易的正確性。拿到一個葉子節(jié)點(diǎn)和另一個兄弟葉子節(jié)點(diǎn)的值患民,計算得到他們父節(jié)點(diǎn)的值缩举,然后再拿到父節(jié)點(diǎn)的兄弟節(jié)點(diǎn)的值,繼續(xù)向上計算匹颤,如果最終的結(jié)果是正確的仅孩,那么也就確認(rèn)了這筆交易是合法的。


spv2.png
  • utxo
    utxo可以說是區(qū)塊鏈交易的最基本單位了惋嚎。和常規(guī)的交易不同杠氢,比特幣中并沒有賬戶這個概念站刑,而是由很多個未花費(fèi)的交易輸出即utxo組成另伍。這個未花費(fèi)的交易輸出是指,之前有交易的交易輸出是這個地址,且這個交易還沒有被其他交易使用過摆尝。
    也就是說温艇,在我們生成交易信息的時候,存儲的并不是從一個賬戶到另一個賬戶堕汞,而是一筆或者多筆之前的交易輸出勺爱,到一個或多個地址。如果一筆交易中讯检,所有交易輸入的和大于交易輸出的和琐鲁,那么多余的比特幣就會當(dāng)做手續(xù)費(fèi)轉(zhuǎn)給礦工。
    比如人灼,如果我有一筆utxo是10個比特幣围段,我想轉(zhuǎn)5個給addr1,那么我就要生成一個交易信息投放,輸入是我那筆utxo奈泪,而輸出是兩個,一個是給addr1的5比特幣灸芳,另一個是給自己的找零涝桅。
    經(jīng)過很多的交易之后,會生成很多零散的utxo烙样,這時候冯遂,一筆交易很可能會有很多的輸入。因此谒获,想要完成交易债蜜,必須要記錄下自己所有的utxo,而不僅僅是自己的地址究反。
    節(jié)點(diǎn)在驗(yàn)證交易的過程中寻定,需要維護(hù)一個utxo的列表,從而驗(yàn)證每筆utxo是否是有效的輸入精耐,防止重復(fù)支付狼速。
    使用utxo還有一個優(yōu)點(diǎn)就是保護(hù)隱私。之前提到過卦停,區(qū)塊鏈?zhǔn)且粋€開發(fā)的數(shù)據(jù)庫向胡,因此如果使用賬戶交易,那么很容易就可以分析出一個人的交易習(xí)慣惊完。但是如果使用utxo就可以避免這個問題僵芹,我們可以提前生成好很多的地址,在找零的時候小槐,隨機(jī)轉(zhuǎn)入一個新的地址拇派,這樣賬戶之間的依賴關(guān)系幾乎不存在荷辕,如果想查找分析某個用戶的用戶習(xí)慣,幾乎是不可能的件豌。代價就是需要更多的空間來維護(hù)utxo疮方。

總結(jié)

綜上就是我對比特幣的初步研究,比特幣是區(qū)塊鏈貨幣的先行者茧彤,其中有很多創(chuàng)新的地方骡显,utxo的概念、基于工作量證明的共識等等曾掂,不過它也有它的缺點(diǎn)惫谤,比如確認(rèn)時間間隔過長、每個區(qū)塊存儲信息過少等等珠洗,都是限制它發(fā)展的因素∈遥現(xiàn)在很多數(shù)字貨幣,都在比特幣的基礎(chǔ)上進(jìn)行了所謂的改進(jìn)险污,不管之后數(shù)字貨幣何去何從痹愚,比特幣的地位是不可動搖的。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蛔糯,一起剝皮案震驚了整個濱河市拯腮,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蚁飒,老刑警劉巖动壤,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異淮逻,居然都是意外死亡琼懊,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進(jìn)店門爬早,熙熙樓的掌柜王于貴愁眉苦臉地迎上來哼丈,“玉大人,你說我怎么就攤上這事筛严∽淼” “怎么了?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵桨啃,是天一觀的道長车胡。 經(jīng)常有香客問我,道長照瘾,這世上最難降的妖魔是什么匈棘? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮析命,結(jié)果婚禮上主卫,老公的妹妹穿的比我還像新娘逃默。我一直安慰自己,他們只是感情好队秩,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布笑旺。 她就那樣靜靜地躺著昼浦,像睡著了一般馍资。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上关噪,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天鸟蟹,我揣著相機(jī)與錄音,去河邊找鬼使兔。 笑死建钥,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的虐沥。 我是一名探鬼主播熊经,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼欲险!你這毒婦竟也來了镐依?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤天试,失蹤者是張志新(化名)和其女友劉穎槐壳,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體喜每,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡务唐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了带兜。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片枫笛。...
    茶點(diǎn)故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖刚照,靈堂內(nèi)的尸體忽然破棺而出崇堰,到底是詐尸還是另有隱情,我是刑警寧澤涩咖,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布海诲,位于F島的核電站,受9級特大地震影響檩互,放射性物質(zhì)發(fā)生泄漏特幔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一闸昨、第九天 我趴在偏房一處隱蔽的房頂上張望蚯斯。 院中可真熱鬧薄风,春花似錦、人聲如沸拍嵌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽横辆。三九已至撇他,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間狈蚤,已是汗流浹背困肩。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留脆侮,地道東北人锌畸。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像靖避,于是被迫代替她去往敵國和親潭枣。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評論 2 359

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

  • 一幻捏、快速術(shù)語檢索 比特幣地址:(例如:1DSrfJdB2AnWaFNgSbv3MZC2m74996JafV)由一串...
    不如假如閱讀 15,997評論 4 87
  • 1 貨幣的演變——從貝殼到比特幣 當(dāng)社會分工產(chǎn)生之后盆犁,人類就產(chǎn)生了商品交換的需求。在貨幣被發(fā)明之前粘咖,人類是以以物換...
    longlee閱讀 7,638評論 1 23
  • 以下為金馬老師《精通比特幣》解讀的文稿整理蚣抗。 第一章 介紹 1.1 什么是比特幣 (1)比特幣是一個區(qū)塊鏈實(shí)現(xiàn) (...
    夢之郎閱讀 13,264評論 6 61
  • 今天,小姨給我傳了幾張小妹的照片瓮下,呆呆的盯了半天翰铡,小家伙變得差點(diǎn)認(rèn)不出來。以前為了成熟讽坏,天天刮胡子锭魔,直到胡子變黑了...
    一首民謠一段路閱讀 133評論 0 0
  • 這一年,沒有做什么有價值的事情路呜, 這一年迷捧,四級未能通過, 這一年胀葱,自己也算是懂得了很多事情漠秋, 這年冬天,我又回到了...
    申小磊閱讀 219評論 0 0