文章閱讀頁通欄

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

來源: 京東區塊鏈白皮書 作者:
區塊鏈有著去中心化、點對點傳輸、透明、可追蹤、不可篡改、數據安全等特點,可以用來解決現有業務的一些痛點,實現業務模式的創新。下面將重點......

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


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.guwutu.icu/news

關鍵詞: 京東區塊鏈  京東區塊鏈平臺  
0/300
? 时时彩龙虎和计划app