區塊鏈是比特幣的底層技術,不等同於比特幣。有人說比特幣就是一場泡沫,甚至放話「比特幣是傳銷」。區塊鏈作為繼互聯網後的新一波技術浪潮,本身無罪,況且炒幣只是區塊鏈裏最初級的玩法。讀完這篇文章,我們就能弄懂大部分區塊鏈基礎知識,從而離保守和狹隘遠一點。

區塊鏈是一個去中心化的賬本

我們首先需要弄清「去中心化」和「分散式賬本」兩個概念。去中心化相對「中心化」而言。借用之前寫的《用PG Two買夾克和熊本熊借錢舉例,圖解分散式賬本》的插圖,我們來看看中心化和去中心化體系的區別。

網購夾克的整個流程依託於支付寶展開,因此,這個買賣過程是中心化的。無論是PG TWO還是賣家君,在這點上只能完全信任支付寶和它背後的馬雲。往大了說,中心化系統由資金雄厚和技術實力強大的機構、企業做信任背書。

中心化體系具備管理高效的優勢,但它的不足也比較明顯。仍以支付寶為例,全部交易記錄和賬本都存儲在支付寶伺服器上,假設某天所有相關的伺服器不幸被壞蛋搗毀,那麼PG TWO付的款(或賣家君還沒有到手的夾克錢),還有其他買家、賣家的資金,甚至你我存在餘額寶的錢,都會消失在這個互聯網世界裡,連灰都不剩。

該找誰說理去?就算我氣洶洶地找到支付寶對質:「我還有5萬在餘額寶裡面!」 可中心賬本已經被徹底破壞,誰又能證明我的話為真呢?若得不到有效證明,最終我也只能忍著淚跟這沓錢say goodbye了。

這時,去中心化系統的優勢就凸顯出來了。

設想一下,如果全網路存在許多的記賬節點,能夠共同記錄支付寶上每一筆交易、轉賬和提現等,也就是說支付寶所有賬本在全世界有很多備份;就算伺服器被黑客攻擊,相同的賬本副本也都好好地保存在其他節點上。在區塊鏈的世界裡,不需要大企業做信用背書。

區塊鏈是一個分散式賬本

因此,我們也可以說:作為分散式賬本,區塊鏈是創造信任的工具。從字面上理解,「分散式」是指分佈在不同的地方、各節點分開幹活。我們先把問題簡單化,用借錢舉個例子,講講分散式賬本的工作原理。

1 比卡丘借給熊本熊10塊錢。

2 比卡丘和熊本熊分別在賬本上記下:「比卡丘 → 熊本熊:10円」

3 比卡丘把這條交易信息廣播給其他節點;

4 區塊鏈上其他節點驗證這條交易信息,確認無誤後便記在各自賬本上。

在第2步,如果借錢方熊本熊為了買零食,在自己的賬本上虛報5円呢?想賴賬不容易,因為接下來比卡丘會把 這條「比卡丘 → 熊本熊:10円」 的交易信息廣播給全網節點,接著各節點再去驗證。通過驗證的信息一旦記在區塊鏈上,就很難篡改了,除非——熊本熊有一臺超過全網總算力51%的超級計算機(文末還會提及這個問題)。

那為什麼是比卡丘廣播,而不是熊本熊去廣播?節點協助記賬,是為了防止欠債人耍賴等損害信任的情況出現;一般來講,誰把錢借出去,誰到最後可能遭受財產損失,誰廣播。

到了約定的還款日,如果熊本熊食言說沒有借錢,比卡丘就可以祭出區塊鏈了,拿賬本上的交易信息來對質。

密碼學確保區塊鏈資料庫(幾乎)無法篡改

弄懂了去中心化分散式賬本,我們繼續探究區塊鏈技術中的兩個密碼學概念:哈希函數和非對稱加密。顛覆性的區塊鏈技術當然不止這些,但區塊鏈入門要求我們需要先掌握這兩個概念。

只有先了解哈希函數和非對稱加密,後面我們納入相關定義解釋區塊鏈的運作原理時,大家纔不會一臉蒙圈。

1)哈希函數

哈希也可以寫作hash,哈希函數屬於密碼學範疇,用來驗證交易信息是否被人動過手腳。哈希函數具備以下特徵(如果看不明白可跳過這段):

1 如果明文A對應的哈希值為H(A),那麼,通過A可以算出H(A),而通過H(A)無法逆推出A;

2 如果明文A ≠ 明文B,那麼,H(A) ≠ H(B);

3 如果對明文A做了可以忽略不計的篡改,那麼,計算出的哈希值與原H(A)完全不一樣。

上文中,明文好比我們登錄知乎時輸入的賬號、密碼,它們是可以看懂的一串字元。而哈希值是一個長度固定、由數字和字母組成的字元串。根據以上特徵,下方的例子能幫助你理解:

藉助Hash計算工具,我輸入明文123456,得到相應的哈希值(按SHA256):

8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92

目前,人類還沒有辦法逆推這個亂七八糟的字元串;也就是說,任何人都無法推算出這個哈希值對應明文123456。

接著我在明文框輸入:1234567;雖然只增加了一個7,得到的哈希值卻完全不一樣了:8bb0cf6eb9b17d0f7d22b456f121257dc1254e1f01665370476383ea776df414

建議你親自嘗試,3秒鐘就能明白以上內容:移步 哈希計算工具https://1024tools.com/hash :輸入一串明文(連「我愛你」也可以加密哦),關注第三列SHA256的結果即可;再改動其中一個字元,對比兩次出現的哈希值結果。

2)非對稱加密

這是相對於對稱加密來說的。對稱加密指你有一把密鑰,通過密鑰可以加密一段信息;想要破解這個信息,只有拿到你手中這把密鑰。從始至終加密、解密用的是同一把密鑰,因此稱「對稱加密」。

而在區塊鏈世界裡,每個人都擁有兩把獨一無二的密鑰:公鑰和私鑰。

公鑰:可以簡單理解為銀行卡號,這是可以給別人看的;

私鑰:相當於銀行卡密碼,必須拚死保密,只能自己知道。

再記2條規則:

1 私鑰能生成公鑰和地址(有了地址,對方纔能給你打錢);

2 私鑰加密,公鑰解密(加密、解密不是同一把密鑰,因此稱「非對稱加密」);

3)無法篡改的交易數據

仍然以「比卡丘借給熊本熊10塊錢」為例,我們來看看比卡丘具體是怎樣向熊本熊的地址打錢的。

1 比卡丘對明文 「比卡丘 → 熊本熊:10円」 進行哈希加密,得到一個64位的字元串;

2 比卡丘用自己的私鑰對這個字元串再次加密,獲得另一個字元串,這叫做「數字簽名」;

3 比卡丘把以下交易信息打包發給熊本熊,並廣播給全網記賬節點:此次交易明文、比卡丘的公鑰和數字簽名;

4 熊本熊和其他節點收到這條打包消息;

5 熊本熊和其他節點對明文進行哈希計算,得到哈希值字元串H(A);

6 熊本熊和其他節點用比卡丘的公鑰解密數字簽名,得到字元串H(B);

7 熊本熊和其他節點驗證 H(A)= H(B),交易信息為真;

8 交易完成。

比卡丘的公鑰能夠解開私鑰加密過的數字簽名,證明瞭這個公鑰和私鑰是一對,而且都屬於比卡丘,這條交易信息是比卡丘創建的:也就是說,熊本熊欠的是比卡丘的錢,而不是可達鴨還是其他誰的錢;而字元串 H(A)= H(B),則說明在區塊鏈網路中傳遞時,交易信息未被篡改。

進行下一節前,我們總結一下,在公開、複雜的區塊鏈網路中,哈希函數和非對稱加密:

1 確保了交易記錄沒有被篡改

2 確保了交易記錄由正確的人發起

區塊鏈上的區塊

區塊鏈是由挖礦產生的區塊按照時間順序連接起來的,本身是一個可以不斷增長的賬本資料庫。具體挖礦是什麼,可以參考之前寫的《比特幣挖礦是什麼?礦工是怎樣挖到比特幣的?》,工作原理上可通用,都是通過計算能力挖出區塊。

由於系統的初始設定,不同區塊鏈產生區塊的速度不一樣。比如比特幣區塊鏈大概每10分鐘挖出一個區塊,而以太坊區塊鏈的出塊時間約14秒。

每個區塊包含這段時間內產生的所有交易記錄,如一個新挖出的比特幣區塊就包含了前10分鐘內的交易信息。除此之外,還包含時間戳和前一個區塊的哈希值,等等(關於區塊的組成,我們在後續文章再詳細瞭解,這裡先把握基礎知識)。

這是很聰明的設計:每誕生一個新的區塊,就會被蓋上相應的時間戳,新產生的區塊按照區塊挖出的時間順序連接到鏈條上去。這樣,區塊鏈無限延長,賬本資料庫也能無限擴大、容納無窮盡的交易信息。

更令人拍案叫絕的是,新區塊裏的每一筆交易數據,都由相應的交易發起方進行數字簽名,鏈上所有人都可以用交易發起方的公鑰(上文說過,公鑰是公開的)驗證該數字簽名的真實性。

此外,之前挖出的區塊裏的交易數據將永久記錄在區塊鏈上,幾乎無法篡改。一個區塊內含眾多交易信息,然而根據哈希函數的特徵,就算你只對其中一條交易數據移動一個小數點,生成的哈希值都會完全不一樣,整個區塊及其包含的所有交易信息都會變成無效數據。

另一方面,篡改數據難於上青天,成本極高。有意者必須足夠財大氣粗,並且擁有至少全網51%的算力。而要達到這樣的計算能力,知乎李佔亮同學表示:礦機成本+電費+其他,成本約5.5億RMB。

綜上, 在這樣一個充滿不信任感、危機四伏的網路環境裏,區塊鏈或許是當前解決信任問題的最佳方案(之一)。

總結

最後,我們來總結區塊鏈的核心理念

1 賬本分佈存儲於全網的節點上,某個節點賬本的破壞,不會影響任何其他節點正常運作;

2 各節點均可參與記賬、共同維護區塊鏈資料庫;

3 各節點相互監督,構建trustless(免信任的)系統。

至此,我們已經講了區塊鏈70%的基礎知識。內容有點超載,建議大家先消化。

區塊鏈網路上的陌生人出於什麼承認區塊的有效性?他們為什麼願意苦哈哈地幫助記賬?剩下30%(包括共識機制和獎勵機制等)將放在下節具體講解。

如果讀完本文有收穫,歡迎分享到朋友圈;科普區塊鏈,有你的功勞哦!


本文系區塊鏈觀察網www.blockob.com原創稿件,版權屬本站所有。歡迎轉載本站內容,但轉載時須註明:原文鏈接、作者及來源。


剛好昨天學習了一下,我就為你講解一下吧。

區塊鏈既然被稱作鏈,那可想而知它是由一個一個區塊串起來的,既區塊鏈的基本構成單元是區塊,那什麼是區塊呢?每個區塊都有自己的標記、也就是有自己ID。這個ID可不是隨便定的,而是整個區塊的hash值(經過一種函數定下的值),也就是將這個區塊的所有信息hash之後所得的那個數字,這個hash值是唯一的,並且與此區塊綁定。

而一個區塊所包含的信息有三層: 第一層:上個區塊的hash值,第二層:自身區塊上的交易記錄,第三層:一個隨機數 這三層的信息最後再生成一個hash值,用於寫入下一個區塊第一層

看到這裡你就明白區塊鏈是怎麼形成了的吧!上一個區塊的hash值作為下一個區塊的第一層信息,如此循環你可以想像區塊是如何成鏈了吧!

區塊鏈的含義就像賬本,因為它把每十分鐘的交易都打包成一個區塊加到區塊鏈中,既記錄了這十分鐘的賬,而且這是不可篡改不可偽造的,因為如果這樣做了那麼系統就會發生很大的混亂,所以它本身具有的演算法(這裡不細講了)會盡量阻止這樣的事發生。

不知道我這樣講對你有沒有幫助。


這個問題我用俗話,給您講一下。

我們在淘寶購買東西,我們如果和賣家產生的爭議,那你想到的首先解決的方案,就是打淘寶熱線,那這就是我們說的中心化,遵循淘寶規則。

再比如我們在銀行存錢,那是不是我們要遵循銀行的一些規則呢?並且也存在的,這種可能性就是銀行把我存錢的數目記錯了,因為銀行自己的數據在儲存時,難免會有錯誤。

那麼區塊鏈是一個什麼思想呢?就是說,這個鏈就是一幢樓,我們家都在這個樓市裡。我們要維護這幢樓的衛生,還有樓的資金收入。這幢樓裏我們沒有富人,也沒有窮人。從樓上到樓下,不管遇到什麼問題啊,我們都統一解決,統一協商。只有當我們意見達成一致纔可進行下一項。充分發揚了民主。這就是區塊鏈。


實際上就是分散式存儲。與傳統的分散式存儲的區別就是,多了個加密(加入了密碼學的思路)而已。

另外那些代幣(比特幣、萊特幣等)的出現就是鼓勵大家貢獻出電腦來存儲數據。

每個人的電腦都運行一個程序,這個程序就是負責接收、存儲數據、驗證數據,這就是挖礦了


區塊鏈是比特幣使用的底層技術,叫1.0,就是一個分散式記賬本,在以後的區塊鏈2.0和3.0時能解決社會上各個行業之間的信任合約問題,能完美的去除中間機構,比如銀行,律師,中介,支付寶等中間機構將逐漸消逝,完全去中心化,即可以真正的點對點,用戶對用戶,還不能耍賴。

目前港口大數據觀察在思考如何應用區塊鏈,大數據並思考落地,有興趣的讀者可以關注頭條號


最近很多這種廣告媒體在推廣區塊鏈~ 大家懂為什麼麼!? 是不是以為眾人拾柴火焰高?? 呵呵~ 釣魚的都知道 要讓魚上鉤 得特麼的先做窩!!! 祝那些不好好對待生活 只想著騙人的 跟像跟風撈錢的 虧的傾家蕩產 !!


推薦閱讀:
相關文章