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