天天看點

區塊鍊技術指1.1 區塊鍊簡介

區塊鍊和比特币初體驗

區塊鍊(blockchain)是近年來最具革命性的新興技術之一。區塊鍊技術發源于比特币(bitcoin),其以去中心化方式建立信任等突出特點,對金融等諸多行業來說極具颠覆性,具有非常廣闊的應用前景,受到各國政府、金融機構、科技企業、愛好者和媒體的高度關注。

在本章中,我們首先介紹區塊鍊的定義和特點,然後通過介紹購買、存儲和交易比特币等實際使用場景來體驗區塊鍊,最後再探讨一些關于區塊鍊的常見問題。

1.1 區塊鍊簡介

2016年1月20日,中國人民銀行官方網站上發表了一條題為《中國人民銀行數字貨币研讨會在京召開》的新聞[1],這一消息迅速在各大主流新聞媒體和比特币、區塊鍊愛好者社群中傳播,成為推動區塊鍊技術在國内迅速升溫的“導火線”。這是自從2013年12月5日中國人民銀行、工信部、銀監會、證監會和保監會五部委聯合釋出《關于防範比特币風險的通知》[2]以來,相關首次公開對比特币底層技術——區塊鍊技術給予了高度評價。

在我們開始區塊鍊體驗之旅之前,讓我們簡要介紹區塊鍊的定義和其發展曆程。

1.1.1 區塊鍊起源——比特币

區塊鍊的英文是blockchain,字面意思就是(交易資料)塊(block)的鍊(chain)。區塊鍊技術首先被應用于比特币,如圖1-1所示。比特币本身就是第一個,也是規模最大、應用範圍最廣的區塊鍊。

圖1-1 簡化的比特币區塊鍊示意圖

1.1.2 區塊鍊和區塊鍊技術的涵義

目前,關于區塊鍊沒有統一的定義,綜合來看,區塊鍊就是基于區塊鍊技術形成的公共資料庫(或稱公共賬本)。其中區塊鍊技術是指多個參與方之間基于現代密碼學、分布式一緻性協定、點對點網絡通信技術和智能合約程式設計語言等形成的資料交換、處理和存儲的技術組合。同時,區塊鍊技術本身仍在不斷發展和演化中。

1.1.3 區塊鍊分類

以參與方分類,區塊鍊可以分為:公開鍊(public blockchain)、聯盟鍊(consortium blockchain)和私有鍊(private blockchain)。從鍊與鍊的關系來分,可以分為主鍊和側鍊。而且,不同區塊鍊還可以形成網絡,網絡中鍊與鍊的互聯互通,産生互聯鍊(interchain)的概念。

1.?公共鍊

公共鍊對外公開,使用者不用注冊就能匿名參與,無需授權即可通路網絡和區塊鍊。節點可選擇自由出入網絡。公共鍊上的區塊可以被任何人檢視,任何人也可以在公共鍊上發送交易,還可以随時參與網絡上形成共識的過程,即決定哪個區塊可以加入區塊鍊并記錄目前的網絡狀态。公共鍊是真正意義上的完全去中心化的區塊鍊,它通過密碼學保證交易不可篡改,同時也利用密碼學驗證以及經濟上的激勵,在互為陌生的網絡環境中建立共識,進而形成去中心化的信用機制。在公共鍊中的共識機制一般是工作量證明(pow)或權益證明(pos),使用者對共識形成的影響力直接取決于他們在網絡中擁有資源的占比。

公共鍊通常也稱為非許可鍊(permissionless blockchain)。如比特币和以太坊等都是公共鍊。公共鍊一般适合于虛拟貨币、面向大衆的電子商務、網際網路金融等b2c、c2c或c2b等應用場景。

2.?聯盟鍊

聯盟鍊(consortium blockchain)僅限于聯盟成員參與,區塊鍊上的讀寫權限、參與記賬權限按聯盟規則來制定。由40多家銀行參與的區塊鍊聯盟r3[3]和linux基金會支援的超級賬本(hyperleder)[4]項目都屬于聯盟鍊架構。聯盟鍊是一種需要注冊許可的區塊鍊,這種區塊鍊也稱為許可鍊(permissioned blockchain)。

聯盟鍊的共識過程由預先選好的節點控制。一般來說,它适合于機構間的交易、結算或清算等b2b場景。例如在銀行間進行支付、結算、清算的系統就可以采用聯盟鍊的形式,将各家銀行的網關節點作為記賬節點,當網絡上有超過2/3的節點确認一個區塊,該區塊記錄的交易将得到全網确認。聯盟鍊可以根據應用場景來決定對公衆的開放程度。由于參與共識的節點比較少,聯盟鍊一般不采用工作量證明的挖礦機制,而是多采用權益證明或pbft(practical byzantine fault tolerant)、raft等共識算法。聯盟鍊對交易的确認時間、每秒交易數都與公共鍊有較大的差別,對安全和性能的要求也比公共鍊高。

聯盟鍊網絡由成員機構共同維護,網絡接入一般通過成員機構的網關節點接入。聯盟鍊平台應提供成員管理、認證、授權、監控、審計等安全管理功能。

2015年成立的r3聯盟,旨在建立銀行同業的一個聯盟鍊,目前已經吸引了40多個成員,包括世界著名的銀行(如摩根大通、高盛、瑞信、伯克萊、彙豐銀行等),it巨頭(如ibm、微軟)。

銀行間結算是非常碎片化的流程,每個銀行各自有一套賬本,對賬困難,有些交易有時要花幾天才能校驗和确認。同時,其流動性風險很高,在監管報送方面非常繁瑣,也容易出現人為錯誤,結算成本很高。

針對這種情況,r3聯盟建構了一個銀行同業的聯盟鍊以解決這些問題。利用區塊鍊技術,銀行同業間可以共享一個統一的賬本,省掉對賬的繁瑣工作,交易可以做到接近實時的校驗和确認、自動結算,同時監管者可以利用密碼學的安全保證來審計不可篡改的日志記錄。

r3聯盟将開發corda分布式賬本來實作未來願景。corda的名字來源有兩個,該名字前半部分聽起來像accord(協定),後半部分來自于chord(弦,即圓上兩點間最短的直線)的定義。這個圓就代表r3聯盟中的銀行機構。從目前公開的資料來看,corda具有以下特點:

資料不一定要全局共享,隻有滿足合法需求的一方才能在一個協定裡通路資料;

corda不用一個中心化的控制就可以編排聯盟成員的工作流;

corda對聯盟成員之間的每筆交易形成共識,而不是在聯盟機構的系統層面形成共識;

corda的設計直接支援監管者監督和合規性監控;

交易由參與交易的機構進行驗證,而不會報告與交易無關的機構;

支援不同的共識機制;

明确記錄智能合約與用書面語言撰寫的法律檔案之間的關聯;

采用工業标準的工具來建構corda平台;

不設虛拟貨币。

corda平台注重互操作性和漸進部署,不會将保密資訊釋出給第三方。一個機構可以和對手機構看到一組協定,并可以保證對手機構看到的是同樣内容,同時報送給監管機構。corda包括共識、校驗、獨一性、永恒性和認證等功能。

3.?私有鍊

私有鍊則僅在私有組織使用,區塊鍊上的讀寫權限、參與記賬權限按私有組織規則來制定。私有鍊的應用場景一般是企業内部的應用,如資料庫管理、審計等。也有一些比較特殊的組織情況,比如在政府行業的一些應用:政府的預算和執行,或者政府的行業統計資料,這個一般來說由政府登記,但公衆有權力監督。私有鍊的價值主要是提供安全、可追溯、不可篡改、自動執行的運算平台,可以同時防範來自内部和外部對資料的安全攻擊,這個在傳統的系統是很難做到的。根據資料[1]的解讀,央行發行數字貨币可能就是一種私有鍊。和聯盟鍊類似,私有鍊也是一種許可鍊。

币科學(coin science)公司推出供企業建立私鍊的多鍊(multichain)平台。它提供保護隐私和權限控制的區塊鍊平台,來克服在金融行業裡碰到的推廣區塊鍊技術的障礙。多鍊的目标有以下3個:

1)保證區塊鍊上的活動隻能由選擇的參與者看到;

2)引入機制來控制哪些交易是被允許的交易;

3)提供安全的挖礦機制,同時不需要工作量證明以及與其相關的成本。

多鍊把挖礦權限制在一組實名的礦工範圍,解決了一直困擾私有鍊解決方案中的一方壟斷挖礦過程的問題。它的解決辦法是限制在同一個時間視窗同一礦工能産生的區塊鍊數。不像比特币那樣隻支援一條區塊鍊,多鍊可以友善地配置多條區塊鍊,并讓使用者同時用多條鍊。這樣的話,機構使用者可以讓管理者配置區塊鍊而不需要由區塊鍊專業開發者來做。

多鍊讓使用者在一個配置檔案中配置區塊鍊的所有參數,這些參數包括:

區塊鍊的協定,例如是私有鍊還是像比特币那樣的公共鍊;

目标區塊産生時間,例如1分鐘;

權限,例如所有人能連接配接,隻有一些人能發送或接收交易;

挖礦的不同形式(隻适合于私有鍊);

建立、移除管理者和礦工所需要的共識的程度,以及在建立期不需要強制執行的期限(隻适合于私有鍊);

礦工的報酬,例如每區塊50個币,然後每210?000個區塊減半付酬;

鄰節點連接配接和json rpc api的ip端口,例如8571、8570;

允許的交易類型,例如paytoaddress、paytomultisig、paytoscripthash等;

最大的區塊大小,例如1mb;

每個交易的最大中繼資料(op_return),例如4kb。

多鍊在節點的“握手”連接配接過程如下:

1)每個節點提供它的公共位址,使其他節點能将它的位址包括在允許連接配接的清

單中;

2)每個節點驗證鄰節點的位址是在它的授權連接配接的節點清單裡;

3)每個節點發一個盤問(challenge)消息給其他節點;

4)每個節點發回一個回複盤問資訊的簽名,證明擁有他們的對應公共位址的私鑰;

5)如果雙方對對方回複不滿意,可随時中斷連接配接。

在多鍊裡,所有的權限的授予和回收都是通過包含特殊中繼資料的網絡交易來實作的。找到創世區塊的礦工被自動授予所有的權限,包括管理其他使用者的管理者權限。管理者通過發交易給其他使用者,并在交易的輸出中包含授權使用者的位址以及授權資訊的中繼資料來給其他使用者授予相應的權限。當要改變其他使用者的管理和挖礦權限的時候,一個額外的限制條件是要由現有的管理者投票來決定。這些管理者的投票需要登記在不同的交易中,隻有當足夠的共識形成之後才能通過改變。

多鍊在很多方面的設計是為了使得使用者在私鍊和比特币區塊鍊能夠進行雙向遷移。多鍊是基于比特币核心的一個分叉。所有的對比特币的代碼改變都是本地化的改變。未來比特币的更新功能可以并入多鍊的本地代碼。它基于比特币的協定、交易和區塊鍊架構,隻是在握手協定上有所改變。其他的功能是通過中繼資料,同時改變交易和區塊的驗證規則來實作的。在接口方面與比特币完全相容,所有的新功能通過新的指令來提供。它可以做成普通比特币網絡的一個節點。

多鍊提供一個在企業内快速部署私鍊的解決方案。可以用于如去中心化交易所、資料庫同步、貨币結算、債券發行和p2p交易、消費行業積分獎勵機制等場景。

4.?側鍊

比特币主要是按其設計者中本聰的思想設計的一個虛拟貨币系統,雖然很成功,但是其規則已經相對固定,很難在比特币上做大的修改,因為這些修改會引起分叉,影響現有的比特币使用者。是以,要在比特币平台上做創新或擴充是比較困難的。一般來說,大部分代币系統是通過用比特币平台做基礎,重構一條區塊鍊,然後在上面使用新的規則發新的虛拟貨币。這就是目前大部分代币的做法。然而這些代币系統要從無到有得到人們的價值認可是非常困難的,通常的辦法是與比特币挂鈎,相當于用比特币作為儲備來發行代币,這樣就可以完成代币的貨币價值認可的過程。但随之而來的問題是,如何自動保障代币和比特币的挂鈎呢?因為虛拟貨币的一個特點就是價格波動非常大,一般人都不願意持有波動大、流動性差的代币。一個直接的想法就是通過比特币平台和代币平台的整合來做到實時的挂鈎。

2014年,亞當·貝克(adam back)等作者發表了一篇論文,題目是《enabling blockchain innovations with pegged sidechains》,中文意思是“用與比特币挂鈎的側鍊來提供區塊鍊創新”。其核心觀點是“比特币”的區塊鍊在概念上獨立于作為資産的比特币。他希望通過技術能支援在不同的區塊鍊上轉移資産,這樣新的系統可以重用原先的比特币。他提出一個側鍊(side chains)的概念。所謂側鍊,就是能和比特币區塊鍊互動,并與比特币挂鈎的區塊鍊。貝克列出了側鍊的一些屬性:

一個使用者在一條鍊上的資産被轉移到另一條鍊上後,還應該可以轉移回到原先鍊上的同一使用者名下。

資産轉移應該沒有對手卷款逃跑的風險,也就是不誠實的使用者沒能力阻礙資産轉移的發生。

資産的轉移必須是原子操作,也就是要麼全發生,要麼不發生。不應該出現丢失資産或欺詐性增加資産的情況。

側鍊間應該有防火牆。一條側鍊上的軟體錯誤造成鍊上資産的丢失或增加不會影響另一條鍊上的資産的丢失或增加。

即使在資産的轉移過程中發生區塊鍊的重組,也不應出現問題。任何因區塊鍊重組造成的中斷,應該局限在本條側鍊上而不應影響其他區塊鍊。通常側鍊之間最好能互相獨立,使用者可以從其他鍊條提供資料。隻有當存在明确的側鍊的共識規則時才需要去檢查另一條側鍊來對其驗證。

使用者不應需要跟蹤不經常使用的側鍊。

比特币是大家公認的公共鍊,是很多代币的基礎。但比特币的設計規則決定了比特币有一定的局限,例如平均每10分鐘出一個區塊,每個區塊1mb大小限制,這使得大概每秒才能确認7筆交易,這種交易速度而在很多場景下不能滿足業務需求。是以,通過側鍊來提升效率,擴充比特币功能是一個非常有效的做法。比如,閃電網絡把很多交易放在側鍊,隻有在做清算時才用上主鍊,這樣一來可以極大地提升交易速率,又不會增加主鍊的存儲負擔。

5.?互聯鍊

如圖1-2所示,針對特定領域的應用可能會形成各自垂直領域的區塊鍊,這些區塊鍊會有互聯互通的需求,這樣這些區塊鍊也會通過某種互聯互通協定連接配接起來。與網際網路一樣,這種區塊鍊上的互聯互通就構成互聯鍊,形成區塊鍊全球網絡。

圖1-2 區塊鍊網絡示意圖

1.1.4 區塊鍊價值與應用

根據各個區塊鍊采取的技術組合不同,形成的區塊鍊特點也大不相同。但是需要指出的是,區塊鍊技術是一攬子技術,可以根據業務的需要進行有針對性的組合和創新。

總體來說,去中心化信用機制是區塊鍊技術的核心價值之一,是以區塊鍊本身又被稱為“分布式賬本技術”“去中心化價值網絡”等。自古以來,信用和信任機制就是金融和大部分經濟活動的基礎,随着移動網際網路、大資料、物聯網等資訊技術的廣泛應用,以及工業4.0等新一代工業革命的開啟,網絡空間的信用作為數字化社會的基石的作用顯得更加重要。傳統上,信用機制是中心化的,而中心化的信任和信用機制必然導緻中心化機構成為價值鍊的核心,也容易引發問題。而區塊鍊技術則首先在人類曆史上實作了去中心化的大規模信用機制,在消除中心機構“超級信用”的同時,保證信用機制安全、高效地運作。

具體來看,區塊鍊的颠覆性價值至少包括以下5個方面。

1)簡化流程,提升效率。由于區塊鍊技術是參與方之間通過共享共識的方式建立的公共賬本,形成對網絡狀态的共識,是以區塊鍊中的資訊天然就是參與方認可的、唯一的、可溯源、不可篡改的資訊源,是以原來許多重複驗證的流程和操作就可以簡化,甚至消除,例如銀行間的對賬、結算、清算等,進而大幅提升操作效率。

2)降低交易對手的信用風險。與傳統交易需要信任交易對手不同,區塊鍊技術可以使用智能合約等方式,保證交易多方自動完成相應義務,確定交易安全,進而降低對手的信用風險。

3)減少結算或清算時間。由于參與方的去中心化信任機制,區塊鍊技術可以實作實時的交易結算和清算,實作金融“脫媒”,進而大幅降低結算和清算成本,減少結算和清算時間,提高效率。

4)增加資金流動性,提升資産利用效率。區塊鍊的高效性,以及更短的交易結算和清算時間,使交易中的資金和資産需要鎖定的時間減少,進而可以加速資金和資産的流動,提升價值的流動性。

5)提升透明度和監管效率,避免欺詐行為。由于區塊鍊技術可以更好地将所有交易和智能合約進行實時監控,并且以不可撤銷、不可抵賴、不可篡改方式留存,友善監管機構實作實時監控和監管,也友善參與方實作自動化合規處理,進而提升透明度,避免欺詐行為,更高效地實作監管。

區塊鍊的創新性最大的特點不在于單點技術,而在于一攬子技術的組合,在于系統化的創新,在于思維的創新。而正是由于區塊鍊是非常底層的、系統性的創新,區塊鍊技術和雲計算、大資料、人工智能、量子計算等新興技術一起,被認為是最具變革性的新興技術之一。其中,金融服務領域是即将被颠覆的關鍵領域之一,除此之外,區塊鍊還可以被廣泛應用于物聯網、移動邊緣計算等去中心化控制領域,以及智能化資産和共享經濟(如自動駕駛汽車、智能門鎖+租賃)等一系列潛在可應用的領域。下面我們重點介紹幾類區塊鍊變革金融服務的場景。

(1)金融領域的結算和清算

以金融領域的結算和清算為例,全球每年涉及各種類型的金融交易高達18萬億美元。如圖1-3所示,由于交易雙方互不信任,是以金融機構需要通過處于中心位置的清算結構來完成資産清算和賬本的确認。這類涉及多個交易主體且互不信任的應用場景就非常适合使用區塊鍊技術。原則上,可以直接在金融之間建構聯盟鍊,那麼機構之間隻需要共同維護同一個聯盟區塊鍊,即可實作資産的轉移和交易。

圖1-3 區塊鍊去中心化金融服務示意圖

(2)數字貨币

貨币是一種價值存儲和交換的載體,過去都是由中央法定機構集中發行的。以比特币為例,正是由于其非中心化的信任機制,雖然先後經曆多次交易所倒閉、“虛拟貨币”非法使用被查抄、多個政府禁止使用等危機,但比特币經受住了所有這些考驗,目前仍能穩定運作。比特币的出現和穩定運作,可以說完全颠覆了人們對于貨币的認識。相信區塊鍊技術或者說分布式賬本技術會在數字貨币技術體系中占據重要地位。

(3)跨境支付

另一個區塊鍊可颠覆的金融服務就是跨境支付。通常跨境支付到賬時間長達幾天甚至一個星期。除此之外,跨境支付需要雙邊的使用者都向當地銀行提供大量開戶資料和證明,以配合銀行的合規性要求,參與交易的銀行和中間金融機構還需要定期報告,以實作反洗錢等其他合規性要求。這是一個典型的涉及多方主題的交易場景,區塊鍊技術可以應用在多個環節。區塊鍊技術,一方面可以減少使用者重複送出證明材料,提升效率,另一方面可以更好地實作合規、實時性等,大幅提升金融機構的運作效率,提升監管效率。此外,由于區塊鍊技術可以在銀行等金融機構之間直接通過區塊鍊實作資金和資産的轉移,是以可以去掉高昂的中間費用。此外,還可以結合智能合約等技術,在合約中規定好實施支付的條件,在支付的同時保證義務的實施,提升交易的安

全性。

(4)财産保險

财險是除壽險之外最大的保險。傳統上,财險理賠是使用者的痛點和成本瓶頸,估計理賠成本的占比至少高達保險公司收入的11%。而且由于理賠過程中使用者需要提供大量的資料,客戶體驗往往非常不友好。由于每個理賠可能會涉及大量的手工操作,是以需要占用大量的人力、物力來進行理賠處理。此外,由于保險公司各自為政,财險理賠還需要對抗保險欺詐。而區塊鍊技術則可以很好地緩解财險理賠的使用者痛點,降低理賠成本。首先區塊鍊可以減少客戶提供理賠資料和證明的負擔,如果資産可以智能化地嵌入智能合約,則資産可具備自動啟動理賠流程的能力,甚至可以實作自動化理賠,大幅加速理賠過程,改善客戶體驗,甚至可以在聯盟成員之間進行合理的資料共享,有效地發現和排除保險欺詐。此外,區塊鍊技術的應用可以大幅度減少保險公司對中介代理服務人員的需求,進而大幅度降低營運成本。

此外,區塊鍊還可以廣泛應用在物聯網、邊緣計算、存在性證明等許多領域,讀者可以參考《blockchain:blueprint for a new economy》一書。此處,特别強調的是關于區塊鍊的應用可能層出不窮,關鍵還是要了解區塊鍊技術的内涵和變革原理,深刻體會區塊鍊去中心化的系統化思維,進而可以結合自身對相關行業的了解和需求,創造出新的解決方案、新的價值。

繼續閱讀