别人在忙挖矿,京东架构师却悄悄用区块链搞了件大事
作者介紹:?
趙銘,京東商城區塊鏈研發工程師, 主要從事區塊鏈底層研究設計工作,主攻方向為分布式賬本結構;?
孫海波,目前擔任京東Y事業部供應鏈研發負責人,負責的業務包括訂單履約、庫存優化、采購、供應商、智能預測、防偽追溯等。在京東參與過多次雙11和618大促備戰,在高并發、大流量、系統優化等具有豐富的經驗。?
責編:錢曙光(qianshg@csdn.net)?
聲明:本文為《程序員》原創文章,未經允許不得轉載,更多精彩文章請訂閱《程序員》。
導讀:現在談區塊鏈,已不像是兩三年前只屬于少數人的geek游戲,雖還趕不上AI(人工智能)的全民熱潮,但也開始逐步進入大眾的視野。尤其是國家六部委發布聯合公告取締ICO非法融資以及關閉境內所有數字貨幣交易所之后,區塊鏈更是被推上了風口浪尖。區塊鏈是否又是另一個技術噱頭?又或者能否成為資本市場追逐的新熱點?熱鬧非凡的區塊鏈試驗項目的落地情況到底如何?等等問題困擾著新接觸區塊鏈的人們,也為區塊鏈的發展披上了神秘的外衣。在這篇文章里,我想簡要闡述京東供應鏈溯源防偽平臺如何利用區塊鏈技術做到“好品質,看得見”,助力供應鏈騰飛。
正文:
一直以來,假冒偽劣產品充斥著整個市場,對市場經濟秩序造成了諸多困擾。國務院為此做出重要批示,要加快重要商品追溯體系的建立,追溯體系建設是采集記錄產品生產、流通、消費等環節信息,實現來源可查、去向可追、責任可究,強化全過程質量安全管理與風險控制的有效措施。之前,沒有哪方機構能夠將整個供應鏈的方方面面都整合到一起,并使各方參與者都信任數據的真實性。現在基于區塊鏈技術,構建多方建設,共同參與的聯盟鏈,可真正的將商品追溯體系建設起來。
供應鏈商品溯源防偽之所以困難,因為涉及到供應鏈上游的諸多獨立主體,商品信息、倉儲信息、物流信息等離散的保存在各個參與環節各自的系統中,信息流缺乏透明度和流通度。在商品的流轉過程中,也往往表現出多區域、長時間跨度等特征,使得假冒偽劣產品很難徹底從市場上消除。且當出現責任事故時,因涉及的環節較多,舉證和追責均耗時費力。在業務處理中有大量的審閱、驗證交易單據及紙質文件的環節,高度依賴人工,自動化程度低,信息采集困難。而且由于產品種類差別,生產環節有不同的要求,防偽追溯要求不同,采取的方式也不同。
現在行業中有零星的溯源防偽平臺,基本都是集中式中心化的,系統較為脆弱,受攻擊的影響大,數據安全性低。且標準不統一,不同地方、不同產品溯源防偽系統標準不一致,數據共享難度大。且平臺參與方是單一的,沒有多方參與,相互難做到數據的信任,平臺也很難做到自證清白,且平臺間也無交流,相互間也無背書。?
而區塊鏈技術天然地適合運用于供應鏈管理。區塊鏈技術使得需要共享的數據,在交易各方之間公開透明,便于及時發現解決問題,提供完整且流暢的信息流,提升供應鏈整體效率。且區塊鏈所具有的數據不可篡改和時間戳的存在性證明特質,能很好的解決供應鏈各參與主體間的糾紛,實現輕松舉證與追責。數據不可篡改與交易可追溯兩大特性相結合,可根除供應鏈內產品流轉過程中的假冒偽劣問題,實現精準追溯。通過密碼學算法實現供應鏈參與主體間的充分信任和智能協同。總的來說,使用區塊鏈技術支撐的商品溯源防偽平臺有以下特點:
自證清白。所有存儲在區塊鏈上的數據都是按照時間順序通過密碼學簽名及哈希強關聯在一起,且多方背書,無法私自篡改;
價值傳遞。由于數據的真實可靠,消費者可信任商品的源頭、品牌,由此可以帶來價值的傳遞;
降低成本。基于區塊鏈的溯源防偽平臺是多方合作的,只由技術就可以達成多方合作,降低了諸如信任成本,隨之而來的各種資產資金成本也會隨之降低,可謂多贏;
追溯審計。所有鏈上數據都可以逆向追溯,每個環節數據都可以確認。舉證和追責均異常簡單;
自動化。將以前高度依賴的人工審閱、驗證單據及紙質文件等環節全部電子化、自動化;
做溯源防偽平臺的當務之急無疑是跨主體的供應鏈信息采集。首先,我們要定義哪些信息需要去追溯記錄,主要有以下幾類數據需要記錄在區塊鏈上:
產地/原料信息:原材料信息、種植信息、環境標準/流程監測
采購流通信息:原料監控、流通時效/衛生安全
生產加工信息:生產加工、制造過程監控、質量檢測
倉儲信息:倉儲過程監控、出入庫信息管理
物流信息:去向信息跟蹤、時效/在途過程監控
銷售:銷售記錄、定向營銷、售后跟進反饋
以上信息是追溯一件商品所需要的完整信息,那么如何在區塊鏈中標識某件具體的商品呢?在平臺中,每件商品都有全局唯一的溯源碼,即所謂的“一物一碼”,該碼高度兼容現有編碼體系,比如GS1編碼、Ecode編碼等,同時也支持各廠商自定義編碼格式,只要能保證全局唯一,當然平臺也能為不具備發碼能力的廠商提供編碼。溯源碼也支持多種呈現方式、一維碼、二維碼以及RFID等。最后在選定了編碼標準以及編碼形式后,供應商可自主設計樣式,滿足其定制化需求。如圖所示:
圖1 一物一碼
因為是一物一碼,如果采用手動錄入,那么對供應商來說,投入是巨大的,因此結合IoT設備自動采集數據也是溯源防偽平臺的一部分。平臺對接供應商IoT設備,京東IoT SDK以及智能物聯網平臺自動采集諸如環境數據、倉儲、物流、地理位置、照片等數據。系統自動將采集到數據輸入數據轉換層,根據供應商數據結構采用不同的數據轉換接口提取有效數據,后將數據傳入溯源防偽系統。
圖2 IoT數據對接
商品數據采集的問題解決了,隨之而來的另一個困難就在于商品的最小販售單位不一定是商品出廠及運輸中的最小單位,所以在商品的流轉過程中會涉及到合碼拆碼過程。商品在出廠時,供應商為每件商品貼上商品最小包裝追溯碼,多件商品組合打包后又會有流轉箱碼,這個過程可以嵌套,在隨后的流轉流程中,可能又會有分拆子箱碼。經過這樣合碼拆碼的過程,商品最終流入消費者手中,完成整個流轉過程。
整個流轉過程可以通過下圖所示形象的展示出來,當商品流轉到參與主體時,會將商品流轉信息經過主體私鑰簽發后附上時間戳后,將信息存入溯源業務系統,同時將信息存證存入區塊鏈網絡,變更商品狀態,隨后商品由下一參與主體簽收,直至最終消費者。
圖3 交易流轉
以上,我大致的介紹了京東溯源防偽平臺的供應鏈相關流程,同時我們也提供了方便的查詢驗證商品真偽的入口。可通過網站http://sy.jd.com進行溯源碼查詢,也可以直接掃描所購買商品上所貼的二維碼查詢。這里,可通過掃描以下二維碼體驗“一塊牛肉的奇幻漂流”:
圖4 一塊牛肉的奇幻漂流
上面我們主要介紹了京東溯源防偽平臺的業務系統,其底層支撐少不了區塊鏈技術的支持。在接下來的篇幅里,我會為大家介紹這項新晉“黑科技”在京東的落地情況。
在構建區塊鏈底層之初,我們就定下了區塊鏈底層的設計目標:
穩定第一
系統穩定是對一個系統最基本的要求。首先保證底層牢固,區塊鏈不是一項新技術,而是多種技術的組合應用,涉及P2P協議、密碼學、共識算法等。這些技術本身提供的服務要穩定,同時各個技術之間的交互也要保證絕對的穩定。只有這樣,在這些技術基礎之上建立的區塊鏈溯源系統才能保證穩定。
真實可靠
誠信經營是一個企業的立業之本。溯源的前提必須是真實可靠的數據,如果數據造假,溯源將失去其價值。區塊鏈技術本身能保證臺賬記錄的不可篡改性,但是就臺賬對應的交易來講,其真實性也需要進行驗證。
多方共贏
區塊鏈溯源采用類似于聯盟鏈的機制,多方共同參與。要保證鏈上各方之間的利益訴求,才能使得多方積極參與。并且要積極爭取權威機構的背書認可。要給予國家機構相關的決策支持;商家能夠更關注于品質建設,并通過區塊鏈溯源項目能夠得到營銷和預測方面的支持;最終消費者信任感能夠得到提升,增加對具有區塊鏈溯源商品的認可度,更加關注品質生活。
激勵共建生態
國務院在不久前發布了《國務院辦公廳關于加快推進重要產品追溯體系建設的意見》,京東作為重要的商品流轉中心,有責任去推動政策的執行。供應商接入溯源平臺,一方面不能大量增加其生產成本,另一方面也要能提升其品牌價值,做出差異化。溯源的另一重要主體是商品的最終消費者,如何提升消費者的掃碼率,培養其對品質商品、正品商品的認同感,從而帶動整個溯源生態的建立,這是很重要的設計原則。
靈活支撐應用
采用分層架構,具備快速構建上層應用的能力,靈活的支撐上層多樣性業務應用,應用與區塊鏈的交互被抽象成智能合約,通過簡單API接口交互通信,簡化應用開發難度,增加靈活性。
海量數據
區塊鏈數據一般分為賬本數據、狀態數據以及狀態歷史數據。賬本是交易日志的累積,區塊的載體,需要在節點間同步。而狀態數據和歷史狀態數據是賬本數據狀態的歷史遷移,即便丟失也可以通過賬本數據恢復,且需要被隨時讀取。且需要滿足豐富的查詢需求,在性能和數據存儲等方面具備橫向拓展能力,可以支撐千萬級,甚至億級用戶的使用。
隱私保護,權限控制
需要支持權限策略配置,可以根據各類應用需求進行相應的數據隱私保護,保護數據的安全隱私。同時,私有隱私交易、商業競爭交易需要共存于同一網絡。通過多通道技術限制交易的訪問權限,可用于為成員提供隱私交易功能,某條鏈上的數據對非鏈成員都是無法訪問且不可見的。
基于以上幾點設計原則,我們開始區塊鏈平臺的設計。在區塊鏈技術興起之初,所有機構或個人都可參與的區塊鏈被認為是區塊鏈的唯一解釋。但隨著區塊鏈技術在大型商業團體間的普及,私有鏈及聯盟鏈的概念逐步擴寬了區塊鏈的解釋。公有鏈、聯盟鏈及私有鏈構成了現階段區塊鏈的三種應用場景。以比特幣、以太坊為首的公有鏈平臺允許所有節點發起交易、校驗交易、參與共識及創建區塊等操作。公有鏈的安全性及推動力量由具有激勵機制的共識協議維護,其采取工作量證明機制或權益證明機制等方式,將經濟獎勵與加密數字驗證有機的結合起來,每個節點都可以從中獲得經濟獎勵,與對共識過程作出的貢獻成正比。公有鏈因其開放的加入門檻,被認為是完全去中心化的區塊鏈。以超級賬本為代表的區塊鏈平臺,其設計思想與公有鏈差別甚多,比特幣及以太坊并不足以成為商業項目的底層支撐,商業項目一般要求高并發、低延遲以及隱私保護、權限管理且能應對海量數據。基于以上特點,聯盟鏈及私有鏈的雛形應運而生。且二者間的差別僅僅是多方參與或獨立運營,可認為是相對去中心化。京東供應鏈溯源防偽平臺的建設不能僅僅依靠京東的力量,也需要各供應商的積極參與,第三方監察機構的大力支持。因此,聯盟鏈的選擇是必然的結果,如圖所示:
圖5 京東供應鏈溯源防偽聯盟鏈
平臺整體架構可以如圖所示,區塊鏈平臺的目標不僅僅是只支撐現有業務場景,必須預見未來可能的業務場景帶來的應用層架構抽象,依托于底層SDK及業務場景抽象,我們可以創建豐富的應用,簡化應用開發部署流程,使之平臺化。在底層的區塊鏈平臺中,與上層業務交互的組件是區塊鏈網關,提供Restful API及RPC服務支持不同技術研發的異構客戶端或上層業務。同時解耦簡化應用開發與區塊鏈底層的交互,網關提供證書管理、隱私保護、協議轉換及封裝網絡通信細節等功能,使底層區塊鏈平臺對上層應用開發透明化。商業應用相對而言更關注隱私、賬號體系以及安全相關問題,應對以上需求,平臺抽象出相應服務,賬戶服務將權限管理、私鑰管理整合。安全認證服務提供賬戶認證,數據驗證,加解密及授權等等。數據訪問服務是對區塊鏈底層狀態數據及賬本數據的對外接口。因為區塊鏈系統是去中心化的異步系統架構,也提供事件通知服務,我們定義了多種事件類型,滿足相應觸發條件可自定義后續操作,用同步化思維解決異步問題。同時,我們將智能合約也定義為區塊鏈服務,智能合約服務將支持DSL類型語言定義業務場景及邏輯。以上可作為區塊鏈平臺上層服務,而在底層區塊鏈,系統的關注點主要集中在賬本、共識、P2P網絡及鏈上編碼。他們之間的相互協助,構建起整個區塊鏈底層,為上層應用的搭建提供支撐。 除此之外,平臺也配套了區塊瀏覽器以及相應的運維管理工具,支撐平臺的運行維護。依托于京東云底層資源,我們能夠構建高可用、低延遲、強安全的區塊鏈應用平臺。采用A/B雙環境部署API服務,實現新舊版本平滑升級,解耦API服務和上層業務的升級時間。所有的網絡通信都采用TLS加密通道保障數據安全傳輸。多層負載均衡和多服務實例確保服務高可用。多機房部署可以消除系統單點,提升系統容災能力。節點動態掛載,實現系統彈性擴容。跨機房數據同步,實現數據異地實時備份,云監控接入,實現7*24小時實時故障報警。
圖6 JD區塊鏈服務平臺
以上就是京東區塊鏈平臺的相關介紹,平臺的建設不是一蹴而就的,我們也在不斷的完善整個系統,平臺本身以及平臺周邊工具都在不斷的完善中。我們期待著有一天能夠將平臺開源,為區塊鏈技術的發展做出貢獻。
區塊鏈毫無疑問是跨時代的技術融合,技術的爆發催生了很多創業公司創業項目,但基本上90%多的項目都胎死腹中。追逐新技術的初心不可怠慢,但也更應該看到區塊鏈技術的適用場景,不是所有的業務都適用區塊鏈,為了區塊鏈而區塊鏈,只會適得其反,徒增復雜度。那么什么樣的業務場景適合區塊鏈技術呢?一次沙龍上某位教授的總結很到位:拋開具體業務場景不談,涉及到數據共享的業務場景天然的適合區塊鏈技術。因此,在開始引入區塊鏈技術到項目中之前,先問自己:我們真的需要區塊鏈嗎?
總結
以上是生活随笔為你收集整理的别人在忙挖矿,京东架构师却悄悄用区块链搞了件大事的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 戴尔电脑怎么用u盘启动盘重装 如何使用U
- 下一篇: oracle 12c pl/sql语言,