天天看點

颠覆你對區塊鍊的認識1Netkiller Blockchain 手劄第 1 章 區塊鍊

颠覆你對區塊鍊的認識

本文節選自電子書《Netkiller Blockchain 手劄》

Netkiller Blockchain 手劄

本文作者最近在找工作,有意向緻電 13113668890

Mr. Neo Chan, 陳景峯(BG7NYT)

中國廣東省深圳市龍華新區民治街道溪山美地

518131

+86 13113668890

<[email protected]>

文檔始創于2018-02-10

版權 © 2018 Netkiller(Neo Chan). All rights reserved.

版權聲明

轉載請與作者聯系,轉載時請務必标明文章原始出處和作者資訊及本聲明。

微信訂閱号 netkiller-ebook (微信掃描二維碼)
QQ:13721218 請注明“讀者”
QQ群:128659835 請注明“讀者”
網站:http://www.netkiller.cn

内容摘要

這一部關于區塊鍊開發及運維的電子書。

為什麼會寫區塊鍊電子書?因為2018年是區塊鍊年。

這本電子書是否會出版(紙質圖書)? 不會,因為網際網路技術更疊太快,紙質書籍的内容無法實時更新,一本書動辄百元,很快就成為垃圾,你會發現目前市面的上區塊鍊書籍至少是一年前寫的,内容已經過時,很多例子無法正确運作。是以我不會出版,電子書的内容會追逐技術發展,及時跟進軟體版本的更新,做到内容最新,至少是主流。

這本電子書與其他區塊鍊書籍有什麼不同?市面上大部分區塊鍊書籍都是用2/3去講區塊鍊原理,隻要不到 1/3 的幹貨,幹貨不夠理論來湊,通篇将理論或是大談特談區塊鍊行業,這些内容更多是頭腦風暴,展望區塊鍊,均無法落地實施。本書與那些書籍完全不同,不講理論和原理,面向應用落地,注重例子,均是幹貨。

電子書更新頻率?每天都會有新内容加入,更新頻率最遲不會超過一周,更新内容請關注 https://github.com/netkiller/netkiller.github.io/commits/master

本文采用碎片化寫作,原文會不定期更新,請盡量閱讀原文。

http://www.netkiller.cn/blockchain/index.html

您的打賞是我的寫作動力:http://www.netkiller.cn/blockchain/donations.html

==============================

第 1 章 區塊鍊

目錄

  • 1.1. 什麼是區塊鍊?
  • 1.2. 什麼是智能合約?
  • 1.3. 我們應該怎麼做?
  • 1.4. 如何學習區塊鍊
  • 1.5. 區塊鍊能做什麼
  • 1.6. 區塊鍊不能解決的問題
  • 1.7. 了解去中心化
  • 1.8. 了解不可撰改
  • 1.9. 區塊鍊不能替代傳統資料

區塊鍊可以說是2018年最火的技術,相信很多開發者已經躍躍欲試投入到區塊鍊開發隊伍當中來,可是又感覺無從下手,你會發現世面上的書籍大多是将理論紙上談兵,都是一些無法落地的異想天開的想法,本書将用大量執行個體講解如何讓技術落地。

目前區塊鍊技術無論是 Ethereum 還 Hyperledger 都處在高速發展階段,每次版本疊代更新變化巨大,至少還需要一到三年才能變成成熟的技術。

1.1. 什麼是區塊鍊?

很多書籍談到區塊鍊都從比特币開始,媒體也經常把比特币拉出來說事,首先要高清一個問題:比特币是區塊鍊,但區塊鍊并不是比特币。

區塊鍊是什麼?一句話,它是一種特殊的(非關系型)分布式資料庫,這種資料庫隻能做插入和查找操作,并且沒有管理者。

首先,區塊鍊的主要作用是儲存資訊。任何需要儲存的資訊,都可以寫入區塊鍊,也可以從裡面讀取,是以它是資料庫。

其次,任何人都可以架設伺服器,加入區塊鍊網絡,成為一個節點。區塊鍊的世界裡面,沒有中心節點,每個節點都是平等的,都儲存着整個資料庫。你可以向任何一個節點,寫入/讀取資料,因為所有節點最後都會同步,保證區塊鍊一緻。

1.2. 什麼是智能合約?

你可以了解為存儲過程+資料庫結構,這樣應該很好了解了把?

通路隻能合約就如同通路存儲過程。在合約中定義的變量是不能直接通路的,隻能通過函數操作他。

是以非常類似資料庫定義了表結構,但是不能直接 select, insert, delete, update 資料,隻能通過存儲過程操作資料庫一樣。

1.3. 我們應該怎麼做?

很簡單,通過IP位址與端口号連接配接到區塊鍊系統,通過API(通常是 json-rpc)調用合約方法完成一筆交易,産生一筆區塊記錄。

理論上區塊鍊比資料庫簡單。

1.4. 如何學習區塊鍊

我學習區塊鍊技術是沒有看過任何書籍的,我采用的是碎片化學習方法,主要是通過搜尋引擎和官方文檔。我比較擅長自學,也很少和人交流。

也曾試圖購買書籍,但是我發現這些書籍沒有多大價值,幾乎三分之二的内容在談原理,理論的東西,剩下三分之一的内容,無非就是安裝、配置、Helloword 執行個體。另外書籍的出版周期通常是半年至一年,等書籍出版出來,内容早已經過時,軟體版本的差異導緻書中的例子運作不了,是以我放棄了購買書籍的想法,同時萌生了自己要寫一本以幹貨内容為主的電子書,盡量在書中回避理論的東西,軟體版本我選擇目前的主流版本,直接上例子,隻要你對照步驟 Step by Step 實驗就能成功,這種成就感會驅使你繼續學習下去。

學習中遇到碰壁無法解決的問題可以借助搜尋引擎解決,這是最好的學習工具。

我主張學習區塊鍊不要看太多的原理,快速過一遍即可,很多書中從比特币開始講起,我覺的是沒有必要的。學習區塊鍊有兩個方向,一個是代币開發,另一個才是區塊鍊開發,現在媒體将兩個方向混為一談,這是兩個獨立的方向。

如果你想從事代币開發那麼目标很明确以太坊是最佳選擇,你的學習内容是代币合約開發,合約部署,web3合約操作,代币上交易所等等......

業界所指區塊鍊并非代币開發,而是解決去中心化,期望區塊鍊技術幫助企業解決實際問題。通常Ethereum和Hyperledger兩種方案都能滿足企業需求,你需要自己判斷選擇哪個方案。

區塊鍊是一種工具,就如同手機是通訊工具,你不需要學習通信原理和計算機原理,一樣可以使用手機。區塊鍊的發展一定是趨向傻瓜化,越來越容易使用和開發。

1.5. 區塊鍊能做什麼

區塊鍊具有去中心化安全性、可追溯、不可篡改等特性。

區塊鍊目前的底層隻适合做,低頻高價值的業務。例如區塊鍊+征信,區塊鍊+資産,區塊鍊+支付,區塊鍊+供應鍊,房地産+區塊鍊(登記,轉賬)

1.6. 區塊鍊不能解決的問題

你能保證上鍊的資料絕對不會被篡改;但你不能保證,上傳的資料是真的。

區塊鍊不能解決的問題:

  • 使用者上傳假資料
  • 物品被調包
  • 高頻交易

我們舉一個現實中的例子“身份證”,例如身份證是可能證明你是你,但是别人可以拿着你的身份證冒充你。另外你不能保證戶籍人員在錄入身份資訊的時候不出錯。現實中我們常有身份證重号或資訊有誤的情況。

并不是實施了區塊鍊技術就安全無憂了,安全分為很多層,區塊鍊隻能做到存儲層的安全。例如安全分為使用者層,應用層,邏輯層,存儲層等等。區塊鍊無法解決使用者層,應用層,邏輯層等安全問題,他隻能保證存儲在硬碟上的區塊不被修改。

1.7. 了解去中心化

傳統資料庫是中心化的,它通過一個IP位址和一個端口号為應用程式提供服務,後來出現了“主從”和“主主”結構,去中心化就是一種“多主”結構。

與資料庫相比區塊鍊的去中心化更為複雜,他們的資料同步不是簡單的二進制日志同步,而是通過加密傳輸,節點共識後才做資料存儲。

1.8. 了解不可撰改

很多人被這句話誤導,認為區塊鍊的資料一旦建立是永久不能修改的,是以它安全。其實不然,區塊鍊的資料可以修改,但不能撰改。

首先你要搞明白什麼是撰改和修改,撰改是指非法修改區塊鍊資料,而修改則是合法變更資料。

區塊鍊上的資料是可以修改的,無論存儲多久的資料,随時可以修改裡面内容。

通常撰改區塊鍊資料多指資料存儲層面的修改。而修改則是通過chaincode 提供的修改函數變更區塊鍊裡面的資料。

舉例一個場景例子,在征信系統中,使用者有時被拉入黑名單,但使用者繳納欠費後應該立即将其移到白名單中,這個過程就需要修改區塊鍊上的資料。

另外我還告訴你,多數區塊鍊平台沒有使用者認證權限管理子產品。是以無法控制區塊中的那些資料可能修改,那些不能修改,那些資料XXX使用者可以修改等等。即使有些區塊鍊平台具備權限控制,顆粒度也無法想目前的資料庫那些細。

1.9. 區塊鍊不能替代傳統資料

回歸技術本質,我認為區塊鍊技術本身是一種追求分布一緻性的資料庫。

我們學過資料庫的,都知道CAP理論。CAP理論是指的是在一個分布式系統中, Consistency(一緻性)、 Availability(可用性)、Partition tolerance(分區容錯性),三者不可得兼。大多數區塊鍊,放棄了一些可用性,偏向了一緻性和分區容錯。

區塊鍊并非能解決所有問題,雖然他也算是一種資料庫,它能解決問題十分有限,它的資料管理和查詢能力還打不到 NoSQL 的水準,更别提 SQL 的複雜應用。是以在實際的應用中,區塊鍊不能替代資料,隻能互補。

     是以在項目實施前,仔細想想自己需求,真的需要區塊鍊嗎?還是需要區塊鍊上的一些特性?例如資料不可撰改。如果僅僅是需要區塊鍊的某一個特性。我們可以針對這個需求,思考一下能否使用傳統資料庫解決。

原文釋出時間為:2018-03-11

本文作者:netkiller

本文來源:

騰訊雲 雲+社群

,如需轉載請聯系原作者。