分享實錄|迴歸需求談價值,比特幣誕生起源

分享大綱git

image

  • 60% 一步一步發明比特幣算法

  • 35% 白話現代區塊鏈新興概念數據庫

  • 5% 落地應用點子分享數組

  • 彩蛋:加密貨幣的「價格」& 區塊鏈的價值安全

首先跟你們分享我總結的關於區塊鏈的幾句話:由於貪婪因此信任;結構存儲 數據黃金;分佈架構 將來潛力。服務器

我認爲其中最重要的是:由於貪婪 因此信任。正是由於貪婪,把人類的慾望和區塊鏈的共識鏈接在一塊兒,纔會如此吸引人。網絡

接下來咱們就站在巨人的肩膀上,來看這個過程。數據結構

1

一步一步發明比特幣

image

一、信任是如何創建的?架構

在解答這個問題以前,咱們先要了解區塊鏈的特色:去中心化清算、分佈式記帳、離散化支付。而後咱們來看信任的創建。app

1.1 第一個用戶需求:擺脫現金交易的不便

image

人類社會進行資源交換,最開始用貝殼來衡量物品價值,後來用金銀銅鐵,北宋時發明第一個紙幣交子,代替金銀銅鐵等比較重且不方便攜帶的物質,直到現代社會,依舊使用紙幣交易。然而隨着社會的進步,人們以爲紙幣也不方便,想尋求一種方式擺脫現金交易的不便,因而產生了第一個需求。

那麼咱們是怎麼擺脫現金交易的呢?接下來分享一些金融體系的內容,幫助你們更好地理解協議和規則等概念。

咱們在整個公共帳本中記錄全部的轉帳記錄,每個月或一段時間進行一次結算,把你們的餘額都算出來。在這個系統中存在兩個問題:第一是身份驗證;第二是欠債跑路。

image

現代金融體系協議對這兩個問題都提出瞭解決方案:

首先是身份驗證。你們知道支票須要簽字證實,在網絡世界裏出現了電子簽名這樣一個東西,就是在本地能夠用你的私鑰加上內容,好比一個字符串,通過一個函數,生成一串叫電子簽名的字符串,而後在網絡上用公鑰加上剛剛生成的內容及電子簽名一塊兒進行身份驗證。

其次是跑路問題。這個問題就更容易解決了,首先要存錢進帳戶,有餘額才能進行交易。

1.2 帳本放在哪裏?怎麼放?

image

擺脫了現金以後,迎來了第二個需求:帳本放在哪裏?怎麼放?由於中心化的系統存在不少痛點:

第一,效率低下,具體表如今跨國轉帳中的時間延遲和費用過高。

第二,胖銀行金融體系弊端,所謂胖銀行就是中央控制貨幣,擡升槓桿,產生金融泡沫,誘發金融危機。

第三,私有財產神聖不可侵犯,這是精英與平民,剝削與被剝削者幾個世界以來博弈的風暴中心,也是中本聰一直在提的問題。

最直接的解決方案是:不要中心化機構,把全部交易記錄都在每一個人的本地存儲一份,也就是說每一個人都存一份大帳本。這樣一來,問題就變成了:咱們怎麼實現分佈式記帳?

image

分而擊之 廣而告之。我要發起一筆交易,先把這筆交易添加到帳本上,而後廣播到全網絡,告訴你們我今天要轉給張三一百塊錢,讓你們都知道,你們認同這筆交易並保存到本身的本地帳本中。互聯網架構已經發展得很成熟,因此互聯的問題已經解決了,可是同時新的問題也產生了:

image

第一是贊成的問題,憑什麼我廣播數據你們就都要認同呢?

第二是同步的問題,全世界這麼多節點,怎麼保證全部帳本都同步?

第三是信任的問題,添加交易的時候,別人怎麼信任我這筆交易不是亂添加的呢?

說到信任就得提到拜占庭將軍問題。

image

大概是這樣的一個場景:咱們假設有九個將軍要攻城,而後設定一個條件,這九個將軍必須一塊兒攻城才能成功,只要其中有任何一個將軍不攻城,攻城的將軍就會全軍覆沒。那麼在他們不知道其餘將軍的決定的時候,就會面臨一個問題:我究竟是攻仍是不攻?解決方法是創建一個信道,好比派傳令兵,讓每一個將軍都知道其餘八位將軍的決定是什麼,而後少數服從多數,一塊兒決定是攻城仍是撤退。

那麼問題又來了,若是這九個將軍中出現了叛徒或間諜怎辦?間諜經過這個系統很容易使得你們的一致性被破壞,致使全軍覆沒。如何解決信道中出現間諜的狀況,怎樣達成共識?是這個問題的核心。

是否能夠找到一種存儲結構,配合通訊協議能夠作到:

讓你能夠放心的相信,世界上遵照同一協議的人手上的帳本都相同

欺詐和做假的成本極高,甚至徹底不可行。

1.3 中本聰的解決方案

image

**中本聰的解決方案是:區塊鏈+P2P網絡分佈式存儲。**P2P網絡分佈式存儲已經有了,比較關鍵的問題是怎麼存?就是區塊鏈。

區塊鏈就是區塊+鏈,簡單理解,區塊就是一張能夠記錄內容的白紙,鏈是首尾相連的鏈表數據結構。能夠想象成一個大帳本,這個帳本也就是區塊鏈,存在每一個人的手上。

這裏有兩個問題,中本聰都給出了相應的解決方案:

第一怎麼連?經過哈希函數來連接。

第二信任誰?信任工做量最大的鏈。

具體來看:

image

咱們用哈希函數來進行鏈接。哈希函數是什麼呢?一個字符串,輸入進去之後生成一個256位的101010,其特色是:

第一,沒法作運算,找不到FX的顯性表達式,也就是說你不知道fx=x²+1。

第二,只要稍微改變了一點輸入,整個輸出結果就會發生巨大變更。

第一重保險:有說道的存儲結構-工做量證實

image

假設有一個Ledger上面記錄了Alice pays Bob,咱們要乾的事情就是算一個特殊數字,使得最後輸出的這一串哈希值的前30位是0,只要這前30位是0,就能夠把下一個區塊加到這個區塊的後面。也就是說只有讓這一段特殊數字的哈希值前30位都是0才能鏈接起來。

image

**這樣作的好處是不能被篡改。**篡改任何一個值的結果都須要從新計算全部的關鍵數字。由於這樣的一個結構,不管是改任何一個字符仍是交換兩個區塊的位置,都會使得全部的鏈接被打斷。(具體演示過程請看視頻)

image

第二重保險:激勵+最長鏈確認+機率

image

我我的以爲這是一個很是優美的算法,由於看似好像不能相信的事情,正是由於用了貪婪這一關鍵點,給「好處」以刺激,同時使得你們都能相信。這個「好處」就是挖礦,挖礦其實就是那個很難的工做量證實,礦工要作的事情包括:接受交易信息,建造區塊,把區塊廣播出去,而後獲得新的「幣」做爲獎勵,這麼看來區塊就像一個小彩票。

打個比方,一個國王有一個如花似玉的女兒,不少人想娶國王的女兒,國王就很犯難,到底要把女兒嫁給誰呢?他想出來一個辦法,出一道很難的題讓這些人去算,誰只要最早算出了這道題就能娶國王的女兒。這裏國王是區塊鏈,國王的女兒是區塊,這些人就是礦工。

**注意:區塊記錄了交易,只有國王的女兒被嫁出去了才能產生新的交易,這是很是關鍵的一個節點。**全部礦工共同維持區塊鏈的交易系統,因此必須給礦工好處。在中本聰的系統中,每個新建區塊的人能夠獲得比特幣的獎勵。中本聰設計每隔21萬個區塊,獎勵減半,因此比特幣的總量是2100萬個。

也許有人會問,那全部區塊的獎勵都挖完了怎麼辦?這就要說到交易費了,礦工的獎勵來源有兩部分:發現獎勵和交易費。每筆交易都要抽取其中很小的一部分來當作交易費。

image

那麼做爲一個用戶,到底要信任哪一條我聽到的區塊鏈呢?注意,不要立刻相信,假設你如今在聽整個區塊鏈,必定要把本身的維度升高。就是不要站在一個使用區塊鏈的角度,而要感受咱們能看到的是一個網,是世界上全部和我相連的節點,聽到的是這個節點上不斷在更新的數據,每次聽到礦工說找到了一個特殊證實之後,不要立刻相信他,要等到幾個區塊產生以後,比特幣系統中,通常是等待6-7個區塊以後,才能確認這個新建的區塊是可信的你們都認同的。

image

假設Alice想控制整個鏈,全部的交易都由她來作,在中間添加不少步,去偷某個帳戶的錢,她確定說每一筆交易都得由我來建,那她就是跟世界上全部的礦工在進行競爭,而我做爲用戶不斷等待,等到6個區塊纔信任這個交易,除非Alice能跑贏全部的礦工,比全部礦工一塊兒算的速度更快地算到這6個區塊,就是所謂最長鏈的確認,不然就不可能實現她的詭計。

image

也就是咱們所說的共識攻擊的問題,理論上來講只要有51%的算力就能作,可是想一想看,咱們要等待6-7個區塊才能確認,若是這6個區塊都是你產生的,51%算的就是1/2的6次方,這是很是難作到的,因此這是個機率問題。

效率下降是得到去中心化共識的絕對代價,這是沒有辦法從技術上真正解決的。

區塊容量,區塊新建時間間隔

image

咱們來看幾個有趣的問題:

問題1:爲何區塊中不可能出現不可超支的狀況

以前咱們提到金融體系協議中有一個東西叫不可超支,爲何在區塊鏈中不可能出現不可超支的狀況?其實很簡單,由於整個大帳本中包含了世界上每一筆交易,能夠反向推導出任何一個地址的餘額是多少,而幣的產生方式是經過挖礦,挖礦能夠說是憑空產生幣的一種方式,每找到一個特殊數字,給它一個地址,系統就會自動經過一個代碼在你的地址上增長幣。而其餘人也不可能超支,由於地址中沒有幣的話就沒有辦法進行轉帳交易,從程序上阻止了超支的狀況發生。

問題2:每個區塊有多大?

每個區塊記錄的是轉帳交易,那這個區塊有多大呢?能夠是1M也能夠是10M去擴,越大意味着一個區塊所能承載的轉帳數量越多。但咱們不能讓區塊太大,區塊鏈的分佈式存儲數據庫隨着時間的增加容量會愈來愈大,由於會不斷往上增長區塊。

中本聰設計比特幣一個區塊是1M,能承載的交易量大概是最多2400筆。

問題3:hash摘要前面0的個數如何肯定?

這是動態調整的,涉及到兩個問題:0的個數和產生區塊的時間間隔,根據全網算力進行難度調整,這也是個機率問題,暴力破解窮舉法,才能算到這個值。0越多全網算力越強,經過調整0的個數,保證產生區塊的速度大概是10分鐘。

總結:區塊鏈解決了分佈式記帳對的痛點

image

記住雙重保險。

第一重:用鏈結構和分佈式存儲,解決了大帳本的篡改問題。

第二重:經過貪婪解決的信任,也就是共識,用最長鏈確認+激勵礦工,確保不是同一我的一直在新建區塊,解決了中央集權的問題。

二、如何用比特幣進行交易

image

區塊鏈系統裏有個術語:UTXO(unspent transaction outputs),能夠類比成它是人民幣的面值,一塊五塊十塊。一比特幣等於1億一聰,這是UTXO的最小單位,至關於一個比特幣最多能夠分紅1億份。UTXO有一個特色:等於一個幣值重估的數量和一段代碼鎖,這個代碼鎖就至關因而一個紅包加一個支付寶口令密碼,保證交易的安全。

假設我是一個用戶,想購買3.1BTC商品,而我只有一個4BTC的UTXO,我須要構建一個0.8BTC的UTXO做爲找零,剩下的0.1BTC做爲交易費,再構建 交易字段,輸入個人地址和對方的地址,廣播到比特幣網絡 ,等待礦工挖礦,等待確認,交易纔算完成。UTXO是經過不斷的交易產生的,

三、真正的比特幣網絡是什麼樣的?

image

全功能節點包括四個模塊:錢包、礦工、完整區塊鏈、網絡路由節點。

image

網絡路由節點很關鍵,它是連接全部不一樣節點的樞紐,至關於世界上一個個的服務器或基站。上圖是比特幣網絡的示意圖,從圖中能夠看出比特幣並非一個徹底的P2P系統,它中間也有服務器,用來鏈接各國的網絡,完成處理和彙總本地網絡信息,在兩個大型節點中進行交互,以提升整個網絡的效率。

四、比特幣區塊鏈交易處理能力

分享三個現狀

image

第一幅圖,橫座標是時間,縱座標是每秒產生交易的平均速度,你們能夠看到這個天花板是7筆,很難超過這個數量。中間的圓圈表示內存池中等待的交易的數量。舉個例子,假設這一秒鐘全世界比特幣價格下跌,全部人都要賣出,就會有不少人同時創建交易,這個交易量若是超過了一個區塊所能記載的上限2400筆,就須要進入內存池中排隊等待。

固然內存池中是有規則的,好比交易不能等的時間特別長,若是等了一個小時,那這筆交易的優先級就會變成最高,讓礦工先來處理。這些規則的代碼實現都在書裏,建議你們認真閱讀。

image

第二幅圖是每個區塊被產生的交易費獲得了多少?這個節點是一個特例集羣的節點,礦工挖到了一個區塊,有10BTC的交易費。橫座標是區塊大小的使用程度,由於每兩個區塊產生的時間不必定,很差判斷全世界在這10分鐘的間隔時間內產生了多少筆交易,因此10分鐘產生得越多,使用率就越高。圖上有一個110%,也是協議決定的。如今已經很阻塞了,基本上都用的是很高的百分比。

image

第三幅圖是平均確認時間。這是從錢包的角度來說,而不是指區塊鏈上共識創建的時間。從圖中能夠看到平均值大概在20分鐘左右。就是說一筆交易要等20分鐘才能確認,確實速度很慢很慢,不少人不能接受。

五、什麼是Merkle樹,它能夠用來幹什麼?

image

其實就是爲了解決SPV錢包的問題,我本地不存區塊鏈,但想作一個錢包,就要知道我建的這個區塊有沒有被礦工加到完整的區塊鏈中,須要進行搜索。哈希表能夠理解成一個數組,數組的下標就是哈希值。哈希表有一個好處:它的結果是可使得搜索的速度O1,樹形結構可使得搜索的效率變成log這樣的數量級。

因此每一個區塊中的全部交易都是用Merkle樹這種數據結構來存的,它的好處是:使得你若是作一個SPV錢包,在沒有存完整區塊鏈的時候,想要搜索一筆交易是否存在區塊鏈上的時間加快、網絡中的帶寬使用下降。就是你在拉取一些區塊信息的時候,不須要拉區塊的本體,只須要拉Merkle樹的節點,就能夠快速搜索到這個區塊是否存在。

用比特幣的人都會用到錢包,但不是每一個人都要挖礦,也不是每一個人都想去看每一筆交易是什麼樣子的,因此SPV錢包纔是比特幣網絡中大部分人會選擇的。Merkle樹大大提升了網絡的運行效率。

總結:區塊鏈技術解決了什麼問題

image

它容許咱們創建一個系統,讓全部的關聯方(用戶)能看到全部的轉帳記錄,而且使用這些數據。

咱們來對比以前的解決方案和區塊鏈解決方案。

第一,以前的解決方案是中心化的,咱們信任一個銀行。

第二,以前的解決方案能夠自建系統,花費成原本檢查一致性。

區塊鏈解決方案的優勢是達成一致性共識,創建信任。不足是帳本臃腫,消耗算力,可能淪爲洗錢的工具。

2

白話現代區塊鏈新興概念

image

一、2.0以太坊

image

以太坊就是一個全球計算機,前面咱們講了區塊中記錄了不少東西,有一個特別厲害的人叫V神,他想到一個問題:爲何不把這個記錄的東西換成代碼?好比A轉給B5塊錢,咱們如今把它變成代碼,用C語言直接寫一個簡單的代碼,就能夠實現A和B交換的功能。

寫到的這行代碼,同樣地算這個特殊數字,不斷在區塊上加一些東西,再加一個執行代碼,也能夠稱之爲指令,指向的是真正你存的這些代碼如何執行。因而就產生了一個全球計算機的概念,就能夠作智能合約了。

智能合約其實沒有多麼高大上,舉個例子,自動售貨機就能夠當作是一個智能合約,你給它兩塊錢,它給你一罐可樂,這就是智能合約,相似執行一段給錢出東西的代碼。

EOS使用了一個新的共識算法:DPOS,相似於表明投票機制,先選出部分表明節點,你們都信任他們,讓他們輪流來新建區塊。DPOS是放棄了一部分共識,來得到TPS的提升,加快以太坊全球計算機的運行速度。

Ripple是想作成一個全球化的「支付寶」,就是用去中心化的理念,把中心化的東西都去掉,它要解決的實際上是跨國價值流動的問題。

二、IPFS分佈式數據傳輸協議

image

IPFS是文件hash標識高速搜索+分佈式存儲,自帶文件管理和運行環境的P2P系統。簡單來講,就是咱們用一樣的技術再結合共識,把這個東西搬到每一個人的計算機上。這種分佈式存儲+區塊鏈價值體系能夠應用於:徹底解決盜版問題;分佈式遊戲、視頻和網站;另外一種架構的CDN系統或雲硬盤;與git結合,版本同步。

舉個例子,如今付費觀看有一個痛點,咱們想篩選掉那些咱們不想看的內容,好比廣告或垃圾片,可是花錢買票了,就不能退回來了。運用IPFS會怎麼樣呢?我能夠看幾分鐘,若是以爲不想看,只須要花這幾分鐘的觀影費,也就是說花的錢和瀏覽的流量成正比。相反,有價值的內容,好比一首歌,聽幾遍十幾遍均可能,可是不少人不會去買專輯,由於盜版的東西太多,咱們運用IPFS能夠設計一套代碼來解決盜版的問題。

三、HyperLedger超級帳本

image

HyperLedger是非公有鏈,就是隻在小範圍內作,即所謂的聯盟鏈,不須要徵求全部人的贊成,只須要聯盟中的幾個節點達成共識就行了。HyperLedger使用一個分佈式的架構讓聯盟中全部節點都能徹底瞭解,其中的全部內容透明化,相似於孵化系統,底下還有fabric等,能夠理解成框架和工具的集合,如上圖所示。

3

落地的點子

image

image

商業模式Dapp

影鏈,簡單來講就是明星向粉絲髮幣,購買明星幣的好處是看該明星的影視做品能夠打折,相似這樣的商業模式,其實就是粉絲經濟。

菩提,其實就是博彩,當莊家,抓住人「一晚上暴富」的心理。

紙貴。這是我認爲在版權保護方面作得不錯的一個項目,方式是把每個排隊的具體內容存在大帳本上,保證這個內容不可篡改,而且能夠直接用這個算法模式去檢索,看有沒有別人作過一樣的東西,一樣的有多少。

基礎設施

FAB,是我目前看到解決效率問題的一個比較成功的東西。

4

彩蛋:加密貨幣的「價格」和區塊鏈的價值

image

加密貨幣的「價格」

爲何要把二者分開來說呢?由於如今加密貨幣的價格和區塊鏈的價值是徹底不一樣的東西,由於有交易所的存在,加密貨幣的價格徹底由市場行爲推進,學金融的同窗很容易明白這一點。

加密貨幣最開始的價格是怎麼從0-1的?幾年前有我的用2萬個比特幣換了一個披薩,可能這是比特幣價格最開始產生的緣由:它能夠換物了。

影響加密貨幣價格的因素不少,包括市場行爲、供求關係、挖礦成本等,這個挖礦成本包括全網算力和顯卡成本。

區塊鏈的價值

區塊鏈的價值絕對不是體如今如今的價格上,它的價值體如今如下幾個方面:

  • 固有價值:解決了一致性和信任問題。

  • 媒介價值:中心機構的運維成本,是否能提升效率。

  • 資本價值:流動性=經濟增加。

  • 人才價值:頂尖人才的硬實力。

  • 潛力價值:成爲獨角獸的能力。

我以爲如今的比特幣系統,有很嚴重的痛點,只有這些痛點都被解決的時候,才能真正實現價值的重塑,它是信任和價值重塑的一個接口。

image

上期精彩:區塊鏈創業者:談企業級區塊鏈落地,傳統行業的崛起(分享實錄)

內容來源:BitTiger讀書會劉遙行老師的線上分享**《手把手帶你跟着中本聰發明比特幣 ——白話講解《精通比特幣》》**

本文編輯:Cynthia

如下是咱們的社區介紹,歡迎各類合做、交流、學習:)

image

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息