基於區塊鏈的資訊資源共享模式研究

2021-08-14 03:47:44 字數 4818 閱讀 4448

1 區塊鏈介紹

區塊鏈(blockchain)為公眾所知緣於位元幣(bitcoin),由satoshi nakamoto提出[3]。位元幣是一種創新性的支付系統和全新的數字貨幣,而區塊鏈則是支撐位元幣的底層技術和基礎架構。區塊鏈是由若干區塊通過雜湊指標鏈結而成的鍊錶,如圖1所示:

圖1 區塊鏈基本結構

區塊的基本結構則如圖2所示:

圖2 區塊基本結構

乙個完整的區塊鏈系統具有分層架構[4],如圖3所示:

圖3 區塊鏈的分層架構

區塊鏈涉及的資訊科技包括對等網路(p2p)技術、非對稱加密演算法、資料庫技術、數字貨幣[5],也包括merkle樹、hash演算法、時間戳技術、多種共識機制(consensus mechanism)等[6]。這些技術多為已有的成熟技術,而非新創技術,因此區塊鏈是由已有資訊科技經巧妙組合而形成的新技術,或者是已有資訊科技相互結合的顛覆性應用。

區塊鏈雖然因位元幣而出現,但是區塊鏈並不依賴位元幣。針對不同行業和不同應用,可以構造不同的區塊鏈,選擇或創造不同的共識機制,並在其上定義不同於位元幣的虛擬貨幣,即競爭幣。對於區塊鏈來說,虛擬貨幣是區塊鏈運轉的驅動機制,而對於虛擬貨幣來說,區塊鏈則是虛擬貨幣的產生和流通平台。區塊鏈是分布式資料庫、分布式賬本的一種較為理想的實現,也是網際網路金融發展的趨勢之一[7,8]。

區塊鏈作為一種新的it基礎設施,具備五個基本特徵:去中心化,不存在中心化的硬體或監管機構,交易無需中介;自治性,採用基於協商一致的規範和協議,所有節點均能在去信任的環境中自由安全通訊,運轉無需人工干預,人為干預也不起作用;安全可信,採用非對稱加密技術對交易資料加密,並採用工作量證明機制(pow)等保證資料不可篡改、不可撤銷;公開透明,每個節點都可有乙份完整的區塊鏈,區塊鏈的資料對全網公開,可通過公開的介面查詢,區塊鏈軟體也是開源的,打破了資訊不對稱;匿名性,區塊鏈上的交易無須知道雙方實際身份,也很難將賬戶與賬戶所有人關聯起來[9,10]。

按照區塊鏈發展階段及功能的不同,區塊鏈有三個版本:區塊鏈1.0是貨幣,是一種安全的分布式的資料庫,解決了數字貨幣和支付的去中心化;區塊鏈2.0是合約,是一種完全的分布式的智慧型合約(smart contract)資料庫,解決了各類資產和市場的去中心化;區塊鏈3.0則是超越了貨幣、經濟和市場等的公正應用,是新的高效的活動組織模式和社會治理模式[11]。區塊鏈3.0通過去中心化的社會公共專案,將更深入地影響人們的生活[12],並形成區塊鏈自洽組織(dao)和區塊鏈自洽公司(dac),以至區塊鏈大社會[13]。

按照面向的服務群體範圍不同,區塊鏈被分為三類:公有鏈(public blockchain)、聯盟鏈(consortium blockchain)和私有鏈(private blockchain)。公有鏈對任何人都開放,任何人都可自由加入並參與共識過程;聯盟鏈則對特定的組織或團體開放,只有通過聯盟確認後才能加入聯盟鏈。私有鏈僅對特定主體內部開放,參與共識的權力被分配給特定節點[14]。聯盟鏈介於公有鏈與私有鏈之間,本質上仍屬於私有鏈,通常被認為「部分去中心化」,外人可以查閱和交易,但不能驗證交易或發布智慧型合約。位元幣區塊鏈為典型的公有鏈,採用pow共識機制,交易速度較低,而hyperladger則為典型的聯盟鏈(私有鏈),採用實用拜占庭容錯(pbft)共識機制,交易速度較高。

依據區塊鏈的分層架構,利用區塊鏈的不同版本和型別,在區塊鏈的應用層可以構建多種應用,而資訊資源共享是重要的應用之一。

2 資訊資源共享的模式

2.1 資訊資源共享的兩種基本模式

依據資訊傳播方式的不同,資訊資源共享有兩種基本模式,即有中心模式和無中心模式,分別如圖4、圖5所示:

圖4 有中心模式

圖5 無中心模式

有中心模式的典型代表是c/s、b/s應用,其中存在服務方和使用者兩個固定角色。無中心模式的典型代表是各種p2p應用,其中只有平等的參與者。

資訊資源共享的前提是資訊資源聚積,即通過某種方式和手段將資訊資源組織起來。有中心模式下,所有資訊資源均被集中配置到中心,並會聚集形成資訊資源中心;而無中心模式下,所有資訊資源被分散配置到各個節點,因而不會形成資訊資源中心。依據資訊資源聚集過程和組織方式的不同,可以對資訊資源共享模式進行細分。

2.2 有中心模式的細分模式

按照資訊資源聚集過程的不同,資訊資源共享的有中心模式又可細分為兩種:基於雲的資訊資源共享模式和基於web的資訊資源共享模式,分別如圖6、圖7所示:

圖6 基於雲的資訊資源共享模式

圖7 基於web的資訊資源共享模式

基於雲的資訊資源共享模式常用於資訊、情報和知識的共享,資訊聚集一般由雲平台自動收集完成,且以雲使用者的行為資料、互動資料、資訊和知識為主。基於web的資訊資源共享模式常用於數字內容的共享,資訊聚集通常由生產者創作並新增到平台完成。web1.0、web2.0均遵循該資源聚集模式。只不過web2.0通過去掉web1.0的集中審核發布機制,向使用者放開了寫入和發布許可權,使使用者也成為內容生產者,從而實現了去特權、去精英和以使用者為中心、以人為本[15]。

2.3 無中心模式的細分模式

依據資訊資源組織方式的不同,資訊資源共享的無中心模式又可細分為三種:無中心非結構化p2p模式(純p2p模式)、無中心結構化p2p模式(混合p2p模式)、有中心非結構化p2p模式(集中式p2p模式) [16-18]。無中心非結構化p2p模式,如圖4所示,其中參與者基於洪氾(flooding)技術以廣播方式查詢或查詢對等網路中共享的資訊資源,特點是資訊無序且分散,內容亦分散。gnutella網路為該模式的代表。資訊資源共享無中心模式的另兩種細分模式,分別如圖8、圖9所示:

圖8 無中心結構化p2p模式

圖9 有中心非結構化p2p模式

資訊資源共享的無中心結構化p2p模式中,基於dht技術建立chord環、二叉樹等覆蓋網路(overlay network),用於查詢或查詢對等網路中共享的資訊資源,參與者之間資訊資源的交換或傳播則不經過覆蓋網路,特點是資訊有序且分散,內容亦分散。chord網路、kad網路為該模式的代表。資訊資源共享的有中心非結構化p2p模式中,參與者依賴索引中心查詢或查詢對等網路中共享的資訊資源,參與者之間資訊資源的交換或傳播則不經過索引中心,特點是資訊有序且集中,而內容分散。napster網路為該模式的代表。

無中心模式的這三種細分模式多用於檔案形式的數字內容共享場合。

3 基於區塊鏈的資訊資源共享模式

區塊鏈被設計執行於無中心非結構化對等網路之上,通常利用檔案來共享資料、資訊和知識等。在區塊鏈基礎上開展資訊資源共享,也須符合底層對等網路上的資訊資源共享模式。基於區塊鏈的資訊資源共享模式是無中心非結構化p2p模式的細分模式、新模式。

3.1 區塊用作資訊資源儲存的方式

在區塊鏈上實現資訊資源共享所需的資訊資源聚集,首先要解決資訊資源儲存問題。依據資訊資源是否直接儲存於區塊中,可有兩種資訊儲存和聚集方式。資訊資源直接儲存在區塊裡,資訊資源聚集於區塊鏈中,即資訊資源鏈方式,如圖10所示:

圖10資訊資源鏈方式

該方式與無中心非結構化p2p模式中的儲存方式類似,其中的區塊鏈既用作對等網路中資訊資源的查詢或查詢,同時也用作資訊資源的儲存。該方式的特點是資訊無序且集中,並以完整副本形式儲存在每個節點中。位元幣區塊鏈的區塊中,可用於儲存資訊的字段極少,包括產量交易(generation tx)中的輸出的coinbase欄位,以及通用位址交易(pubkey hash tx)中的交易輸出位址部分[19]。此二者容量較小,限制很多,且會增加記憶體中未花費交易輸出集(utxo set)的大小[20]。

區塊鏈中的區塊裡僅儲存資訊資源的元資料或索引,資訊資源本身儲存於本地、伺服器、雲儲存或其它儲存中,資訊資源聚集於區塊及區塊鏈之外,即資訊資源索引鏈方式,如圖11所示:

圖11資訊資源索引鏈方式

該方式與有中心非結構化p2p模式的儲存方式類似,其中的區塊鏈用作對等網路中資訊資源查詢或查詢,而不參與資訊資源的實際交換和傳播,資訊資源的交換和傳播由底層對等網路的傳輸機制實現,並且可能用到智慧型合約來保證資訊共享行為得到可靠執行。該方式的特點是資訊無序且集中,而內容分散儲存在區塊鏈外。區塊鏈的區塊中,利用op_return元資料,可在位元幣普通交易包含乙個op_return輸出,並在其中存放多達80位元組左右的索引資訊,這些資料雖儲存在區塊中,但並不增加記憶體中未花費交易輸出集的大小[21,22]。

3.2 區塊鏈上的資訊資源共享模式

3.2.1 規模擴張模式

對等網路基礎上的區塊鏈以區塊的鍊錶方式實現了資訊資源聚集,而以區塊鏈的同步副本方式實現了資訊資源共享,其本身兼具資訊資源聚集和共享功能。因此,區塊鏈上資訊資源共享的常見方式是通過區塊鏈網路規模擴張來實現更大範圍的共享,即通過更多的人加入區塊鏈網路成為該網路中的節點和參與者,從而依規則共享區塊鏈上的資訊資源。規模擴張模式如圖12所示:

圖12 規模擴張模式

公有鏈、私有鏈和聯盟鏈均可採用該模式進行資訊資源共享,但是對公有鏈上的資訊資源共享更有意義。實際中公有鏈只能通過此模式才能成為有廣泛影響力的公有鏈,且規模越大,影響力和社會價值越高。對於私有鏈和聯盟鏈,此模式使私有鏈和聯盟鏈共享規模擴大,同時也使私有鏈和聯盟鏈分層,逐步形成處於內層的擁有全部功能的核心圈層,以及處於外層的只擁有部分功能的邊緣圈層。

3.2.2 跨鏈模式

公有鏈、聯盟鏈和私有鏈具有不同程度的封閉性,通常需加入區塊鏈網路才能共享區塊鏈中的資訊資源,另外由於採用不同的共識機制、虛擬貨幣等,不同區塊鏈之間一般互不相容,不能直接聯通。通過雙向楔入(two-way peg)等側鏈(sidechain)技術,使得主鏈與側鏈之間可以相互信任、自動互轉,能將不同區塊鏈聯結起來,從而在不同區塊鏈及其節點之間共享資訊[23]。一條區塊鏈主鏈上可有若干側鏈,而每條側鏈均可對應不同應用。跨鏈模式如圖13所示:

圖13 跨鏈模式

跨鏈模式是公有鏈等擴充套件功能和應用範圍,開展非金融領域應用的主要方式,可極大地促進區塊鏈上的資訊資源共享。實際中該模式已經在區塊鏈擴充套件應用領域中獲得到了廣泛運用,比如基於區塊鏈的存證應用就採用該模式,並且通常選擇位元幣區塊鏈、以太幣區塊鏈等公認的、有廣泛影響力的公有鏈充當主鏈。

3.2.3 混合模式

顯然,還可以將無中心的區塊鏈與有中心的web相互結合,分別利用區塊鏈的資訊資源集聚功能和web的資訊資源共享功能,形成資訊資源共享的混合模式。混合模式如圖14所示:

圖14 混合模式

基於LAN的資源共享

最近在積極思考final year project的內容,一方面想做點和實際相關的內容,一方面又想接觸技術層面多些。這幾周不能說整天查資料在找題目,至少經常brain storm一下。真的把這個題目做好也不錯,不過神經網路不是我的長項,甚至只是耳聞,沒做過一點細緻接觸。所以我又想到另乙個題目。基於l...

乙個基於socket的資源共享平台的實現(三)

需要共享資源,則需要探測本地資源分布情況。此處我們用的演算法比較2 不過還是說說吧。下面使用mfc的cfilefind實現乙個本地檔案遞迴收集器,以jason格式儲存檔案路徑和檔案大小 然後定期收集,對收集結果md5,若發生變化,則上傳伺服器。伺服器端使用乙個資料結構維護所有資源站資源,對於使用者的...

乙個基於socket的資源共享平台的實現(一)

前段時間和朋友一起做了乙個類似於電驢 迅雷 msn工具的毛坯模型,基本上所有功能都是從socket通訊級別向上實現。整體架構為c s架構,使用mfc實現。技術上都是很老的東西,此文主要介紹類似於 電驢 的這樣乙個軟體的設計思路和部分 框架。我們實現的 不是很優化,僅為設計思路的佐證。我最初做這個小軟...