0
雷鋒網(wǎng)AI金融評(píng)論報(bào)道,5 月 13 日,由 ThoughtWorks 主辦的 2017 技術(shù)雷達(dá)峰會(huì)在北京召開。ThoughtWorks 中國(guó)區(qū)區(qū)塊鏈能力負(fù)責(zé)人、AI慕課學(xué)院講師劉尚奇在大會(huì)上發(fā)表了題為《Blockchain in Enterprise》(企業(yè)區(qū)塊鏈)的主題演講,系統(tǒng)講解了區(qū)塊鏈技術(shù)在企業(yè)級(jí)應(yīng)用中的實(shí)踐問(wèn)題。
劉尚奇表示,區(qū)塊鏈的概念近兩年逐漸深入人心,但真正進(jìn)入企業(yè)級(jí)應(yīng)用的時(shí)候,實(shí)際上還面對(duì)許多問(wèn)題。從業(yè)者應(yīng)該清醒認(rèn)識(shí)到:進(jìn)行區(qū)塊鏈選擇的決策時(shí),從業(yè)者一定要從當(dāng)前需要解決的實(shí)際業(yè)務(wù)問(wèn)題出發(fā),將決策建立在真正的業(yè)務(wù)需求上,而不是一個(gè)純粹的技術(shù)。技術(shù)應(yīng)該是應(yīng)用解決方案的一部分。
但作為應(yīng)用解決方案的一部分,企業(yè)開始部署區(qū)塊鏈時(shí)發(fā)現(xiàn)區(qū)塊鏈需要去中心化,這跟傳統(tǒng)應(yīng)用的部署思路幾乎完全不同,并因此陷入困境。對(duì)此劉尚奇表示,在區(qū)塊鏈技術(shù)中除了智能合約和分布式賬本等底層組件需要去中心化之外,其實(shí)上層架構(gòu)跟傳統(tǒng)技術(shù)完全沒(méi)有區(qū)別。同時(shí)他建議:
不論區(qū)塊鏈的應(yīng)用是去中心化的應(yīng)用,企業(yè)都應(yīng)該把它構(gòu)建在一系列相互獨(dú)立的服務(wù)基礎(chǔ)上,將系統(tǒng)模塊化,這樣不同的部分就可以進(jìn)行獨(dú)立的演化和部署。
關(guān)于區(qū)塊鏈理論和實(shí)踐的更多內(nèi)容,雷鋒網(wǎng) AI 慕課學(xué)院在“從零構(gòu)建一個(gè)區(qū)塊鏈應(yīng)用”系列課程中將做一個(gè)全面講解,劉尚奇也是導(dǎo)師之一,感興趣的朋友千萬(wàn)不要錯(cuò)過(guò)!
以下為演講全文(雷鋒網(wǎng)做了不改變?cè)獾木庉嫞?/span>
如果你想要在你的組織里引入?yún)^(qū)塊鏈技術(shù),你應(yīng)該注意哪些事情?我們覺(jué)得在一個(gè)企業(yè)里面,你做區(qū)塊鏈的時(shí)候必須考慮下面這幾個(gè)因素:
第一點(diǎn),現(xiàn)在市場(chǎng)上這么多區(qū)塊鏈底層可以選擇,但可能只想做一個(gè)區(qū)塊鏈應(yīng)用,什么樣的技術(shù)適合我?把比特幣代碼分叉出來(lái)改一套自己的實(shí)現(xiàn),還是采用某些供應(yīng)商提供的解決方案?
第二點(diǎn),現(xiàn)在圍繞區(qū)塊鏈開發(fā)的是所謂的去中心化應(yīng)用(Decentrilized Application,dapp),很多人發(fā)現(xiàn)這跟我們做一個(gè)傳統(tǒng)的企業(yè)級(jí)應(yīng)用或者互聯(lián)網(wǎng)應(yīng)用的思路不太一樣。因?yàn)樗鶐?lái)的去中心化的思路,會(huì)對(duì)整個(gè)架構(gòu)設(shè)計(jì)思路產(chǎn)生影響,這種情況應(yīng)該如何設(shè)計(jì)軟件?
第三點(diǎn),區(qū)塊鏈在部署層面,也跟傳統(tǒng)基于私有機(jī)房或者公有云私有云部署的應(yīng)用不太一樣,因?yàn)樾枰ブ行幕夭渴饏^(qū)塊鏈的節(jié)點(diǎn),我們會(huì)遇到哪些挑戰(zhàn),應(yīng)該怎么優(yōu)化部署方式?
今天我將從以上三點(diǎn)跟大家分享一下我自己的認(rèn)識(shí)。
這個(gè)圖上的是 Willam Mougagyar 總結(jié)的 2016 年的區(qū)塊鏈在 Fintech 領(lǐng)域的 landscape,非常多的技術(shù)。當(dāng)然區(qū)塊鏈不只是在金融領(lǐng)域,在供應(yīng)鏈、醫(yī)療等很多其他領(lǐng)域都有應(yīng)用。在這張全景圖里的區(qū)塊鏈技術(shù)有基于比特幣等加密貨幣的基礎(chǔ)設(shè)施,有開發(fā)智能合約的平臺(tái),有中間件,有上層更有針對(duì)性的行業(yè)解決方案。當(dāng)你想要做一個(gè)區(qū)塊鏈的應(yīng)用,你會(huì)發(fā)現(xiàn)有很多選擇。
不是所有的企業(yè)都是直接做區(qū)塊鏈業(yè)務(wù)的創(chuàng)業(yè)公司,企業(yè)更多地希望這項(xiàng)技術(shù)能給公司帶來(lái)什么改變和價(jià)值。因?yàn)閰^(qū)塊鏈所具有的巨大潛力——很有可能顛覆當(dāng)前支付、中介等業(yè)務(wù)形態(tài),大家都可能想提前準(zhǔn)備,防止被崛起的區(qū)塊鏈創(chuàng)新者顛覆掉。
我假設(shè),我們自己不會(huì)從零研發(fā)一套區(qū)塊鏈的技術(shù)棧。我的確看到很多創(chuàng)業(yè)公司基于比特幣、瑞波幣等開源的加密貨幣,分叉出來(lái)在上面做開發(fā)。我們建議基于一些相對(duì)成熟的、開源的或者商業(yè)的解決方案,在上面構(gòu)建應(yīng)用。
在選擇區(qū)塊鏈技術(shù)的時(shí)候,首先它跟以往做技術(shù)決策沒(méi)有任何的區(qū)別:以前我們做技術(shù)決策會(huì)看這個(gè)方案提供什么類型的編程語(yǔ)言的接口,要考慮程序員是不是熟悉,它的文檔支持什么樣,它的背后是不是有一些大公司,是不是有開源組織背書,夠不夠穩(wěn)定,行業(yè)里面有沒(méi)有應(yīng)用案例。
在這之外,當(dāng)我們選擇區(qū)塊鏈技術(shù)的時(shí)候,一定要建立在自己需要解決的業(yè)務(wù)問(wèn)題上。 Gartner 今年初的時(shí)候發(fā)布的了篇文章叫“Top 10 Mistakes in Enterprise Blockchain Projects”,其中提到了一大家對(duì)區(qū)塊鏈應(yīng)用的誤區(qū)是“Confusing a limited, foundation-level protocol with a complete business solution” 。
區(qū)塊鏈技術(shù)本身,跟我們的商業(yè)解決方案是有區(qū)別的,它是我們要構(gòu)建的業(yè)務(wù)解決方案的一部分。很多時(shí)候我們需要更加關(guān)注在我們的區(qū)塊鏈解決方案上。
怎么樣找到能用區(qū)塊鏈解決的業(yè)務(wù)問(wèn)題,這些方法論包括:分析所面對(duì)的目標(biāo)客戶群體,建立用戶畫像;通過(guò)對(duì)面向需求的場(chǎng)景進(jìn)行分析,建立客戶體驗(yàn)地圖;以及為了支撐該體驗(yàn),梳理各業(yè)務(wù)環(huán)節(jié)應(yīng)該怎樣流轉(zhuǎn),分析業(yè)務(wù)流程地圖;此外通過(guò)商業(yè)觸點(diǎn)分析跟你的業(yè)務(wù)模式之間的交互,通過(guò)體驗(yàn)心情地圖和設(shè)計(jì)挑戰(zhàn)改善你的產(chǎn)品設(shè)計(jì)和用戶體驗(yàn)。
此外,在區(qū)塊鏈應(yīng)用中我們應(yīng)該額外注意什么?首先我們要明確區(qū)塊鏈解決的兩個(gè)核心問(wèn)題:第一個(gè)是分布式的信任(Distributed Trust),第二是不可抵賴的賬本(Indelible Ledgers)。
首先是分布式信任,它能夠在所謂的去中心化的場(chǎng)景下,多個(gè)完全沒(méi)有信任關(guān)系的參與方,在沒(méi)有一個(gè)中間的權(quán)威背書情況下,建立起共識(shí)和信任。
前面梳理業(yè)務(wù)流程和商業(yè)觸點(diǎn)的時(shí)候,需要:分析在企業(yè)整個(gè)業(yè)務(wù)流程里,有哪些觸點(diǎn)是我需要跟第三方的組織、機(jī)構(gòu)發(fā)生交互,需要去建立某種信任機(jī)制,我們的區(qū)塊鏈技術(shù)可以應(yīng)用在這些觸點(diǎn)上。
區(qū)塊鏈的另一個(gè)使用場(chǎng)景是不可抵賴的賬本。區(qū)塊鏈通過(guò)將每一筆交易進(jìn)行哈希、多個(gè)交易哈希通過(guò) Merkle Tree(梅克爾樹)構(gòu)建為區(qū)塊、再通過(guò) Hash Point 串成一個(gè)鏈條,這種結(jié)構(gòu)能夠非常容易和高效地校驗(yàn)到對(duì)底層賬本的篡改。那些需要審計(jì),需要合規(guī)的業(yè)務(wù),一旦使用了區(qū)塊鏈類的技術(shù),能夠給你帶來(lái)的成本降低是非常明顯的。
所以在我們說(shuō)區(qū)塊鏈的應(yīng)用的時(shí)候,一定不是單純看著這個(gè)技術(shù)去開腦洞,一定是基于真實(shí)的業(yè)務(wù)問(wèn)題。
我們對(duì)真實(shí)的業(yè)務(wù)問(wèn)題進(jìn)行分析,找這類需要構(gòu)建多方信任的點(diǎn),找到需要不可抵賴的數(shù)據(jù)的點(diǎn),在這些點(diǎn)上再去構(gòu)建區(qū)塊鏈的解決方案。
找到了業(yè)務(wù)問(wèn)題后,我們可能還需要關(guān)注兩個(gè)核心的業(yè)務(wù)指標(biāo)。第一是業(yè)務(wù)的吞吐量,第二是業(yè)務(wù)的交易確認(rèn)時(shí)間。
首先要了解這項(xiàng)業(yè)務(wù)交易的吞吐量有多少。比如如果做的是一個(gè)跨國(guó)結(jié)算的業(yè)務(wù),每天的交易量是幾十萬(wàn)筆,那區(qū)塊鏈系統(tǒng)所支持的日吞吐必須要支撐這個(gè)數(shù)字,這是交易吞吐量。
另外一點(diǎn)是交易的確認(rèn)時(shí)間,當(dāng)我發(fā)生了一筆轉(zhuǎn)帳或者一筆支付,交易多長(zhǎng)時(shí)間能夠確認(rèn)。比特幣真正鏈上的交易吞吐量比較低,每秒 7 筆交易。如果直接基于比特幣開發(fā)商業(yè)應(yīng)用,那可能很多日交易量超過(guò)百萬(wàn)的業(yè)務(wù)場(chǎng)景是沒(méi)有辦法支撐的。另外,比特幣每十分鐘生成一個(gè)區(qū)塊,也就是一次轉(zhuǎn)帳的確認(rèn)時(shí)間要花十分鐘。而一般連續(xù)生成 6 個(gè)區(qū)塊,也就是大概 1 個(gè)小時(shí)的時(shí)間,我們才認(rèn)為你的這次轉(zhuǎn)賬已經(jīng)在鏈上比較穩(wěn)定,不太容易被篡改。十分鐘的時(shí)間,如果你想做的是跨國(guó)支付,這相比于傳統(tǒng) T+2、 T+3 的到賬時(shí)間已經(jīng)大大縮短了。但如果做一些面向消費(fèi)者的應(yīng)用,消費(fèi)者不可能站在那里等你十分鐘,才能知道我付款成功了。(當(dāng)然這里只是用比特幣舉例子,實(shí)際在比特幣上有很多像微支付通道、閃電網(wǎng)絡(luò)、隔離見(jiàn)證這樣的技術(shù)去改善比特幣的吞吐量和交易確認(rèn)時(shí)間。)
但這里是想提醒大家,你所面對(duì)業(yè)務(wù)的交易吞吐量和交易確認(rèn)時(shí)間,會(huì)很大程度影響你選擇什么樣的區(qū)塊鏈技術(shù)。
跟具體的區(qū)塊鏈技術(shù)相關(guān),我認(rèn)為有一些因素是不用考慮的:
比如你用了什么樣的加密算法,單向加密是用的 SHA128 還是 SHA256,非對(duì)稱加密是用的 RSA 還是橢圓曲線。我們認(rèn)為作為企業(yè)中你其實(shí)不需要太關(guān)注具體的加密算法,這應(yīng)當(dāng)是你選擇的區(qū)塊鏈技術(shù)棧的一部分,加密算法實(shí)現(xiàn)封裝在內(nèi)部。自己去實(shí)現(xiàn)加密算法和做調(diào)優(yōu)非常難寫對(duì),盡量不要自己寫。
另外,還有一些基于開源區(qū)塊鏈技術(shù)去擴(kuò)展自己應(yīng)用的公司,可能會(huì)去調(diào)優(yōu) P2P 網(wǎng)絡(luò)的通信性能。這個(gè)我們也是同樣的觀點(diǎn),作為企業(yè)來(lái)說(shuō)沒(méi)有必要自己去調(diào)這些底層的網(wǎng)絡(luò)通信協(xié)議,它應(yīng)該是你在選擇某種區(qū)塊鏈技術(shù)時(shí)就考察過(guò)的。
還有很多人在提區(qū)塊鏈的交互操作性(Interoperability)。我們知道前面列了這么多區(qū)塊鏈的技術(shù)實(shí)現(xiàn),它們底層的協(xié)議,包括賬本的數(shù)據(jù)結(jié)構(gòu),節(jié)點(diǎn)的驗(yàn)證和通信方式,在上面跑的只能合約都是互不兼容的。有點(diǎn)像我們?cè)谏鲜兰o(jì)建立全球的 Internet 前,每個(gè)組織有很多自己的局域網(wǎng)。當(dāng)然這些局域網(wǎng)都發(fā)揮了它們自己的作用,但彼此之間是信息孤島沒(méi)有打通。
所以很多人說(shuō)選用區(qū)塊鏈的時(shí)候要考慮交互操作性,考慮是不是和其他的區(qū)塊鏈實(shí)現(xiàn)兼容,這樣將來(lái)大一統(tǒng)的時(shí)候不用做太多遷移工作。我承認(rèn)交互操作性非常重要,但坦白來(lái)說(shuō),在這個(gè)時(shí)間點(diǎn),我不建議大家在這上面花太多的時(shí)間。因?yàn)楝F(xiàn)在并沒(méi)有哪一種實(shí)現(xiàn)成為所謂的事實(shí)標(biāo)準(zhǔn)(defacto standard)。未來(lái)比特幣或是以太坊是否完成大一統(tǒng),都不一定。這個(gè)時(shí)候沒(méi)必要投入太多時(shí)間去試圖預(yù)測(cè)不確定的未來(lái)。
跟具體區(qū)塊鏈技術(shù)相關(guān)的因素,我建議可以考慮這三個(gè)點(diǎn):第一點(diǎn),共識(shí)算法。第二點(diǎn)是賬戶模型,第三點(diǎn)是智能合約。
有人開玩笑說(shuō)解決的是“今天中午吃什么”的問(wèn)題?這是一個(gè)很貼切的描述。所謂的分布式共識(shí)算法——我有這么多分布式的節(jié)點(diǎn),彼此之間需要網(wǎng)絡(luò)通信對(duì)某個(gè)狀態(tài)達(dá)成共識(shí),但彼此之間又不信任。這跟我們?cè)诨ヂ?lián)網(wǎng)應(yīng)用做分布式系統(tǒng)有很大的區(qū)別。傳統(tǒng)的分布式系統(tǒng)節(jié)點(diǎn)都部署在自己的機(jī)房里,不需要考慮拜占庭錯(cuò)誤,你需要考慮的只有丟包、超時(shí)、機(jī)器 crash 這些問(wèn)題,用 Paxos 和 Raft 一類的算法就可以了。
但是如果做區(qū)塊鏈的應(yīng)用,我一定要處理拜占庭錯(cuò)誤,面對(duì)潛在的欺詐和篡改的情況。這里選擇不同的共識(shí)算法,會(huì)對(duì)你的區(qū)塊鏈應(yīng)用有比較大的影響。有的區(qū)塊鏈應(yīng)用可能就是要做公有鏈,面向公開網(wǎng)絡(luò);有的區(qū)塊鏈應(yīng)用做的是聯(lián)盟鏈,有限節(jié)點(diǎn),追求高性能、高吞吐量,它們選用的共識(shí)算法一定是不同的。這里是主要算法的對(duì)比。
一個(gè)類是在比特幣驗(yàn)證了很多年的 PoW,工作量證明, PoW 已經(jīng)被證明非常適合這種全開放網(wǎng)絡(luò)的公有鏈,對(duì)于拜占廷錯(cuò)誤的容忍率比較高,一般我們認(rèn)為有 51%的節(jié)點(diǎn)聯(lián)合起來(lái)進(jìn)行欺詐,才能對(duì)整個(gè)區(qū)塊鏈產(chǎn)生有效供給。但相應(yīng)的,PoW 非常消耗算力,吞吐量和確認(rèn)時(shí)間也都不太理想。
還有一大類是以太坊采用的 PoS,權(quán)益證明,以及 DPoS 等擴(kuò)展。權(quán)益證明是基于不同節(jié)點(diǎn)的股權(quán)數(shù),有點(diǎn)像真實(shí)的股東大會(huì)投票一樣,在股東里面隨機(jī)選舉節(jié)點(diǎn)進(jìn)行記賬。這類算法也比較適合公有鏈,相比 PoW 在容量和計(jì)算資源上都是有優(yōu)化的。
還有一類是拜占廷容錯(cuò)協(xié)議 BFT,比較有名的像 PBFT。這類算法是基于狀態(tài)機(jī)同步的算法(state machine replication),不需要代幣。當(dāng)客戶端發(fā)送請(qǐng)求給一個(gè)節(jié)點(diǎn),每一個(gè)節(jié)點(diǎn)互相廣播其他所有節(jié)點(diǎn)發(fā)送消息,彼此之間進(jìn)行交易的確認(rèn)。一般來(lái)說(shuō)它的延時(shí)比較低,吞吐量也更高,但是相對(duì)來(lái)說(shuō)對(duì)網(wǎng)絡(luò)壓力也比較高,更加適合有限網(wǎng)絡(luò)節(jié)點(diǎn)。另外 BFT 類算法對(duì)拜占庭錯(cuò)誤的容忍度也相對(duì)較低,像 PBFT 有 f 個(gè)節(jié)點(diǎn)發(fā)生拜占庭錯(cuò)誤時(shí),整個(gè)網(wǎng)絡(luò)要大于 3f+1 個(gè)節(jié)點(diǎn)才能保證正確性。
2016 年業(yè)界在共識(shí)算法上面也做了很多探索,現(xiàn)在大家基本達(dá)成的共識(shí)是:如果你的區(qū)塊鏈應(yīng)用場(chǎng)景是公有鏈,可以使用 PoW、 PoS 這類算法,如果你的區(qū)塊鏈應(yīng)用場(chǎng)景是許可鏈聯(lián)盟鏈,可以采用 BFT 類算法。
另外一個(gè),你所使用區(qū)塊鏈技術(shù)的賬戶模型。有兩個(gè)流派,第一個(gè)流派以比特幣為代表的 UTSO 模型,第二個(gè)以以太坊為代表的簡(jiǎn)單賬戶模型。
先說(shuō)一下簡(jiǎn)單賬戶模型,很簡(jiǎn)單,我轉(zhuǎn)帳支付就是錢加減、付錢。 UTSO,在每一個(gè)構(gòu)建交易的時(shí)候,有輸入和輸出。比特幣我有一千塊錢,給艾麗斯轉(zhuǎn)一百塊錢的時(shí)候,我不是扣掉一百塊錢,我是構(gòu)造這么一個(gè)交易,輸入一百塊錢,輸出一百塊錢。你的每一次交易數(shù)據(jù)會(huì)記錄在這個(gè)賬本里面,這樣日后做一些數(shù)據(jù)分析更加容易。因?yàn)樽钤缡潜忍貛盘岢龅?,?duì)于雙發(fā)問(wèn)題比較奏效。簡(jiǎn)單賬戶模型它比較有效,就是簡(jiǎn)單的轉(zhuǎn)帳,可以支持一些比較高級(jí)的,如果你基于 UTSO 做可能會(huì)更麻煩一些。
第三個(gè)是對(duì)智能合約的支持,很多人做了一兩年,發(fā)現(xiàn)我們?cè)瓉?lái)只需要一個(gè)分布式賬本,只需要一個(gè)記賬的。如果你只做一個(gè)不可篡改的記賬,但是很多公司,很多組織看中它的智能合約的能力。選擇技術(shù),在技術(shù)雷達(dá)里面出現(xiàn)了兩個(gè),這是我們做過(guò)一些共同試驗(yàn)的解決方案。
另外一點(diǎn),在構(gòu)建區(qū)塊鏈的應(yīng)用的時(shí)候,你應(yīng)該怎么構(gòu)建。很多人說(shuō)區(qū)塊鏈?zhǔn)峭耆ブ行幕?,跟傳統(tǒng)的思路完全不一樣,怎么構(gòu)建我的應(yīng)用,完全懵了。
在你的傳統(tǒng)的應(yīng)用里面,最上層是 UI 層,最下層是數(shù)據(jù)庫(kù)。而在區(qū)塊鏈部署中,最上層是你的 Cllent,它里面不會(huì)跑真正的節(jié)點(diǎn),只是一個(gè)輕客戶端,負(fù)責(zé)調(diào)用后層的區(qū)塊鏈的合約,包括你做一個(gè)網(wǎng)站也好,你可以使用任何熟悉的技術(shù)。真正的核心部分是 SMART contract,最底層是分布式的賬本。只有下面這幾層才需要去中心化的部署,去構(gòu)建的。上層跟我們傳統(tǒng)的技術(shù)沒(méi)有任何區(qū)別。
在去構(gòu)建區(qū)塊鏈應(yīng)用的時(shí)候,我們看到一些公司做咨詢,發(fā)現(xiàn)它們把很多東西做到一塊了。因?yàn)槭且粋€(gè)新的東西,做在一塊非常方便。但是區(qū)塊鏈有一些共識(shí)算法,這就導(dǎo)致往后演化非常不容易,因?yàn)檫@里面每一部分都可以獨(dú)立的演化和獨(dú)立發(fā)展。
這里是 hyperledger,我的身份管理,我的注冊(cè),一部分是所謂的負(fù)責(zé)底下的共識(shí)算法、分布式賬本,這些都是特別像共識(shí)算法,一部分是在 hyperledger 里面的智能合約。即使我們沒(méi)有使用 hyperledger,我們自己做公有云也是類似,這部分一定要跟業(yè)務(wù)的應(yīng)用不能放在一個(gè)代碼進(jìn)行編譯打包。
另外一部分,有可能不是由智能合約,我們希望把這部分單獨(dú)拿出來(lái),單獨(dú)做一個(gè)服務(wù)的模塊。一般來(lái)說(shuō)在你的區(qū)塊鏈里面一定會(huì)涉及身份的管理,無(wú)論你使用什么樣的技術(shù)都會(huì)有這一塊,我們也建立獨(dú)立出來(lái)。它給推薦了一個(gè)架構(gòu),我們看到它也是把我們分布式賬本,把身份跟密鑰管理服務(wù)做成共同的服務(wù),包括加密算法能夠提煉出來(lái),在上面承載了一些 ML、 BI 的 servlces。最上面是應(yīng)用,監(jiān)控端,跑一些真正的解決方案,這是區(qū)塊鏈相關(guān)的技術(shù),這是底層的賬本,旁邊可以結(jié)合其他的區(qū)塊鏈的定制工具,結(jié)合市場(chǎng)做一些架構(gòu)。
這是我們推薦的方式,因?yàn)閰^(qū)塊鏈?zhǔn)呛芏嗉夹g(shù)的混雜,一定不要混在一塊,要構(gòu)成一個(gè)一個(gè)獨(dú)立的服務(wù)。這樣像身份管理,像區(qū)塊鏈技術(shù)、共識(shí)算法、加密技術(shù),都可以選擇獨(dú)立的技術(shù)的提供商,或者獨(dú)立的開元實(shí)現(xiàn),去構(gòu)建自己獨(dú)立的業(yè)務(wù),這樣不會(huì)綁死在某一個(gè)平臺(tái)上,可以有更大的發(fā)揮空間。
說(shuō)到部署,這里只提一點(diǎn)原計(jì)劃的應(yīng)用。一些同學(xué)問(wèn)我,他們是自己做技術(shù)的創(chuàng)業(yè)者。說(shuō)區(qū)塊鏈這個(gè)技術(shù),我一旦數(shù)據(jù)寫進(jìn)去就不可篡改了,很多時(shí)候我想要改這個(gè)數(shù)據(jù)怎么辦?
我說(shuō)分兩種情況。第一種情況,真的是出于監(jiān)管審計(jì)的要求做篡改,也是分兩個(gè)流派,一派認(rèn)為區(qū)塊鏈的技術(shù)應(yīng)該提供這樣的能力,我是站在另外一派,我認(rèn)為不應(yīng)該提供這種能力。另外,你明明寫錯(cuò)了,我看到個(gè)人開發(fā)者面臨的問(wèn)題,因?yàn)槲易约旱膽?yīng)用寫錯(cuò)了,導(dǎo)致數(shù)據(jù)損壞和數(shù)據(jù)錯(cuò)誤。你在正常的企業(yè)里面做開發(fā),一定是經(jīng)過(guò)嚴(yán)格的開發(fā)和測(cè)試,要提前測(cè)試才能上到生產(chǎn)環(huán)境的。我們一般開發(fā)可能本機(jī)布幾個(gè)節(jié)點(diǎn),然后一個(gè)網(wǎng)絡(luò),不可能開發(fā)完之后直接去了,你一定會(huì)有區(qū)塊鏈不同的測(cè)試網(wǎng)絡(luò)節(jié)點(diǎn),你上生產(chǎn)環(huán)境之前一定要充分的測(cè)試,去保證這部分的邏輯沒(méi)有錯(cuò),不會(huì)因?yàn)檫壿嫷膯?wèn)題導(dǎo)致數(shù)據(jù)的錯(cuò)誤,然后才能上升到生產(chǎn)環(huán)節(jié)。怎么在本地的生產(chǎn)環(huán)境、開發(fā)之間能夠維護(hù)一套統(tǒng)一的環(huán)境,包括基礎(chǔ)設(shè)施,區(qū)塊鏈的網(wǎng)絡(luò)配置,我們認(rèn)為是用這個(gè)技術(shù)非常容易解決的。
另外一點(diǎn),你真正面臨一個(gè)問(wèn)題,你現(xiàn)在部署的應(yīng)用不是只是在你自己的機(jī)房里邊,你有全部的權(quán)限部署。為了建立分布式的信任,你需要在不同的節(jié)點(diǎn)上,不同的參與方,可能在你的組織之外,你去分發(fā)你的應(yīng)用,你沒(méi)有一個(gè)蘋果商店,你很難約束他們的環(huán)境,他們的技術(shù)環(huán)境,他們的條件。這時(shí)候,我們認(rèn)為你只是分送給他們一個(gè)最新的軟件包讓他們升級(jí),可能會(huì)有很多不可控的因素。包括他們使用的技術(shù)、軟件版本、中間件會(huì)有一些沖突,可能有些難以預(yù)料的問(wèn)題。在這種場(chǎng)景下,從你的軟件和環(huán)境整個(gè)標(biāo)準(zhǔn)化,去分發(fā),我認(rèn)為是很好的策略。所以我們建議當(dāng)你做應(yīng)用的時(shí)候,還是用原計(jì)劃管理環(huán)境,管理部署和發(fā)布。
最后,在企業(yè)想要嘗試區(qū)塊鏈技術(shù)的時(shí)候,會(huì)面臨非常多不確定的因素,這里我總結(jié)了三點(diǎn)建議給大家:
● 當(dāng)你選擇區(qū)塊鏈技術(shù)的時(shí)候,一定是在你的業(yè)務(wù)上,它不是一個(gè)純粹的技術(shù),一定是應(yīng)用解決方案的一部分。
● 區(qū)塊鏈的應(yīng)用也好,還是去中心化應(yīng)用,我們建議把它構(gòu)建在一系列獨(dú)立的服務(wù)上,這樣不同的部分可以獨(dú)立的演化和部署。
● 希望原計(jì)劃來(lái)管理,提高你的部署,包括軟件分發(fā)的效率。
今天的分享就是這些,謝謝大家。
提問(wèn)一:剛才說(shuō)到一個(gè)問(wèn)題,假如我的業(yè)務(wù)真是有問(wèn)題影響了數(shù)據(jù),假如在生產(chǎn)環(huán)境中改我的區(qū)塊鏈的數(shù)據(jù)是合理的嗎?
劉尚奇:因?yàn)槲覀冎肋@個(gè)區(qū)塊鏈技術(shù)它的特點(diǎn)就是所謂的數(shù)據(jù)不可篡改性。其實(shí)很多人問(wèn)這個(gè)問(wèn)題,我在生產(chǎn)環(huán)境改這個(gè)數(shù)據(jù)真的合理嗎?我剛才也說(shuō)兩個(gè)流派,第一個(gè)流派,認(rèn)為我作為現(xiàn)實(shí)中一定會(huì)發(fā)生錯(cuò)誤的,一定是有包括監(jiān)管的需要,特別像中國(guó)的場(chǎng)景會(huì)更明顯一些,如果技術(shù)不提供監(jiān)管和改數(shù)據(jù)的能力,可能政府都不會(huì)放行。這個(gè)由區(qū)塊鏈的技術(shù)平臺(tái)實(shí)現(xiàn),可能會(huì)建立一個(gè)單獨(dú)仲裁的節(jié)點(diǎn)和實(shí)現(xiàn),像 Oracle,它來(lái)做我們的數(shù)據(jù)的最終審計(jì),它是一個(gè)更權(quán)威的,去做一些修改的操作。但是我個(gè)人,包括很多做區(qū)塊鏈技術(shù)的社區(qū)同仁也是認(rèn)為,這個(gè)是不合理的,因?yàn)檫@個(gè)會(huì)抹殺區(qū)塊鏈技術(shù)帶來(lái)的價(jià)值,會(huì)抹殺你對(duì)區(qū)塊鏈的信任。如果真的出現(xiàn)這樣的情況怎么辦?現(xiàn)實(shí)生活中人類一定會(huì)犯錯(cuò),業(yè)務(wù)一定會(huì)犯錯(cuò),現(xiàn)實(shí)生活中怎么處理的?通過(guò)線下的方式,你打個(gè)電話,你打錯(cuò)了錢,我們打錢回來(lái),通過(guò)線下的契約彌補(bǔ)技術(shù)本身,技術(shù)保持它的價(jià)值,我靠其他的業(yè)務(wù)運(yùn)轉(zhuǎn)活動(dòng)做補(bǔ)償。謝謝。
提問(wèn)二:我有一個(gè)問(wèn)題,您說(shuō)的可能更多是金融行業(yè)。我想它對(duì)于其他的行業(yè)有什么影響?比如傳統(tǒng)的行業(yè)。
劉尚奇:這里可以開一個(gè)腦洞,如果大家熟悉 DEO 是什么概念。除了金融行業(yè),因?yàn)槟愕膮^(qū)塊鏈可以在一個(gè)一個(gè)不同的參與方之間建立起來(lái)分布式的共識(shí),所以現(xiàn)在很多所謂的 O2O,一些中介化的應(yīng)用也不需要了,包括 P2P。我不知道在座有沒(méi)有滴滴打車或者大眾點(diǎn)評(píng)這樣的。如果你基于區(qū)塊鏈的平臺(tái),大家開發(fā)出來(lái)這么一套打車軟件或者租房軟件,或者大眾點(diǎn)評(píng),我為什么還需要專門的公司去運(yùn)營(yíng)呢?我是租房的,有一個(gè)租房的租戶,我有一個(gè)出租房源的房主,只需要這兩方參與,我的信任和程序,不需要一個(gè)真正的公司和實(shí)體去建立這種信任。所以如果從這個(gè)角度去看的話,你發(fā)現(xiàn)我們現(xiàn)在很多做互聯(lián)網(wǎng) O2O,或者線上到線下,一些互聯(lián)網(wǎng)化的應(yīng)用,一些崛起的巨頭公司,它們的業(yè)務(wù)場(chǎng)景都可以用區(qū)塊鏈的智能合約去取代的。不知道有沒(méi)有嘗試解答這個(gè)問(wèn)題。
提問(wèn)三:我想問(wèn)一下,公有鏈、私有鏈,現(xiàn)在還有一個(gè)聯(lián)盟鏈。我簡(jiǎn)單理解聯(lián)盟鏈就是幾個(gè)私有鏈加在一起?
劉尚奇:私有鏈,我是一個(gè)組織,在組織內(nèi)部,組織內(nèi)部即使不用區(qū)塊鏈,你也是有足夠的信任度的。 聯(lián)盟鏈?zhǔn)嵌嗉医M織之間,比如說(shuō)銀行之間的信用卡的結(jié)算,我以前可能需要 visa 這樣的機(jī)構(gòu),因?yàn)槲毅y行 A 是建行,給招商銀行轉(zhuǎn)帳,我是在數(shù)據(jù)庫(kù)里面扣一百塊錢,給你的數(shù)據(jù)庫(kù)里面加一百塊錢,但是我們的數(shù)據(jù)庫(kù)是分開的,沒(méi)有辦法確認(rèn)你加的是一百塊錢,不是兩百塊錢,我們需要像 vasa 這樣的中介。如果出來(lái)了聯(lián)盟鏈,我們?cè)诓煌膮⑴c方之間建立節(jié)點(diǎn),我們達(dá)成一個(gè)共識(shí),我們底下是共享賬本,我知道扣了一百塊錢,就是給你增加了一百塊錢。聯(lián)盟鏈更加適合于銀行之間的結(jié)算,我們本身在業(yè)務(wù)上有一定往來(lái)和聯(lián)系的實(shí)體,可能以前需要一個(gè)中介,一個(gè)背書方,一個(gè)權(quán)威的認(rèn)證者做權(quán)威的授權(quán),現(xiàn)在可以拋開它自己玩兒了。
編者注:按照官方介紹,"ThoughtWorks技術(shù)雷達(dá)"并不是一個(gè)客觀的行業(yè)分析或者報(bào)告,也無(wú)意成為一份權(quán)威的官方文檔,他所展現(xiàn)的就是當(dāng)下技術(shù)領(lǐng)域上的一個(gè)“快照”,并進(jìn)行了粗粒度的分類和趨勢(shì)分析。ThoughtWorks 全球技術(shù)委員會(huì)(TAB)定期討論技術(shù)發(fā)展現(xiàn)狀,并以雷達(dá)形式對(duì)各類技術(shù)的成熟度進(jìn)行評(píng)估并給出建議,為從程序員到 CIO/CTO 的利益相關(guān)者提供參考。這也是大會(huì)名稱中“雷達(dá)”一詞的意義。
——————————————————————————————
“從零構(gòu)建一個(gè)區(qū)塊鏈應(yīng)用”開課啦!
ThoughtWorks 頂級(jí)專家手把手教你實(shí)現(xiàn)區(qū)塊鏈應(yīng)用!
課程詳情:http://www.mooc.ai/course/78
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。