成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

區(qū)塊鏈
由于使用了區(qū)塊鏈技術(shù),比特幣成為了第一個(gè)解決雙重支付問題的數(shù)字貨幣,它不再需要第三方信任機(jī)構(gòu),并且成為其他許多應(yīng)用創(chuàng)新的技術(shù)基礎(chǔ)。

2008年,一個(gè)叫做中本聰(Satoshi Nakamoto)的人(或團(tuán)體)定義了第一個(gè)區(qū)塊鏈。

2009年1月,中本聰將區(qū)塊鏈作為比特幣的核心組成部分推出,它是網(wǎng)絡(luò)上所有交易的公共分類帳。

由于使用了區(qū)塊鏈技術(shù),比特幣成為了第一個(gè)解決雙重支付問題的數(shù)字貨幣,它不再需要第三方信任機(jī)構(gòu),并且成為其他許多應(yīng)用創(chuàng)新的技術(shù)基礎(chǔ)。

我相信在一百年后,區(qū)塊鏈將像今天的電力一樣普遍。它會(huì)變得像經(jīng)濟(jì)體的基本組成部分一樣,為每個(gè)人服務(wù)。也會(huì)像水一樣平常,以至于我們往往會(huì)忽視它的存在。

可以預(yù)料的是,在接下來的幾十年中,區(qū)塊鏈應(yīng)用和組織將呈爆炸式增長,就像幾十年前的互聯(lián)網(wǎng)或上世紀(jì)初的電氣化一樣。

如果上述一切成真,那么我們很有必要對區(qū)塊鏈有一個(gè)基本了解,特別要知道它們的重要性以及它們的工作機(jī)制。

區(qū)塊鏈為什么重要?

“許多名人發(fā)表演講時(shí)都會(huì)提到一句名言,盡管這句話說的并不怎么正確:我們應(yīng)該培養(yǎng)思考行為的習(xí)慣。但文明的進(jìn)步卻是由越來越多無需思索卻得以運(yùn)行的重要操作推動(dòng)。”

 ——Alfred North Whitehead(艾爾弗雷德·諾思·懷特海,現(xiàn)代著名數(shù)學(xué)家、哲學(xué)家和教育理論家

以區(qū)塊鏈中一方將比特幣發(fā)送給另一方的交易為例,該交易中諸如比特幣來源、目的地和日期/時(shí)間戳等細(xì)節(jié)會(huì)被添加到區(qū)塊中。

由于密碼學(xué)的使用,區(qū)塊鏈極大地提高了社會(huì)發(fā)展的可擴(kuò)展性(social scalability),個(gè)體之間越來越多的合作,正成為文明的必要特征。

在過去的歷史中,人類通常只以部落為單位,在小圈子里與有血緣關(guān)系的人交易,因?yàn)楫?dāng)時(shí)人類無法信任部落之外的個(gè)體。

在過去幾千年中,各種各樣的技術(shù)創(chuàng)新促使人類在更大的群體中進(jìn)行合作,社交可擴(kuò)展性被進(jìn)一步提高。

現(xiàn)代法律制度的完善減少了暴力,盜竊和欺詐的發(fā)生幾率,使沒有預(yù)先存在關(guān)系(pre-existing relationship)的群體或個(gè)體以互動(dòng)。

互聯(lián)網(wǎng)則通過評級(jí)系統(tǒng)(rating system),促進(jìn)了預(yù)先存在很少或根本沒有社會(huì)關(guān)系的個(gè)體之間的交易。

區(qū)塊鏈有潛力將社交可擴(kuò)展性提高到以前技術(shù)所沒有達(dá)到的水平。這是我們第一次擁有一種不需要依賴可信的第三方,卻能讓一個(gè)互聯(lián)網(wǎng)用戶安全地將數(shù)字資產(chǎn)轉(zhuǎn)移到另一個(gè)互聯(lián)網(wǎng)用戶的方式。如此偉大的交易創(chuàng)舉是如何夸大也不為過的。

除此之外,數(shù)字合約、數(shù)字密鑰,以及實(shí)物資產(chǎn)的數(shù)字所有權(quán),包括汽車、房屋、股票、債券,以及數(shù)字貨幣也值得深思。

什么是區(qū)塊鏈技術(shù)

我們先來給區(qū)塊鏈技術(shù)下個(gè)定義:

區(qū)塊鏈?zhǔn)且环N分類帳,它使用加密技術(shù)和激勵(lì)措施并以防篡改的方式記錄交易。這使匿名雙方進(jìn)行信任最小化(trust-minimized)交易,而不需要可信中介。

現(xiàn)在,讓我們整合這些零散的知識(shí),以便你在文章的最后對區(qū)塊鏈技術(shù)有一個(gè)完整認(rèn)識(shí)。

基元

在我們深入研究區(qū)塊鏈之前,需要建立一些基元。基元類似于建筑材料。如果你想建造一間房子,你需要木料、螺絲、電鉆和鋸子。在你開始建造之前,最好對每個(gè)工具都足夠了解。區(qū)塊鏈也類似。

區(qū)塊鏈的基本構(gòu)成要素就是加密基元。

而密碼學(xué)是研究在第三方(即敵人)的存在下安全通信的技術(shù)。

在歷史上,軍方已經(jīng)進(jìn)行了大量的密碼學(xué)研究,以確保他們能夠安全地進(jìn)行通信,而不讓敵人閱讀他們的電報(bào)或無線電信息。

現(xiàn)代密碼學(xué)被應(yīng)用于網(wǎng)址、信用卡芯片和計(jì)算機(jī)密碼之中。它用來阻止第三方(黑客,小偷等)竊取敏感數(shù)據(jù),如信用卡信息。

第一個(gè)基本構(gòu)成要素是哈希函數(shù)。

哈希函數(shù)

哈希函數(shù)是一種允許你對數(shù)據(jù)進(jìn)行加密的數(shù)學(xué)函數(shù)。

哈希函數(shù)有三個(gè)屬性:

它的輸入可以是任意大小。

例如,我可以使用“我喜歡冰淇淋”這個(gè)短語作為輸入,或者我也可以使用《戰(zhàn)爭與和平》的全部文本,兩者都行。

不論使用任何大小的輸入,哈希函數(shù)的特定散列算法決定了其固定大小的輸出。為了讓算法過于簡單,我們將使用256位輸出(它是比特幣所使用的)。

不論我使用“我喜歡冰淇淋”這一短語作為輸入,還是使用《戰(zhàn)爭與和平》的全文作為輸入,兩者都會(huì)產(chǎn)生相同大小的輸出。

使用SHA 256算法,短語“我喜歡冰淇淋”(沒有引號(hào))創(chuàng)建輸出:

138F4504A873C01D0864343FAD3027F03CA9BEA2F0109005FA4FC8C7DCC12634

從古騰堡計(jì)劃(project Gutenberg)復(fù)制的整本《戰(zhàn)爭與和平》(全587,287詞)創(chuàng)建輸出:

57027F5B3877ABBE43ACB101D59E963BC2CC0E86A6EBCCC34DFD035BBF83B096

即使輸入的文本長度相差146,821倍,你也可以獲得相同大小的輸出。這一點(diǎn)很酷也很有用。

函數(shù)是可高效計(jì)算的,對于任何給定的輸入字符串,你可以在合理的時(shí)間內(nèi)獲得輸出。

即使我使用《戰(zhàn)爭與和平》的整個(gè)文本作為輸入,它仍然可以在較短時(shí)間內(nèi)將其轉(zhuǎn)換為輸出。

以上是一般哈希函數(shù)的屬性。一般哈希函數(shù)允許你將大量數(shù)據(jù)映射到一個(gè)小空間,這有助于存儲(chǔ)和處理不同類型的數(shù)據(jù)。

不過,我們應(yīng)把重點(diǎn)放在加密哈希函數(shù)上,因?yàn)樗菂^(qū)塊鏈中使用的函數(shù)。

加密哈希函數(shù)有三個(gè)附加屬性:

抗碰撞性(Collision Resistance)

確定隱匿性(Deterministic Hiding)

難題友好性(Puzzle Friendliness)

加密哈希函數(shù)

抗碰撞性

這里的碰撞是指兩個(gè)不同的輸入產(chǎn)生相同的輸出。雖然輸出大小相同,但輸出本身不會(huì)與其他輸出相同。“我喜歡冰淇淋”與《戰(zhàn)爭與和平》的整個(gè)文本產(chǎn)生相同大小的輸出,但字符不同。

如果它們產(chǎn)生完全相同的輸出,你解密了我發(fā)送給你的加密文本之后,并不會(huì)知道我是想告訴你“我喜歡冰淇淋”還是你應(yīng)該閱讀《戰(zhàn)爭與和平》。

值得注意的是,兩個(gè)“鄰近”輸入不會(huì)產(chǎn)生鄰近的輸出。《戰(zhàn)爭與和平》的哈希與改變了一個(gè)字符的《戰(zhàn)爭與和平》的哈希完全不同。

使用SHA 256,整本《戰(zhàn)爭與和平》生成哈希值:

57027F5B3877ABBE43ACB101D59E963BC2CC0E86A6EBCCC34DFD035BBF83B096

如果我刪除最后一個(gè)句點(diǎn),但保留其他所有內(nèi)容,則會(huì)生成哈希值:

E2E2E4FFD582E20474F0310C2132EAE5F2D766C6A253C1BC4AF57861095B30FA

這非常類似于混沌系統(tǒng)中的兩個(gè)“鄰近”起點(diǎn)非常迅速地導(dǎo)致兩個(gè)完全不同的未來軌跡。哈希函數(shù)的這種“混亂不規(guī)則性”會(huì)產(chǎn)生抗碰撞性。它的輸出幾乎隨機(jī)(理論上并不隨機(jī)),因此不太可能發(fā)生碰撞。我們還能壓縮數(shù)據(jù),因?yàn)樗梢詫ⅰ笩o窮大」映射到有限空間。

這一特性在匯款時(shí)尤其重要。錢包的公鑰是使用加密哈希函數(shù)從私鑰生成的。誰都不希望其他人能夠通過逆向工程獲取公鑰來計(jì)算你的私鑰(因?yàn)槟愕腻X可能被偷)。

如果沒有人能找到碰撞的情況,則可以認(rèn)為哈希函數(shù)是抗碰撞的。從理論上講,我們知道碰撞的存在是因?yàn)檩斎氲臄?shù)量是無限的,但輸出的數(shù)量是有限的——只有有限種方法可以排列64個(gè)字符。

但在實(shí)踐中,加密哈希函數(shù)SHA 256是抗碰撞的,因?yàn)闆]有人發(fā)現(xiàn)過碰撞,并且它發(fā)生的幾率是天文數(shù)字。如果人類制造的每臺(tái)計(jì)算機(jī)自宇宙開始以來一直試圖發(fā)現(xiàn)碰撞,那么它發(fā)生的可能性低于地球在接下來的兩秒鐘內(nèi)被巨大的流星摧毀的可能性。

所以,碰撞是可能發(fā)生的,但我們首先還有很多其他更重要的問題要解決。

確定隱匿性

哈希值看起來是隨機(jī)的,但實(shí)際上是確定的。因此,它們的輸出是可重現(xiàn)的,只要你使用相同的輸入,就可以持續(xù)獲得相同的輸出。這意味著,知道輸入的兩方可以通過向第三方顯示他們的哈希來驗(yàn)證對方是否知道輸入。

加密哈希函數(shù)的第二個(gè)屬性是隱匿性。隱匿性意味著即便給出輸出,也沒有可行的方法來計(jì)算輸入。

也就是說,第三方觀察者無法知道

138F4504A873C01D0864343FAD3027F03CA9BEA2F0109005FA4FC8C7DCC12634

的意思是“我喜歡冰淇淋。”

但是,如果我知道輸入是“我喜歡冰淇淋”,那么通過檢查你的哈希,我可以輕松驗(yàn)證你是否知道輸入。

然而,如果其他人看到哈希,他們就無法使用它來計(jì)算輸入。這允許知道輸入的人使用散列后的輸出在公共頻道中安全地進(jìn)行通信,而不必?fù)?dān)心第三方觀察者獲取信息。

難題友好性

第三個(gè)屬性是加密哈希函數(shù)的難題友好性。這意味著如果有人想要生成一個(gè)與“我喜歡冰淇淋”相同的輸出的哈希,那么找到一個(gè)完全符合這一輸出的另一個(gè)值是非常困難的。

生成哈希的算法是嘗試每個(gè)可能的字符串,按長度排序,然后按字母順序排序,直到得到哈希為相同值的字符串。這等于是大海撈針,所以我們得到的概率表明,小行星消滅地球上的所有生命是一個(gè)更緊迫的問題。

另一方面是加密哈希函數(shù)難以逆轉(zhuǎn)(reverse)。相較于數(shù)據(jù)結(jié)構(gòu)或壓縮算法中使用的哈希,這是加密哈希的主要特點(diǎn)。

這也是區(qū)塊鏈軍備競賽的一部分——黑客在逆向推演哈希函數(shù)方面做得越來越好,因此密碼學(xué)家總是得想出更強(qiáng)大的哈希函數(shù)。

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

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

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

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

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

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

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

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

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

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

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

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

這是一個(gè)了不起的組件,因?yàn)樗苋菀卓闯鍪欠裼腥舜鄹臄?shù)據(jù)。

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

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

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

Merkle樹

 

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

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

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

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

使用Merkle樹優(yōu)于僅使用記錄所有交易的摘要,因?yàn)樗芨旄唵蔚貦z測某特殊交易是否包含在所有交易的集合中。

區(qū)塊鏈

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

公鑰則可以提供給每個(gè)人,他們用公鑰驗(yàn)證你的簽名,而無需他們自己簽名。

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

如下所示:

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

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

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

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

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

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

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

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

區(qū)塊鏈?zhǔn)且幌盗械膮^(qū)塊:

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

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

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

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

哈希實(shí)際上比頁碼更強(qiáng)大,因?yàn)楣0擁撁娴乃袛?shù)據(jù)。而撕下一本書中的某一頁并涂改其他相關(guān)頁碼是有可能騙過你的。

然而在區(qū)塊鏈“書”中執(zhí)行相同的操作是及其困難的,因?yàn)楦捻撁嫔系娜魏我粋€(gè)字母都會(huì)改變哈希值。

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

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

以下這些類型的區(qū)塊鏈?zhǔn)潜忍貛藕鸵蕴坏葦?shù)字加密貨幣的基礎(chǔ)。了解它們的工作原理對理解其他所有區(qū)塊鏈和數(shù)字加密貨幣都有幫助。

Goofy Coin

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

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

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

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

但是,事實(shí)上GoofyCoin存在安全問題,Alice可以用她剛獲得的虛擬貨幣進(jìn)行一項(xiàng)交易,比如向Bob支付三明治的費(fèi)用。

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

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

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

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

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

ScroogeCoin

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

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

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

因?yàn)镾crooge查看過每筆交易,所以他可以確保沒有人雙重支付。如果Alice使用虛擬貨幣從Bob那里購買三明治,Scrooge能通過拒絕驗(yàn)證該交易來防止Alice使用該貨幣從Chuck處購買奶昔。

因?yàn)樗袇^(qū)塊都由哈希指針連接到區(qū)塊鏈中,所以Alice、Bob、Chuck和其他任何使用ScroogeCoin的人都可以監(jiān)視Scrooge是否回去更改過數(shù)據(jù)。由于Scrooge是區(qū)塊鏈的控制者,他們無法阻止Scrooge更改數(shù)據(jù),但他們至少是知情的。

假設(shè)一年前,Alice買了Bob的三明治并支付了1個(gè)ScroogeCoin,Scrooge將交易記錄改變成Alice支付了10個(gè)ScroogeCoin,那么后續(xù)每個(gè)區(qū)塊的哈希指針都會(huì)發(fā)生變化。人們很容易知道Scrooge已經(jīng)篡改了數(shù)據(jù)。這就是我們之前提到的難題友好屬性。

這樣做能提升人們對區(qū)塊鏈中數(shù)據(jù)的信任。

ScroogeCoin的工作原理是讓每個(gè)人知道哪些貨幣有效。只要Scrooge監(jiān)控所有交易并拒絕雙重支付,雙重支付問題就不存在了。同時(shí)區(qū)塊鏈上的所有參與者也可以確認(rèn)Scrooge的驗(yàn)證。

ScroogeCoin的潛在問題在于Scrooge本人。如果Scrooge愿意,他可以通過幾種方法讓自己暴富。比如要求參與交易的每個(gè)人為交易支付大筆小費(fèi),或者他可以自己創(chuàng)建一堆ScroogeCoin,或者他可能僅僅是因?yàn)楦械綗o聊而停止驗(yàn)證交易。

簡而言之,問題出在中心化。盡管Scrooge很開心,但用戶可能對系統(tǒng)并不滿意。這個(gè)系統(tǒng)與我們現(xiàn)在使用的中心化系統(tǒng)沒有什么不同。

Scrooge:“別擔(dān)心,我很誠實(shí)的。”

你可以將“Scrooge”替換為其他許多銀行的名字,Scrooge與現(xiàn)有銀行系統(tǒng)的運(yùn)作方式?jīng)]有什么不同。在大多數(shù)情況下,我們相信銀行或其他金融中介不會(huì)篡改交易,因?yàn)檫@些機(jī)構(gòu)受到國家監(jiān)管并與同業(yè)競爭。由于現(xiàn)存銀行系統(tǒng)運(yùn)作良好,許多人特別是發(fā)達(dá)國家的人不能看到區(qū)塊鏈的價(jià)值所在。

但是,現(xiàn)存銀行系統(tǒng)并不是百分之百可靠。當(dāng)一個(gè)國家制造過多的鈔票時(shí)會(huì)出現(xiàn)惡性通貨膨脹。比如,20世紀(jì)30年代的魏瑪共和國,2000年初的阿根廷和津巴布韋,以及2010年的委內(nèi)瑞拉。

以上這些情況相當(dāng)于Scrooge為自己制作大量的Scrooge貨幣。

區(qū)塊鏈如何實(shí)現(xiàn)去中心化:公共區(qū)塊鏈與私有區(qū)塊鏈

區(qū)塊鏈從中心化(例如ScroogeCoin)轉(zhuǎn)向去中心化主要有兩種方式。

  •     私有區(qū)塊鏈(即Permissioned blockchains)
  •     公共區(qū)塊鏈(即Permissionless blockchain)

公共區(qū)塊鏈和私有區(qū)塊鏈之間的區(qū)別,在于允許加入網(wǎng)絡(luò)的身份限制。

公共區(qū)塊鏈網(wǎng)絡(luò)是完全開放的,任何人都可以加入。比特幣和以太坊就是典型的公有鏈。

私有區(qū)塊鏈網(wǎng)絡(luò)則需要邀請。它對允許參與網(wǎng)絡(luò)或交易的身份設(shè)置限制。MultiChain,R3的Corda,Hyperledger Fabric和Chain Core是典型的私有區(qū)塊鏈。

身份限制如此重要是因?yàn)樗绊懥巳ブ行幕膶?shí)現(xiàn)程度。在ScroogeCoin的示例中,它遇到了同樣的中心化問題,即單個(gè)的受信任第三方控制整個(gè)系統(tǒng)。

公共區(qū)塊鏈由加密經(jīng)濟(jì)學(xué)和加密貨幣挖掘機(jī)制保證運(yùn)行。(即,使用經(jīng)濟(jì)激勵(lì)、博弈論、密碼學(xué)和計(jì)算機(jī)科學(xué)等技術(shù)來保證分類賬的一致性)。

私有區(qū)塊鏈由其共識(shí)過程預(yù)先選定的一組參與者(例如,個(gè)人、公司和聯(lián)盟成員)控制。例如,你可以擁有15個(gè)庫,并且每個(gè)庫都有權(quán)寫入分類帳,每個(gè)庫必須對每個(gè)區(qū)塊進(jìn)行簽名才能使該區(qū)塊有效。

它比僅使用單一方驗(yàn)證所有交易的區(qū)塊鏈更加去中心化。

要點(diǎn)概括

文章開頭我們討論了區(qū)塊鏈為何如此重要:它允許大量沒有預(yù)先存在社會(huì)關(guān)系的個(gè)體進(jìn)行交易。

接著我們探索了區(qū)塊鏈的基元即加密哈希函數(shù),它具有三個(gè)重要屬性:

  •     抗碰撞性
  •     確定隱匿性
  •     難題友好性

然后,我們介紹了哈希函數(shù)如何串聯(lián)成一個(gè)傳遞哈希函數(shù)。當(dāng)我們將Merkle樹添加到傳遞加密哈希函數(shù)時(shí),我們得到一個(gè)區(qū)塊鏈。每個(gè)區(qū)塊包含一組“merkleized”交易,并且塊被鏈接在一起。

緊接著我們講解了比特幣使用一種稱為工作量證明的技術(shù)來確保區(qū)塊鏈的安全性。

下一步,我們設(shè)計(jì)了Goofycoin和Scroogecoin,由此看到區(qū)塊鏈技術(shù)如何進(jìn)化并完美解決雙重支付問題。

最后,我們談到了私有鏈與公有鏈在實(shí)現(xiàn)去中心化機(jī)制上的區(qū)別。

區(qū)塊鏈仍然是一項(xiàng)非常年輕的技術(shù),在2009年才問世,我們可以預(yù)料到在未來幾十年內(nèi),大量的區(qū)塊鏈應(yīng)用和網(wǎng)絡(luò)會(huì)呈爆炸式增長。

目前已有數(shù)千個(gè)不同的項(xiàng)目致力于提升區(qū)塊鏈技術(shù)并研究其在各領(lǐng)域的應(yīng)用。相信讀完這篇文章,你也已經(jīng)對區(qū)塊鏈技術(shù)背后的基本要素以及區(qū)塊鏈的工作原理有了一個(gè)整體的認(rèn)識(shí)。

最后,我認(rèn)為,下一代區(qū)塊鏈技術(shù)的最大創(chuàng)新尚未出現(xiàn),但現(xiàn)在就是學(xué)習(xí)和投入?yún)^(qū)塊鏈技術(shù)最好的時(shí)機(jī)。

 

責(zé)任編輯:龐桂玉 來源: 今日頭條
相關(guān)推薦

2019-11-22 11:10:26

區(qū)塊鏈技術(shù)

2020-01-07 13:09:39

區(qū)塊鏈比特幣技術(shù)

2022-03-29 09:18:55

區(qū)塊鏈

2018-03-12 14:37:50

區(qū)塊鏈比特幣架構(gòu)

2020-05-21 19:46:19

區(qū)塊鏈數(shù)字貨幣比特幣

2020-10-13 18:22:58

DevOps工具開發(fā)

2018-03-23 11:23:14

2018-04-20 16:43:23

2019-11-04 11:30:51

區(qū)塊鏈技術(shù)智能

2025-03-13 06:22:59

2020-03-17 07:41:50

ApacheKafka系統(tǒng)

2022-06-17 08:05:28

Grafana監(jiān)控儀表盤系統(tǒng)

2021-11-02 09:20:23

區(qū)塊鏈比特幣架構(gòu)

2019-08-19 09:10:14

人工智能深度學(xué)習(xí)技術(shù)

2021-10-19 07:27:08

HTTP代理網(wǎng)絡(luò)

2020-09-14 11:30:26

HTTP3運(yùn)維互聯(lián)網(wǎng)

2021-06-18 07:34:12

Kafka中間件微服務(wù)

2024-09-18 08:21:24

JavaScriptTypeScriptprototype

2021-07-15 06:43:11

Bash調(diào)試腳本

2020-11-23 16:23:59

CSS設(shè)計(jì)技術(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 欧美九九九 | 国产精品久久久久久久一区探花 | 天天艹逼网 | 免费观看的av毛片的网站 | 一区二区三区在线看 | 成人a免费 | 欧美片网站免费 | 亚洲劲爆av| 久久久久久亚洲精品 | 香蕉二区 | 亚洲一区二区视频在线观看 | 日韩一区二区三区在线视频 | www.久草.com | 亚洲一区在线日韩在线深爱 | 欧美一二三四成人免费视频 | 亚洲最大成人综合 | 国产午夜精品一区二区三区 | 国产在线高清 | 国产999精品久久久久久 | 又黄又爽的网站 | 欧美成人精品一区二区男人看 | 精品日韩 | 国产精品久久亚洲7777 | 羞羞午夜 | 中文在线一区二区 | 国产99久久精品一区二区300 | 九九热精品在线视频 | 一级欧美| 91亚洲国产成人久久精品网站 | 国产精品久久亚洲7777 | 日韩精品亚洲专区在线观看 | 日本一区二区高清视频 | 成人精品一区亚洲午夜久久久 | 人人色视频 | 99精品一级欧美片免费播放 | 在线色网 | 国产剧情久久 | 久久精品国产99国产精品 | 99re国产视频 | 国产中文字幕网 | 一区二区三区av |