亚洲狼人综合,本道综合精品,在线看福利影,国产亚洲精品久久久玫瑰,日韩欧美精品在线观看,日韩在线国产,欧美乱码一区二区三区

區(qū)塊鏈構(gòu)架就是造房子,10分鐘帶你走遍構(gòu)建全程

2018-07-31 17:21:38 區(qū)塊鏈大本營  點擊量: 評論 (0)
本文作者Taylor Pearson,是The End of Jobs專欄作家、企業(yè)家,過去三年曾與數(shù)百名企業(yè)家互動交流。他喜歡研究創(chuàng)新型技術(shù),對區(qū)塊鏈技術(shù)有較深入的研究。

軍備競賽的一部分——黑客在逆向推演哈希函數(shù)方面做得越來越好,因此密碼學家總是得想出更強大的哈希函數(shù)。

除此之外,難題友好屬性使區(qū)塊鏈難以篡改。如果我想替換像“我喜歡冰淇淋”這樣的項,我不可能在沒有其他參與者知道的情況下做到。

被加密哈希函數(shù)散列后,輸入的微小變化也會導致輸出的顯著不同,從而達到防篡改的目的。

加密哈希函數(shù)看起來是隨機的(因此沒有碰撞),無法逆轉(zhuǎn),并隱匿輸入,但同時它們又是完全確定的。這就是它們有用的原因!

這就是加密哈希函數(shù)的基礎(chǔ)知識,下面我們來談?wù)勅绾斡眠@些哈希函數(shù)來構(gòu)建區(qū)塊鏈。

區(qū)塊鏈內(nèi)的傳遞哈希函數(shù)

上面關(guān)于哈希函數(shù)的部分實際上只是對如何散列單個信息(例如書籍或密碼中的單詞)的詳細介紹。

如果你想要散列數(shù)據(jù)集合(如一堆文檔或一系列交易),該怎么辦?

讓我們從「連續(xù)散列的線性序列」講起。首先從一些數(shù)據(jù)A開始,然后將其散列以獲得A#。

現(xiàn)在你想“混入”數(shù)據(jù)B。所以只需要添加B(A#+ B)并獲取整個數(shù)據(jù)的哈希值?,F(xiàn)在你有了一個新的哈希(B#),它包含一些關(guān)于A(來自你使用的哈希A#)和B的信息。

你得到的是一個改變A或B的任何東西都會產(chǎn)生不同的最終哈希值的哈希函數(shù)。這是一個傳遞哈希函數(shù)。

當人們談起區(qū)塊鏈,其中一個被大量提到的詞是“信任最小化”。

一般而言,哈希,特別是哈希指針,是區(qū)塊鏈信任最小化屬性的核心組件。哈希指針只是指向某些其他數(shù)據(jù)結(jié)構(gòu)(如前一個區(qū)塊)的哈希。

這是一個了不起的組件,因為它很容易看出是否有人篡改數(shù)據(jù)。

假設(shè)我們有一個包含100個區(qū)塊的區(qū)塊鏈,而第十個區(qū)塊包含整個《戰(zhàn)爭與和平》文本的哈希,我在文本中更改了一個字母,它將改變該區(qū)塊和所有后續(xù)區(qū)塊中的哈希指針。

哈希指針確保分類帳的完整性(即不被修改)。區(qū)塊鏈被稱為三重登帳(triple entry accounting)的原因是哈希指針這種數(shù)據(jù)結(jié)構(gòu)難以被篡改。

例如,如果有兩個人在一個項目上進行協(xié)作,而一個人試圖回去修改某些東西以便他們能賺更多的錢,那么他們的合作伙伴就會立即獲悉他們正在作弊——他們最終得到的哈希是不同的。

Merkle樹

現(xiàn)在,我們想要散列的不僅僅是一個線性序列,而是一系列集合,比如比特幣在其區(qū)塊序列中的交易集合。那么就需要構(gòu)建的是遍歷每組數(shù)據(jù)的規(guī)則,通過再次減少問題以加密連續(xù)的一系列事物(A#,B#等)。

這里就引出了Merkle樹。Merkle樹允許你對數(shù)據(jù)區(qū)塊進行分組并將它們一起散列到一個樹枝結(jié)構(gòu)中。

與區(qū)塊鏈一樣,只要我們知道樹的“根”處的哈希點,我們就可以知道樹中任何數(shù)據(jù)是否被篡改過。

如果一個交易中的一個比特被更改,那么它會更改后續(xù)的每個哈希并顯示篡改。

使用Merkle樹優(yōu)于僅使用記錄所有交易的摘要,因為它能更快更簡單地檢測某特殊交易是否包含在所有交易的集合中。

區(qū)塊鏈

在上文中,我們提到了哈希函數(shù)以及它的三個屬性:抗碰撞性,確定隱匿性和難題友好性。那么接下來,我們就將加密哈希函數(shù)連接在一起以創(chuàng)建傳遞加密哈希函數(shù)。

首先,當我們將一個Merkle樹添加到傳遞加密哈希函數(shù)時,會得到一個區(qū)塊鏈。每個區(qū)塊包含一組“merkleized”交易,并且這些區(qū)塊被鏈接在一起。

區(qū)塊鏈工作量證明

中本聰?shù)膫ゴ笤谟谒贫艘粋€新規(guī)則:你必須先解決一個非常困難的數(shù)學問題,才能將一組新交易(即一個區(qū)塊)添加到現(xiàn)有鏈中。

這就是“礦工”的工作。他們需要解決一個非常困難的數(shù)學問題,在解決問題后他們會收到相應的獎勵。這也被稱作“工作量證明”,它是解決問題所消耗計算量的證明。

“區(qū)塊鏈工作量證明”的發(fā)明是中本聰?shù)淖畲髣?chuàng)新。

由于使用工作量證明,像比特幣這樣的區(qū)塊鏈變得更有價值,礦工憑此賺到更多的錢,同時它激勵更多的礦工進入網(wǎng)絡(luò),當然也會增加數(shù)學問題的難度。

任何人都可以在他們的計算機上下載區(qū)塊鏈,并且連續(xù)驗證每個區(qū)塊是否可以正確地散列。

他們還可以通過讀取每個區(qū)塊的難度并驗證礦工的解決方案來計算生成此數(shù)據(jù)所需的計算量。

具有最多累積工作量證明的區(qū)塊鏈(即最困難和最昂貴的)被認為是真正的區(qū)塊鏈。

如果你擁有包含整個當前比特幣區(qū)塊鏈的磁盤,你可以快速地估算出用于構(gòu)建這些數(shù)據(jù)所消耗的巨大能量。

這樣做的好處是如果沒有達到相應的算力,沒有人可以“偽造”比特幣區(qū)塊鏈

至2018年中,如果從頭開始構(gòu)建比特幣區(qū)塊鏈,可能需要花費數(shù)十億美元購買計算機和電力。

數(shù)字簽名(即私鑰/公鑰加密)

數(shù)字簽名是架構(gòu)區(qū)塊鏈的最后基元??尚械臄?shù)字簽名方案與手寫簽名大致相同,它們都具有兩個核心屬性。

首先是可驗證性。如果我使用私鑰簽署交易,則其他人必須能夠使用我的公鑰對其進行驗證。類似的,只有你自己可以簽署自己的簽名,但任何人都可以看到它是你簽署的。

私鑰和公鑰匹配為密鑰對。私鑰不與其他人共享,它用于簽署并證明交易。

公鑰則可以提供給每個人,他們用公鑰驗證你的簽名,而無需他們自己簽名。

你的公鑰是私鑰的哈希值。而你的地址(例如接收比特幣的地址)是你的公鑰的哈希值。

如下所示:

私鑰==散列==>公鑰==散列==>地址

由于加密哈希函數(shù)的隱匿性,你可以毫無顧慮地發(fā)布自己的地址,其他人可以向你發(fā)送比特幣、以太幣等加密貨幣,卻無法反向找出你的私鑰。

第二個屬性是不可偽造性。你的簽名與特定文檔相關(guān)聯(lián)。自然地,你不會希望其他人能夠從一個文件中“剪掉”你的簽名再將其粘貼到另一個文件的底部。

比特幣使用橢圓曲線數(shù)字簽名算法(Elliptic Curve Digital Signature Algorithm)來實現(xiàn)這兩個屬性。其他區(qū)塊鏈和數(shù)字加密貨幣使用不同的數(shù)字簽名方案,但都具有可驗證性和不可偽造性這兩個屬性。

區(qū)塊鏈類似于書籍

我認為將區(qū)塊鏈視作書籍可能是研究它的最簡單的方法。一本書是一系列頁面:

數(shù)據(jù)——每頁上的文字。

元數(shù)據(jù)——元數(shù)據(jù)是信息本身。在每一頁的頂部或底部,有一些關(guān)于書籍的信息,如書名,章節(jié)標題和頁碼。

區(qū)塊鏈是一系列的區(qū)塊:

數(shù)據(jù)——區(qū)塊的內(nèi)容

元數(shù)據(jù)——對前一個區(qū)塊的引用和該區(qū)塊中包含的數(shù)據(jù)的哈希。

即便你撕下書中所有頁面,你仍可以重新按照頁碼組合它們。

同樣,在區(qū)塊鏈中,每個區(qū)塊都引用前一個區(qū)塊的哈希值,從而可以驗證交易發(fā)生的順序。

哈希實際上比頁碼更強大,因為哈希包含該頁面的所有數(shù)據(jù)。而撕下一本書中的某一頁并涂改其他相關(guān)頁碼是有可能騙過你的。

然而在區(qū)塊鏈“書”中執(zhí)行相同的操作是及其困難的,因為更改頁面上的任何一個字母都會改變哈希值。

區(qū)塊鏈技術(shù)的演變

現(xiàn)在,讓我們組合這些基元,看看它們?nèi)绾螛?gòu)建簡單的區(qū)塊鏈。

以下這些類型的區(qū)塊鏈是比特幣和以太坊等數(shù)字加密貨幣的基礎(chǔ)。了解它們的工作原理對理解其他所有區(qū)塊鏈和數(shù)字加密貨幣都有幫助。

Goofy Coin

GoofyCoin是我們可以設(shè)想的最簡單的區(qū)塊鏈。

Goofy可以隨時創(chuàng)造新的虛擬貨幣,并且這些新創(chuàng)造的虛擬貨幣歸他所有。每一個幣有Goofy用私鑰簽名的唯一ID,這樣所有人都可以使用Goofy的公鑰來確認幣是有效的GoofyCoin。

擁有Goofycoin的人可以通過加密操作將其轉(zhuǎn)移給其他人。如果Goofy想要將一枚虛擬貨幣轉(zhuǎn)移給Alice,他會創(chuàng)建一個交易,說“將這筆錢(this coin)交給Alice”。

因為Goofycoin只能通過加密操作發(fā)送,所以“this”是指向所討論虛擬貨幣的哈希指針。Goofy用他的私鑰簽署此交易,使其成為有效的交易。任何人都可以通過確認Goofy的簽名來檢查它是否為有效的交易。

但是,事實上GoofyCoin存在安全問題,Alice可以用她剛獲得的虛擬貨幣進行一項交易,比如向Bob支付三明治的費用。

但是,如果Alice又使用它來購買Chuck的奶昔呢?

Bob和Chuck都會認為他們現(xiàn)在擁有一枚GoofyCoin。它們看起來都像是有效的交易,因為Chuck和Bob可以看到Alice的簽名并在區(qū)塊鏈上追蹤它,并發(fā)現(xiàn)它是有效貨幣。

這種情況被稱為雙重支付攻擊。我們當然不能容忍用同一枚虛擬貨幣既買到三明治又買到奶昔。

雙重支付攻擊是功能性加密貨幣需要防范的主要問題之一。

為了解決雙重支付問題,我們需要創(chuàng)建一個名為ScroogeCoin的新虛擬貨幣。

ScroogeCoin

ScroogeCoin類似于GoofyCoin,但有做出了一些不同的改變。

與GoofyCoin不同的是,Scrooge發(fā)布了一個包含所有交易歷史的區(qū)塊鏈。

Scrooge會簽署區(qū)塊鏈中每個區(qū)塊的哈希指針。那么任何人都可以通過檢查區(qū)塊上的Scrooge簽名來驗證交易是否有效。

因為Scrooge查看過每筆交易,所以他可以確保沒有人雙重支付。如果Alic

大云網(wǎng)官方微信售電那點事兒

責任編輯:售電衡衡

免責聲明:本文僅代表作者個人觀點,與本站無關(guān)。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實,對本文以及其中全部或者部分內(nèi)容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,并請自行核實相關(guān)內(nèi)容。
我要收藏
個贊
?