999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

區塊鏈技術及應用

2018-06-15 01:18:06郭學沛楊宇光
信息安全研究 2018年6期
關鍵詞:數據庫機制

郭學沛 楊宇光

(北京工業大學信息學部 北京 100124) (876816720@qq.com)

1 區塊鏈概述

區塊鏈是在區塊鏈技術之上形成的公共數據庫,是多種計算機技術的全新的、綜合的應用,包含有分布式數據存儲、加密算法、點對點傳輸、共識機制等,借此具有去中心化的特性.可信互聯網的真正構建始于區塊鏈的問世.

區塊鏈獨特之處在于能夠在陌生節點之間構建點對點的可靠的信任,而無需第三方可信權威機構介入,信息得到公開的同時隱私也得到保護,所有的個人在維護自身利益之余又可一起參與決策,既提高了交易的效率,又大幅降低了成本.區塊鏈技術的優勢在于去中心化,通過運用加密算法、時間戳、樹形結構、共識機制等,構建了真正去中心化的分布式可信網絡,加入其中的節點無需知道并信任彼此也可進行交易,解決了目前中心化模式存在的低可靠性和低安全性、高成本、低效率等問題[1].

2 區塊鏈分類

公有鏈:對節點的加入和數據的公開沒有任何限制.所有節點均可在不受其他影響的情況下進行交易,以及參與其他共識決策活動.

私有鏈:某組織擁有并管理此種區塊鏈.讀取權限由該組織完全決定,參與節點的類型和數量也由組織控制.相比于傳統的分享數據庫,私有鏈由于控制了權限等內容,使得交易更加安全,更利用加密技術.

聯盟鏈:部分組織共同擁有的區塊鏈是一種特殊的私有鏈.已有的應用有R3區塊鏈聯盟、Chinaledger、超級賬本項目聯盟等[2].

數據庫的創建最初是服務于文件系統的,關系數據庫領域中的關系模型、事務處理、查詢優化三大成就的出現滿足了以銀行為代表的金融機構的業務需求,進而產生了一系列的關系數據庫產品.互聯網行業的迅速發展對數據庫也產生了更高的要求,由于非結構化數量的大量增多,NoSQL數據庫應運而生并產生了一系列的相關產品.如今區塊鏈去中心化、分布式存儲的特性很好地解決了信任問題,迎合了發展迅速的去中介的共享經濟,成為其理想的數據庫平臺.

比特幣是發展最完全的區塊鏈應用,但其僅為數字貨幣提供服務,為此業界推出了多種支持通用應用的區塊鏈平臺,眾多公有鏈應用中以太坊發展最為完善,Quorum,Monax,Dfinity,HydraChain和BCOS等眾多平臺都是基于以太坊構建和擴展的;而聯盟鏈中應用最廣泛的通用平臺則是Hyperledger Fabric.

3 區塊鏈架構

以比特幣、以太坊、超級賬本三者為例來看,不同的平臺在具體實現上各有不同,但整體布局上大同小異,整體上可劃分為網絡層、共識層、數據層、智能合約層和應用層5個層次.

3.1 網絡層

區塊鏈建立在P2P網絡之上,主要服務于涉及數字資產的金融應用,且節點地位平等,對節點的出入也沒有嚴格的控制.因此,可容忍單點故障的P2P協議就很好地滿足了區塊鏈平臺的分布式要求,成為其網絡傳輸協議首選.鏈上節點以平等的身份,通過扁平的拓撲結構來相互連接,各節點功能相同,無層次等級之分.

P2P協議主要用于點對點的交易和數據共享,不同的平臺P2P協議的實現方式有所不同.比特幣和以太坊都基于TCP協議,Hyperledger Fabric則是利用了HTTP2協議.每個節點都在實時地監聽整個網絡,當收到相鄰節點發來的交易請求,節點會驗證其數字簽名,證明機制是否完備,依次來判斷交易是否有效,是否值得進行下一步處理和轉發,無效的交易和區塊會被拋棄,減少了整個鏈上存儲的數據量.

3.2 共識層

一致性問題歷來是分布式數據庫的一大難題,Paxos算法和Raft算法為該問題提供了解決方案,單一機構管理下的這些數據庫無需考慮節點是否可信的問題,崩潰容錯是算法唯一要解決的問題.區塊鏈由于去中心化的特性需要多方共同管理,此時節點是否可信也需要納入考慮的范圍,需要支持拜占庭容錯,復雜度明顯上升.PBFT(practical Byzantine fault tolerance)將拜占庭協議的復雜度降至多項式級別,從而允許分布式系統使用拜占庭協議,PBFT由Castro和Liskov[3]提出.

Kotla等人[4]提出了Zyzzyva,充分任可節點的可信度,認為只需在發生錯誤后在節點間達成共識即可,正常情況下無需實時共識一致.Kwon等人[5]提出了Tendermint,類似PoS機制,采用投票機制的同時根據節點的重要程度來分配不同權重的選票,最后權重超過23即可達成共識.這樣無需所有節點都參與投票,提高了共識的效率.Liu等人[6]提出了CFT(Cross Fault Tolerance),肯定了網絡和拜占庭節點的可靠性,認為二者不會完全被惡意攻擊者控制,簡化了BFT過程.

由于節點可自由進出,惡意節點可能仿造大量無效交易進行女巫攻擊,為了防止這一點,比特幣平臺采用了工作量證明機制,要求節點利用自己擁有的算力來完成任務,從而爭奪新區快的記賬權.但這樣會高度依賴節點的算力,未得到記賬權的節點花費的資源就全部浪費了,因此又提出了根據節點所擁有的股權多少來決定區塊生成難度的權益證明機制——PoS機制.比特股又創新地建立了股份授權證明機制——DPoS機制,投票選出幾位代表來輪流獲得區塊的記賬權.

3.2.1PoW機制

PoW機制通過設計與引入分布式網絡節點的算力競爭,保證數據一致性和共識.所有參與“挖礦”的網絡節點的目標都是通過遍歷來尋找一個隨機數,以使得當前區塊的區塊頭經過2次SHA256運算后結果小于等于某個給定值.優先實現目標的節點獲得此區塊的擁有權,同時獲得一定比特幣的回報作為挖礦的獎勵.此外,比特幣會動態地調整預定難度值,使得尋找隨機數所需時間穩定在10 min左右.PoW共識機制關聯起了比特幣的發行、交易和記錄,又以隨機的方式提供了記賬權,保證了比特幣系統的安全和去中心化.

PoW 在區塊鏈網絡中的共識流程如下:

1) 通過廣播,所有加入區塊鏈網絡的節點均收到新交易產生的信息.

2) 每個節點都會收集自前一區塊生成以來接收到的所有交易,并根據這些交易計算出區塊頭部的Merkle根.節點需要將區塊頭中的隨機數Nonce部分從0遞增至1,遞增的過程中不斷計算區塊頭經過2次SHA256運算后的Hash值,直至結果小于等于當前網絡給定的目標值.

3) 全網節點同時參與計算,若某節點率先達成條件找到合適的隨機數,則該節點將獲得新區塊的記賬權及一定數量的比特幣作為挖礦的獎勵,并將挖到的新區塊向全網廣播.

4) 其他節點接收到新區塊后,會驗證區塊中包含的交易和其計算出的隨機數是否符合條件,如果滿足則承認該區塊,將其加入區塊鏈中,并開始爭奪下一區塊的記賬權.

通過該機制,節點間無需交換額外的信息即可達成共識,破壞系統的代價極高,因此易于實現且難以破壞.但會造成能源(電力)和資源(算力)的浪費,同時區塊的確認時間較長[8].

3.2.2PoS機制

PoS采用的是權益證明,記賬權由擁有最高權益的節點獲得,而非PoW機制中擁有最高算力的節點.節點對特定數量貨幣的所有權成為權益、幣齡或幣天數.幣齡等于貨幣數量乘以最后一次交易時間長度.長期持幣者有更長的幣齡,幣齡可以視為其在系統中的權益.PoS共識過程的難度與節點擁有的幣齡成反比,累計消耗幣齡最高的區塊將被鏈接到主鏈.PoS機制無需消耗鏈外資源和能量,因此相較PoW機制很大程度上減少了能源和算力的浪費.

PoS機制直接根據礦工擁有的股權(數字貨幣量)來決定挖礦難度,省去了礦工購買礦機等硬件設備的花銷,也節約了電力等能源的消耗:

H(n‖h)≤s(M).t,

M表示某礦工;函數s用于計算礦工擁有的股權,擁有的股權越多挖礦的整體難度就會越低,越容易找到合適的n.

PoS的優點是所需算力很少.但由于權益擁有者并非都是記賬的有效參與者,因此很多時候還需通過挖礦來決定記賬權[8].

3.2.3DPoS機制

DPoS在繼承PoS優點的基礎上,通過將記賬人專業化改進了其不足.通過投票的方式選出一定數量的記賬人來輪流記賬,節點擁有的權益多少就是選票的多少.被選中的記賬人節點代替全網的普通節點進行驗證和記賬,同一時刻需要90%以上的記賬人節點在線才能保證安全與可靠.該共識機制中每個節點都能夠自主投票來選擇適合的記賬人節點,且由這些節點輪流記賬生成新的區塊.

該機制無需所有節點參與記賬,節約了時間,可以達到秒級的共識驗證.缺點是該共識機制依賴于代幣,但很多商業應用是不需要代幣存在的[8].

3.2.4PBFT

1) 全網中選出1個節點負責生成新區快,該節點稱為主節點;

2) 網絡中所有節點會向全網廣播新產生的交易,主節點負責從中篩選出部分交易放入新區快內,并將其排序后產生的列表告知全網;

3) 收到主節點廣播的列表后,每個節點都需要通過排序模擬來執行交易,并計算新區快的Hash摘要,之后告知全網;

4) 如果1個節點收到2f(f為可容忍的惡意節點數)條和自己計算結果相同的Hash摘要,就向全網廣播1條commit消息;

5) 1個節點在收到2f+1條commit消息后,即可正式提交新區塊及其交易到本地的區塊鏈和狀態數據庫.

3.2.5瑞波共識算法

該算法需要參與的全網節點通過一些特殊節點列表來形成共識.初始特殊節點列表數量有限,新特殊節點的加入需要得到現有特殊節點中51%的節點同意.共識遵循著核心成員的51%權力,非特殊節點則權利很有限.該算法實際上是由特殊節點控制的中心化的算法,特殊節點群發生問題時整個機制將崩潰,外部節點無法進行任何挽救.

3.3 數據層

在數據結構的組織上,時間戳是區塊鏈在前人研究基礎上的一大創新.文檔時間戳用于對新生成的文檔、當前時間節點以及指向舊文檔的Hash指針三者簽名,之后的新文檔又將當前的文檔當作舊文檔來簽名,這樣便由時間戳為引子產生了一條證書鏈.鏈中時間一旦被簽名就無法篡改,可以用來很好地追溯文件的生成時間和前后順序等.現有區塊鏈平臺正是采用了基于文檔時間戳的數字公證服務來對文檔等信息進行簽名處理.

每個區塊由區塊頭和區塊體2部分組成,交易數據主體、時間戳、前一區塊的區塊Hash值存放于區塊體內.本塊內的交易數據經過哈希運算生成的Merkle根用于保證數據的穩定安全,同時用于簡單支付驗證.前塊哈希則是將不同的區塊聯系在一起的紐帶.不可篡改的時間戳用于說明區塊的生成時間,方便以后追溯查找.比特幣的區塊頭還含有當前挖礦的難度系數、挖礦時找到的合適的隨機數Nonce等.

在數據模型方面,比特幣使用的是基于交易的數據模型,交易的輸入和輸出分別表示交易的來源和去向,二者共同構成了一筆交易,且將不同的交易聯系在一起.以太坊和Hyperledger Fabric則采用了基于賬戶的模型,方便快速查找到當前賬戶的余額和狀態,以便支持更多的通用應用.

在數據存儲的設計上,區塊鏈數據常以日志文件格式來存儲,這點類似于傳統數據庫的預寫式日志.而索引數據和狀態數據則存入鍵值對數據庫方便系統進行基于Hash值的鍵值對查找.

3.4 智能合約層

智能合約本質上是一種部署在區塊鏈的數字協議,由算法和程序來編寫,達到觸發條件后可自動執行,無需人為的干預.起初,智能合約是一組數字形式的承諾,包括合約雙方同意履行承諾而擬定的協議,期望將合約與實物結合來創造靈活的智能資產.由于區塊鏈可去中心分布式存儲的特點,智能合約借此完成了去中心化的計算.

智能合約中含有提前定義好的狀態信息、轉換規則、合約執行條件以及合約約定的操作等,合約參與方簽署后,作為一段代碼加入區塊鏈數據中,通過區塊鏈網絡的傳播,經各節點驗證后被記入分布式賬本中.區塊鏈可以實時監控整個智能合約的狀態,在確認滿足特定的合約執行條件后啟動并執行合約中規定的操作.

比特幣的腳本可視為智能合約的雛形,其是一組類型單一、功能有限的指令.以太坊使用了圖靈完備的編程語言Solidity,Serpent,與可模擬程序執行的沙盒環境——以太坊虛擬機EVM(Ethereum virtual machine),以供用戶編寫和運行智能合約.Hyperledger Fabric的智能合約被稱為Chaincode,Docker容器是其沙盒環境,編程語言則選用Go和Java.

3.5 應用層

基于比特幣的交易是比特幣平臺上應用的主體.以太坊則功能更加豐富,除了基于其特有的以太幣的數字貨幣交易外,還支持去各種中心化應用.Dapp是其上的一種Web前端應用,由JavaScript語言編寫,利用JSON-RPC與運行在以太坊節點上的智能合約進行交互.超級賬本上的應用則主要面向企業級,未提供數字貨幣,其應用可基于Go,Java,Python,Node.js等編程語言構建,并通過gPRC或REST與運行在Hyperledger Fabric節點上的智能合約進行通信.

4 智能合約

智能合約本質上是寫好的一段代碼,在預定條件滿足時無需用戶干預可自動執行代碼內容,實現“代碼即法律”的目標.借助區塊鏈擁有的去中心化特點,智能合約無需管理者參與,一旦部署并觸發就無人可將其強制停止,且可同時運行在全鏈的所有節點上.智能合約的運作機制如圖1所示,其中Txn表示每個區塊所含的n筆交易:

圖1 智能合約運行機制

智能合約通常與商業活動掛鉤,依照其邏輯編寫完成后就可布置到全網的所有節點上.在以太坊中,合約存放在區塊鏈上,滿足條件觸發合約時由以太坊虛擬機(EVM)加載運行;在 Hyperledger Fabric中,合約被打包成Docker鏡像,網絡中所有節點會基于此各自構建一個Docker容器,同時對合約進行初始化,然后等待被調用.外部應用通過調用智能合約來實現各種交易,欲修改智能合約需要在全網達成共識,同時所有的修改還會被記錄在區塊鏈上,狀態數據庫同時會保存修改后的結果,方便有據可查(例如,轉賬交易的轉賬金額會被記錄到區塊鏈,賬戶余額的增減會被應用到狀態數據庫).僅查詢不涉及修改時則無需共識和記錄.

5 可擴展性

數據庫的性能可通過橫向擴展增加節點數來提高,且提高過程呈線性.比特幣、以太坊和Hyperledger Fabric目前采用單鏈方案,即整個網絡只有一條鏈作為區塊鏈的主鏈,網絡上的每個節點地位、功能都相同,都需要完成同樣多的工作,因此單個節點的能力強弱就成為制約整個系統處理能力的關鍵.同時,無論何種共識算法,其都會有資源、能源、時間的消耗,因此節點過多可能會導致系統的整體能力不升反降.為了實現動態的可擴展性,以太坊和Hyperledger Fabric分別創新了分片和多通道2種解決方案,使得全網中同時含有多條區塊鏈,克服了全網處理能力受限于單個節點的短板,又可并行處理多筆交易,從而提升系統整體性能[7].

5.1 分 片

以太坊分片的依據是賬戶地址,分片之間并非完全獨立,每個分片內都有一條獨立子鏈,加入哪個分片由用戶自行選擇,每個節點選擇加入哪個分片或哪幾個分片由節點基于自身能力來決定,加入后則要負責處理和存儲這些分片上的交易.最終所有的分片都會至少有一個節點加入,某一節點不再需要存儲和處理全部的數據,訪問自身沒有的數據時可從其他分片內的節點讀取.應用分片技術后,每個片相當于成為一條獨立的鏈,由于每個片都只包含了全網的部分節點,所以片內的算力和明顯小于之前的全網所有節點算力總和.單個分片內攻擊者容易突破51%的算力,因此不再適用工作量證明機制,改進后的以太坊2.0使用的是基于權益證明機制的Casper共識算法.

5.2 多通道

不同于以太坊是出于均衡資源的考慮來將全網按地址劃分成片,Hyperledger Fabric的通道技術則是基于交易規則將整個區塊鏈網絡劃分為多個邏輯上的通道,每個節點根據自身需要負責參與的交易不同自主地選擇加入不同的通道,如圖2所示,每個節點可以加入多個不同的通道,并可以同時接收并處理多條鏈上的區塊,多個鏈上的交易可以獨立、并發地執行.相對于原來的單鏈結構,全網吞吐量將顯著提升.

圖2 多通道示意圖

基于PoW共識機制的比特幣和以太坊對節點的出入并沒有進行任何限制,節點數量并不固定.而Hyperledger Fabric采用的PBFT算法要求節點數目已知且固定不變,因此限制了節點的加入和退出.Hyperledger Fabric1.0將網絡節點分為共識節點和記賬節點,將共識服務和記賬服務分離開來,從而使得記賬節點可以按照需求動態加入或退出,進一步提高了系統的可擴展性.

6 安全性

出于安全性的考慮,傳統數據庫一般都設計了一整套完備的用戶管理機制和存取控制系統,但二者通常都需要一個權威可信的中心節點來運行控制,并不適合區塊鏈所倡導的去中心化;同時,若對數據的存取進行限制,公有鏈所說的數據完全公開透明便無法實現.因此這2種傳統的方法都不適合于區塊鏈網絡.區塊鏈采用的是數字簽名來證明貨幣對的歸屬權,同時可通過簽名驗證來保證交易不可篡改、不可否認;為保障交易雙方及交易具體信息的隱私性,每次交易時都會使用不同的數字證書和賬戶地址.

6.1 簽名驗證

由于公有鏈強調數據的公開透明,因此比特幣和以太坊都未設置用戶管理,公鑰是用戶唯一的身份證明.交易的安全可靠則由數字簽名算法來保證,簽名算法使用了橢圓曲線數字簽名算法(ECDSA)[9].

交易過程中(以轉賬交易為例),接受者需要向發起者提供其比特幣地址pubKeyHash,該地址是接受者公鑰經SHA256和RIPEMD160 2次Hash運算的結果.該比特幣地址會被存放在交易的輸出腳本ScriptPubKey中.為保證交易的可靠性,發送者需要對該筆交易數據進行簽名,簽名用于說明發起者承認該筆交易由自己發出,自己親自花出了前一筆交易中獲得的比特幣.之后把簽名sig和發送者自身的公鑰pubKey放在輸入腳本ScriptSig中.接受者一方面可用公鑰來驗證簽名sig的有效性,另一方面可以驗證其Hash值是否和前一筆交易輸出腳本中的比特幣地址pubKeyHash一致,以驗證發送者確實擁有交易中約定數量的比特幣.以上所有簽名與驗證過程都是基于輸入腳本和輸出腳本自動完成的.

以太坊的簽名過程如圖3所示.基于橢圓曲線算法強大的功能,交易數據無需再包含發送者的公鑰和地址,結合發送者提供的ECDSA簽名、交易數據、橢圓曲線參數便可還原出發送者公鑰,再經SHA3運算可得出發送者的地址.這樣雖然提高了一些驗證過程中的運算量但減少了交易所含的字節數,節約了存儲開銷.

Hyperledger Fabric主要服務于聯盟鏈,因此所有節點和用戶的出入必須經過聯盟的授權與同意.為此Hyperledger Fabric提供了相應的成員管理服務——Membership,并基于CA中心分別提供了ECert(enrollment cert),TCert(transaction cert)和TLSCert(transport layer security cert)3種類型的數字證書用于不同環節的驗證.ECert證書用于在登錄系統時確認節點和用戶的身份.TCert證書用于交易過程中的簽名與驗證,Hyperledger Fabric的每筆交易都需要發送者提供簽名和交易證書,為保護用戶的隱私性,防止惡意攻擊者通過交易證書發現交易發起者,每次交易可使用不同的TCert證書.TLSCert證書則用于系統組件間的SSLTLS通信.

圖3 以太坊簽名過程

6.2 SHA-256算法

SHA-256算法計算過程中涉及6個邏輯函數和1組常數Kt,采用了512 b大小的消息塊,每一個消息塊xi又分成16個32 b的字M0,M1,…,M15,計算過程如下[10]:

1) 初始化:

2) 構建消息列表Wt:

4) 對于0≤t≤63,執行:

5) 計算每個分組的中間Hash值:

最后輸出256 b長度的Hash值:

整個過程中涉及到的函數計算如下:

Ch(x,y,z)=(x∧y)⊕(x∧z),

Mai(x,y,z)=(x∧y)⊕(x∧z)⊕(y∧z),

6.3 橢圓曲線簽名算法

橢圓曲線密碼系統(ECC)具有密鑰短、運算快等優點,因此可以在ECC理論基礎上建立相應的方案體系來增強交易的安全性.橢圓曲線定義在有限域G(p)上,其上的有理數點構成了一個阿貝爾群,因此橢圓曲線密碼的密鑰只可單向推導,即從公鑰得到私鑰很容易實現,反之則很難,單向性很好地保護了數據的安全.

6.3.1橢圓曲線系統ECC

y2+a1xy+a3=x3+a2x2+a4x+a6.

圖4 橢圓曲線上的加法定義

橢圓曲線上的加法定義如圖4所示:橢圓曲線(EC)上任取2點p1,p2,求和后可得到點p4:過p1,p2作直線L,它與EC相交于點p3,過p3作x軸垂線交EC于點p(x,y),令p4=p=p1+p2.曲線上的點對所定義的加法運算構成一個阿貝爾群.

當p1=p2時,多個p連續相加則轉化為數乘運算:kp=p+p+…+p,共需完成k-1次加法.數乘運算也具有單向性,當k和p已知時很容易求出kp,反之知道結果要求k則十分困難.利用其單向性的優點,可令x=k為私鑰,公鑰為y=xp.由公鑰很難推導出私鑰[11].

6.3.2簽名與驗證方程

簽名方程對實現ElGamal,DSA等系統方案至關重要.在ElGamal系統中簽名過程如下:

取素數p,另取q使q=p-1或q是p-1的大素數因子.然后取g介于1和p之間并滿足gq=1(modp).令私鑰x

簽名方程(SE):sk=m+rx(modq),

(1)

驗證方程(VE):rs=gmyr(modp).

(2)

簽名者通過式(1)生成簽名(s,r),驗證者將其帶入式(2),若等式成立則說明簽名有效.式(1)、式(2)中涉及到了乘法和冪運算,計算過程中有一定困難,橢圓曲線簽名方程對二者進行了一定的改進,得到新的方程如下:

簽名方程(SE):sk=m+rx,

(3)

驗證方程(VE):rs=mg+ry,

(4)

其中,m為待簽名文件,可為明文,已加密文件或經過Hash函數的結果.r=kg,g為橢圓曲線加法群生成元,x為私鑰,y為公鑰,即有y=xg.從式(3)中求出s,若代入式(4)中,有式(4)成立,則通過簽名驗證.

6.4 隱私性

比特幣和以太坊的賬戶地址都是公鑰的Hash值,不直接反映用戶的真實身份信息,二者借此實現了一定程度的匿名性,保護了用戶的信息.另外,每次交易都使用互相毫無關聯的新地址,切斷了交易之間的關聯性,使得不可通過一個交易來牽扯出其他交易.但是,這些方案無法保障絕對的隱私性.

區塊鏈需要在驗證交易正確的同時保證交易具體內容的隱秘與安全.目前常用的隱私保護方案包括混幣、環簽名、零知識證明、同態加密等.

Hyperledger Fabric 0.6采用了單鏈的方案,鏈上用戶都存有并可訪問到全網的所有數據.聯盟鏈主要面向商業應用,用戶多為大型企業,因此保護其數據顯得更為重要.Hyperledger Fabric 1.0采用了多通道的方案,交易的雙方通過建立專屬于自己的通道來保證交易的安全與隱秘.

7 區塊鏈應用

當前,區塊鏈主流應用重點分布在以下幾個領域:

1) 金融領域

金融一直以來都是各國經濟發展的最大動力,然而當前金融行業普遍需要權威中介機構的存在,很大程度上提高了成本且降低了效率.區塊鏈技術獨有的分布式、去中心化特點則可將金融行業從現有的約束中解放出來,當前在證券、支付、理賠等方面都有典型的成功應用[12],如B2B跨境支付項目、Linq交易平臺等,極大地簡化了流程,提高了效率,降低了成本.

2) 物聯網領域

當前物聯網需要大型的云端服務器來連接不同的設備,中心化的網絡架構一定程度上限制了其規模的擴大,否則需要支付巨額的搭建和維護費用.而借助區塊鏈,物聯網上的所有設備都可當作一個獨立的主體來運行,彼此之間互相合作而不互相約束[13].典型的有三星和IBM打造的ADEPT系統.

3) 公共服務領域

區塊鏈中交易一旦被打包入塊并加入鏈上,便具有了很高的安全性,很難被攻破并篡改.利用區塊鏈的這一特點,可以在公共服務領域建立全新的認證機制,提高管理效率,改善管理水平,縮短價值的創造和投入利用的周期[14].例如:Ujo Music平臺可通過區塊鏈管理音樂版權;BitProof利用區塊鏈來快速認證用戶的學歷信息等.

4) 公益慈善領域

同樣借助區塊鏈上信息可靠性高、不易被篡改的特點,公益領域中的相關信息均可存放在區塊鏈上,并可選擇性地公開相關信息,方便公眾實時監督的同時尊重參與者的意志,保護其私有信息,例如BitGive建立了一個致力于將比特幣用于慈善事業的捐贈平臺,極大地促進了慈善事業的發展.

5) 供應鏈

由于加入區塊鏈的所有節點都共享有全鏈的所有數據,所以借助區塊鏈后供應鏈的信息共享和確認變得異常容易,其中存在的問題也可被快速發現并針對性地提出解決方案,其數據不可篡改且可追蹤時間戳的特性,可以輕松地實現問題的舉證與追責.如英國的Provenance就為加入其中的企業提供了完整的供應溯源服務.

6) 發展路線

針對區塊鏈的特點及當前的發展現狀,大致形成了2條不同的發展路線:

自上而下的路線將重心放在大型金融機構如銀行,投資機構等,促進其組建區塊鏈聯盟,進而帶動其他行業中的區塊鏈發展;自下而上的路線則將目光聚焦于低層社區,推動諸如比特幣和以太坊這樣的商業模式的形成和運作.

8 國內區塊鏈發展

中國企業級的區塊鏈發展始于2015年年底,經過1年的發展,已有近百家相關公司落地生根,并涌現出了一大批優秀的代表性企業.

我國的區塊鏈行業始于聯盟的成立,國內主要形成三大聯盟:2016年1月5日,中國首個區塊鏈聯盟“中國區塊鏈研究聯盟”落戶北京;2016 年4月19日,中國分布式總賬基礎協議聯盟(China Ledger)宣告成立;5月31日,由微眾銀行、深金信會等25家單位發起的金融區塊鏈合作聯盟正式成立,其中絕大多數是金融機構,剩余則是金融科技企業和互聯網企業.

2016年國內區塊鏈研究聯盟相繼成立,國內金融機構開始由簡單地使用區塊鏈向對區塊鏈進行進一步的探索.2017年區塊鏈應用落地將進一步加速.同時,海外區塊鏈成為國內企業的投資熱點,國內企業積極利用全球資源,進而發展自身并帶動全行業發展.

無論從哪個方面來看,中國的區塊鏈產業都處于一個十分活躍且前景良好的階段.

9 區塊鏈的優勢與缺點

9.1 優 勢

1) 去中心化.不同于傳統數據庫受制于單一機構,由該機構提供管理和維護,部署也局限于有限的集群內,去中心化是區塊鏈的最大特點,區塊鏈網絡中所有節點都處于平等地位,沒有中心節點的存在,所有節點都享有對全部數據的存儲和訪問權,從而實現了陌生節點間可彼此信任,從而進行交易和信息共享.

2) 不可篡改.不同區塊間依靠區塊頭內的Hash指針和區塊體內的Merkle樹來連接,這種方式保證了已錄入塊內的數據是安全、不可篡改的.去中心化的分布式存儲和共識機制的運用更增加了信息的安全性,單一節點被攻破不會影響其他節點.

3) 可追溯.區塊內的時間戳部分記錄了區塊的生成時間,整個鏈上存儲著初始以來的所有交易數據,基于數據的不可篡改和時間戳的存在,各節點和監管機構都可隨時方便地追溯、監管任一交易.

4) 高可信.由于去中心化的特性,加入區塊鏈的節點彼此之間無需互相信任也可安全地進行點對點交易和信息傳輸.且鏈上的每筆交易都包含發送者的簽名,都需經過全網共識,多重機制保證了數據的不可篡改、不可否認.

5) 高可用.傳統分布式數據庫多應用主備模式來保證系統的正常運行:主數據庫要求較高,一般運行在高配服務器上;備份數據庫則實時地同步主數據庫的信息.當主數據庫崩潰時,需要將備份數據庫切換為主數據庫.該模式需要復雜的配置和昂貴的造價與維護.而在區塊鏈系統中,所有節點地位平等,沒有主從之分,少數節點即使出現故障或遭到攻擊也不會影響其他節點,且問題節點恢復正常后還可重新存儲全網的所有數據.

9.2 缺點與問題

1) 吞吐量.相較于傳統數據庫的吞吐量,比特幣的7 TBs和以太坊的25 TBs顯然要低很多,即使Hyperledger Fabric有所改進,其吞吐量也未超過2 000 TBs.區塊鏈是將一定時間內發生的全部交易集體打包后再統一處理,無法實現實時的認證和交易.共識機制的引入,無論是PoW還是PBFT,都在提高安全性的同時降低了系統的性能,其復雜的簽名與認證過程都涉及一定的系統開銷.

2) 事務處理.目前區塊鏈所依賴的底層數據庫多為鍵值對(Key-Value)數據庫,這種數據庫缺乏事務處理能力.三大主流平臺:比特幣、以太坊、Hyperledger Fabric都采用了LevelDB數據庫來存儲鏈上的索引和狀態數據.但該數據庫也不支持嚴格的事務處理,當單節點合約執行有誤時需要從其他節點重新同步數據來恢復正常.

3) 并發處理.傳統數據庫可同時并發處理大量客戶端的請求,但區塊鏈上的節點大多是身份對等地參與區塊鏈的P2P網絡,無法支持大量客戶端的高并發訪問.

4) 查詢統計.由于數據庫的架構和特性不同,傳統數據庫中用戶可方便地通過函數語句來查詢想要的信息并作出統計.但區塊鏈底層的Key-Value數據庫或文件系統使得簡單的歷史數據查詢都變得復雜,統計和復合查詢則更難實現.針對這一問題,區塊鏈可通過插件化來支持多種不同的數據庫,改進數據訪問機制.

5) 訪問控制.去中心化帶來的一大問題就是訪問控制機制的弱化.大多數區塊鏈平臺尤其是公有鏈,數據都是存儲在全網所有節點并可公開透明訪問的,唯一的安全機制只有交易過程中的簽名與認證,以保證交易的不可偽造和否認.而傳統數據庫的訪問控制機制已經十分成熟[15].

6) 可擴展性.如前所述,共識機制的存在使得區塊鏈平臺在節點數增加的過程中性能不升反降,除分片和多通道外,其他擴展性方案還有待驗證.而傳統數據庫的橫向擴展則可通過增加節點來線性地提高系統的性能.

7) 若2個算力相近的節點A和B在較短的時間差內分別創建了各自的區塊,鏈上節點可能優先收到二者任一發出的確認信息,這樣2個新區快都會接入鏈中且包含了相同的數據信息并都是有效的,便形成了分叉.之后全網節點可以選擇任何2個新區快中的任一區塊作為父區塊并創建下一區塊,當某一支鏈率先創建了新區塊該支鏈便稱為較長的支鏈,另一條短的支鏈就會被拋棄,這樣分叉便結束了.

軟分叉:區塊鏈有時會出現協議替換的現象,新舊協議下創建的區塊都可互相接受,新舊區塊便可共存于一條鏈上,這稱為向上兼容模式,并不會產生分叉.實際過程中因為新協議逐漸得到認同,舊協議創建的區塊會逐漸消失.

硬分叉:當新協議下創建的區塊無法被鏈上舊區塊接受時,新區快便會從舊鏈中分叉出來,之后經過共識算法各節點會將算力投入到新區快分叉出來的支鏈中,這被稱為向下兼容模式,最后會發生硬分叉.

8) 效率問題.區塊鏈記錄了整個網絡從誕生到現在鏈上發生的全部交易,數據量十分巨大,如比特幣網絡在短短7年內數據量已達60 GB.完整記錄交易在保證數據不可篡改的同時帶來了嚴重的存儲問題.

9) 中心化問題.算力證明機制中算力高的節點率先找到滿足條件的隨機數的概率就大,便更有可能獲得區塊的記賬權.這樣,原本平等的節點間記賬權爭奪就變成了硬件設備的比拼,越來越多的節點和設備聚在一起組成礦池,單一的節點完全無法與礦池相較高低,導致了節點間的不對等.目前,使用CPU挖礦幾乎已經不再可能,這就違背了區塊鏈去中心化的初衷,礦池實質上逐漸成為了一種新的中心節點.

10 結束語

回顧整個IT行業的發展,每次重大的變革,無一例外都是由于新架構的出現帶來了新的生產力,出現了新的應用,推動了變革的發生.作為數字加密貨幣的底層核心技術,區塊鏈之所以如此重要,是因為其架構有著獨特的優點:去中心化、準匿名性、安全透明、可防篡改防偽造、交易可追溯、智能合約、低成本高效率等.現有的互聯網+時代在信任建立、維護以及安全問題上存在致命的缺陷,因此未來互聯網+必須與區塊鏈+相結合,從而使得各種業務更加安全,交易成本更低,交易效率更高.

雖然區塊鏈仍舊存在較為明顯的問題,在發展過程中也受到過幾次較為大型的攻擊,如The DAO項目就由于智能合約出現漏洞而被黑客攻擊,導致巨額的比特幣丟失.但隨著各方的不斷努力,區塊鏈的不足之處都會得到改進和完善,成為一個更加完備的系統平臺,未來區塊鏈一定會發揮更大的作用,徹底顛覆諸多行業的現狀,很大程度上改變我們的生活.中國在這場新的競賽中應當后起發力,努力趕上世界前沿水平,抓住這場機遇,好好應對挑戰,在這場新的科技浪潮中發展自身.

[1]袁勇, 王飛躍. 區塊鏈技術發展現狀與展望[J]. 自動化學報, 2016, 42(4): 481-494

[2]沈鑫, 裴慶祺, 劉雪峰. 區塊鏈技術綜述[J]. 網絡與信息安全學報, 2016, 2(11): 11-20

[3]Castro M, Liskov B. Practical byzantine fault tolerance and proactive recovery[J]. ACM Trans on Computer Systems, 2002, 20(4): 398-461

[4]Kotla R, Alvisi L, Dahlin M, et al. Zyzzyva: Speculative byzantine fault tolerance[J]. ACM Trans on Computer Systems, 2007, 51(6): 45-58

[5]Kwon J. Tendermint: Consensus without mining[OL]. [2018-03-15]. https:tendermint.comstaticdocstendermint.pdf

[6]Liu S, Viotti P, Cachin C, et al. XFT: Practical fault tolerance beyond crashes[JOL]. [2018-03-15]. http:www.eurecom.frenpublication4575/downloadsec-publi-4575_1.pdf

[7]邵奇峰, 金澈清, 張召等. 區塊鏈技術:架構及進展[J]. 計算機學報, 2018, 41(5): 969-988

[8]王曉光. 區塊鏈技術共識算法綜述[J]. 信息與電腦: 理論版, 2017, 9(9): 72-74

[9]曠華. 安全哈希算法SHA[J]. 華南金融電腦, 2003, 10(6): 24-26

[10]何潤民, 馬俊. SHA-256算法的安全性分析[J]. 電子設計工程, 2014, 22(3): 31-33

[11]羅皓, 喬秦寶, 劉金龍, 等. 橢圓曲線簽名方案[J]. 武漢大學學報: 理學版, 2003, 32(1): 95-98

[12]孫國茂. 區塊鏈技術的本質特征及其金融領域應用研究[J]. 理論學刊, 2017, 33(2): 58-67

[13]姚忠將, 葛敬國. 關于區塊鏈原理及應用的綜述[J]. 科研信息化技術與應用, 2017, 8(2): 3-17

[14]朱建明, 付永貴. 區塊鏈應用研究進展[J]. 科技導報, 2017, 35(13): 70-76

[15]張濱. 區塊鏈安全風險研究[J]. 電信工程技術與標準化, 2017, 30(11): 1-5

猜你喜歡
數據庫機制
構建“不敢腐、不能腐、不想腐”機制的思考
自制力是一種很好的篩選機制
文苑(2018年21期)2018-11-09 01:23:06
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
定向培養 還需完善安置機制
中國衛生(2016年9期)2016-11-12 13:28:08
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
破除舊機制要分步推進
中國衛生(2015年9期)2015-11-10 03:11:12
注重機制的相互配合
中國衛生(2014年3期)2014-11-12 13:18:12
主站蜘蛛池模板: 美女视频黄又黄又免费高清| 国产精品视频a| 高清久久精品亚洲日韩Av| 国产AV无码专区亚洲精品网站| 国内精品久久久久鸭| 欧美精品1区| 五月天丁香婷婷综合久久| 午夜精品久久久久久久无码软件| 国产精品19p| 国产日产欧美精品| 国产精品自在线天天看片| 欧美精品二区| 色综合网址| 日本在线免费网站| 成人夜夜嗨| 国产成人免费观看在线视频| 国产男女免费完整版视频| 国产亚洲现在一区二区中文| 欧美视频在线第一页| 亚洲人成人无码www| 四虎国产在线观看| 亚洲婷婷六月| 亚洲熟妇AV日韩熟妇在线| 欧美在线一二区| 亚洲一区二区约美女探花| 亚洲国产精品VA在线看黑人| 97国产精品视频自在拍| 91 九色视频丝袜| 国内精品手机在线观看视频| 日韩在线中文| 制服丝袜 91视频| 亚洲精品无码AⅤ片青青在线观看| 91色在线视频| 国产女人在线| 国产精品免费入口视频| 自拍亚洲欧美精品| 亚洲AV无码久久天堂| 亚洲AV人人澡人人双人| 久久综合一个色综合网| 国产精品成人免费综合| 成人久久精品一区二区三区| 中文字幕有乳无码| 久久国产免费观看| 久久香蕉国产线| 欧美www在线观看| 国产免费看久久久| 国产成人久久综合一区| 国产精品香蕉| 国产麻豆精品手机在线观看| 国产精品成人免费视频99| 亚洲VA中文字幕| 国产在线一区二区视频| 777午夜精品电影免费看| 亚洲精品视频网| 99爱视频精品免视看| 久久精品日日躁夜夜躁欧美| 亚洲天堂伊人| 国产成人亚洲毛片| 亚洲欧美一级一级a| 一区二区三区四区日韩| 欧美国产日韩一区二区三区精品影视| 国产日韩精品欧美一区灰| 久久国产乱子伦视频无卡顿| 日韩 欧美 国产 精品 综合| 久久国产精品无码hdav| 专干老肥熟女视频网站| 久久久久亚洲AV成人网站软件| 欧美天天干| 久久久国产精品无码专区| 久久成人国产精品免费软件| 成年人国产网站| 中国精品久久| 超碰aⅴ人人做人人爽欧美| 日本精品影院| 亚洲美女一区| 午夜a级毛片| 波多野结衣久久高清免费| 精品丝袜美腿国产一区| 国产无套粉嫩白浆| 久久毛片基地| 亚洲av片在线免费观看| 香蕉视频在线精品|