區塊鏈,其實很簡單。
區塊鏈,作為一個新事物,生來就籠罩著一層神秘的光環,看各方言論,區塊鏈儼然有比肩工業革命和計算機革命的趨勢。
奈何網絡上的入門教程對文科生都不太友好,筆者每每看到一大堆的計算機術語瞬間頭大。
直到最近看到阮一峰老師的《區塊鏈入門教程》才豁然開朗。區塊鏈,其實很簡單。
接下來的內容,保證你看得懂,因為連我這個文科生都看得懂。
區塊鏈是什麼?
一句話,區塊鏈是一種 特殊的 分佈式數據庫 。
這幾個字你可能都認識但未必真正理解。比如,數據庫是什麼?它具備什麼樣的特性?分佈式數據庫又是什麼意思?區塊鏈特殊在哪裡?別急,請往下看。
數據庫是什麼?
簡單來說,數據庫是一個存儲數據的 " 倉庫 ",既然是倉庫,那麼它就必須有進貨(新增)、出貨(刪除)這兩項基本功能。
為瞭滿足日常需求,比如需要查找某種貨品,統計其數量,或者某種貨品擺錯瞭位置等等,因此還需要 " 查詢 " 和 " 修改 " 功能。
這就是數據庫的最基本的四項操作 " 增刪改查 "。
" 分佈式 " 數據庫又是什麼?
分佈式即 " 分開 " 部署數據庫 。這裡的分開有兩層含義,物理的分開和邏輯的分開。
物理的分開 很好理解,可以簡單理解為數據存儲在不同的主機上,在物理上是相互獨立的。
為什麼會產生這樣的需求呢?因為在互聯網全球化的大背景下,跨國性互聯網公司已經屢見不鮮,而在本國本地部署服務器在改善用戶體驗上至關重要。
舉個例子,比如前段時間蘋果將 iCloud 服務從香港轉移到雲上貴州,好處之一就是訪問速度的加快。
邏輯的分開 稍微難懂一些,筆者舉一個簡單的例子。比如說淘寶,同一個賬戶可能既是買傢,又是賣傢,買傢身份產生的訂單和賣傢身份產生的訂單在邏輯上是可以分離的。
由於淘寶的訂單量巨大,一臺機器無法存儲所有訂單,於是淘寶某程序員靈機一動,將買傢訂單和賣傢訂單分別存儲在兩臺機器上。這個完美的解決方案在不失邏輯整體性的前提下,既克服瞭技術困難,又滿足瞭業務需求,兩全其美,當年該程序員拿瞭 36 個月年終獎金(本故事純屬虛構)。
分佈式數據庫雖然可能部署在多個地區,邏輯也可能被拆分,但是歸根到底,它是一個化整為零的整體。
所以,分佈式數據庫可以簡單地理解為,將一個數據庫按照一定規則部署到多臺服務器,對內可以是零散的,但對外必須是一個整體。
區塊鏈特殊在哪裡?
說瞭這麼多,相信您對數據庫和分佈式數據庫有瞭一些基本認知,那麼區塊鏈到底特殊在哪裡呢?
在具體講區塊鏈之前,還需要對區塊鏈的結構有一個基本理解,也是非常之簡單。
區塊鏈,顧名思義就是 由 " 區塊 " 組成的鏈 。
其結構是一條長長的,首尾不相連的鏈條,類似下圖。
圖中每一個圓珠可看作一個區塊,區塊內則是記錄的數據。
由於區塊鏈是和比特幣一同興起,因此區塊鏈還有一個不是特別嚴謹的別名—— "分佈式賬本技術"。
之所以被稱為賬本,舉個例子," 比特幣區塊鏈 " 所記錄的內容都是這樣的
B 轉給 A 0.5 比特幣
A 轉給 B 1 比特幣
C 轉給 D 2 比特幣
C 轉給 E 1 比特幣
X 被獎勵 50 比特幣
諸如此類千篇一律,像極瞭一篇流水帳。
有瞭這些基本概念,接下來我們再看看它的特殊性。
1. 數據人人可查
是的,一般的數據庫都是有賬號密碼才能訪問的,可區塊鏈不一樣。
任何人可以查詢任意區塊的信息。比如這裡就是 " 比特幣區塊鏈 " 的第 50 萬個區塊信息。
區塊的信息一目瞭然,所記錄的交易信息也完整具體,沒有一絲隱瞞。
不過與傳統交易不同的是,我們不知道綠色框線寬選的 " 比特幣錢包指紋 " 背後的持有者是誰,是一條狗也說不定。
2. 數據人人可寫(去中心化)
又是一個無比熟悉的詞匯。也許你知道,區塊鏈是無管理員的,無中心的,但是很少有人去介紹它的具體運作方式。
是的,區塊鏈理論上是人人可寫的。但寫入的前提是要擁有足夠的 " 計算能力 " 去從無窮無盡的數字海洋中 窮舉 出那個符合要求的數字。
計算數字的過程叫做挖礦,其從業者被稱為礦工。
" 比特幣區塊鏈 " 的設計者中本聰在頂層設計上保證瞭大概每 10 分鐘才能產生一個新的區塊,而一個區塊的大小被限制為 1MB(1024KB,512*1024 個漢字)。
也就是說,不管全球有多少比特幣的交易需求,就隻能記錄 1MB 大小的賬。
這樣的數據量對於一傢超市來說可能都難以滿足。
而且更要命的是,由於區塊鏈的人人可寫,那麼如果兩個礦工同時寫入就會產生一個鏈分叉的問題。
那麼,誰寫入的數據是真正的區塊呢?由於去中心化沒有統一的管理員,現在的規則是這樣,哪條分支先達到 6 個區塊 (稱為 " 六次確認 ") 就是正宗的主鏈,而其它的區塊鏈將被無情舍棄。按照 10 分鐘一個區塊計算,一小時才能確認。
可以看到,即便傾全球的計算能力,交易速率也隻能達到每秒鐘 2 次多交易。
3. 數據人人備份
前面說過區塊鏈是分佈式的,而區塊鏈的設計方式簡單粗暴,每個人都有所有人交易的備份。
舉個例子,你有一張信用卡,月底的時候想看看自己的賬單,結果銀行把全球的賬單都發給你瞭。
也許你問,幹嘛要把別人的賬單也發給我?我隻需要自己的呀!
初次聽聞確實有點荒謬,有點反人類。
但數據人人備份才是區塊鏈去中心化的根基。試想一下,如果銀行的交易系統發生故障,把你的賬戶金額清空瞭,如果銀行自身無法查出真相,估計你隻能血本無歸,因為能證明自己賬戶曾經有錢的人隻有你自己。
中心化的好處在於有一個統一的中心,替我們承擔瞭很多不必要的管理工作。對個體而言有諸多便利,可要知道,由於居中的管理者依然是有血有肉有欲望的人,所以難免會有壟斷後的各種弊病。
目前看來,中本聰去中心化的初衷是實現瞭的。從 "2009-01-09 10:54:25" 創世區塊產生,到現在九年多的時間,這個系統在全球人的參與下平穩運行。
最後
你也許聽說過,區塊鏈一旦被確認寫入,就無法再修改。
雖然這九年的時間,從來沒有人反映自己的區塊被修改瞭,但並不意味著一定不行。
一個區塊所在的鏈是否為主鏈,是由 " 算力 " 投票決定的。
假如一個礦工擁有全網 51% 以上算力,那麼他將會有一傢獨大的可能。也就是說,他生成的區塊,無論記錄的數據多麼荒謬,在規則上,其他人必須被迫承認其正統地位。
中本聰的設計初衷是去中心化,可最終卻可能 得到 一個中心化地位無法撼動的怪物。
來源:http://www.cyzone.cn/a/20180128/323322.html
本文來源於人人都是產品經理合作媒體 @創業邦
題圖來自 unsplash,基於 CC0 協議