左春:區塊鏈平臺相關標準

左春:區塊鏈平臺相關標準 |小雨智媒

分享嘉賓

左春,中科軟科技股份有限公司總裁。曾任職於中國科學院軟件研究所,歷任工程師、室副主任、副研究員、研究生導師、研究員。左春先生曾參加和主持由軟件所承擔的多項科研開發任務,長期從事計算機管理信息系統和計算機輔助軟件工程的研究和開發。主持開發了《保險業務綜合管理信息系統》系列軟件產品。這些軟件目前已經推廣到了全國一半以上的保險公司,併成功地進入了香港市場,取得了顯著的經濟效益和社會效益。左春先生職業生涯中曾榮獲多項國家科技獎項,是國務院政府特殊津貼獎獲得者。

分享環節

首先,我們需要區分公有鏈和聯盟鏈,在我看來,公有鏈是一個系統軟件和應用軟件合在一起的軟件。由於公有鏈是一個一體化軟件,尤其是金融軟件,比如說像比特幣這樣的軟件,它相當於一個完整的軟件,在這個軟件裡應用和系統是打包在一起的。

所以這類軟件,特別是金融軟件,是要被監管的。這就是傳統所說的幣圈。一般來講,作為做行業應用軟件的人,我們一般選擇鏈圈為主,而不是去討論幣圈,所以今天晚上我主要討論的還是鏈圈的主要內容,也就是聯盟鏈的主要內容。

如果從聯盟鏈來看的話,我們想做成一個平臺,然後上面有應用,所以這應該和公有鏈區分開來。

現在我們先看傳統的區塊鏈的一些定義,其中有三個要點:分佈、可信和賬本,所有定義裡基本上都提到這三個要素。

我們怎麼看這三個要素呢?首先是分佈和可信,它們都是傳統技術的實現。比如說我們要做一個分佈式數據庫,我們肯定沒有和賬本有關,就是分佈的數據庫。而可信相當於是一個形容詞。

那麼接下來主要是賬本的問題,也就是說區塊鏈的聯盟鏈平臺現在就卡在賬本上了,因為賬本的標準和結構並沒有被確定下來。而賬本這個環節,大家都知道,賬本又分成流水賬和分類賬。

流水賬,我們可以簡單看成一個交易記錄,這也是區塊鏈要做到的。包括公有鏈實際上也是做了一個交易記錄。而分類賬呢?現在看,區塊鏈做的肯定不是分類賬,但是分類賬是流水賬的高級階段,所以未來流水賬具體實現的時候肯定要用分類賬的一些特點。

首先,傳統上做軟件、技術平臺的人,對這種會計的賬一般都不是特別熟悉。而現在如果我們要做一個賬本,就需要了解這種賬本和會計的一些常見的用法。

假設我們把聯盟鏈的平臺看成一個流水賬本,我們會面臨很多問題,這些問題是歷史發展過程中會計也遇到的問題。舉一個例子,我們的賬本,特別是分類賬,是可以初始化的,它可以通過餘額、月的餘額或者年的餘額來初始化賬本。但是如果我們現在做的區塊鏈賬本沒有這個功能的話,我們就會遇到“數據轉儲”的問題。

任何一個工程應用軟件都有一個轉儲問題,但是比特幣巧妙地避開了,因為比特幣不轉儲。現階段的已有聯盟鏈平臺在這方面都比較薄弱,所以當我們平臺比較薄弱的時候,做了再多場景化的應用都是不持久的。就像當年我們有了TCP/IP,我們也會用socket去編程,但是後來發現我們的應用和socket的編程嵌入應用太深了,最後發現在工程應用上沒有可推廣的價值。也就是說每一次底層發生變化應用軟件都要重寫。

所以我們應該有一個像過去替代socket的編程一樣,要有一個像“軟總線”一樣的概念。有了這個,它封裝到一定程度,才能做成一個相當於中間件平臺的東西。

當我們把賬本做成平臺的一部分的時候,我們遇到了很多問題。也就是傳統上講,我們做平臺系統軟件,比如做數據庫的時候,它的元數據是不交叉的,但是做賬本的時候,它們要有關聯,這個在過去是並不常見的。這就有點像我在初始化這個平臺的時候,我就得把賬本設定了,但是這個賬本屬於系統平臺的一部分,而我的應用軟件要有這個“保留結構”,相當於這個結構已經被別人用了,就要遵照別人用的規則,這叫保留結構。

在傳統的應用編程中,這種保留結構並不多,因為保留結構越多,編程的耦合性就越大。當我們有了一個流水賬平臺或者標準的時候,我們接下來就是操作語句,操作語句有點像數據庫的SQL標準。SQL標準,從操作來看就是讀和寫,雖然它有4條語句。但實際上在我們現在看區塊鏈,它就要求兩條,一條是讀,另外一條就是加入,而且是附加加入。

另外,從目前看,如果做區塊鏈平臺,從工程角度上來講,應該有一條語句:刪除。但是刪除有點太厲害了。也就是說,我們可能有一個類似微信“撤回”的功能,給你一段可以撤回的時間,但超過這個時間就不能撤回了。這有什麼好處呢?這也是工程的特徵。這就相當於賬本的SQL語句。應該主要有三條,讀、附加插入、撤回。這三條語句構成了一個完整的操作。但是目前我們還沒有看到一個聯盟鏈平臺把這個定義弄清楚的,撤回這個操作在分類賬裡也有類似的東西,因為超過一定時間,它就只能變成紅字,但在之前可以修改,實際上傳統的工程賬本也是這麼做的。

所以未來區塊鏈的賬本應該大量都是學習分類賬的一些操作特徵和工程特徵,就是目前的聯盟鏈平臺一般討論的也不是特別多,主要是一些關於軟件測試的問題。我們都知道,做一個軟件平臺必須要經過測試,但是如果數據是隻能寫、不能刪的話,會給測試帶來很多困難。目前在這個平臺的賬本操作裡,我們還看不到比較好的設計,但我想,可以採用財務軟件中的賬套,賬套的特點就是它是獨立的賬本,但是有一個叫賬套的概念,也就是我做一套軟件可以做多個賬套,這樣的話我測試階段就用測試的賬套來進行,當我把軟件測完、正式運行的時候,換一個賬套軟件就能解決工程中的一些測試問題。

聯盟鏈還遇到一個問題,就是分佈,即拷貝副本。現在看聯盟鏈應該分成主節點和輔節點。這個主節點就有點像聯盟節點或者是有共識能力的節點,其他輔節點就相當於普通使用節點、主節點和輔節點共同擁有所有賬本信息。不同的是,主節點要進行共識,相當於要通過共識的方法來拿到操作權,然後由它來主要操作。現在看聯盟鏈是一個相對集中的管理,所以只是共識,只是為了拿到令牌。

拿到令牌後,又分操作和檢查。因為拿到令牌了,操作應該沒什麼問題,但是檢查環節可能會差異,形成差異就得表決,聯盟鏈的表決可能和比特幣的不太一樣,目前的看法是應該把表決結果記錄下來,把分叉全記錄下來。這裡面又存在一個新功能,即它應該把被否決的副本全部都覆蓋一遍,或按最新“塊”覆蓋一下。這個功能在比特幣裡也沒有,但是工程上,聯盟鏈需要這東西,因為這個過程的目的是使副本達到完全一致。目前聯盟鏈平臺在這方面尚未形成標準,但是應該是正在形成標準,因為要保證所有的副本一樣。但其中有一部分人是被否定的,我們只需記錄下來被否定的內容,如果這樣設計的話,聯盟鏈還是有一定的脆弱性的,因為這樣設計會使一些副本被覆蓋掉。

從現在看,這些功能應該只能這樣,因為幾個主要的聯盟節點必須相同,然後在聯盟鏈平臺,除了這些在這個腳本後(原來我們叫和智能合約,但實際上這概念可以簡單看成腳本,腳本分兩種,一種有點像數據庫的“存儲過程”,是預先存在、自動執行。,還有一種,就是我們普通應用的那些腳本)。從目前看,聯盟鏈的使用和傳統的應用有些不同,就是因為剛才說的、有些賬本結構是保留結構,不但保留賬本的結構,它的字典也是被保留的,所以它保留的內容比較多。

所以聯盟鏈編程需要有一個框架,在框架下應該有一個代碼自動檢查,這個代碼自動檢查應該是要剔除那些保留結構的,否則保留結構中的內容會重複。從目前看,聯盟鏈的編程,應該有一個所謂“樣本”或者“模板”的東西,用來解決編程中的問題。而且從現在看,往賬本里寫東西,應該是一些特殊的交易部分,而不要什麼都往這裡寫。換句話說,我們的應用場景可能大量地使用數據庫,但是在一些特殊的部分,比如說交易賬本部分記在聯盟鏈平臺裡的話,就應該是這麼一個編程的架構。

目前我們看到了很多的區塊鏈應用,有的用以太坊的模式,就是在剛才說的完整一體化軟件裡做一些模板,然後這種模板配置完了以後也變成一個軟件。我們一般現在不討論這類方法,我們討論的方法是賣平臺,就像賣數據庫一樣。你買一個聯盟鏈平臺,然後這個平臺有一套編程的約定樣本和檢查工具。未來我們覺得應該是這樣的結構。現在看這個做得好的並不多,所以這就是為什麼區塊鏈,特別是聯盟鏈的發展並不像想象的那麼快的原因。


交流環節

Q:中科軟在保險行業信息化方面的龍頭地位,能講講做了哪些區塊鏈實踐嗎?

A:主要是想做一些場景的實驗,而且區塊鏈作為交易賬本,它主要是聯盟,它最好跨行業,然後這些聯盟都想認同這一個賬本。在這種保險裡的一些場景大家都在做嘗試。

但如果你要把它做成系統,就相當於你做軟件,你可以用socket的編程做軟件,但是用socket編程做的軟件穩定性不太好,工程也不太好,未來只要那個平臺一變,這些軟件要重編,所以目前來看,大家只是在場景上做一些嘗試。

Q:圍繞保險涉及多個行業和領域,壽險、財險、車險、健康險等。涉及到生態間的數據交換和共享應該會有很多場景。中科軟未來的計劃是落地到具體的場景嗎?還是自己打造平臺。

A:會有很多場景,因為保險可能參與方都比較多,但是注意:參與方多,並且是交易特徵的才比較適合做,比如我們10個人都用這一個賬本或者都關心這一個賬本,這個場景才有用,如果我們並不多關心賬本,或者交易跟我們關係不大,這種場景也並不一定是最佳的。

中科軟未來的計劃是做場景的應用,但如果平臺現在出不來,我們也會介入一些平臺的開發,因為並不是特別難,其實難就難在對賬本的理解,並不是難在系統軟件層面。所以關於平臺,我們肯定也在做,因為在別人沒做出來之前,我們至少可以把一些簡易的平臺先做出來,然後再在上面做應用。

Q:如果是正式賬本已經記錄了很長時間後,才發現有問題,怎麼辦呢?……怎麼改刪?

A:傳統上,如果我們在賬本里發現問題,它叫紅字,時間長了會再對沖回來。在我們的流水賬裡,未來你從應用調節也是用這種方法,你用另外一個交易記錄把它對沖回來,這也是一個方法。

另外關於賬本,其實財務的很多審計主要就是解決交易流水的往來科目。就相當於我去查對方科目,比如說給我一筆錢,我要看對方有沒有記這筆賬。而現在如果我們把賬本做好以後,大家都公信流水賬,我們的審計工作會大幅度減少,因為財務的審計是一種抽查,是不完備,如果這個流水賬都被記錄了,審計的工作量會非常小。

Q:我倒是覺得聯盟鏈未來設計未必使用流水賬,現在這個形式是受BTC賬戶體系的影響。

A:這是一個根本的概念衝突。

我還是認為它應該是一個流水賬的方式,是一種交易記錄的方式。但是交易記錄可以泛化,什麼叫泛化?就是說這個交易可以是我申報,你批准,這也看成是一個交易,總而言之是兩個參與者的。從目前看,聯盟鏈平臺應該是這樣一個流水賬記錄,否則的話,我們剛才說了,在會計的審計環節它的作用不太大。

Q:中科軟平臺是基於Hyperledger技術嗎?

A:我認為超級賬本不太行,主要就是沒有賬本標準,而都是底層的技術,而且我覺得底層技術應該封裝,封裝完了以後外邊的人根本就不用關心這個東西。

就像使用數據庫,你根本就不關心數據庫裡頭是怎麼實現的。其實交易記錄的參與者的賬戶你可以設計成很多的。但是我覺得首先應該涉及兩兩交易,然後你再做成一對多交易,這就像我們做會計憑證似的。

Q:現在提出來的開放聯盟鏈,以及Libra這種類似開放聯盟鏈,您怎麼看?

A:我認為它實際上就是一個電子貨幣,但是它是一個聯盟發的電子貨幣,我可以把它看成一個軟件,凡是做這些幣的,就是平臺和應用合在一起的一個軟件。

這樣的話就是聯盟去發幣,發幣就相當於比特幣軟件,所有人都可以來做。但是現在它變成了只有幾個主節點可以做。假設咱們現在把比特幣稍改一點,把它變成比如說N個主節點可以發幣。現在的情況是,它所謂的平臺如果是數據庫,那就是一個存儲你設定的結構的東西,你可以往裡存,如果是就是一個賬本,你往裡寫就行了。

如果是剛才說的那種簡單的聯盟發幣,它就可以看成是一個公有鏈技術,或者一個特定軟件,因為這就是一個發幣軟件,只是不是一個人發,也不是一大群人發,也不是所有人都能發,而是特定的聯盟主體來發。所以你看Libra還要錨定某些東西,相當於那些人要給他做擔保,這樣行不行?其實應該也是可以的,這就相當於只要在一種強有力的監管下,而且各國的央行能達成一致的情況下,就可以進行。像歐元像港幣都是這麼發的。比如歐元有幾個國家的央行可以發,比如港幣有匯豐和中國銀行可以發。我覺得這個在現實中已經有對應了,把它歸結為公有鏈的一種方法就行了!

公有鏈是一個應用軟件,就相當於一個發幣軟件,然後聯盟鏈,不同聯盟鏈是要做一個賬本平臺去記賬,是這麼兩個東西,所以Libra之類其實都是發幣軟件,類似比特幣這樣的軟件。

Q:一個新技術出現,泡沫,破裂,重新出發,快速成長…您認為區塊鏈技術目前處於哪個階段,是重新出發階段嗎?請您展望一下2020年區塊鏈技術及應用上的新方向?

A:我認為公有鏈會有一些發展,但是由於受監管,所以要想和ICO區別開來的話,最主要的區別特徵,就是像比特幣一樣,我把這個軟件開發出來,但是我捐給社會去運營,我絕對不會再控制它的運營。

這是公有鏈目前一個被認為是相對安全的方法。另外,說到像比特幣的電子貨幣,它實際上用的技術很類似,但它有一個巨大不同,在於它是一個完全集中控制的,因為它不需要分佈,因為是央行發的,所以它是一箇中心化控制的結構,但電子貨幣的意義非常重大,因為它是金融改革,金融改革的特點就是它不需要銀行,這一點對未來的結算會帶來很大便利。

現在區塊鏈的應用,大部分都卡在聯盟鏈平臺上,現在我們還沒看到誰把聯盟鏈平臺做得特別好,要想把聯盟鏈平臺做得特別好,實際上就是把剛才說的分佈式賬本做的特別好。從目前看還不太成熟,而且明年是不是能出來一個成熟的平臺?我覺得說不準。目前還存在大量問題,其中一個就是賬本的標準。從目前看,即使是會計賬本的標準都不是很統一,所以我們想做一個流水賬的標準,這也是一個挑戰。當然這個標準做完以後,可以在自定義把細節做了,但是目前來看,大家都在用簡單、節省的方法來做。離賬本的要求還有點遠。

用節省的方法來做的話,缺點就是它對字典的感應不行,但是我們現在要做的賬本都是帶著字典的,在應用端也是要被保留的,在這方面比傳統的數據庫和應用的銜接要複雜。


2020新的一年,除了區塊鏈技術與應用普及,小雨社區還將在人工智能與數據技術前沿分享上發力,將硅谷最新的技術應用及商業模式介紹給國內的行業朋友們。2020硅谷分享:人工智能與數據技術前沿群,歡迎大家即刻掃碼進入,並標註“硅谷分享”,名額有限。

左春:區塊鏈平臺相關標準 |小雨智媒


分享到:


相關文章: