從我13年接觸比特幣,試圖了解比特幣底層到底是什麼以來,一直做不到用簡單通俗的語言來解釋什麼是比特幣,什麼是區塊鏈。知乎上那麼多賬本來賬本去的回答,我相信 90%的人都看不懂(至少我看了之後還是似懂非懂),也無法理解為什麼要那麼去構建那樣一個賬本系統。

但是自從我前段時間經歷了一個事情之後,我發現我終於能把這個事情解釋清楚了。

解釋一個事物的最直接有效的方法,就是將其與現實世界的常見進行關聯。而那種一上來就「去中心化」、「分散式」、「世界賬本」、「拜占庭將軍問題」什麼的回答,我建議還是別看了,他們不是想真正讓人真正理解區塊鏈,而是在說區塊鏈上有的東西而已。


先說說我經歷的事情:一次租房。

因為一些特殊的原因,我被迫要在 3 天之內租到合適的房子,但是當時正值畢業季,房源都特別緊張,很難找到合適的房子。迫不得已,我聯繫了大約七八個中介,讓他們給我同時找房子。

大家都知道,中介租出去一套房,他們可以拿到50%房租的中介費。但是我只需要一套房子,所以誰最先給我找到房源,誰就能拿到中介費。

而我後來了解到一個很神奇的事情,這些中介雖然來自不同的平台不同的公司,但是他們在我們那個區域使用的房源資料庫是一樣的。換句話說,所有中介手裡都有一模一樣的房源信息,無非就是誰最先能夠選出來最讓我滿意的那套。(當時還遇到了兩三個中介都帶我去看了同一套房子的尷尬局面)

在這幾個中介辛勤奔波之下,我第二天就找到了滿意的房子,然後我跟其他中介說我已經租好了,你們不用找了。他們的反應居然都很一致:啊,這套房子嗎?我之前有看到的,早說嘛,我這本來就有。

我相信理解比特幣挖礦原理的小夥伴肯定已經發現了,這中介不就是比特幣裡面的礦工嗎?對的。

我想和大家復盤一下這個租房的場景。

首先,為什麼我要找中介租房?因為我時間緊張,且自己找不到那麼多房源供我挑選。而中介這個群體手上有大量房源,能幫我找到房子,我只需要支付一部分費用即可。這對我來說提升了效率,讓自己可以少操點心。

第二,那為什麼我不願只找一個中介,而是要找七八個中介?因為我不太相信單單一個中介能在 3 天之內幫我找到合適的房子。即我不信任單一的或者說「中心化」的服務對象。就像購物一樣,大家都喜歡貨比三家,挑最便宜的,那這就是最樸素的「去中心化」思想。

第三,為什麼中介願意幫我找房子,哪怕他們知道還有其他中介同他們競爭?因為有利可圖。哪怕他們知道有同行競爭,只要他們有信心或者覺得自己運氣好,他們是能拿到一筆幾千元的中介費的。

整個流程如下:

第一步:我(租房方,交易發起方)對若干中介廣播:第一個找到我滿意房子的人能夠拿到中介費獎勵。

第二步:中介們開始在同一套房源資料庫里找房子,然後把找到的房子一一和我確認。

第三步:我找到了滿意的房子,並告訴所有中介,交易完成。

第四步(非核心):中介看了我滿意的房子,紛紛表示痛惜和無奈,錯過了中介費。


我為什麼要花這麼多筆墨來講我這段經歷?因為這段經歷就是比特幣乃至區塊鏈背後運行邏輯的現實寫照。

比特幣在運行時的邏輯流程大致如下:

第一步:交易方對系統說:我要發起一筆交易,最先能夠讓我完成這筆交易的人可以拿到我的手續費獎勵。

第二步:系統收到交易方的這則交易請求,將這則請求寫到一張紙上,然後將這張紙對全網的礦工(即中介)說到:我需要有人來確認這張紙上寫的信息,最先確認成功的那個人,可以拿到手續費,同時我額外獎勵 50塊錢。在這一步驟裡面,系統給出的確認的方式是讓礦工猜一個數,如果猜對了,就算確認成功。

第三步:礦工們收到這則消息,一個個開始拿出吃奶的力氣猜數字,畢竟猜對了就有手續費和額外的 50 塊錢,夠出去搓一頓了。

第四步:運氣最好的礦工最先猜出了數字,得意地向其他礦工炫耀:看我猜出來了,你們看看,一個個沒用的小辣雞。其他所有礦工看到這個數字確實是正確的,便認可了幸運的礦工。然後幸運礦工將數字報給系統。

第五步:系統看到其他所有礦工都認可了這個礦工的數字,於是完成了這筆交易,然後將這張紙加入到了系統賬本的最後一頁,最後把獎勵發給了礦工。

在這個系統里,可以看到礦工的角色和中介是極為類似的。他們收取手續費和 50 塊錢額外的系統獎勵,從而來幫助系統完成記賬。因為系統本身自己無法記賬,所以必須要通過礦工之間互相確認才能認可交易。

而與租房場景的區別在於,租房這個場景,我可以甄別房子的好壞,而在比特幣這個場景下,系統無法甄別正誤,只能通過礦工之間的互相認可來確認交易成功與否。

但是這兩者核心的社會分工模型是一致的。哪怕互相不信任,也能互相協作完成一些社會工作,產出價值。這中間最大的魅力在哪?社會多方的制衡與激勵機制。

在比特幣中,核心場景是轉賬,那多方式如何互相影響,從而維持這個生態系統的?

在比特幣的生態系統中,我認為存在三方:用戶、系統、第三方。

用戶的訴求(利益點)是:使用比特幣進行交易

系統的訴求(利益點)是:維持系統穩定,讓更多用戶使用

第三方的訴求(利益點)是:有利可圖

對於一個沒有人維護的系統,如何才能保持穩定?答案只有一個:藉助第三方。但是如何才能藉助第三方呢?沒有人會願意白乾活的對不對?所以中本聰就說,只要參與維護比特幣的交易活動,參與的人就可以獲得系統獎勵(若干比特幣)。而這種維護,被他命名為「挖礦」。

所以最後大家可以看到一個利益互相綁定的正向循環:

用戶的訴求(利益點)是:使用比特幣進行交易,付出的代價則是手續費方式。

系統的訴求(利益點)是:維持系統穩定,讓更多用戶使用,,付出的代價則是增發新幣。

礦工的利益點是:獲得手續費和新幣,付出的代價則是算術,從而維持系統穩定。

其實對於系統來說,增發新幣是沒有任何成本的,但是礦工開心了,用戶也用得開心了,系統用得人也更多了。三方都有收益。而這就是最核心的社會激勵機制的強大之處。

之前看過一則笑話這麼描述比特幣:

1、一個沒有CEO的公司,管理幾十萬員工;

2、每個員工自私自利,爭權奪利,公司運作9年風生水起;3、一份代碼上線,穩定運行9年,沒出過bug;4、遭到各國政府打壓,無法禁止,覆蓋全球一百多個國家;

5、沒花過一分錢營銷預算,獲取了2500萬用戶;

6、沒融過一分錢,估值1400億美金;7、公司2009年上市,股價翻了幾十萬倍。

我覺得描述的非常生動形象。通過合理的社會激勵機制設計,哪怕所有人都是自私自利的人,也能夠讓整個生態運行地非常有價值。


明明是講區塊鏈技術,為什麼我要提那麼多比特幣的東西?因為以比特幣為代表的若干數字貨幣是區塊鏈技術應用的典範。

在我看來,很多人提到的「區塊鏈是一種按照時間順序將數據區塊以順序相連的方式組合成的一種鏈式數據結構」,或者說是「以密碼學方式保證的不可篡改和不可偽造的分散式賬本」,都並不太正確。

因為我認為這不是它的精髓。因為像 Immutable 的數據也是不可篡改,也是鏈式變化。

有些場景的應用也不是賬本式的應用,而是資料庫式的應用。

在真正想要應用區塊鏈的場景下,必須要考慮的是社會的激勵機制,如何構建有效的行為激勵機制來促進第三方維護系統的穩定。

舉個例子。我將區塊鏈用於個人隱私這個領域。

未來我想構建一個場景:用戶掌握自己的所有數據,當某個服務需要調用我的數據時,我可以自行選擇授權類型。(類似微信授權登錄,只不過差別在於一個是數據存儲在微信伺服器上,另一個則是加密存儲在區塊鏈上,沒有你的授權別人都無法訪問)

在這種場景下,我可以設計一個這樣的機制:用戶數據授權挖礦——即用戶授權自己部分數據被外界調用,調用之後系統獎勵對應的 Token。而誰來提供對應的調用服務?這時就可以引入一個超級節點等社會分工角色來完成中間人角色。而調用用戶數據的公司(例如用於大數據分析)則需要使用 Token 來進行調用,因為 token 被越多人熟知而價格上漲……一輪一輪的正向循環之後,最終的隱私泄露的問題也就能被真正解決。

我為什麼看好區塊鏈技術?因為在互聯網生態當中,它很有可能意味現代社會的底層邏輯變革,在下一個十年誕生出新的偉大公司。


區塊鏈技術被認為是繼蒸汽機、電力、互聯網之後,下一代顛覆性的核心技術。

如果說蒸汽機釋放了人們的生產力

電力解決了人們基本的生活需求

互聯網徹底改變了信息傳遞的方式

那麼區塊鏈作為構造信任的機器

也許將徹底改變整個人類社會價值傳遞的方式

那麼到底什麼是區塊鏈?

狹義上

區塊鏈是一種按照時間順序將數據區塊以順序相連的方式組合成的一種鏈式數據結構, 並以密碼學方式保證的不可篡改和不可偽造的分散式賬本。

廣義上

區塊鏈技術是利用塊鏈式數據結構來驗證與存儲數據、利用分散式節點共識演算法來生成和更新數據、利用密碼學的方式保證數據傳輸和訪問的安全、利用由自動化腳本代碼組成的智能合約來編程和操作數據的一種全新的分散式基礎架構與計算範式。

簡短地說區塊鏈就是一種去中心化的分散式賬本資料庫

舉一個簡單的例子

ivva星球上有一家人:va,va爸爸,va媽媽,va大爺,va爺爺,va奶奶

一家人互相不信任對方

每個人都有個小本本來記賬

va大爺給了va奶奶1000塊錢,但是va奶奶上了年紀把一千記成了一百,可是va大爺的小本本上記的是一千

這下就不知道到底是一百還是一千

如果用區塊鏈來解決,va大爺給va奶奶錢的時候他只要在星球上廣播一聲,va大爺給了va奶奶1000元每個原住民在自己的小本本上記下:va大爺給了va奶奶1000

這樣就OK了

整個ivva星原住民的小本本,就是分散式賬本資料庫。每個原住民都是一個節點,每筆交易都會被每個節點記錄下來,所以才說區塊鏈有去中心化的特點,或者說叫多中心,因為每個節點都是一個中心。

更多技術乾貨敬請關注ivva星球知乎機構號:ivva星球


區塊鏈技術原理及架構

一、區塊鏈是什麼? 「區塊鏈」技術最初是由一位化名中本聰的人為比特幣(一種數字貨幣)而設計出的一種特殊的資料庫技術,它基於密碼學中的橢圓曲線數字簽名演算法(ECDSA)來實現去中心化的P2P系統設計。但區塊鏈的作用不僅僅局限在比特幣上。現在,人們在使用「區塊鏈」這個詞時,有的時候是指數據結構,有時是指資料庫,有時則是指資料庫技術,但無論是哪種含義,都和比特幣沒有必然的聯繫。 從數據的角度來看:區塊鏈是一種分散式資料庫(或稱為分散式共享總賬,DistributedShared Ledger),這裡的「分散式」不僅體現為數據的分散式存儲,也體現為數據的分散式記錄(即由系統參與者來集體維護)。簡單的說,區塊鏈能實現全球數據信息的分散式記錄(可以由系統參與者集體記錄,而非由一個中心化的機構集中記錄)與分散式存儲(可以存儲在所有參與記錄數據的節點中,而非集中存儲於中心化的機構節點中)。 從效果的角度來看:區塊鏈可以生成一套記錄時間先後的、不可篡改的、可信任的資料庫,這套資料庫是去中心化存儲且數據安全能夠得到有效保證的。

結論:區塊鏈是一種把區塊以鏈的方式組合在一起的數據結構,它適合存儲簡單的、有先後關係的、能在系統內驗證的數據,用密碼學保證了數據的不可篡改和不可偽造。它能夠使參與者對全網交易記錄的事件順序和當前狀態建立共識。

如今的區塊鏈技術概括起來是指通過去中心化和去信任的方式集體維護一個可靠資料庫的技術。其實,區塊鏈技術並不是一種單一的、全新的技術,而是多種現有技術(如加密演算法、P2P文件傳輸等)整合的結果,這些技術與資料庫巧妙地組合在一起,形成了一種新的數據記錄、傳遞、存儲與呈現的方式。簡單的說,區塊鏈技術就是一種大家共同參與記錄信息、存儲信息的技術。過去,人們將數據記錄、存儲的工作交給中心化的機構來完成,而區塊鏈技術則讓系統中的每一個人都可以參與數據的記錄、存儲。區塊鏈技術在沒有中央控制點的分散式對等網路下,使用分散式集體運作的方法,構建了一個P2P的自組織網路。通過複雜的校驗機制,區塊鏈資料庫能夠保持完整性、連續性和一致性,即使部分參與人作假也無法改變區塊鏈的完整性,更無法篡改區塊鏈中的數據。 區塊鏈技術涉及的關鍵點包括:去中心化(Decentralized)、去信任(Trustless)、集體維護(Collectively maintain)、可靠資料庫(ReliableDatabase)、時間戳(Time stamp)、非對稱加密(AsymmetricCryptography)等。 區塊鏈技術重新定義了網路中信用的生成方式:在系統中,參與者無需了解其他人的背景資料,也不需要藉助第三方機構的擔保或保證,區塊鏈技術保障了系統對價值轉移的活動進行記錄、傳輸、存儲,其最後的結果一定是可信的。 區塊鏈技術原理的來源可歸納為一個數學問題:拜占庭將軍問題。拜占庭將軍問題延伸到互聯網生活中來,其內涵可概括為:在互聯網大背景下,當需要與不熟悉的對手方進行價值交換活動時,人們如何才能防止不會被其中的惡意破壞者欺騙、迷惑從而做出錯誤的決策。進一步將拜占庭將軍問題延伸到技術領域中來,其內涵可概括為:在缺少可信任的中央節點和可信任的通道的情況下,分布在網路中的各個節點應如何達成共識。區塊鏈技術解決了聞名已久的拜占庭將軍問題——它提供了一種無需信任單個節點、還能創建共識網路的方法。 區塊鏈技術的本質是一種互聯網協議。 設想一下,如果現在我們想要在互聯網世界中建立一套全球通用的資料庫,那麼我們會面臨三個亟待解決的問題,這三個問題也是設計區塊鏈技術的核心所在: 問題一:如何建立一個嚴謹的資料庫,使得該資料庫能夠存儲下海量的信息,同時又能在沒有中心化結構的體系下保證資料庫的完整性? 問題二:如何記錄並存儲下這個嚴謹的資料庫,使得即便參與數據記錄的某些節點崩潰,我們仍然能保證整個資料庫系統的正常運行與信息完備? 問題三:如何使這個嚴謹且完整存儲下來的資料庫變得可信賴,使得我們可以在互聯網無實名背景下成功防止詐騙? 針對這三個核心問題,區塊鏈構建了一整套完整的、連貫的資料庫技術來達成目的,解決這三個問題的技術也成為了區塊鏈最核心的三大技術。此外,為了保證區塊鏈技術的可進化性與可擴展性,區塊鏈系統設計者還引入了「腳本」的概念來實現資料庫的可編程性。我們認為,這四大技術構成了區塊鏈的核心技術。 二、區塊鏈的核心技術 核心技術1:區塊+鏈 關於如何建立一個嚴謹資料庫的問題,區塊鏈的辦法是:將資料庫的結構進行創新,把數據分成不同的區塊,每個區塊通過特定的信息鏈接到上一區塊的後面,前後順連來呈現一套完整的數據,這也是「區塊鏈」這三個字的來源。 區塊(block):在區塊鏈技術中,數據以電子記錄的形式被永久儲存下來,存放這些電子記錄的文件我們就稱之為「區塊(block)」。區塊是按時間順序一個一個先後生成的,每一個區塊記錄下它在被創建期間發生的所有價值交換活動,所有區塊匯總起來形成一個記錄合集。 區塊結構(BlockStructure):區塊中會記錄下區塊生成時間段內的交易數據,區塊主體實際上就是交易信息的合集。每一種區塊鏈的結構設計可能不完全相同,但大結構上分為塊頭(header)和塊身(body)兩部分。塊頭用於鏈接到前面的塊並且為區塊鏈資料庫提供完整性的保證,塊身則包含了經過驗證的、塊創建過程中發生的價值交換的所有記錄。 區塊結構有兩個非常重要的特點:第一,每一個區塊上記錄的交易是上一個區塊形成之後、該區塊被創建前發生的所有價值交換活動,這個特點保證了資料庫的完整性。第二,在絕大多數情況下,一旦新區塊完成後被加入到區塊鏈的最後,則此區塊的數據記錄就再也不能改變或刪除。這個特點保證了資料庫的嚴謹性,即無法被篡改。 顧名思義,區塊鏈就是區塊以鏈的方式組合在一起,以這種方式形成的資料庫我們稱之為區塊鏈資料庫。區塊鏈是系統內所有節點共享的交易資料庫,這些節點基於價值交換協議參與到區塊鏈的網路中來。 區塊鏈是如何做到的呢?由於每一個區塊的塊頭都包含了前一個區塊的交易信息壓縮值,這就使得從創世塊(第一個區塊)到當前區塊連接在一起形成了一條長鏈。由於如果不知道前一區塊的「交易縮影」值,就沒有辦法生成當前區塊,因此每個區塊必定按時間順序跟隨在前一個區塊之後。這種所有區塊包含前一個區塊引用的結構讓現存的區塊集合形成了一條數據長鏈。「區塊+鏈」的數據存儲結構如下圖所示。 我們引用《區塊鏈:互聯網金融的終局》(肖風)的一段話來總結區塊鏈的基本結構:「人們把一段時間內生成的信息(包括數據或代碼)打包成一個區塊,蓋上時間 戳,與上一個區塊銜接在一起,每下一個區塊的頁首都包含了上一個區塊的索引數據,然後再在本頁中寫入新的信息,從而形成新的區塊,首尾相連,最終形成了區塊鏈。」這個結構的神奇之處:區塊(完整歷史)+ 鏈(完全驗證)= 時間戳 「區塊+鏈」的結構為我們提供了一個資料庫的完整歷史。從第一個區塊開始,到最新產生的區塊為止,區塊鏈上存儲了系統全部的歷史數據。 區塊鏈為我們提供了資料庫內每一筆數據的查找功能。區塊鏈上的每一條交易數據,都可以通過「區塊鏈」的結構追本溯源,一筆一筆進行驗證。 區塊+鏈=時間戳,這是區塊鏈資料庫的最大創新點。區塊鏈資料庫讓全網的記錄者在每一個區塊中都蓋上一個時間戳來記賬,表示這個信息是這個時間寫入的,形成了一個不可篡改、不可偽造的資料庫。我們認為,時間戳是區塊鏈中一項偉大的技術創新,它可以證明什麼呢? 核心技術2:分散式結構——開源的、去中心化的協議 我們有了區塊+鏈的數據之後,接下來就要考慮記錄和存儲的問題了。我們應該讓誰來參與數據的記錄,又應該把這些蓋了時間戳的數據存儲在哪裡呢?在現如今中心化的體系中,數據都是集中記錄並存儲於中央電腦上。但是區塊鏈結構設計精妙的地方就在這裡,它並不贊同把數據記錄並存儲在中心化的一台或幾台電腦上,而是讓每一個參與數據交易的節點都記錄並存儲下所有的數據。 1.關於如何讓所有節點都能參與記錄的問題,區塊鏈的辦法是:構建一整套協議機制,讓全網每一個節點在參與記錄的同時也來驗證其他節點記錄結果的正確性。只有當全網大部分節點(或甚至所有節點)都同時認為這個記錄正確時,或者所有參與記錄的節點都比對結果一致通過後,記錄的真實性才能得到全網認可,記錄數據才允許被寫入區塊中。 2.關於如何存儲下「區塊鏈」這套嚴謹資料庫的問題,區塊鏈的辦法是:構建一個分散式結構的網路系統,讓資料庫中的所有數據都實時更新並存放於所有參與記錄的網路節點中。這樣即使部分節點損壞或被黑客攻擊,也不會影響整個資料庫的數據記錄與信息更新。 區塊鏈根據系統確定的開源的、去中心化的協議,構建了一個分散式的結構體系,讓價值交換的信息通過分散式傳播發送給全網,通過分散式記賬確定信息數據內容,蓋上時間戳後生成區塊數據,再通過分散式傳播發送給各個節點,實現分散式存儲。 分散式記賬——會計責任的分散化(Distributedaccountability) 從硬體的角度講,區塊鏈的背後是大量的信息記錄儲存器(如電腦等)組成的網路,這一網路如何記錄發生在網路中的所有價值交換活動呢?區塊鏈設計者沒有為專業的會計記錄者預留一個特定的位置,而是希望通過自願原則來建立一套人人都可以參與記錄信息的分散式記賬體系,從而將會計責任分散化,由整個網路的所有參與者來共同記錄。 區塊鏈中每一筆新交易的傳播都採用分散式的結構,根據P2P網路層協議,消息由單個節點被直接發送給全網其他所有的節點。 區塊鏈技術讓資料庫中的所有數據均存儲於系統所有的電腦節點中,並實時更新。完全去中心化的結構設置使數據能實時記錄,並在每一個參與數據存儲的網路節點中更新,這就極大的提高了資料庫的安全性。 通過分散式記賬、分散式傳播、分散式存儲這三大「分布」我們可以發現,沒有人、沒有組織、甚至沒有哪個國家能夠控制這個系統,系統內的數據存儲、交易驗證、信息傳輸過程全部都是去中心化的。在沒有中心的情況下,大規模的參與者達成共識,共同構建了區塊鏈資料庫。可以說,這是人類歷史上第一次構建了一個真正意義上的去中心化體系。甚至可以說,區塊鏈技術構建了一套永生不滅的系統——只要不是網路中的所有參與節點在同一時間集體崩潰,資料庫系統就可以一直運轉下去。 我們現在已經有了一套嚴謹的資料庫,也有了記錄並存儲這套資料庫的可用協議,那麼當我們將這套資料庫運用於實際社會時,我們要解決最核心的一個問題(問題三)是:如何使這個嚴謹且完整存儲下來的資料庫變得可信賴,使得我們可以在互聯網無實名背景下成功防止詐騙? 核心技術3:非對稱加密演算法 什麼是非對稱加密?簡單來說,它讓我們在「加密」和「解密」的過程中分別使用兩個密碼,兩個密碼具有非對稱的特點:(1)加密時的密碼(在區塊鏈中被稱為「公鑰」)是公開全網可見的,所有人都可以用自己的公鑰來加密一段信息(信息的真實性);(2)解密時的密碼(在區塊鏈中被稱為「私鑰」)是只有信息擁有者才知道的,被加密過的信息只有擁有相應私鑰的人才能夠解密(信息的安全性)。 簡單的總結:區塊鏈系統內,所有權驗證機制的基礎是非對稱加密演算法。常見的非對稱加密演算法包括RSA、Elgamal、D-H、ECC(橢圓曲線加密演算法)等。在非對稱加密演算法中,如果一個「密鑰對」中的兩個密鑰滿足以下兩個條件:1、對信息用其中一個密鑰加密後,只有用另一個密鑰才能解開;2、其中一個密鑰公開後,根據公開的密鑰別人也無法算出另一個,那麼我們就稱這個密鑰對為非對稱密鑰對,公開的密鑰稱為公鑰,不公開的密鑰稱為私鑰。在區塊鏈系統的交易中,非對稱密鑰的基本使用場景有兩種:1、公鑰對交易信息加密,私鑰對交易信息解密。私鑰持有人解密後,可以使用收到的價值。2、私鑰對信息簽名,公鑰驗證簽名。通過公鑰簽名驗證的信息確認為私鑰持有人發出。 我們可以看出,從信任的角度來看,區塊鏈實際上是數學方法解決信任問題的產物。過去,人們解決信任問題可能依靠熟人社會的「老鄉」,政黨社會的「同志」,傳統互聯網中的交易平台「支付寶」。而區塊鏈技術中,所有的規則事先都以演算法程序的形式表述出來,人們完全不需要知道交易的對手方是「君子」還是「小人」,更不需要求助中心化的第三方機構來進行交易背書,而只需要信任數學演算法就可以建立互信。區塊鏈技術的背後,實質上是演算法在為人們創造信用,達成共識背書。 核心技術4:腳本 腳本可以理解為一種可編程的智能合約。如果區塊鏈技術只是為了適應某種特定的交易,那腳本的嵌入就沒有必要了,系統可以直接定義完成價值交換活動需要滿足的條件。然而,在一個去中心化的環境下,所有的協議都需要提前取得共識,那腳本的引入就顯得不可或缺了。有了腳本之後,區塊鏈技術就會使系統有機會去處理一些無法預見到的交易模式,保證了這一技術在未來的應用中不會過時,增加了技術的實用性。 一個腳本本質上是眾多指令的列表,這些指令記錄在每一次的價值交換活動中,價值交換活動的接收者(價值的持有人)如何獲得這些價值,以及花費掉自己曾收到的留存價值需要滿足哪些附加條件。通常,發送價值到目標地址的腳本,要求價值的持有人提供以下兩個條件,才能使用自己之前收到的價值:一個公鑰,以及一個簽名(證明價值的持有者擁有與上述公鑰相對應的私鑰)。腳本的神奇之處在於,它具有可編程性:(1)它可以靈活改變花費掉留存價值的條件,例如腳本系統可能會同時要求兩個私鑰、或幾個私鑰、或無需任何私鑰等;(2)它可以靈活的在發送價值時附加一些價值再轉移的條件,例如腳本系統可以約定這一筆發送出去的價 值以後只能用於支付中信證券的手續費、或支付給政府等。三、區塊鏈平台參考架構:從下圖可以看到區塊鏈基礎架構分為6層,包括數據層、網路層、共識層、激勵層、合約層、應用層。每層分別完成一項核心功能,各層之間互相配合,實現一個去中心化的信任機制。基礎層:任何信息化系統必須運行在一個計算機基礎設施環境下,傳統的伺服器、網路設備、存儲、終端。這些設備組成了計算機的基礎環境,為系統運行提供計算資源、網路資源、存儲資源。現在隨著雲計算、雲平台的發展,很多應用系統都在遷移至雲平台,雲平台的模式更適合區塊鏈系統,為整個系統提供資源的合理管控和彈性擴展。區塊鏈系統的基礎設計層,結合傳統和現在雲計算的平台,不單單依賴一種平台,具有良好的兼容性和擴展性,適應各種虛擬化雲平台。安全層:任何系統在實際應用中安全問題一直重中之重,如數據的安全,用戶的安全,許可權的控制等,區塊鏈系統本身的加密演算法和共識機制保證區塊鏈本身的數據的安全性。在圖中安全包含了三個方面:身份管理、許可權、加密服務。首先身份管理,區塊鏈中賬戶用地址區分,地址是公鑰加工後一串數字身份,配套一個賬戶還有私鑰、公鑰、簽名這些加密數字字元串,身份的管理就是不同角色維護在區塊鏈網路中的數字身份。許可權,這個和一般系統一樣都需要許可權的分離和有效控制管理,但是區塊鏈中由於其特性透明化、不可篡改,在實際應用過程需要對許可權更高級別的控制,一方面也是對用戶隱私保護的考慮,另一方面針對監管審計。加密服務,加密技術在區塊鏈技術中發揮著十分重要的作用,不論公鑰、私鑰、簽名等,區塊鏈通過數學加密技術保障系統的信任可靠,但是加密技術隨著現代各種技術的發展,不是一成不變,加密技術模塊化,現今環境,區塊鏈落地金融結算,國內國密改革,要求區塊鏈中加密模塊國產自主可控,將來隨著量子計算機和量子演算法的發展,加密演算法要求隨時可以更替,以適應整個加密技術的發展,保證系統的安全性。數據層:數據是系統存在的根本,數據的重要性不言而喻,圖中很為數據訪問控制服務、跨鏈、鏈上鏈下服務。區塊鏈由於其鏈的特性,對數據的管理比一般系統較複雜。首先數據訪問控制服務,區塊鏈是分散式系統,數據的訪問控制要求在整個網路中分散式數據存儲數據的一致性,訪問過程較複雜,多副本的模式,在網路中每個節點上對數據的存儲和查詢都要求在建立在共識演算法一致性後確認寫入,同時區塊鏈系統數據一致增長,對數據的訪問效率需要考慮。跨鏈,之前有文章專門寫過跨鏈技術,在區塊鏈系統中,大多數鏈其實都是不知道鏈外的世界,不具備天然的跨鏈能力,跨鏈是一個複雜的過程,既需要對鏈中節點要有單獨的驗證能力,需要去中心化的輸入,更需要對鏈外世界的信息的獲取和驗證。通過公證人機制(Notary schemes)、側鏈/中繼(Sidechains/relays)、哈希鎖定(Hash-locking)等跨鏈技術實現鏈與鏈之間的通訊,跨鏈在數據層的作用可歸結為區塊鏈系統系統數據的交互。鏈上鏈下服務,安全訪問鏈下數據,實現鏈上和鏈下數據的交叉。區塊鏈由於鏈的特性考慮整個應用環境,不單單只是當時區塊鏈系統數據的存儲和交互,也需要各種區塊鏈間和區塊鏈鏈下數據之間的交互。賬本層:把區塊鏈理解為分散式賬本系統,全網內節點通過信任機制,共識演算法統一維護單一可靠賬本,在實際應用過程中,共識機制決定賬本數據的寫入,避免雙重支付,這裡和加密演算法一樣,共識機制需要模塊化,現在區塊鏈系統中共識機制各有利弊,在實際應用中一旦出現共識機制需要更換,那麼需要模塊化操作,實現共識機制良好的過渡。一直以來個人都認為共識機制是影響區塊鏈運行效率最關鍵的一個環節,參考網上一些聯盟鏈白皮書和一些相關資料,EOS、BTS等共識機制(類似石墨烯架構)一直不斷的在改善區塊鏈單位時間的執行吞吐效率。開發層和DAPP:區塊鏈2.0中最為關鍵的智能合約,那麼在開發過程中智能合約將整個應用邏輯、業務規範整合,切合分散式應用系統。在開發語言上要求支持多種主流開發語言,同時一整套開發過程中工具的配合,實現對分散式應用的代碼編寫、測試、優化、部署、監控等。SDKs、APIs - 簡化分散式應用程序訪問分散式賬本、智能合約等服務的中間代碼。編程介面 - 允許外部系統訪問智能合約的服務、平台和數據的能力。總結來說,區塊鏈技術目前還不是很成熟,業內都認為五到十年後技術會真正成熟,會出現應用的落地,但目前對區塊鏈技術的研究各大IT巨頭、金融、諮詢類等公司都不斷在投入,相信技術出現重大突破後整個區塊鏈架構平台會更完善,更切合應用,從而實現區塊鏈的信任價值。簡版的六個架構一、數據層-描述區塊鏈技術的物理形式區塊鏈系統設計的技術人員首先建立的一個起始節點是「創世區塊」,之後在同樣規則下創建的規格相同的區塊通過一個鏈式的結構依次相連組成一條主鏈條。隨著運行時間越來越長,新的區塊通過驗證後不斷被添加到主鏈上,主鏈也會不斷地延長。二、網路層-實現區塊鏈網路中節點之間的信息交流。區塊鏈網路本質上是一個P2P(點對點)網路。每一個節點既接收信息,也產生信息。節點之間通過維護一個共同的區塊鏈來保持通信。區塊鏈的網路中,每一個節點都可以創造新的區塊,在新區塊被創造後會以廣播的形式通知其他節點,其他節點會對這個區塊進行驗證,當全區塊鏈網路中超過51%的用戶驗證通過後,這個新區塊就可以被添加到主鏈上了。三、共識層-讓高度分散的節點在去中心化的系統中高效地針對區塊數據的有效性達成共識。區塊鏈中比較常用的共識機制主要有工作量證明(Proof of Work)權益證明(Proof of Stake)股份授權證明(Delegated Proof of Stake)還有投注共識、瑞波共識機制、Pool驗證池、實用拜占庭容錯、授權拜占庭容錯、帕克索斯演算法等。四、激勵層-提供一定的激勵措施,鼓勵節點參與區塊鏈的安全驗證工作。五、合約層-主要是指各種腳本代碼、演算法機制以及智能合約等。以比特幣為例,比特幣是一種可編程的貨幣,合約層封裝的腳本中規定了比特幣的交易方式和過程中涉及的種種細節。六、應用層-封裝了區塊鏈的各種應用場景和案例比如基於區塊鏈的跨境支付平台OKLink

轉載自區塊鏈技術原理及架構 - 區塊鏈論壇

簡單的說,區塊鏈就是一個去中心化的信任機制。

最近我個人正在學習區塊鏈方面的相關知識。通過學習,對區塊鏈也有了一定的認識。也讓我感覺到人類的智慧的偉大,區塊鏈將繼互聯網之後,再一次改變人類生活。

那麼到底什麼是區塊鏈技術,區塊鏈該如何去理解呢?

其實區塊鏈不能單純的叫區塊鏈,應該叫做區塊鏈技術。

區塊鏈技術就指的一種全民參與記賬的方式。所有參與記賬的人都是一個資料庫,你可以直接把資料庫看成一個賬本。區塊鏈就是一個賬本與一個賬本相互鏈接而又獨立存在。

那麼您對區塊鏈有了一定認識厚。你肯定會就會問,這種全民記賬的方式有什麼好處呢?

安全,肯定是安全。因為這種記賬方式首先是去中心化,沒有中央大賬本,就無法篡改和摧毀。其次就是無法作弊,你想每個人都有一本賬本,按照少數服從多數的原則。你就要至少所有賬本中的51%的賬本進行統一修改。全世界有多少賬本,或者有多少台記賬的計算機,要改掉其中的51%能實現么?

沒有中心化的中介機構存在,讓所有東西都通過預先設定的程序自動運行,不僅能大大降低成本,也能提高效率,而且由於每個人都有相同的賬本,能確保記錄過程是公開透明的。

就拿目前最熱的比特幣來說,其實區塊鏈技術就是比特幣的最底層技術,比特幣在沒有任何中細化機構運營和管理的情況下,多年來一直運行非常穩定。沒有出現過任何問題。所以有人注意到他的底層技術,把比特幣技術抽象的提取出來,就稱之為現在的區塊鏈技術,也有很多人稱之為分散式賬本技術。

雖然區塊鏈技術的提出或者說概念上其實不難理解。但是在實際運用中該如何運用呢?或者說哪些行業可以用到區塊鏈技術呢?

區塊鏈主要的優勢就是無需中介參與,過程高效透明且成本極低,數據高度安全、如果在這三個方面有任意一個需求的行業都有寄回使用區塊鏈技術。

比如金融行業,金融行業目前由於防止單點故障和系統性風險,需要進行層層審計來控制金融風險,但由此會付出高昂的內部成本。在這種情況下,區塊鏈技術能夠通過防止篡改和高透明的方式讓整個金融系統極大的降低成本。

根據西班牙最大銀行桑坦德發布的一份報告顯示,2020年左右如果全世界的銀行內部都使用區塊鏈技術的話。大概每年能省下200億美元的成本。這樣的數據足以說明區塊鏈給傳統金融領域帶來的巨大變革和突破。

所以如果所有金融系統能夠實現區中心化的實時結算和清算,不僅將極大的提高全球金融效率,並且由此能夠改變全球金融格局。傳統的快過結算就是因為要通過類似於SWIFT這樣的機構,所以跨國電匯往往是按天來計算的。但是比特幣在使用區塊鏈技術時,在完全沒有中心化運營機構的情況下,完美的運行了7年,不僅能夠實現實時結算,而且沒有出現過任何一筆賬目錯誤


關於什麼是區塊鏈技術,這是我看到網路上最有趣易懂的漫畫:

漫畫整理自網路,原作者如有看到可聯繫註明出處。


推薦閱讀:
相关文章