京東區塊鏈主要應用場景與架構體系

買賣虛擬貨幣

區塊鏈有著去中心化、點對點傳輸、透明、可追蹤、不可篡改、資料安全等特點,可以用來解決現有業務的一些痛點,實現業務模式的創新。下面將重點分析和介紹區塊鏈在供應鏈、金融、政務及公共服務等領域的典型應用場景。這些場景的應用分析基於京東應用區塊鏈技術的經驗和京東自身對於區塊鏈技術的應用規劃,旨在透過經驗分享引起領域內同行及合作伙伴的共鳴和交流。


1. 供應鏈領域

供應鏈由眾多參與主體構成,存在大量互動協作,資訊被離散地儲存在各自環節各自系統中,缺乏透明度。資訊的不流暢導致各參與主體難以準確瞭解相關事項的實時狀況及存在的問題,影響供應鏈協同效率。當各主體間出現糾紛時,舉證和追責耗時費力。未來企業市場範圍越來越大,物流環節表現出多區域、長時間跨度的特徵,需要智慧高效的防偽追溯能力。

區塊鏈技術透過提供完整流暢的資訊流、不可篡改的簽名認證機制,可以實現去中心化或多中心化的精準追溯和充分信任,天然地適用於供應鏈管理。

⚫ 商品防偽追溯

藉助區塊鏈技術,實現品牌商、渠道商、零售商、消費者、監管部門、第三方檢測機構之間的信任共享,全面提升品牌、效率、體驗、監管和供應鏈整體收益。將商品原材料過程、生產過程、流透過程、營銷過程的資訊進行整合並寫入區塊鏈,實現精細到一物一碼的全流程正品追溯。

每一條資訊都擁有自己特有的區塊鏈 ID“身份證”,且每條資訊都附有各主體的數字簽名和時間戳,供消費者查詢和校驗。區塊鏈的資料簽名和加密技術讓全鏈路資訊實現了防篡改、標準統一和高效率交換。

⚫ 貿易融資

在供貨商、進貨商、銀行等貿易融資參與主體間建立聯盟鏈,透過區塊鏈記錄貿易主體資質、多頻次交易、商品流轉等資訊,使貿易雙方及銀行間公開透明安全地共享真實可信的資訊。

針對供應鏈中的大型企業,銀行可以藉此豐富融資風控模型,減少線下人工採集和確認資訊真實性的工作量,開展動產評估下的融資服務。有融資困難的供應鏈上下游中小企業,可基於區塊鏈提供的主體資質認證、與大型企業的多頻次交易資訊認證獲得信用背書,緩解融資難題。

2. 金融領域

金融的核心是信用的建立和傳遞,區塊鏈以其不可篡改、安全透明、去中心化或多中心化的特點,天然適用於多種金融場景。

國內外大多數區塊鏈聯盟均聚焦於金融領域,例如由 42 家國際銀行組成的區塊鏈聯盟 R3致力於利用區塊鏈技術,在解決互信的基礎上,構建扁平化的全球一體化清算體系,以提高效率、降低成本。另外,據麥肯錫測算,區塊鏈技術可以將跨國交易的成本從每筆 26 美元降低到 15 美元。高盛也在一份報告中指出,區塊鏈技術將為資本市場每年節約 60 億美元的成本。

⚫ 交易清結算

交易清結算的過程也是交易雙方分別記賬的過程,在傳統的交易模式中,記賬過程是交易雙方分別進行的,不僅要耗費大量人力物力,而且容易出現對賬不一致的情況,影響結算效率。

透過區塊鏈系統,交易雙方或多方可以共享一套可信、互認的賬本,所有的交易清結算記錄全部在鏈可查,安全透明、不可篡改、可追溯,極大提升對賬準確度和效率。透過搭載智慧合約,還可以實現自動執行的交易清結算,大大降低對賬人員成本和差錯率,特別是在跨境支付場景下,效果尤其明顯。

⚫ 資產證券化 ABS

傳統的資產證券化需要結算機構、交易所和證券公司等多重協調,透過搭載智慧合約的聯盟鏈,可以自動實現跨多主體間的證券產品交易。

基於區塊鏈技術的資產證券化管理系統,能夠確保消費金融服務公司底層資產資料的真實性,且不可篡改、可追溯,提高機構投資者信心,從而降低消費金融服務公司發行 ABS 的門檻和發行成本,同時還可以進行 ABS 全生命週期管理,及時識別和管控風險。

3. 政務及公共服務領域

政務及公共服務的工作核心在於行業標準的制定和有效監督管理,傳統管理方式是透過立法和抽查進行監管,不能做到實時監控,涉及仲裁時往往還需要漫長的取證過程。透過搭建包含政府監管機構、第三方公共服務機構的聯盟鏈,可以探索創新管理機制,實現政務實時監管,並藉助區塊鏈的不可篡改、可追溯特性,極大提高仲裁效率。

⚫ 合同及發票防偽

電子合同和電子發票的日益普及,為我們日常生活和商業活動帶來很多便利的同時,也帶來了合同造假、發票造假及重複報銷等許多新的問題,而這些問題需要監管部門和企業共同探索有效的解決方案。在開具電子合同、電子發票的同時,透過聯盟鏈完成向監管部門的備案,在發生造假、重複報銷等情況時,透過核對已備案的電子合同、電子發票的區塊鏈 ID“身份證”,可以快速判定造假事實,確定造假主體,實現實時監管。

⚫ 公益追溯

應用區塊鏈技術支撐公益專案的陽光、透明和可追溯,愛心物資經由高效的物流體系直接配送到公益專案地,並由公益機構執行人員發放至受助人手中。捐贈人可透過客戶端實時查詢所捐贈物資的物流狀態,直觀地看到物資發放到受助人手中的全過程。

從選購愛心物資開始的全部過程資訊、參與主體資訊均使用區塊鏈技術來防止篡改,確保公益透明性、可追溯,極大增加公益平臺的權威性和可信度。

4. 其他領域

除了供應鏈、金融、政務及公共服務領域外,區塊鏈還可以應用在很多其他領域,受篇幅所限,我們不便一一列出,僅舉兩個例子:

⚫ 保險防欺詐

區塊鏈利用共識機制、防篡改機制和可追溯機制,可在保險代償、追償時提供有效證據支撐。以車險理賠為例,通常包含車主、4S 店或維修廠、保險公司、交管部門等多個主體,騙保等理賠欺詐問題時常發生。

依託區塊鏈技術和車聯網技術,在車輛上安裝相應感測記錄裝置,保證資訊的真實、準確和不可篡改,在出險時,實時或準實時地將車輛事故資料提交給應用區塊鏈技術的“事故認證平臺”系統,交警裁決資料、感測記錄器資料、維修廠資料等都實時同步,從根本上解決車險理賠欺詐問題,同時提高保險理賠案件的效率和準確性。

⚫ 大資料安全

區塊鏈可以解決大資料的安全性問題,保證資料的隱私性。區塊鏈的可追溯特性使得資料從採集、交易、流通,以及計算分析的每一步記錄都可以留存在區塊鏈上,使得資料的質量獲得前所未有的強信任背書,也保證了資料分析結果的正確性和資料探勘的效果,並且能夠進一步規範資料的使用,精細授權範圍,追溯資料使用情況,全面保障資料使用的安全合規。

脫敏後的資料交易流通,則有利於突破資訊孤島,建立資料橫向流通機制,逐步推動形成基於全球化的資料交易、資料資產保護等全新的應用場景。

京東區塊鏈架構體系

京東區塊鏈的目標是打造面向企業級應用的區塊鏈基礎設施,為企業提供能夠切實解決業務痛點的區塊鏈技術方案。

為解決區塊鏈在企業級場景下的一些突出問題,包括系統效能、功能完備性、系統擴充套件性、監管審計支援、易用性等,京東區塊鏈採用分層架構設計、標準化賬本資料協議、最佳化共識演算法、引入微服務架構與可伸縮的分散式儲存技術、靈活的多級授權策略等一系列的創新技術方案。

京東區塊鏈的總體架構分為 3 個層次:區塊鏈協議、元件框架、服務平臺。採用自頂而下的設計方法,首先聚焦區塊鏈協議的設計,解決企業級應用中的資料標準化和多鏈互通的問題;其次是定義一個通用的區塊鏈系統的元件模型,實現具體功能元件松耦合和可插拔,解決企業級應用中可根據具體情況自定義擴充套件的需求;最後,我們基於標準化的區塊鏈協議和元件模型,提供一個具體的區塊鏈平臺實現以及相關的工具和開發包,為快速實現企業級區塊鏈應用提供平臺和工具。

⚫ 區塊鏈協議
京東區塊鏈協議作為最頂層的架構設計,定義了區塊鏈的資料格式標準,包括賬本狀態、歷史證明、賬本操作集、合約指令集 4 個方面的資料標準。

⚫ 元件模型
“元件模型”是區塊鏈邏輯元件的框架模型,是對京東區塊鏈協議的實現框架。包括了共識網路、賬本、持久化引擎、合約引擎四個元件。

⚫ 服務平臺
“服務平臺”是對上層的區塊鏈協議和元件模型的具體實現,由閘道器、服務、節點網路、SDK 和一套工具集組成。

1. 設計原則

京東區塊鏈在架構和實現上遵循以下的幾個設計原則。

⚫ 面向業務
企業場景的特點是需求非常多樣,效能要求高。京東區塊鏈在設計上首先從分析企業應用的典型用例出發,設計京區塊鏈協議和系統功能特性,確保系統的實現能夠最終適應廣泛的企業需求。

⚫ 標準化
由於區塊鏈應用場景是一種跨主體的有多方參與和協作的場景,京東區塊鏈從頂層開始設計了標準化的協議和資料結構,解決企業間資料的互動問題,避免多鏈並存的區塊鏈技術演進過程中形成資料孤島,使區塊鏈真正地成為一種標準化的網際網路價值交換和信任傳遞的基礎協議。

⚫ 松耦合與模組化
京東區塊鏈採用模組化設計,透過定義模組間清晰的介面實現模組之間的松耦合,以此獲得整個系統的良好擴充套件性,系統可以根據不同使用者和場景的需要,採用不同的可插拔的模組元件。

⚫ 簡潔與高效
京東區塊鏈的遵循“簡潔”的系統設計原則,儘可能地定義更簡潔的系統概念模型,使使用者的學習成本更低,採用更高效簡潔的 Go 語言進行系統編碼實現以及更簡單實用的演算法設計,減少實現複雜分散式系統過程中編碼的缺陷風險。

2. 應用模型

區塊鏈是一種全新的架構形式,使跨主體的業務協作變得簡單、高效和安全。與傳統的網際網路協議不同(如 TCP/IP,HTTP 等),傳統協議都是面向通訊過程的,而區塊鏈是面向業務過程的。區塊鏈作為一種分散式狀態機,“智慧合約”是實現分散式業務狀態轉移的核心功能,使得基於區塊鏈的應用架構模型產生了全新的變革。

以應用開發者的視角來觀察一下基於區塊鏈的應用開發過程,會更清楚地察覺這種巨大的差異。

假設要開發一個商品貿易系統,業務的參與者包括貿易買賣雙方和物流企業,這個系統要幫助買賣雙方建立交易合同、跟蹤貨物運輸過程、交付結算。基於區塊鏈實現該應用通常需要以下幾個步驟:

(1) 定義參與業務的各個主體的身份賬戶

為參與者註冊登記一個由公鑰私鑰對(證書)表示的身份賬戶。由符合國家標準的證書所表示的身份賬戶是能夠代表一個特定的法人,由該賬戶簽發的資料可以在法律上被認為是該法人做出的確認。

傳統的架構方案通常是 SOA:各個參與方的系統釋出各自的 SOA 介面,相互間透過SOA 介面呼叫實現系統對接。在這種架構下,開發者實現任何一個特定參與方的業務角色的功能,都需要把該參與方的身份與其公佈的 SOA 服務介面的通訊地址建立對應關係,開發者對業務功能的實現是體現為對通訊介面的呼叫和處理。然而,這種方式呼叫獲得的資料難以具備防篡改能力(尤其是大量資料量情況下),也難具有對方法人簽名確權的效力(若對每條資料記錄都進行簽名則技術實現成本很高)。

(2) 編寫智慧合約對業務過程做出定義

把參與者之間達成的商業協議以智慧合約程式碼的形式進行定義,以數字化形式約定貿易的商品屬性、數量、交付價格、交付期限、交付條件、運輸方式、交割檢驗標準、貨款計算方式、貨款支付時限等等。

在智慧合約的編寫過程中,需要關注的內容通常有:在賬本中儲存的業務資訊的格式;業務過程中產生的業務狀態;改變業務狀態需要滿足的條件;業務狀態變更的觸發方式;業務狀態變更涉及更新的業務資訊。

智慧合約程式碼的編寫過程是完全不需要關注非業務功能的處理,比如:業務資料在參與者之間網路結構、定址方式、通訊協議、傳輸格式、響應執行緒、處理資源。

智慧合約雖然也表現為某種形式的程式語言,但是其編寫邏輯是完全直接面向業務的,可以形式化地概括為 3 個方面:

a) 定義多主體間的業務資料格式;
b) 定義業務過程包含的業務狀態表;
c) 定義各個業務狀態的轉換條件和觸發方式。

(3) 聯合簽署智慧合約並觸發業務初始條件

智慧合約最後需要經過參與者以各自的身份賬戶做出簽署,之後每一方參與者只需要根據自己業務範圍內的業務程序做出相應的操作,便觸發了智慧合約的執行。

在這個過程中,區塊鏈系統以客觀的技術手段提供以下幾個方面的保證:

⚫ 確保合約在每一個參與業務主體的節點上被一致的執行,並得到一致的結果;
⚫ 確保合約執行過程的每一個步驟都被準確地記錄下來;

⚫ 確保合約執行過程的記錄以及最終結果都無法被篡改;
⚫ 確保參與的主體對合約執行過程的記錄以及結果進行簽名,確保合約被執行的事實在今後都不可抵賴。

建立靈活、實用的企業級智慧合約系統是京東區塊鏈在系統實現上的核心目標之一。我們在技術路線上透過以下幾點來實現:

⚫ 定義標準化和良好可讀性的合約中間語言指令集,使合約能夠以人類可讀的形式進行最終簽署,有助於體現智慧合約的法律效力;
⚫ 支援 Java、Go 等主流開發語言作為合約的程式語言,降低合約的學習成本;
⚫ 支援智慧合約的模擬、除錯功能,解決合約的可測試問題;
⚫ 支援靈活的合約間呼叫和資料訪問控制策略,更容易開發複雜的企業智慧合約。

3. 賬本協議

賬本協議是從資料的角度定義的一個標準模型,包含兩個方面的定義:

⚫ 賬本資料的標準格式

由兩部分構成:
a) “賬本狀態”表示當前實時的資料內容;
b) “歷史證明”表示賬本資料的特徵以及資料變更歷史的特徵。

⚫ 讀寫賬本資料的指令的標準格式

由兩部分構成:
a) “賬本操作集”定義了對賬本資料的寫入操作型別的標準表述以及引數的標準格式;
b) “合約指令集”定義了標準化的合約語言指令格式。

定義賬本協議的目的是讓鏈上的資料可以被標準化地進行交換、驗證、儲存和使用,能夠跨越不同技術實現的區塊鏈網路,無關特定的資料儲存實現。

3.1. 賬本狀態

“狀態”一詞在此是一個計算機領域的概念,在此表示區塊鏈系統在某一時刻所處的狀況,由系統儲存的業務資料以及系統執行的控制屬性構成。

京東區塊鏈的“賬本狀態”由“身份”、“KV 資料”、“許可權”、“合約程式碼”組成。

⚫ “身份”由一個“區塊鏈地址(Address)”和相應的非對稱金鑰對/證書表示;
⚫ “KV 資料”是賬本資料表示形式,透過鍵(Key)唯一標識,透過值(Value)記錄內容;
⚫ “合約程式碼”表示狀態變更的邏輯,以合約指令序列表示;
⚫ “許可權”是“身份”對“KV 資料”和“合約程式碼”的訪問控制碼。

3.2. 賬本操作集

“賬本操作集”是為了實現跨鏈互操作而定義一個通用的標準,包含“型別”的標準碼,“引數”的標準格式。

典型的操作包括:

⚫ 身份註冊
⚫ 狀態資料讀寫
⚫ 合約部署
⚫ 合約呼叫
⚫ 許可權設定

3.3. 合約指令集

區塊鏈以合約語言的形式定義業務狀態的控制和轉換邏輯。

透過設計一個標準化的合約語言指令集,可以用一種通用的方式來表述各種複雜的業務邏輯,從而與具體的程式語言無關。

一方面,遵循標準的合約指令集,區塊鏈系統能具備良好的通用性;另一方面,開發者可以用不同程式語言編寫智慧合約,降低了學習使用門檻,滿足不同企業的團隊技術棧要求。

4. 元件模型

“元件模型”是一個邏輯上的功能模組設計,是實現賬本協議的邏輯框架。定義了元件的標準化介面,使得遵循元件模型的區塊鏈系統實現具備松耦合、可插拔的特性。

4.1. 共識網路

目前典型的共識演算法主要有 PoW、PoS、PBFT、Raft、Paxos 等。透過對比發現,這些演算法在執行過程都可以抽象下面幾個階段:

(1)交易擴散;
(2)交易排序;
(3)呼叫交易執行程式;
(4)對交易執行結果進行共識;
(5)提交共識結果。

各種共識演算法的差異體現在不同階段採取了不同實現策略。

⚫ PoW、PoS 演算法在交易擴散和排序時,不採用原子廣播協議,同時以隨機化的方式選擇出 leader 節點執行排序,因此會導致交易可能被隨機丟棄。
⚫ Raft、Paxos 演算法對全部交易進行原子廣播和排序,但在共識的過程並不處理拜占庭錯誤。
⚫ PBFT 演算法對全部交易進行原子廣播和排序,同時在共識階段處理拜占庭錯誤,不支援動態調整節點。

我們從面向企業級應用場景的特點出發,選擇類 BFT 的演算法進行最佳化,提供了確定性交易執行、拜占庭容錯、動態調整節點的特性。

京東區塊鏈的共識網路元件按照模組化的思路設計,基於以上幾個通用階段進行封裝,抽象出可擴充套件的標準介面。

4.2. 賬本

賬本狀態與合約分離,使用基於身份的訪問控制協議約束合約對狀態的訪問,這種將資料與邏輯分離的設計模式是典型的貧血模型,可為上層業務邏輯提供無狀態的邏輯抽象。

4.3. 持久化儲存

將賬本資訊的持久化格式定義為更簡潔的 KV 格式資料,使得可以利用成熟的 NoSQL資料庫來實現持久化儲存。基於目前在 NoSQL 資料庫上成熟的海量資料儲存方案,使得區塊鏈系統能支援海量的交易。

4.4. 合約引擎

合約引擎包含兩大部分,前端包括合約高階語言規範及其工具鏈,後端是一個輕量級的合約中間程式碼的執行環境。所有對賬本的操作透過賬本元件提供的 API 實現。

5. 服務平臺

功能模組分為區塊鏈閘道器、區塊鏈節點服務、區塊鏈共識網路、配套工具四個部分。

5.1. 區塊鏈閘道器

“區塊鏈閘道器”被設計為一種輕量的閘道器係統,通常是部署在參與者的網路環境中,提供功能包括:

a) 私鑰管理:提供完全本地化的私鑰保管功能;
b) 隱私保護:採用端到端加密手段實現隱私保護;

c) 協議轉換:提供輕量化的 HTTP Restful Service,適配 TCP 協議的區塊鏈節點API。

5.2. 區塊鏈節點服務

在區塊鏈基礎網路的基礎上提供的面向應用的通用的功能元件,目的是提供通用功能的複用,包括:

a) 面向應用的賬戶管理;
b) 賬戶的認證授權;
c) 物件導向的賬本資料訪問框架;
d) 事件通知機制;
e) 智慧合約管理。

5.3. 區塊鏈共識網路

由共識節點組成的網路,基於 P2P 網路和共識演算法確保交易資料在節點之間保持一致。

5.4. 工具

配套的工具集合,包含 SDK、資料管理、安裝部署工具、監控服務。

5.5. 部署架構

京東區塊鏈支援以下幾種部署模式:

a) 參與主體維護完整的共識節點,好處是參與者可持有資料,但需要付出運維成本;
b) 參與主體僅維護閘道器節點,透過公共的共識節點接入區塊鏈,好處是便於自行管理私鑰,且維護成本低,但閘道器節點不持有資料;
c) 參與主體透過公共的閘道器節點接入,適用於 2C 場景,使用者可以基於公共的閘道器節點託管私鑰;
d) 監管方可以只部署“備份節點”,從其它節點同步資料作為備案;
e) 監管方還可以部署共識和閘道器節點,對公眾開放查詢,作為“存證公示”。


更多區塊鏈資訊:www.qukuaiwang.com.cn/news

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;