當(dāng)我們做區(qū)塊鏈時(shí)征候,我們?cè)谧鍪裁矗?/h1>

長(zhǎng)話短說(shuō)钦听,我們?cè)诮ㄦ湣?/p>

區(qū)塊鏈?zhǔn)鞘裁?/h3>

關(guān)于區(qū)塊鏈?zhǔn)鞘裁矗W(wǎng)絡(luò)上的解釋多如牛毛倍奢。這里朴上,我從通常需求的角度總結(jié)一下:在記錄保存(身份存證)時(shí),它是分布式賬本(分布式數(shù)據(jù)庫(kù))卒煞;在交易或支付(跨境支付)時(shí)痪宰,它是信任機(jī)器。雖然這兩種分類方法并不正交畔裕,但是對(duì)于理解區(qū)塊鏈的應(yīng)用領(lǐng)域有很大的好處衣撬。

不論是分布式賬本,還是信任機(jī)器扮饶,其底層的特性——不可篡改具练、透明、可追溯以及去中心化甜无,最終導(dǎo)向的目的都只有一個(gè)扛点,那就是信任。

區(qū)塊鏈的可信度來(lái)自于人類對(duì)數(shù)學(xué)邏輯嚴(yán)密性的信任岂丘,數(shù)學(xué)理論和加密學(xué)實(shí)踐可以確保鏈上數(shù)據(jù)和所有權(quán)的可靠程度陵究。區(qū)塊的確認(rèn)基于共識(shí)算法、不可變的數(shù)據(jù)結(jié)構(gòu)奥帘,再通過(guò) Merkle Tree铜邮、Hash Pointer(哈希指針) 保證前向區(qū)塊鏈的完整性,再加上經(jīng)濟(jì)寨蹋、人心的博弈松蒜、理性經(jīng)濟(jì)人假設(shè),共同構(gòu)成一套完整的信任系統(tǒng)已旧。

然而秸苗,企業(yè)間的聯(lián)盟區(qū)塊鏈有一些不同,它的信任更多地依賴于發(fā)起者品牌的背書(shū)评姨。在這樣的大環(huán)境下难述,聯(lián)盟鏈的設(shè)計(jì)就變得相當(dāng)靈活萤晴,比如最先腰斬的就是代幣吐句。

區(qū)塊鏈的行業(yè)應(yīng)用

在工信部最新發(fā)表的《2018 年中國(guó)區(qū)塊鏈產(chǎn)業(yè)白皮書(shū)》中胁后,區(qū)塊鏈產(chǎn)業(yè)生態(tài)分成了產(chǎn)業(yè)應(yīng)用(包含金融和實(shí)體領(lǐng)域),基礎(chǔ)設(shè)施和平臺(tái)(如公有鏈和BaaS)嗦枢,行業(yè)服務(wù)(如媒體)攀芯。而我們的關(guān)注點(diǎn)集中在產(chǎn)業(yè)應(yīng)用當(dāng)中。

金融領(lǐng)域由于本身數(shù)字化程度比較高文虏,在證券化以及ABS交易所等方向都有落地案例侣诺。在實(shí)體產(chǎn)業(yè)當(dāng)中,供應(yīng)鏈溯源氧秘,身份存證等也多有應(yīng)用年鸳。再加上區(qū)塊鏈本身具有“信任穿透”的神奇功效,對(duì)于構(gòu)建供應(yīng)鏈金融征信體系丸相,改善小微企業(yè)的融資困境也很有幫助搔确。

總體來(lái)說(shuō),幾乎各種產(chǎn)業(yè)場(chǎng)景都能應(yīng)用區(qū)塊鏈技術(shù)灭忠,因?yàn)檫@些場(chǎng)景里都有提升效率膳算,降低成本,優(yōu)化征信體系的訴求弛作。

汽車金融區(qū)塊鏈應(yīng)用

汽車金融

汽車金融中的核心資產(chǎn)是汽車涕蜂。汽車金融始終圍繞車的生命周期發(fā)生金融活動(dòng)。從零配件的生產(chǎn)映琳,到主機(jī)廠制造整車机隙,然后通過(guò)各個(gè)區(qū)域的銷售公司將整車賣給各區(qū)域內(nèi)的經(jīng)銷商。實(shí)際上在中國(guó)萨西,經(jīng)銷商還可以分為不同層級(jí)的二三級(jí)經(jīng)銷商黍瞧,最后才到顧客手中。而一旦新車完成銷售原杂,就邁入了后市場(chǎng)的廣闊天地印颤,以及二手車、三手車的再銷售穿肄。

從汽車零配件的生產(chǎn)運(yùn)輸和組裝到車賣給經(jīng)銷商年局,這些環(huán)節(jié)所涉及到的金融活動(dòng)叫做供應(yīng)鏈金融,而顧客通過(guò)金融活動(dòng)來(lái)買車咸产,不管是新車還是二手車矢否,都屬于消費(fèi)金融的范疇。

汽車的生命周期和金融公司的參與環(huán)節(jié):

它們的業(yè)務(wù)模式長(zhǎng)這樣:

通過(guò)分析現(xiàn)有業(yè)內(nèi)的業(yè)務(wù)模式脑溢,我們發(fā)現(xiàn):

財(cái)務(wù)對(duì)賬成本高昂僵朗,且效率不高赖欣。這里的財(cái)務(wù)成本并非某家公司的財(cái)務(wù)成本,而是整個(gè)系統(tǒng)內(nèi)的財(cái)務(wù)總成本验庙。僅在中國(guó)區(qū)可能就有多家銷售公司和金融公司顶吮,以及幾百家經(jīng)銷商,即使每家公司只有兩名財(cái)務(wù)和審計(jì)人員粪薛,那么財(cái)務(wù)審計(jì)人員都超過(guò)一千悴了,更別提全球銷售范圍內(nèi)了。

傳統(tǒng)的對(duì)賬方式是怎樣的呢违寿?

不同類型的機(jī)構(gòu)進(jìn)行在對(duì)賬時(shí)湃交,往往要從信息系統(tǒng)中導(dǎo)出電子表格,并用郵件發(fā)送藤巢。甚至需要打印表格搞莺、蓋章后郵寄,對(duì)方收到后再與系統(tǒng)數(shù)據(jù)進(jìn)行比對(duì)掂咒。

整個(gè)業(yè)務(wù)流程并不復(fù)雜才沧,但是消耗了很多人力物力,且中心化的服務(wù)還由于對(duì)授權(quán)機(jī)制(多主體之間不太信任或者叫做弱信任)和信息安全等方面的考慮俏扩,而導(dǎo)致建設(shè)成本高昂糜工,且制約了業(yè)務(wù)運(yùn)行效率和用戶體驗(yàn)的提升。區(qū)塊鏈作為分布式賬本录淡,意味著任何機(jī)構(gòu)之間互相發(fā)生債務(wù)往來(lái)的信息都是數(shù)據(jù)一致的捌木,那么就可以近實(shí)時(shí)地進(jìn)行對(duì)賬。

而我們區(qū)塊鏈要做的事情嫉戚,一言以蔽之刨裆,汽車資產(chǎn)上鏈以及圍繞汽車所發(fā)生的金融活動(dòng)而產(chǎn)生的債務(wù)的記錄。所以不難發(fā)現(xiàn)彬檀,分布式賬本和信任機(jī)器在這個(gè)場(chǎng)景下都有涉及帆啃。

怎么建鏈

我們把這次建鏈過(guò)程大體總結(jié)為5個(gè)步驟:識(shí)別上鏈數(shù)據(jù),智能合約設(shè)計(jì)窍帝,API設(shè)計(jì)努潘,部署單元和網(wǎng)絡(luò)拓?fù)浼軜?gòu)。

  • 識(shí)別上鏈數(shù)據(jù)指的是識(shí)別將哪些交易記在鏈上坤学;
  • 智能合約設(shè)計(jì)疯坤,指的是買賣車及其相關(guān)金融活動(dòng)如何通過(guò)可編程的方式自動(dòng)完成;
  • API設(shè)計(jì)深浮,考慮如何對(duì)外暴露平臺(tái)能力压怠,同時(shí)限制控制主體;
  • 部署單元和網(wǎng)絡(luò)部署架構(gòu)屬于實(shí)施范圍飞苇,旨在解答分布式賬本如何真正運(yùn)行在企業(yè)當(dāng)中菌瘫。

整體技術(shù)架構(gòu)是基于Corda這個(gè)分布式賬本技術(shù)展開(kāi)的蜗顽,Corda準(zhǔn)確來(lái)說(shuō)不是區(qū)塊鏈,而是一種受區(qū)塊鏈啟發(fā)的DLT雨让,即分布式賬本技術(shù)雇盖,它是由金融區(qū)塊鏈聯(lián)盟R3開(kāi)發(fā)和維護(hù)的。

上鏈數(shù)據(jù)識(shí)別

要分析清楚的問(wèn)題是車在什么時(shí)候轉(zhuǎn)移宫患,車在什么參與方之間轉(zhuǎn)移刊懈,車在轉(zhuǎn)移的過(guò)程中伴隨了什么數(shù)據(jù)的變化这弧。在分析這塊業(yè)務(wù)的時(shí)候娃闲,我們通過(guò)事件風(fēng)暴,分析了在各個(gè)法律參與實(shí)體之間發(fā)生車轉(zhuǎn)移的業(yè)務(wù)事件匾浪,然后進(jìn)行了事件排序皇帮,通過(guò)事件析出數(shù)據(jù),包括交易參與方蛋辈,車的詳細(xì)信息属拾,車的所有權(quán)和占有權(quán)以及債等等。這部分?jǐn)?shù)據(jù)有一定的取舍冷溶,比如訂單就不在我們的核心資產(chǎn)當(dāng)中渐白,所以不上鏈。

我們開(kāi)始進(jìn)行數(shù)據(jù)建模逞频,在此之前纯衍,有必要介紹一下Corda的編程模型——State,因?yàn)樗鼤?huì)直接影響我們后續(xù)的模型設(shè)計(jì)苗胀。Corda中核心概念之一就是State襟诸,State是分布式賬本上的事實(shí),它代表了交易參與方達(dá)成共識(shí)的結(jié)果基协。以IOU這個(gè)欠條為例歌亲,State其實(shí)就是欠條關(guān)鍵屬性的集合,包含借款方澜驮,欠款方陷揪,金錢數(shù)量,還款截止日期杂穷。當(dāng)欠款部分歸還時(shí)悍缠,這個(gè)欠條的內(nèi)容就會(huì)發(fā)生變化,變化的方式就是將老的欠條標(biāo)記成歷史的亭畜,進(jìn)而生成包含新內(nèi)容的欠條扮休。

在我們應(yīng)用場(chǎng)景中,核心的State就是車和債拴鸵,因?yàn)镃orda是運(yùn)行在JVM上玷坠,開(kāi)發(fā)首選語(yǔ)言是Kotlin蜗搔,所以這里我們直接拿Kotlin中data class對(duì)車和債進(jìn)行建模,而且統(tǒng)一繼承了Corda內(nèi)置的LinearState八堡,LinearState擁有全局唯一ID樟凄,在數(shù)據(jù)演化的過(guò)程中不會(huì)發(fā)生改變。如果有人了解DDD相關(guān)概念的話兄渺,應(yīng)該能自動(dòng)映射到實(shí)體概念上缝龄。除此之外,Corda中還有一個(gè)核心State叫做Fungiable Asset挂谍,可以類比成值對(duì)象叔壤,例如:Cash。

State建模完成之后該怎么演化呢口叙?這就不得不提一個(gè)UTXO的概念炼绘,UTXO全稱 unspent transaction ouput,最開(kāi)始是比特幣網(wǎng)絡(luò)引入的妄田,它有很多好處俺亮,比如可以追溯到每一筆輸出的源頭,幫助驗(yàn)證是否存在雙花現(xiàn)象疟呐,Corda一樣繼承了類似的好處脚曾。銷售公司把車批發(fā)給經(jīng)銷商時(shí),就會(huì)將所有權(quán)歸屬自己的車作為交易的輸入启具,產(chǎn)生輸出本讥,輸出中包含了所有權(quán)的變更以及債務(wù)的生成。而作為輸入的車就會(huì)被標(biāo)記成歷史的富纸。這筆交易本身也必須獲取到交易雙方的簽名才能成立囤踩。

智能合約設(shè)計(jì)

上面我們聊到的都是鏈上的數(shù)據(jù)以及數(shù)據(jù)演化過(guò)程,不過(guò)這些過(guò)程都不是自動(dòng)執(zhí)行的晓褪。對(duì)于復(fù)雜的金融合約堵漱,往往會(huì)涉及到多種state的變化,這個(gè)時(shí)候就必須使用自動(dòng)化的流程封裝這些變化涣仿,封裝這些變化的東西其實(shí)就是智能合約勤庐。還是以經(jīng)銷商批發(fā)車為例,一個(gè)可能的合約模板就是規(guī)定車轉(zhuǎn)移的同時(shí)產(chǎn)生一筆債好港,以及對(duì)應(yīng)的還款截止日期愉镰。這個(gè)合約強(qiáng)制state改變時(shí),交易雙方必須參與簽名钧汹。

在進(jìn)入智能合約實(shí)現(xiàn)之前丈探,需要先了解一下Corda中flow和contract的概念。Flow是Corda中控制參與節(jié)點(diǎn)如何更新State的自動(dòng)化流程拔莱,它對(duì)如何獲取交易對(duì)手方的簽名進(jìn)行了封裝碗降。一個(gè)標(biāo)準(zhǔn)的flow流程包括獲取鏈上數(shù)據(jù)隘竭,創(chuàng)建一筆交易,自簽名之后發(fā)送到對(duì)手方進(jìn)行交易驗(yàn)證讼渊,再簽名动看,最終在雙方的賬本上分別提交事務(wù)。而Contract則是在交易驗(yàn)證環(huán)節(jié)提供驗(yàn)證所用的腳本爪幻。

在我們的應(yīng)用場(chǎng)景中菱皆,智能合約長(zhǎng)成這樣,在flow中挨稿,先從鏈上取出原有車的數(shù)據(jù)仇轻,拷貝得到一個(gè)新的所有權(quán)發(fā)生轉(zhuǎn)移的車以及對(duì)應(yīng)一筆債;然后通過(guò) txBuilder構(gòu)建一筆交易叶组,交易的輸入是原車拯田,而輸出即是新車和債历造;最后就是驗(yàn)證和簽名以及事務(wù)提交的過(guò)程甩十。你可能已經(jīng)注意到txBuilder中有個(gè)firstNotary的參數(shù),這里提一下notary的概念吭产,notary在corda中是一類特殊的節(jié)點(diǎn)侣监,專門(mén)用于防止資產(chǎn)雙花的問(wèn)題。所以理論上臣淤,每筆交易都需要notary節(jié)點(diǎn)參與橄霉,并對(duì)交易進(jìn)行簽名。在交易驗(yàn)證環(huán)節(jié)中邑蒋,我們定義的contract會(huì)被執(zhí)行姓蜂,這個(gè)contract非常簡(jiǎn)單,簡(jiǎn)單到只有一個(gè)叫做verify的純函數(shù)医吊。它的作用就是斷言每一個(gè)state的更新是否符合要求钱慢。這種設(shè)計(jì)非常符合Trust But Verify的理念。

API設(shè)計(jì)

有了智能合約之后卿堂,我們就得考慮如何暴露平臺(tái)的合約能力了束莫。換句話說(shuō),從消費(fèi)者的角度草描,我們?cè)撛趺蠢闷脚_(tái)提供的能力完成自己的業(yè)務(wù)览绿。所以這里我們利用了REST API設(shè)計(jì)的思路,抽象出平臺(tái)的能力作為資源呈現(xiàn)穗慕,定義以車為中心的URI饿敲,然后選擇合適的HTTP動(dòng)詞,得出 REST api逛绵。

從數(shù)據(jù)上鏈識(shí)別怀各,到智能合約設(shè)計(jì)栗竖,再到API設(shè)計(jì),我們?cè)诓煌瑢哟卫肅orda這個(gè)分布式賬本技術(shù)渠啤。最底層的分布式賬本記錄每筆交易發(fā)生的事實(shí)狐肢,不可篡改可追溯;中間的智能合約層提供了合約抽象沥曹,甚至可以和現(xiàn)實(shí)中的合約一一對(duì)應(yīng)份名;最上層的REST api以資源的方式呈現(xiàn)了平臺(tái)的金融活動(dòng)能力。

部署單元

這樣一個(gè)汽車金融平臺(tái)是怎么跑起來(lái)的呢妓美?借助Docker僵腺,我們把一個(gè)物理部署單元打包成了一個(gè)鏡像,底層是一個(gè)全功能的Corda節(jié)點(diǎn)壶栋,所有的智能合約和state都以jar包的方式部署在這個(gè)節(jié)點(diǎn)上辰如;同時(shí)利用SpringBoot通過(guò)RPC的方式連接到Corda節(jié)點(diǎn),調(diào)用智能合約贵试,對(duì)外暴露REST api琉兜;而Corda節(jié)點(diǎn)之間則通過(guò)消息的方式互相通信。

網(wǎng)絡(luò)拓?fù)?/h4>

打包成docker鏡像之后毙玻,就可以部署到運(yùn)行環(huán)境中豌蟋,形成一個(gè)分布式賬本的P2P網(wǎng)絡(luò)。這里有2個(gè)節(jié)點(diǎn)需要留意桑滩,最左邊的 permission service 是用于對(duì)每個(gè)入網(wǎng)節(jié)點(diǎn)進(jìn)行證書(shū)簽發(fā)梧疲,給予每個(gè)參與實(shí)體一個(gè)身份。中間的Network map類似于微服務(wù)中的 service discovery运准,Corda中節(jié)點(diǎn)的互相發(fā)現(xiàn)并不是通過(guò)廣播的方式發(fā)生幌氮,而是通過(guò)注冊(cè)Network map獲取其它節(jié)點(diǎn)的信息,進(jìn)而找到對(duì)方胁澳。

回顧

最后该互,我們回顧一下上面的三層架構(gòu),用價(jià)值的視角重新評(píng)估一下整個(gè)平臺(tái)听哭。傳統(tǒng)的平臺(tái)慢洋,通過(guò)api的方式暴露服務(wù)從而獲得價(jià)值輸入,但是區(qū)塊鏈平臺(tái)的核心資產(chǎn)其實(shí)在最底層的賬本中陆盘∑粘铮基于這些交易事實(shí)和債務(wù)或者支付記錄,我們可以很方便清算各個(gè)法律實(shí)體的數(shù)字資產(chǎn)隘马,計(jì)算實(shí)時(shí)的債務(wù)信息太防,進(jìn)行車輛的價(jià)值溯源,而且未來(lái)結(jié)合大數(shù)據(jù)分析和AI,更有可能打造出一個(gè)完整的供應(yīng)鏈生態(tài)蜒车。


推薦閱讀

文/ThoughtWorks 鄢倩 趙正陽(yáng)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者

  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市酿愧,隨后出現(xiàn)的幾起案子沥潭,更是在濱河造成了極大的恐慌,老刑警劉巖嬉挡,帶你破解...
    沈念sama閱讀 206,602評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件钝鸽,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡庞钢,警方通過(guò)查閱死者的電腦和手機(jī)拔恰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)基括,“玉大人颜懊,你說(shuō)我怎么就攤上這事》缑螅” “怎么了河爹?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,878評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)揪阶。 經(jīng)常有香客問(wèn)我昌抠,道長(zhǎng),這世上最難降的妖魔是什么鲁僚? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,306評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮裁厅,結(jié)果婚禮上冰沙,老公的妹妹穿的比我還像新娘。我一直安慰自己执虹,他們只是感情好拓挥,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評(píng)論 5 373
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著袋励,像睡著了一般侥啤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上茬故,一...
    開(kāi)封第一講書(shū)人閱讀 49,071評(píng)論 1 285
  • 那天盖灸,我揣著相機(jī)與錄音,去河邊找鬼磺芭。 笑死赁炎,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的钾腺。 我是一名探鬼主播徙垫,決...
    沈念sama閱讀 38,382評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼讥裤,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了姻报?” 一聲冷哼從身側(cè)響起己英,我...
    開(kāi)封第一講書(shū)人閱讀 37,006評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎吴旋,沒(méi)想到半個(gè)月后剧辐,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,512評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡邮府,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評(píng)論 2 325
  • 正文 我和宋清朗相戀三年荧关,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片褂傀。...
    茶點(diǎn)故事閱讀 38,094評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡忍啤,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出仙辟,到底是詐尸還是另有隱情同波,我是刑警寧澤,帶...
    沈念sama閱讀 33,732評(píng)論 4 323
  • 正文 年R本政府宣布叠国,位于F島的核電站未檩,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏粟焊。R本人自食惡果不足惜冤狡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望项棠。 院中可真熱鬧悲雳,春花似錦、人聲如沸香追。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,286評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)透典。三九已至晴楔,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間峭咒,已是汗流浹背税弃。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,512評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留讹语,地道東北人钙皮。 一個(gè)月前我還...
    沈念sama閱讀 45,536評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親短条。 傳聞我的和親對(duì)象是個(gè)殘疾皇子导匣,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容