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