區塊鏈應用開發技術思考及探索

{"type":"doc","content":[{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"至信鏈"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"談到區塊鏈,不得不說一個很經典的問題:區塊鏈的數據到底可不可以更改呢?剛纔有人回答說可以,有回答說不可以。其實這兩個答案從不同角度解釋都是對的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"區塊鏈是分佈式的系統,單獨對一個節點的數據修改是無法改變整個網絡的數據狀態的,這些修改必須達成全局共識,才能在區塊鏈中生效。同時它是鏈式結構,後面的區塊會包括前面區塊的哈希,對前面區塊的任何修改都會導致後面數據塊全部需要修改。這些區塊鏈特性,都保證了對於已存在鏈上的數據很難被修改。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/3e\/3e2a54db68157574d4e1db3b7a6ad9bc.webp","alt":"Image","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"基於以上,怎麼理解鏈上數據既不可以更改又可以更改呢?區塊鏈其實可以類比我們的人生,如果把每天當成一個區塊的話,這一天一旦結束,昨天的數據就是無法修改的。但是我們能夠在今天把昨天想做的事情做得更好一點,也即我們可以在昨天的區塊後再附上一個新的區塊。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"所以說區塊鏈既不可以修改,又可以修改,不可修改主要是對於已經存在的數據,可以修改主要是指可以附加新的區塊,整個歷史可追溯。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"區塊鏈的技術特性包含以下幾個部分:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第一個是"},{"type":"text","marks":[{"type":"strong"}],"text":"分佈式共識"},{"type":"text","text":",通過分佈式共識,確保單個節點無法直接寫入數據,需要多個節點共識後數據才能寫進去。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第二是"},{"type":"text","marks":[{"type":"strong"}],"text":"塊鏈式結構"},{"type":"text","text":",增加了區塊的修改難度,保證數據的完整性。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第三是"},{"type":"text","marks":[{"type":"strong"}],"text":"智能合約"},{"type":"text","text":",有了在鏈上的智能合約以後,用戶就可以把企業間合作的業務邏輯放在鏈上,結合鏈上可信的數據和透明的業務邏輯,加速整體業務流轉。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"最後一個是"},{"type":"text","marks":[{"type":"strong"}],"text":"密碼學技術"},{"type":"text","text":",包括對稱、非對稱、零知識,同態加密等來保證鏈上的數據可信及交易隱私。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/79\/79bdefe75454fd7f42700228db772699.webp","alt":"Image","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"區塊鏈的數據難篡改,全程可追溯,全網透明等特性,天然適合應用在存證領域"},{"type":"text","text":"。隨着信息互聯網的發展,現在的信息越來越多,每天都有海量的信息在網絡上產生,這些信息有部分可能會被用來做案件的電子證據。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我們來看一下統計數據,2018年全國受理的總計2800萬件的案件中,有73%的案件涉及到了電子數據,僅7%電子證據被認定。這背後的根本原因是什麼?電子數據存在以下幾個問題:首先它們大多是中心化的,很容易受到篡改。其次這些數據的量很大,很難有足夠的人力去處理。另外電子數據的歸屬問題也難以解決。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"從電子數據到電子證據,這中間需要一些必要的轉化過程,那麼區塊鏈是否可以助力實現這樣的過程呢?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"從政策方面看,司法端在積極擁抱區塊鏈技術,比如杭州互聯網法院基於區塊鏈做的一些判例,最高法對區塊鏈的存證方式也表示了認可。"},{"type":"text","marks":[{"type":"strong"}],"text":"區塊鏈存證既滿足合規的需求,同時也有實際的應用需求,這就是至信鏈落地的背景"},{"type":"text","text":"。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/96\/96c1820a57fd33b71ca0dd5a8a6d8dea.png","alt":"Image","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"    "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"區塊鏈應用是一個分佈式的應用,需要多個組織共同加入維護。我們選擇跟一些公信力機構合作,包括網安、北明、工信部一所等權威機構,讓他們也成爲區塊鏈的節點,來共同維護鏈上的數據。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"另外我們也跟司法端進行打通,至信鏈的節點會部署到一些法院,比如四川高院、前海法院等。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在滿足存證的基本需求後,緊接着就會衍生一系列其他的需求。比如存證以後是不是有能力鑑別一下有沒有侵權發生?是不是具備侵權監測的能力?如果侵權發生以後是不是能夠取證?做完取證以後是不是還能及時的把數據上傳到法院......"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"結合區塊鏈技術,整個內容保護的生態形成了閉環。在整個閉環中,我們會在擅長的領域發力。同時我們也積極接入了其他的能力合作方,比如取證方,版權服務方等。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"目前至信鏈整個內容生態已經加入了很多成員,比如騰訊系的企鵝號、騰訊音樂等,還有很多外部合作方,比如貝殼、得到等。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我們每個人每天在網上都會產生大量的信息,有些信息是有價值的。對於有價值的信息,我們需要及時保護,維護自己的利益。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/f4\/f4a7d2a6fc77463b8c22b9e133750aeb.png","alt":"Image","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在至信鏈中,我們主要是用區塊鏈來做存證。當用戶產生數據以後,用戶對數據進行哈希處理,然後存儲在至信鏈上。哈希可以保證一個文件到哈希值是一對一的關係,而且很難從哈希值再反推回原文件,如果對原文件做任何修改也都會導致哈希值發生巨大變化。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/6f\/6f1c4cc14b738bb33c87089fab354048.png","alt":"Image","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"當用戶認爲某個數據很重要,比如一張圖片很重要,用戶可以把它哈希存儲到至信鏈上。但是單純的哈希值只能證明這個作品已存在,還不能證明它屬於誰,所以還需要加上一些電子簽名,同時附帶上時間戳。這樣我們就能知道:什麼時候是誰擁有了什麼東西。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"雖然無法知道在這個用戶存證之前這張照片是否已經存在,但至少可以保證:如果你是照片擁有方,第一時間上鍊基本上就可以保證你的權益。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"當上鏈以後,如果發現這張圖片被其他人盜用了,版權擁有方就可以起訴侵權方。版權擁有方提交證據原文到法院端,法院端可以跟至信鏈打通進行鏈上的校驗,保障版權擁有方的權益。至信鏈其實和我們的生活息息相關,它服務的不僅是供應鏈、金融,也包括我們個人的版權。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"聯盟治理"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"1. 區塊鏈部署方式"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"區塊鏈是一個多中心的分佈式網絡。當我們需要搭建一個區塊鏈以及在區塊鏈上做業務的時候,第一個遇到的問題就是:我們該怎麼搭建這條鏈?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"這裏有幾種方式,第一是"},{"type":"text","marks":[{"type":"strong"}],"text":"私有化"},{"type":"text","text":"。對於開發能力和運維能力很強的聯盟,可能想要自己部署區塊鏈網絡把參與方的各個節點打通,同時所有的運維監控,包括智能合約部署全部都由自己的技術人員來負責。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"這樣操作是可行的,但是也會帶來一些問題。主要問題是區塊鏈的應用還沒有正式開展的時候,就已經投入了大量的人力物力在區塊鏈底層上,這也相對延緩了上鍊的進程。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"另外一個方式是"},{"type":"text","marks":[{"type":"strong"}],"text":"公有云"},{"type":"text","text":",每個雲廠商現在都提供了區塊鏈整套的解決方案,只需要在公有云上輕輕地點擊就可以幫助部署自己的區塊鏈網絡,包括部署智能合約,同時會自動的對區塊鏈網絡進行運維監控。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"用戶不用關心底層鏈到底怎麼實現,只需要關心業務層怎麼轉化成區塊鏈認可的智能合約。這種方式相對比較快。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"隨着業務的發展,會漸漸引入一些機構,這些機構或許對數據有一些合規性的要求,這個時候,可以在公有云上再拉一個節點到用戶的IDC裏面做混合雲的解決方案。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/12\/126bad0a6a24fc498c7e2523d92d2307.png","alt":"Image","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"2. 數據上鍊"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"當我們的網絡已經部署好了以後,就需要考慮數據的問題。我們在做區塊鏈應用的時候需要考慮:到底要將哪些數據放到鏈上?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"區塊鏈本身的計算能力和存儲是有限的,所以不要浪費有限的計算和存儲,只需要把一些"},{"type":"text","marks":[{"type":"strong"}],"text":"關鍵的信息上鍊"},{"type":"text","text":"即可,而且關鍵信息如果很大的話,也可以把關鍵信息摘要進行上鍊。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"另外對於有爭議數據,比如是你單方產生的數據,但是其他方要使用,這時候建議上鍊;還有多方共同產生的數據,也建議放在鏈上;對於重要的數據,數據的整個生命週期都應在鏈上留痕;第三個是多方共同維護的不可拆分的數據也建議上鍊。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/32\/32cdffda67b30c0b52d701a970e60756.webp","alt":"Image","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"當這些數據上鍊以後,所有節點都有賬本,所有的參與方都可以看到上鍊的數據。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"區塊鏈的透明性是一把雙刃劍,所有節點都可以看到就意味着隱私性無法得到保護。這就要考慮怎麼在數據上鍊和隱私安全之間做一個權衡。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"數據上鍊有幾種方式。第一種方式是"},{"type":"text","marks":[{"type":"strong"}],"text":"明文上鍊"},{"type":"text","text":",數據只要制度上保證聯盟參與方不泄露,且不涉及到用戶隱私是可以明文上鍊。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"如果明文上鍊不可行,還可以選擇"},{"type":"text","marks":[{"type":"strong"}],"text":"密文上鍊"},{"type":"text","text":"。數據的原文參與方是看不到的,而且它是不可操作的,並且缺少明文和對應的私鑰也是無法驗證的。密文上鍊的典型場景是存證,哈希存證就是密文上鍊。當然也可以用對稱、非對稱的方法加密上鍊。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"還有一些涉及到賬戶操作的,比如雖然是密文,但是需要對它進行加減操作。這時候可以引入同態加密的方式。鏈上的數據都是加密的,這些加密的數據可以和其他一些數據直接操作,比如密文跟明文相加,或者密文跟密文相加,得到的是密文的結果。持有相關私鑰的用戶,可以解出正確的結果。區塊鏈在其中負責運算的過程,這就可以做到密文可操作。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"密文可操作的缺點在於不可驗證。比如用戶在鏈上轉了100的資產,這時候其實並不知道用戶是否具有100的資產,區塊鏈只是單純的做了資產相減的操作。這時候"},{"type":"text","marks":[{"type":"strong"}],"text":"希望密文除了可操作,並且還要做到可驗證"},{"type":"text","text":"。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"例如說鏈上資產需要減去100,這個時候不需要知道具體的資產數額,但只要能證明鏈上資產大於100就可以滿足要求了。我們可以引入"},{"type":"text","marks":[{"type":"strong"}],"text":"零知識"},{"type":"text","text":"來滿足對應的需求。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/68\/68388831115b7b08550d0d3f4718b67c.webp","alt":"Image","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"這些加密算法並不是說每個應用都要全部使用到,主要是根據業務場景需求。在遇到這些場景的時候再結合雲廠商提供的方案一起整合到智能合約裏,讓開發更加順暢。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"3. 數據膨脹"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"數據上鍊以後,另外一個挑戰就是關於數據膨脹的問題。區塊鏈是一個鏈式結構,數據存上去以後,後面會不停增加新的區塊,它必然會導致大量數據的膨脹,該如何處理呢?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"這裏有幾個解決方案:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第一個方案是:"},{"type":"text","marks":[{"type":"strong"}],"text":"減少區塊本身的大小"},{"type":"text","text":"。這樣做一方面是優化區塊鏈底層,在區塊鏈底層引擎裏把一些不必要的數據去掉或者存儲在另外一個地方,只要能證明該區塊的有效性就可以。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"另一方面是"},{"type":"text","marks":[{"type":"strong"}],"text":"減少區塊裏業務層的數據"},{"type":"text","text":",放在區塊鏈裏面的數據應該儘量精簡,要珍惜有限的存儲資源。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"此外我們還可以把存儲放在雲上的塊設備裏或者放在分佈式存儲設備裏,這樣可以支持很大的存儲空間。另外如果本身的存儲量已經很大了,可以考慮將一些不常用的存儲或者幾年前的存儲歸檔存放起來。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/e1\/e1b0573d183749a8003fb213791f2b67.png","alt":"Image","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"最後,我們可以以從另外一個角度來考慮,比如數據單鏈很多,我們可以對區塊鏈進行拆分,這也是做應用常見的方法:當一個庫解決不了,就要分庫,遷移到這裏就是"},{"type":"text","marks":[{"type":"strong"}],"text":"分鏈"},{"type":"text","text":"。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"比如存證應用,特定的存證放在不同的鏈上,底層可以有多條鏈,通過底層多鏈的結構解決單鏈膨脹的問題。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/f9\/f9a3dca2f57c6dfe167ea7b49d0d15d6.png","alt":"Image","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"4. 跨鏈機制"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"隨着區塊鏈技術的發展,以後涉及到的可能不僅是存證,還存在鏈上數據交易之類的場景。如果單純的做接入層分層的話很難保證業務的原子性操作,這時就要引入跨鏈機制,需要有一個跨鏈事務層解決鏈和鏈之間的事務。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"怎麼樣保證跨鏈的一致性呢?比如從這條鏈釦減了,到另外一條鏈增加,在整個過程要麼全成功,要麼全失敗,所以一定要有一個跨鏈事務層。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"聯盟鏈網絡有身份管理,跨鏈管理也有跨鏈身份的管理,將它們結合起來就是跨鏈的治理平臺。我們搭建區塊鏈應用的時候,如果場景需要,也要考慮跨鏈的技術。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/dc\/dce13b6b9fa4df13334f0b72cb5e0d47.png","alt":"Image","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"5. 業務合規    "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在業務合規層,明文上鍊會導致一些敏感詞在鏈上。因爲區塊鏈的不可篡改,雖然可以在後續的區塊裏面增加新的數據,但是它不可以修改原來的數據,這個敏感詞就永遠留在鏈上。我們建議:在做業務的過程中要考慮敏感詞過濾處理。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"另外一個點是:你的業務跟區塊鏈的關係是強同步,還是可以接受異步。強同步的意思就是業務數據是強依賴於區塊鏈數據的,當每次做一個業務,數據都必須從區塊鏈上取,這時候你就需要強同步。但由於區塊鏈本身是異步系統,如果做強同步的話,等待時間可能會影響到業務的體驗,這是要考慮的問題。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"如果是做異步的話,比如做存證的場景,雖然短時間產生了大量的數據,但是卻可以慢慢地把這些數據推到鏈上。不過這裏有個前提:在數據產生過程中,我們需要儘快得產生時間戳。因爲只有附上時間戳才能定位數據產生的時間點。後續雖然是慢慢把數據推到鏈上,但至少證明在某個時間點上已經有了,這解決數據的及時性問題。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"另外在區塊鏈應用中還需要考慮整個業務該怎麼取消或者撤回,這其實也是合約層需要考慮的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"停止服務在區塊鏈裏面是非常難的,因爲最多可以停止業務層的服務,但是停止不了底層鏈,如果停止底層鏈就需要跟各方協作。所以我們一定要"},{"type":"text","marks":[{"type":"strong"}],"text":"設置兜底方案"},{"type":"text","text":",當整個業務層遇到問題該怎麼兜底,是不是能引入保險機構或者其他機構,特別是在極端異常情況下能夠補償用戶的損失。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/0c\/0c898a559830fe4dc44f77c11eaa81fe.png","alt":"Image","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"6. 騰訊雲聯盟鏈治理"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"最後來跟大家介紹一下騰訊雲聯盟鏈治理的歷程。我們在最開始搭建至信鏈的時候是跟網安、北明和司法機構一起合作。合作首先要達成一個共識,這個共識就是:我們到底要用區塊鏈做什麼。最後達成了統一的共識:從可信電子存證開始。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在此之後,我們跟相關的合作方共同設置一個組織架構,包括定義運作流程和相關的負責人,這樣大家就可以一起去推進這個事情。我們知道,即使是一個公司不同的部門如果想協同做好一件事情也是很難的。當涉及到多個公司的時候,如果不設立章程制度的話是很難推進的,所以這點很重要。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"當我們已經有了流程架構以後,接下來就要研究我們做的事情是否合規,這就要從政策和合規性去解讀,如果有些事情不合規就不能做。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"如果合規了我們也還要考慮一個點:它的兜底方案是什麼。區塊鏈有那麼多特性,比如在供應鏈場景我們可以結合IoT、AI等能力,證明倉庫貨物存在。但是不排除這裏面會存在某些問題。因爲涉及到資金,所以一定要有兜底方案存在。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"當有了合規體系構建以後,我們還需要長期的運營投入。搭建好了應用以後,後面就是不停的迭代過程,在迭代過程中也需要其他機構的配合。在這個過程中,需要提前定義好各參與方的利益分配,另外考覈評估制度也要定義好。有了這些以後,才能把應用一直往前推。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"前面三個點多是文件和組織架構性質的,看起來會和業務不太相關。但是如果沒有前面三點打好的基礎,後面的第四點就是空中樓閣了,當有前面三個點作爲鋪墊以後才真正進入到技術規範,在技術規範裏面包括聯盟網絡、節點規劃、上鍊數據、隱私保護、外部系統接入和智能合約等。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/86\/86b61bec9e689473c284ee55598a41fd.png","alt":"Image","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"未來思考"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在做至信鏈的過程中,我們也在考慮區塊鏈未來到底是什麼樣的形態,區塊鏈以後是不是沒有鏈了呢?我個人認爲"},{"type":"text","marks":[{"type":"strong"}],"text":"區塊鏈未來會成爲一種底層的基礎設施,用戶不需要自己去建鏈,區塊鏈跟其他的技術,如物聯網、大數據、視頻服務和人工智能會結合在一起,共同服務於複雜的業務場景"},{"type":"text","text":"。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/16\/16a0e6466493513c6047250344eb39d2.png","alt":"Image","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"區塊鏈承載的是數據和業務的可信性,鏈的底層維護方是誰,是不是都需要爲自己業務搭建一條獨立的鏈,這也是們需要考慮的問題。從我個人的角度來說,我認爲未來區塊鏈不是每個業務都需要搭建一條鏈,而很可能會公用部分鏈。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"    "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"那麼至信鏈未來的發展定位是什麼?目前我們和權威機構共同搭建一條數據存證鏈,保證了數據的可信,同時讓可信的數據能夠及時流轉到法院端,用來更好地服務於內容機構、金融機構,目前的服務包括內容的存證、侵權取證、維權之類等。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"後續我們會再結合其他的生態能力,比如版權的、合同的,把強相關的各種能力也做到這條鏈上,完善至信鏈服務種類。當這些能力完善後,至信鏈會爲其他不同的產業區塊鏈服務。比如用戶可能有自己的區塊鏈應用,但是需要做司法保護的時候,就可以運用至信鏈跨鏈把這些數據傳過來。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/00\/00ef32b9b05d22dfcccc1f79338aa81f.png","alt":"Image","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"horizontalrule"},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"頭圖:Unsplash"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"作者:李亮"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"原文:https:\/\/mp.weixin.qq.com\/s\/PaehAdgNNacl0z65dhMCKA"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"原文:區塊鏈應用開發技術思考及探索"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"來源:雲加社區 - 微信公衆號 [ID:QcloudCommunity]"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"轉載:著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。"}]}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章