區(qū)塊鏈:去中心化的分布式數(shù)據(jù)庫
大家都知道,“比特幣”是一種數(shù)字貨幣。而“區(qū)塊鏈”就是比特幣的記賬系統(tǒng)。可以把區(qū)塊鏈想象成一個賬本,上面記錄了全球所有的比特幣交易信息。那么,區(qū)塊鏈跟傳統(tǒng)的銀行記賬有什么區(qū)別呢?
這就涉及到區(qū)塊鏈的本質(zhì)了:區(qū)塊鏈?zhǔn)且环N去中心化的分布式數(shù)據(jù)庫。我會一一解釋這三個關(guān)鍵詞。
數(shù)據(jù)庫:
所謂“數(shù)據(jù)庫”,就是計算機上的一組表格,它可以存放大量的有結(jié)構(gòu)的信息(可以類比Excel,但遠(yuǎn)比Excel復(fù)雜)。比如我們?nèi)ャy行存款、取款、匯款,這些交易信息都是要上傳到銀行的數(shù)據(jù)庫的。
分布式:
這個數(shù)據(jù)庫可以存放在銀行的一臺超級電腦上,也可以放在多臺電腦上。比如工行可能在華北、華中、華東、華南等地區(qū)各有一臺服務(wù)器,每個地區(qū)的交易信息發(fā)送到本地區(qū)的服務(wù)器上,各個服務(wù)器之間通過銀行的內(nèi)部網(wǎng)絡(luò)連接。這就叫“分布式數(shù)據(jù)庫”。
去中心化:
傳統(tǒng)的服務(wù)器,不管是不是分布式的,都是有“管理員”的。也就是說,有一個銀行內(nèi)部的“超級用戶”可以查看所有的交易信息,并且可以隨意添加、修改這些信息。這就叫“中心化”。
而區(qū)塊鏈則是“去中心化”的。也就是說,區(qū)塊鏈這個數(shù)據(jù)庫中不存在管理員,所有人都是平等的,都有權(quán)查看、添加信息。去中心化是區(qū)塊鏈的本質(zhì)特征。
既然所有人都有權(quán)往區(qū)塊鏈上添加信息,那么這個“賬本”難道不會亂七八糟嗎?要搞清楚這點,我們需要了解什么是“區(qū)塊”,什么是“鏈”。
何為“區(qū)塊”何為“鏈”?“區(qū)塊”是區(qū)塊鏈的基本組成。區(qū)塊就是一個數(shù)據(jù)塊。類比賬本的話,區(qū)塊就相當(dāng)于賬本上的一頁,這一頁上記錄了多條交易信息。而把這些分散在整個互聯(lián)網(wǎng)上的“頁”串成一條鏈,就可以形成一個完整的“賬本”。那么,“區(qū)塊”是怎么串成“區(qū)塊鏈”的呢?
區(qū)塊鏈賬本的記賬原理
哈希值與防篡改:
除了比特幣交易信息之外,區(qū)塊上還包含了這個區(qū)塊本身的一些特征信息??梢灶惐纫豁撋系摹绊摯a”,只不過這個“頁碼”比較復(fù)雜。“頁碼”中最重要的,就是“哈希值”,它是理解區(qū)塊鏈可靠性的關(guān)鍵。
所謂“哈希值”,可以理解為數(shù)據(jù)的一個“指紋”。我們簽合同有時會摁手印,以后只要把自己的指紋和合同上的指紋對比一下,就可以證明合同是自己簽的。類似地,我們在網(wǎng)上下載一個軟件,有些網(wǎng)站會給出安裝包的哈希值(可能稱為CRC或SHA)。我們下載完安裝包后,只需用專門的工具計算一下這個SHA值,再跟官網(wǎng)上給的SHA值對比一下,就可以知道自己下載的和網(wǎng)站提供的是否100%一致,下載過程有沒有被人做了手腳。
不同的數(shù)據(jù),算出來的哈希值一般來說是不同的。如果已知數(shù)據(jù)A的哈希值是H,想偽造另一個數(shù)據(jù)B,使它的哈希值也是H,這是極其困難的。也就是說,哈希值具有不可偽造性,起到了“指紋”的作用。
一個區(qū)塊中,包含了兩種哈希值:“上一個區(qū)塊的哈希值”和“本區(qū)塊的哈希值”。因為每個區(qū)塊都包含了上一個區(qū)塊的哈希值,所有的區(qū)塊就依次連成一條(邏輯上的)鏈?!吧弦粋€區(qū)塊的哈希值”就起到了“頁碼”的作用——給頁排序。
▲區(qū)塊所包含的內(nèi)容
▲區(qū)塊連接成區(qū)塊鏈
如果一個區(qū)塊上的交易信息被人惡意篡改的話,“本區(qū)塊的哈希值”就會改變。由于區(qū)塊鏈中下一個區(qū)塊包含了“上一個區(qū)塊的哈希值”,為了讓下一個區(qū)塊依然能連到本區(qū)塊,需要修改下一個區(qū)塊。而這又導(dǎo)致下下個、下下下個......區(qū)塊也必須修改。
▲篡改了一個區(qū)塊,就要修改后面所有區(qū)塊
由于區(qū)塊鏈本身的一些機制(這個機制比較細(xì)節(jié),我們這里不討論),計算一個區(qū)塊的哈希值是極其困難的,修改多個區(qū)塊的哈希值則是難上加難。這樣,篡改區(qū)塊鏈中的交易信息就成為幾乎不可能的事情。這就保證了區(qū)塊鏈的可靠性。
采礦:向區(qū)塊鏈寫入信息的方式
采礦:向區(qū)塊鏈寫入信息的方式“采礦”,就是計算出一個潛在區(qū)塊的哈希值,使這個區(qū)塊正式加入整個區(qū)塊鏈的過程。一個區(qū)塊加入?yún)^(qū)塊鏈后,其中包含的交易信息才能成為事實。由于比特幣設(shè)計者的一些考慮,采礦的過程需要消耗大量時間和資源。前面已經(jīng)提到,計算區(qū)塊的哈希值是極其困難的。具體有多困難呢?如果比特幣網(wǎng)絡(luò)中的計算機都參與哈希值的計算,平均每十分鐘才能算出一個哈希值。
從事采礦活動的人,稱為“礦工”。互聯(lián)網(wǎng)上的任何人都可以加入比特幣網(wǎng)絡(luò),成為礦工。既然采礦需要消耗大量時間和資源,為什么礦工會自愿加入呢?這是因為比特幣協(xié)議規(guī)定,挖到新區(qū)塊的礦工會得到比特幣獎勵。這是礦工采礦的動力;也因為礦工持續(xù)得挖礦,比特幣交易信息才能被確認(rèn),比特幣交易才能正常進行。同時,這也是比特幣總量唯一的增加方式。比特幣不像傳統(tǒng)貨幣,它的總量不能通過國家或機構(gòu)人為印發(fā)的方式增加,只能通過挖礦獎勵的方式“自然地”增加。
如何避免主鏈分叉?
既然挖礦會有比特幣獎勵,比特幣的交易方也會給礦工一些手續(xù)費作為報酬,礦工之間難免會產(chǎn)生大量競爭。如果兩個礦工同時挖到了某個區(qū)塊的下一個區(qū)塊,那么誰挖到的那個區(qū)塊有資格加入?yún)^(qū)塊鏈呢?如果都可以加入?yún)^(qū)塊鏈,區(qū)塊鏈產(chǎn)生了分叉,這樣如何保證區(qū)塊鏈的“唯一性”呢?
區(qū)塊鏈協(xié)議規(guī)定,如果一個分叉上的新增區(qū)塊達(dá)到了六個,那么它就成為區(qū)塊鏈的“正統(tǒng)”;而同一時刻其他沒有達(dá)到六個區(qū)塊的分叉,就會被不幸淘汰,這些區(qū)塊上的交易信息也不會被認(rèn)可。這就避免了區(qū)塊鏈的分叉。由于一個區(qū)塊在被挖出來后,后面必須跟上六個新區(qū)塊,而平均每十分鐘才能挖到一個新區(qū)塊,這樣,一筆交易至少需要一個小時才能被確認(rèn)(被寫進區(qū)塊鏈)。
▲礦工B:我有一句喵喵喵不知當(dāng)不當(dāng)講
綜合上文,那么比特幣交易的過程是怎樣的呢?
交易無非就是一條信息:“買方-1$,賣方+1$。”(這里涉及到一些非對稱密碼的知識,由于不是比特幣所獨有,不作討論。)當(dāng)你發(fā)起一筆比特幣交易后,這個交易信息就會從你的設(shè)備上,逐漸發(fā)送到整個比特幣網(wǎng)絡(luò)。
為了挖礦獎勵,許多礦工都會收集你的交易信息,并拼命挖新的區(qū)塊。如果一個礦工挖出了一個新的區(qū)塊,他就會把你的交易信息寫入?yún)^(qū)塊。在這之后,他還需要再挖出六個新的區(qū)塊,以保證整個區(qū)塊鏈采用了這個區(qū)塊。這時你的交易信息才能正式寫入?yún)^(qū)塊鏈,得到確認(rèn)。而那些沒有挖到六個區(qū)塊的礦工的成果則會被淘汰。
這樣,雖然是多個礦工在競爭著寫入你的交易信息,最后只能有一個礦工成功地寫入。這就保證了同一次交易中,你的錢不會被扣掉兩次。
一旦一個新的區(qū)塊正式加入了區(qū)塊鏈,這個區(qū)塊就會被同步到所有礦工的機器上,新的區(qū)塊只能跟在這個區(qū)塊后面。而挖到這個區(qū)塊的礦工會獲得一些比特幣作為獎勵,這也是新比特幣發(fā)行的過程。
小結(jié)一下以上的要點:文章來源:http://www.zghlxwxcb.cn/news/detail-817109.html
區(qū)塊鏈?zhǔn)潜忍貛沤灰椎目煽康?、唯一的賬本。區(qū)塊鏈?zhǔn)且粋€無中心的分布式數(shù)據(jù)庫。它沒有管理員,網(wǎng)絡(luò)中的所有用戶都可以平等地向區(qū)塊鏈中寫入新的區(qū)塊。區(qū)塊根據(jù)“上個區(qū)塊的哈希值”而連接成一條鏈。計算哈希值的困難性,使得區(qū)塊和區(qū)塊鏈無法被篡改,保證了區(qū)塊和區(qū)塊鏈的可靠性。一個區(qū)塊后面新增六個區(qū)塊才能使它正式加入?yún)^(qū)塊鏈,這使得區(qū)塊鏈不會產(chǎn)生分叉,保證了區(qū)塊鏈的唯一性。但同時,這也導(dǎo)致比特幣交易至少需要一個小時來確認(rèn),不具有即時性。挖礦獎勵是比特幣唯一的發(fā)行機制,也是礦工挖礦的動力。文章來源地址http://www.zghlxwxcb.cn/news/detail-817109.html
到了這里,關(guān)于區(qū)塊鏈的工作原理的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!