專案使用區塊鏈的八個基本條件
作者:張蕾,比特幣和區塊鏈研究者、“積分幣”創始人。目前從事區塊鏈的專案諮詢、專案研發,並開展網路視訊教學。
如需區塊鏈相關技術投稿,請郵件至郵箱[email protected]
2017年區塊鏈正在風口上。媒體上大量湧現出的區塊鏈專案,表明了更多的人對區塊鏈概念的接受,並積極地投入到實際應用中。但是對於一個多年的區塊鏈研究者和從業者,我們更應該有清醒的認識,不斷地反問自己:現階段,區塊鏈到底能給社會治理和企業運營帶來什麼真實的價值?
很多區塊鏈專案還都在“概念驗證”階段,甚至有些專案跟區塊鏈根本沒有任何關係。從軟體技術架構的角度來說,這些專案更適合採用“傳統的關係型資料庫”技術,比如 Oracle 和 SQL Server這樣的企業級產品,或者MySQL 和 PostgreSQL這樣的輕量級產品。直接明瞭地說就是:
“如何一個專案需求,如果用關係型資料庫技術就可以滿足,那麼你用區塊鏈就是愚蠢的!”
為什麼這麼說呢?因為像Oracle 或MySQL 這樣的資料系統,都有幾十年的發展程序,已經部署在全球數以百萬計的伺服器上的資料庫系統,每天執行數以萬億計的查詢。這些系統都經過了嚴格測試和效能優化,每秒處理幾千次的交易都毫不費勁。同時,這些系統背後還有數以萬計的軟體工程師和系統工程師在做技術支撐。實際上,我們常用的軟體應用,在資料庫技術上都能找到成熟的解決方案。
而區塊鏈技術,即便是代表性的比特幣網路,雖然經過8年的執行,仍然在穩定性和可靠性上面臨挑戰。更不要說其他區塊鏈開發平臺了,基本都處在白皮書和Alpha版本階段。
這裡,我不是說區塊鏈的無用之處,而是因為整個區塊鏈的技術發展仍然處在初級探索的階段。如果我們採用區塊鏈的技術路線,那麼在IT規劃階段,我們就應該明白區塊鏈執行需要一系列的約束條件。如果不滿足這些條件,還是應該回到資料庫的路線來,也許這能讓你更準確地定義專案,或者節省更多的時間和成本。
下面我將介紹,使用區塊鏈需要的8個基本條件:
基於資料庫
如果你想開發區塊鏈專案,那麼首先它應該是個資料庫專案。從技術上,區塊鏈可以看做是一種“共享型資料庫”。
關係型資料庫是用多個表來儲存結構化的資料,還有現在比較時尚的NoSQL是利用檔案系統來儲存資料。(在理論的層面上,NoSQL資料庫都是關係型資料庫的一個子集而已)
區塊鏈中的資料,以經常討論的銀行賬單為例,也可以表示為資料庫中的一張表,其中每一行對應一個銀行賬戶資訊,每行資料又包含三個列,分別代表:
- 賬戶的標示,如唯一性的銀行賬號;
- 資產型別,如“人民幣”或“美元”等;
- 所擁有的資產數量。
資料庫中對資料的操作,可以通過簡單的SQL命令執行,對於複雜的交易型別的操作,通常是通過“儲存過程”這個功能實現的。儲存過程就是多個SQL命令組合在一起,它們要麼全部成功執行、要麼全部失敗。例如,一個人向另一個人發起了支付交易,對應就是資料庫中減少某一行的資產數量,同時增加另一行的資產數量。
需要多個“寫操作者”
對於資料的操作型別,可以分為“讀操作”(對應資料庫中的查詢命令)和“寫操作”(對應資料庫中的增加、修改、刪除操作),擁有寫操作許可權就表示對資料有了完全的控制能力。
區塊鏈可以認為是具有多個寫操作者的共享型資料庫。也就是說,可以有多個使用者發起交易命令,對區塊鏈中的資料進行修改。你知道這些寫操作者是誰嗎?在區塊鏈的網路中,這些寫操作者通常都是“區塊鏈節點”的執行者,他們每個人都擁有一份區塊鏈資料的備份,並且通過P2P的方式傳遞交易命令。
當然,也有很多使用者可以發起交易,但是他們並沒有執行節點,他們通過其他節點,間接地對區塊鏈資料進行修改。例如,一個由多個銀行共同維護的區塊鏈支付系統,但在移動裝置上擁有數百萬終端使用者,他們只與自己的銀行系統通訊。
存在信任缺失的情況
如果多個使用者同時需要對區塊鏈資料進行修改,那麼一定存在某種程度的不信任關係。區塊鏈就是一種支援多個相互不信任的寫操作者的資料庫技術。
你也許會認為,不信任關係只存在於分散的組織之間,比如在一個跨國的貿易市場中的多個銀行之間的交易等。實際上,不信任關係也存在於組織內部,比如不同副總裁管轄的部門之間。
在資料層面的“不信任”是指,每個使用者都不希望其他人對自己的資料就行修改,同時也不會相信其他人對你報告的資料情況(不是自己查詢到的資料是不可信的),因為每個人都有不同的利益訴求或者代表了不同的價值主張。
需要去中心化(或者去中介化、或脫媒)
到此,我們討論到區塊鏈可以應對多個不信任的主體對資料的操作問題。其實這個問題,我們還有一個眾所周知的解決方案,就是找一個大家都信賴的中介。也就是說,所有人都信任這個中介,但是每個人相互不需要信任。
這種解決方案在現實中大量應用,比如銀行賬單系統就是這樣。我們每個人對自己的銀行賬戶進行資料查詢或修改,其實並不是你直接進行資料庫操作的,而是委託了銀行後臺系統的一個數據庫使用者來完成的。因為我們都信任銀行,銀行確保我們交易的有效性和賬戶的安全性。
區塊鏈可以擺脫對這種中介機構的依賴,也就是所有使用者可以直接發起交易,完成對資料的操作。所有這些交易由區塊鏈節點進行授權認證和有效性認證。
有個問題會經常困擾我們?找個可靠的中介有什麼不好?為什麼非要搞去中心化?一個很好的理由就是,基於區塊鏈的去中心化的結構,在降低成本、提高交易速度方面更具優勢,同時有自動對賬的特點,況且在很多系統中,選擇或確定一個可信的中介方也是一件頭疼的事情。
交易之間的互動
前面提到一個區塊鏈系統涉及的多個操作者、不需要信任、去中介化等,但是這還不是部署區塊鏈系統真正的理由。如果你的需求中,需要處理多個交易之間的互動關係,那麼區塊鏈是個很好的選擇。
什麼是多個交易之間的互動?簡單說就是,不同操作者發起的交易之間存在互相依賴的關係。例如,A向B發起一個交易,B又向C發起一個交易。這種情況B的交易就依賴於A的交易,如果不驗證A交易的合法性,也就無法驗證B交易的合法性。
再進一步說,區塊鏈還有一個特性是,交易可以由多個使用者共同發起(三角債或多方債務)清算,任何一方都不需要承擔風險,這也是為什麼銀行間結算可以安全地在區塊鏈上執行,且不需要一箇中介結構的參與。
還有一個例子是在身份識別系統中,一個客戶的身份資訊的不同方面可以被不同的主體進行獨立的驗證,比如公安部門驗證戶籍資訊、銀行部門驗證金融資訊、醫院驗證醫療資訊等。雖然這些驗證都是相互獨立的,區塊鏈提供了一個機制讓這些資訊可以統一起來。
制定交易規則的需要
這不是採用區塊鏈技術的一個條件,而是使用區塊鏈面臨的一個必然結果。當多個相互不信任的主體,發起不同的交易時,那麼區塊鏈中需要有某種內建的交易規則進行約束。
這種區塊鏈中的交易約束規則,跟資料庫中的約束規則不同。資料庫的約束主要是檢查特定時間點的資料庫狀態;區塊鏈的交易約束規則是要驗證交易的合法性。每一個區塊鏈節點都利用這些規則,對每一個交易進行驗證,驗證結果是:那麼交易被拒絕,要麼就傳遞給下一個節點,繼續進行驗證。
在區塊鏈的金融系統中,一個基本的交易規則要防止交易憑空創造資產。規則規定,每次交易之前和之後,資產的總量必須相同。
需要選擇交易仲裁者
前面幾項要求都是針對資料層面的,那麼在交易組織上,區塊鏈的工作角色是交易仲裁者,它是一種權威性的交易結果的日誌。如果你的專案中需要選擇交易仲裁,那麼區塊鏈是一種很好的解決方案。
為什麼需要這個日誌呢?
第一,當區塊鏈中增加新的節點時,它可以從頭下載所有的交易歷史記錄,不需要從其他不信任的節點下載資訊。
第二,有些節點可以由於系統故障或網路故障,錯過了某些交易。如果沒有這些日誌,就會導致一個節點的資料庫與其他節點的資料庫分離,從而破壞共享資料庫的目標。
第三,兩個交易可能同時發生,但是隻有一個交易被接受。一個典型的例子就是“雙重消費”,一個區塊鏈中的資產被同時支付了兩個不同的主體,由於區塊鏈是通過P2P方式進行資訊傳遞的,不同的節點可以對交易有不同的看法,因此需要把交易“confirm”到區塊中,確保不同節點達到統一的決策。
第四,在Ethereum風格的區塊鏈平臺中,交易的順序起到了至關重要的作用,每一個交易都影響到後續的一個交易。這種情況下,沒有區塊鏈,交易根本無法進行。
區塊鏈,從字面上講就是多個區塊組成一個鏈,每個區塊中包含了若干個已經被confirm的交易。那麼誰來決定,哪個交易應該進入到哪個區塊中呢? 這就需要區塊鏈網路中某些節點承擔“仲裁者”的角色,在比特幣中就是“礦工”,他們可以創造新的區塊,並通過數字簽名的方式保證這些區塊的合法性。
仲裁者跟中介的一個本質區別是,仲裁者對資料操作的許可權要小得多,他們不能虛假交易或者違反規則修改資料內容。在金融系統案例中,仲裁者不能花別人的錢,也不能改變資產的總數量。
在企業級的區塊鏈專案中,可以選擇或指定仲裁者,通常有三種方案:
- 某個組織控制下的多個節點;
- 不同組織成立一個核心小組來負責維護區塊鏈;
- 所有節點。
錨定現實資產
我對區塊鏈的認識,更趨向於“共享資料庫”,而不是大家經常提到的“共享賬單”。作為一種技術,區塊鏈的應用範圍遠遠超出對金融資產所有權的跟蹤問題,只不過用區塊鏈做資產賬單管理,是最簡單、最自然的一個應用,這跟比特幣的發展有關。
用區塊鏈做金融資產管理,一個核心的問題是?誰來為區塊鏈中的交易資料做背書?也就是說,我在區塊鏈上有十個單位的資產,誰能給我兌換現實世界的十個單位資產?或者說,如果沒人給我兌換,我找誰去起訴或索賠?
當然在不同的專案案例中,答案是不同的。對於貨幣資產,我們可以想象託管銀行收取了傳統形式上的貨幣,然後把儲戶的賬戶資訊釋出到區塊鏈上,那麼託管銀行就負責區塊鏈上資產的兌換。在貿易融資中,信用證和提單將分別由進口商的銀行和船運公司支援。我們還可以想象,未來某一天,公司可以直接在區塊鏈上發行債券,成為一種新的融資工具,當然公司要為區塊鏈上資料進行背書。
總結
就像我開始提到的那樣,如果一個專案不符合上述8個條件中的每一個,那就不應該選擇區塊鏈技術,你應該考慮:
- 常規的檔案儲存;
- 中心化的關係型資料庫;
- 主-從資料庫複製技術;
- 基於使用者訂閱機制的多資料庫系統。
如果你的專案需求滿足前5個條件,你還要考慮如何設定應用中的交易規則,你需要對你選擇的仲裁者充滿信心。最後,讓你開發的區塊鏈系統需要錨定一種或多種金融產品時,你需要找到能為這些金融產品背書的機構。
如果你找到了一個真正的適合區塊鏈的需求案例,請與我聯絡,我們共同探討。
SDCC 2017·上海站將於2017年3月17-19日登陸申城,三大技術峰會和24位嘉賓,匯聚國內知名的網際網路公司CTO、架構師、技術總監,暢談運維、資料庫和架構的熱門話題和技術熱點,遇見精益運維發起人&優維科技CEO王津銀、MongoDB大中華區首席架構師唐建法和華為軟體API開放平臺架構師李林鋒等大牛。截止3月5日前門票八折優惠中,5人以上團購立減400元,詳情點選註冊參會。
相關推薦
專案使用區塊鏈的八個基本條件
作者:張蕾,比特幣和區塊鏈研究者、“積分幣”創始人。目前從事區塊鏈的專案諮詢、專案研發,並開展網路視訊教學。 如需區塊鏈相關技術投稿,請郵件至郵箱[email protected] 2017年區塊鏈正在風口上。媒體上大量湧現出的區塊鏈專
區塊鏈學習一基本知識
法律法規 現實社會 的人 blog 本質 驅動 延遲 方式 什麽是 一、什麽是區塊鏈 在符合現實社會法律法規前提下,可治理的,依賴於密碼學算法和博弈經濟性設計,基於共識算法,對發生在主體間的價值創造,價值轉移,價值交換,以及涉及到各個價值主體由機器驅動的業務流程,在多個對
區塊鏈技術的基本特點
歷史 而不是 核心 關聯 五個 com 透明 合作夥伴 分布式數據庫 區塊鏈技術近期大熱。 作為比特幣和其他虛擬貨幣底層核心技術,區塊鏈是一種開放的分布式分類帳本,可以有效地以可驗證和永久的方式記錄雙方之間的交易信息,而分類帳本身也可以被編程以自動觸發交易。小編帶您簡單了解
區塊鏈開發(1)基本概念
最近一直沒更新部落格了,一方面是在技術轉型,遊戲行業的不景氣,不再將重心放在遊戲開發了,一方面也是在積累與學習中(懶惰),缺乏動力。希望通過這次能堅持下去:)。言歸正傳,來記錄和總結下自己在區塊鏈開發方面的經驗。 區塊鏈的發展由第一代比特幣區塊鏈,到第二代以太坊智慧合約的區塊鏈技術,再到現在第三代基於石墨烯
洞察行業風險 分辨價值專案 區塊鏈評級品牌【鏈塔評級】上線
作者:鏈塔分析師團隊 來源:鏈塔評級(ID:BDRating) 2018年10月22日,公眾號“鏈塔評級“上線。 鏈塔評級(BlockData Rating)是鏈塔旗下獨立評級品牌,為區塊鏈通證經濟體提供評級服務。 至此,鏈塔形成了由鏈塔資料平臺、鏈塔智庫、鏈塔評級構成
數字貨幣最新動態、內幕、趨勢,老司機給小白炒幣的深度貼(區塊鏈15個問題)
區塊鏈不得不說是當下最最熱門的話題,以前在各類會議、航班上、咖啡廳,人們聽的最多的可能是各類共享經濟、O2O、大資料、人工智慧等這些話題,現在區塊鏈被提及和關注的可能遠遠超過各類老牌的“科技明星”。資本圈、創業圈持續熱議區塊鏈,各方一致稱之為“技術革命”,大街小巷都掀起了區塊
關於區塊鏈幾個證書的理解
關於區塊鏈幾個證書的理解 FISCO-BCOS 1. 說明 在FISCO-BCOS中,證書這個概念有許多的概念,會在環境與節點配置、部署、構鏈等步驟中反覆出現,例如鏈證書、機構證書、節點證書和客戶端證書等。如下對這些概念和關係進行一個適當的理解和解釋,撰筆如下。 由
八個基本的 Docker 容器管理命令
本文英文原文:https://kerneltalks.com/virtualization/8-
Docker最大化實際專案價值的八個應用場景
在過去一年,行業和使用者對Docker(既是一項技術又是一家公司)的認識大有提升。可以這麼說,它是我在職業生涯中見過的發展最迅猛的技術,採用速度之快前所未有。 這項技術在一些重要企業已得到了採用,並得到了包括微軟和谷歌在內的各大軟體廠商的認可。這家公司獲得
區塊鏈1之基本概念
區塊鏈基本知識 下面,我就來嘗試,寫一篇最好懂的區塊鏈教程。畢竟它也不是很難的東西,核心概念非常簡單,幾句話就能說清楚。我希望讀完本文,你不僅可以理解區塊鏈,還會明白什麼是挖礦、為什麼挖礦越來越難等問題。 需要說明的是,我並非這方面的專家。雖然很早就關注
終於明白——區塊鏈是個什麼鬼
區塊鏈先附上鍊接轉載:https://ethfans.org/posts/wtf-is-the-blockchain“只讓人們在比特幣帶來的交易中獲取比特幣,或許是有意義的。一旦有足夠的人這樣想,它就會變成一個自我實現的預言。”——中本聰,2009首先我們說說它的由來:設想一
Blockathon2018(上海)順利結束,9個專案開啟區塊鏈落地新思路
10月19-21日,Blockathon2018(上海)在黃浦區P2聯合創業辦公社舉辦,這是Blockathon2018在中國區的第三場區塊鏈黑客馬拉松競賽。本次活動由Bitfwd技術社群、HiBlock區塊鏈社群和區塊鏈兄弟聯合主辦, 獲得了來自NEM、澳中理事會、離子鏈、Olymp
深入淺出區塊鏈-第2講:比特幣的轉賬機制和學習區塊鏈需要掌握的7個基本名詞
第2講:比特幣的轉賬機制和學習區塊鏈需要掌握的7個基本名詞 在第2講開始前,先簡單複習下第1講的核心內容: 記賬貨幣,是一種中心化記賬的模式; 比特幣是一種非中心化記賬機制,人人可記賬,並且具備傳遞資訊的同時同步傳遞價值。 這一切的背後都依賴於比特幣的底層技術區塊鏈
肖風:區塊鏈大規模應用的三個條件和一個新趨勢
9月12日,2018第四屆區塊鏈全球峰會在中國萬向控股副董事長肖風的閉幕演講中落下帷幕。在為期兩天的區塊鏈全球峰會上,來自世界各地的專家學者圍繞區塊鏈進行了有關跨鏈、側鏈、共識演算法、資料安全和隱私保護、法律監管、應用案例,和未來發展趨勢等關鍵話題的探討。 自2008年中本
2018值得關注的兩個黑馬區塊鏈專案:烏鴉幣rvn,威圖 Wetube Network
一個優秀的投資者,在進行每一次操作之前,也應該像獵豹尋找獵物一樣,仔細分析每個幣的投資價值,並且,耐心等待進場點的出現,等待出場點的到來,等待利潤的增加。那麼可以讓我們看看2018年值得關注的2個黑馬區塊鏈專案。 烏鴉幣(rvn) 小編綜合了部分網路資訊,簡單給
全球最牛的4個區塊鏈專案都在這裡!
導讀:有人說,目前區塊鏈行業火熱,各種專案層出不窮,但真正有實際落地的卻寥寥可數,甚至有極端言論
1月共有49個區塊鏈專案進行ICO,賣牛肉的都來玩區塊鏈了!
2018年1月份已經過去,愈演愈烈的區塊鏈也誕生了很多新專案。HiBlock編輯整理了國外網站上關於區塊鏈專案ICO的49個專案,雖然金融相關專案還是佔大多數,但區塊鏈也已經開始應用在直播、視訊流媒體、保證金管理、健康管理、社交等多個領域,各行業紛紛開始利用區塊鏈特性
7個值得關注的Java區塊鏈專案【2019】
如果你是一個對區塊鏈感興趣的Java工程師,那麼除了閱讀書籍或部落格之外,更好的學習方法是親自動手,深入瞭解以下7個最流行的Jav
【區塊鏈Go語言實現】第一部分:區塊鏈基本原型
ont 構建 獲得 列表 append 檢查 世紀 正常 私有 0x00 介紹 區塊鏈(Blockchain)是21世紀最具革命性的技術之一,目前它仍處於逐漸成熟階段,且其發展潛力尚未被完全意識到。從本質上講,區塊鏈只是一種記錄的分布式數據庫。但它之所以獨特,是因為它並
動畫《區塊鏈100問》第4集:第一個比特幣誕生啦!
ans 危機 lin 北京時間 wrapper 金融 con RM block 北京時間2009年1月4日,距離比特幣白皮書的發布已經過去3個月了。 終於,在這個偉大的日子裏,白皮書的作者中本聰在位於芬蘭赫爾辛基的一個小型服務器上,親手創建了第一個區塊——即比特幣的創