快速理解區塊鏈技術的三步指南!

區塊鏈從2017年火到了2018年,最近愈來愈多的小夥伴詢問「什麼是區塊鏈?」。對於這個問題,不一樣的人可能有不一樣的觀點。node

在肖風博士的最新演講中,他從區塊鏈的層次分解、技術發展進程、經濟意義等角度解釋了何謂區塊鏈。(點這裏查看肖博士最新演講:http://www.ljzfin.com/node/8347.jspx?from=groupmessage&isappinstalled=0)安全

本篇文章翻譯自外文博客,用通俗易懂的語言,分三步,解釋了區塊鏈的三個主要組成部分:區塊鏈自己,點對點網絡和共識機制,有助於咱們逐步理解區塊鏈的底層技術。結合肖風博士的演講,你將從機制、經濟和技術層面,對區塊鏈技術有更深刻更透徹的理解。服務器

本文即便是非技術人員,也能輕易理解。現將其分享給各位,供你們參考。網絡

ll下文翻譯自Thijs Maas發表在Hackernoon上的博文《The Quick, 3-Step Guide to Blockchain Technology》,僅表明做者觀點,不表明萬向區塊鏈的立場,內容僅供參考。數據結構

 

第一步 理解區塊鏈技術自己

簡單來說,區塊鏈其實就是一種構建數據的方式。它是一個帳本:一個保存會計記錄的文件。app

這個文件就像一本永遠也不會完結的書同樣。jsp

書的每一頁都有內容而且在書頁底部都有一個頁碼,有了頁碼,你就能馬上知道這頁書所屬的位置,如第49頁是在第48頁和第50頁之間。ide

就像書頁同樣,每個區塊上面都寫滿了內容。雖然區塊沒有明確的編號,但它們有時間戳,時間戳的功能和頁碼的功能徹底同樣,算是每一個區塊的「編號」。一個新的區塊老是添加在具備最近時間戳的區塊以後。如此,鏈條就造成了。區塊鏈

區塊鏈最酷的地方在於,它使用加密技術來確保當「書頁」上的任何信息發生變化時,咱們可以當即注意到它。這個屬性使得區塊鏈成爲一個很好的,用於保存和跟蹤有價值的紀錄的數據結構。ui

在比特幣區塊鏈中,區塊裏包含了比特幣的交易信息,如張三把這個比特幣發送給李四了。

因爲比特幣區塊鏈記錄了自比特幣存在以來的全部交易狀況,所以咱們能夠經過檢查帳本,肯定李四是在什麼時候擁有這個比特幣的。「誰在某時擁有某物」就是咱們所說的區塊鏈的「狀態」。

當一筆交易被記錄在區塊中並添加到鏈上時,這筆交易纔算真正地發生。所以,當一個區塊被添加到鏈上時,區塊鏈就被更新了。這意味着,若是我想驗證某人是否真的給我轉了一個比特幣,我必須可以檢查區塊鏈的狀態。爲了可以作到這一點,帳本必須是公開可利用的。這裏就是點對點網絡起做用的地方。

 

第二步 理解點對點網絡的做用

若是區塊鏈僅僅被儲存在一臺電腦上,而且剛好這臺電腦被關閉的話,那就很煩人了。由於我沒法隨時隨地驗證對方是否給我轉了帳。所以,區塊鏈是分散存儲在世界各個地區的數臺電腦上的。

 

 

這些電腦被稱爲「節點」,它們在點對點網絡中一塊兒工做,以確保區塊鏈的安全性和狀態的最新性。每一個節點都存儲着區塊鏈的完整版本,每當有新塊添加時,每一個節點也都會更新區塊鏈。使用點對點網絡有下面這些優點:

☞我能夠隨時隨地的使用區塊鏈檢查交易狀態;

☞我不用依靠某一方來了解交易的最新狀態;

☞當發生黑客攻擊時,對方必須同時攻擊成千上萬臺電腦,而不僅是一臺服務器;

☞沒必要擔憂區塊鏈裏的信息會被刪除或篡改,要實現這一點就必須修改全部計算機裏的信息。

 

但上述狀況並不意味着區塊鏈就是100%安全的。例如,我怎麼知道區塊鏈裏記錄的信息是正確的?怎麼驗證區塊裏有沒有包含無效交易?若是有不一樣版本的區塊鏈,那我怎麼知道哪個區塊鏈裏的纔是真實紀錄?

區塊鏈巧妙的地方在於,這些問題,能夠用共識機制來解決。

 

第三步 理解共識機制

共識機制神奇之處在於,它容許點對點網絡中的全部節點一塊兒工做,而彼此之間卻沒必要相互瞭解和信任。

共識機制就是一組簡單的規則:網絡中的節點經過運行網絡軟件達成一致。這些規則確保區塊鏈網絡按預期工做並保持同步。

 

共識協議規定了:

☞如何將區塊添加到鏈上

☞區塊何時被認爲是有效的

☞如何解決真相沖突

 

將區塊添加到鏈上

不一樣的區塊鏈有不一樣的添加區塊的方式。

最有名的共識機制是比特幣PoW機制(工做量證實)。PoW的第一個規則是:平均每十分鐘,一個區塊會被添加在區塊鏈中。

這個過程叫作「挖礦」,添加新塊的節點叫作「礦工」。在PoW機制下,系統會出一道密碼謎題,礦工運用計算機的算力解決系統中的密碼謎題來添加新塊。共識機制規定:只有成功解決出密碼謎題後,才能添加一個新塊。成功添加新塊的礦工可以得到預埋在系統中的新幣做爲獎勵。隨後,全部礦工開始挖掘下一個區塊。

PoS(權益證實)也是常見的共識機制之一。這種機制經過計算你的權益,包括你持有的幣的數量和持有幣的時間,來決定記帳的權利。誰的權益大,誰就得到添加新區塊的權利。

 

區塊的有效性

當礦工解出謎題「挖出」區塊後,網絡中的全部節點將檢查該區塊是否有效,並將它添加到各自的區塊鏈副本中。

節點們首先須要就塊的合法性達成共識,只有這樣網絡纔會達成同步並更新區塊鏈的狀態。只有遵循共識機制設定的規則的新塊,纔會被節點們認可並添加到鏈上。沒有遵循規則的塊將會被拒絕添加。

一般狀況下,只有包含交易信息的塊纔有效。以比特幣區塊鏈爲例,協議規則規定:若是沒有從別人那裏接收到比特幣或者挖出比特幣,就不能夠發送比特幣。換句話說,若是發送者已經接收到了足夠的比特幣來作交易,節點們將運行軟件檢查區塊中的全部交易信息,以此來檢查網絡狀態。

如今,假設我已經收到1比特幣,我後來將其發送給張三,而後我嘗試將相同的比特幣發送給李四。只要個人第一筆交易被添加到鏈中,全部節點都會更新區塊鏈,以證實我如今沒有該比特幣了,那麼任何包含我和李四的交易信息的塊都會被拒絕。節點們的軟件發現該塊沒有遵循規則,所以它們不會將這個塊添加到鏈上。

規則還規定,只有具備比特幣持有者數字簽名的交易纔是有效交易。只有控制發送比特幣錢包或地址的人才能夠在交易上簽字。所以,只有你能夠花你的比特幣。

 

如何解決真相沖突

在偶然的狀況下,會出現兩名礦工同時向鏈條添加有效塊,一部分節點接受了一個礦工的有效塊,另外一部分接受了另外一個礦工的有效塊。第一個塊包含我和張三交易的信息,第二個塊包含我和李四交易的信息。如今,我忽然同時擁有兩種不一樣狀態的區塊鏈。

咱們將這種狀況稱爲「分叉」。張三或李四是否擁有我發送的比特幣?兩條鏈中的哪一條纔是'真正的'區塊鏈?

一般狀況下,全部的共識協議都有一條簡單的規則來解決這個問題:最長的鏈獲勝!

當分叉發生時,一些礦工會在這條鏈上挖礦,另外一些礦工將在另外一條鏈上挖礦。不可避免的是,一條鏈上的礦工確定會比另外一條鏈上的礦工多,所以,礦工多的那條鏈將會增加的更快。

另外一條鏈上的礦工將會遷移至較長的那條鏈上,分叉出去的鏈就會消失。這樣對主鏈沒有任何損害。

 

由於礦工是以自我利益行事的經濟行爲者。一個礦工若是知道這條分叉的鏈會消亡,那麼就不會有興趣在分叉鏈上採礦。全部在分叉鏈上的交易毫不會發生在主鏈上,這意味着在分叉鏈上挖礦的礦工將得不到獎勵。

上述這種狀況,咱們稱之爲軟分叉

在少數狀況下,分叉鏈可能會產生大量的採礦能力。在這種狀況下,可能須要一段時間才能肯定哪條鏈是主鏈。傳統觀點認爲,等待6個區塊方可真正確認一個交易。

譯者補充:這種狀況稱爲硬分叉,在原鏈上工做的節點沒法驗證分叉鏈上的節點生產的區塊,這樣就會分出兩條鏈。這兩條鏈將會並存運行下去。

 

「最長的鏈獲勝」這條規則,再加上添加一個區塊須要巨大的算力這一客觀要求,使得區塊鏈具備很高的安全性。攻擊網絡的惟一途徑就是回到區塊鏈中的某個區塊,分叉區塊鏈並開始從那裏挖掘新區塊。然而,要作到這一點,攻擊者必須重作以前全部礦工們的工做,並努力遇上主鏈。沒有比整個礦工網絡更多的計算能力,要實現攻擊基本是不可能的。這也是區塊鏈爲何不易受到攻擊的緣由。

相關文章
相關標籤/搜索