區(qū)塊鏈究竟是什么 | 干貨

如果你是一位女性,在某年某月某日的某個晚上,你男票給你說了一句“我愛你一生一世”离熏,然后你的小助手征得你男票簽名同意后,把這句話做保密處理戴涝,并自動發(fā)給了你的閨蜜滋戳、爸媽朋友圈公眾號微信群等,你男票再也無法抵賴啥刻,你打賞點小費感謝他們給你記住并作證奸鸯,這個小費就是token,你可帽、你男票娄涩、“我愛你一生一世”這句話、說這句話的時間地點等信息映跟,打包起來形成一個結構化信息包蓄拣,這個信息包就叫“區(qū)塊”,而你的閨蜜努隙、爸媽球恤、朋友圈、公眾號和微信群等節(jié)點就是“鏈”荸镊,最后你男票不承認說過這句話咽斧、當了負心漢,你翻出這個賬本對質贷洲,把他臭罵一頓收厨,這就是區(qū)塊鏈應用晋柱。

以上是通俗易懂的區(qū)塊鏈概念舉例优构,更多信息請關注以太貓星球公眾號

下面請看專業(yè)解釋:

區(qū)塊鏈(blockchain)是眼下的大熱門,新聞媒體大量報道雁竞,宣稱它將創(chuàng)造未來钦椭。

可是,簡單易懂的入門文章卻很少碑诉。區(qū)塊鏈到底是什么彪腔,有何特別之處,很少有解釋进栽。

下面德挣,我就來嘗試,寫一篇最好懂的區(qū)塊鏈教程快毛。畢竟它也不是很難的東西格嗅,核心概念非常簡單番挺,幾句話就能說清楚。我希望讀完本文屯掖,你不僅可以理解區(qū)塊鏈玄柏,還會明白什么是挖礦、為什么挖礦越來越難等問題贴铜。

需要說明的是粪摘,我并非這方面的專家。雖然很早就關注绍坝,但是仔細地了解區(qū)塊鏈徘意,還是從今年初開始。文中的錯誤和不準確的地方轩褐,歡迎大家指正映砖。

一、區(qū)塊鏈的本質

區(qū)塊鏈是什么灾挨?一句話邑退,它是一種特殊的分布式數(shù)據(jù)庫。

首先劳澄,區(qū)塊鏈的主要作用是儲存信息地技。任何需要保存的信息,都可以寫入?yún)^(qū)塊鏈秒拔,也可以從里面讀取莫矗,所以它是數(shù)據(jù)庫。

其次砂缩,任何人都可以架設服務器作谚,加入?yún)^(qū)塊鏈網(wǎng)絡,成為一個節(jié)點庵芭。區(qū)塊鏈的世界里面妹懒,沒有中心節(jié)點,每個節(jié)點都是平等的双吆,都保存著整個數(shù)據(jù)庫眨唬。你可以向任何一個節(jié)點,寫入/讀取數(shù)據(jù)好乐,因為所有節(jié)點最后都會同步匾竿,保證區(qū)塊鏈一致。

二蔚万、區(qū)塊鏈的最大特點

分布式數(shù)據(jù)庫并非新發(fā)明岭妖,市場上早有此類產(chǎn)品髓迎。但是炕矮,區(qū)塊鏈有一個革命性特點笨奠。

區(qū)塊鏈沒有管理員瞻润,它是徹底無中心的。其他的數(shù)據(jù)庫都有管理員废离,但是區(qū)塊鏈沒有侄泽。如果有人想對區(qū)塊鏈添加審核,也實現(xiàn)不了蜻韭,因為它的設計目標就是防止出現(xiàn)居于中心地位的管理當局悼尾。

正是因為無法管理,區(qū)塊鏈才能做到無法被控制肖方。否則一旦大公司大集團控制了管理權闺魏,他們就會控制整個平臺,其他使用者就都必須聽命于他們了俯画。

但是析桥,沒有了管理員,人人都可以往里面寫入數(shù)據(jù)艰垂,怎么才能保證數(shù)據(jù)是可信的呢泡仗?被壞人改了怎么辦?請接著往下讀猜憎,這就是區(qū)塊鏈奇妙的地方娩怎。

三、區(qū)塊

區(qū)塊鏈由一個個區(qū)塊(block)組成胰柑。區(qū)塊很像數(shù)據(jù)庫的記錄截亦,每次寫入數(shù)據(jù),就是創(chuàng)建一個區(qū)塊柬讨。

每個區(qū)塊包含兩個部分崩瓤。

區(qū)塊頭(Head):記錄當前區(qū)塊的元信息

區(qū)塊體(Body):實際數(shù)據(jù)

區(qū)塊頭包含了當前區(qū)塊的多項元信息。

生成時間

實際數(shù)據(jù)(即區(qū)塊體)的 Hash

上一個區(qū)塊的 Hash

...

這里踩官,你需要理解什么叫 Hash却桶,這是理解區(qū)塊鏈必需的。

所謂 Hash 就是計算機可以對任意內容卖鲤,計算出一個長度相同的特征值肾扰。區(qū)塊鏈的 Hash 長度是256位畴嘶,這就是說蛋逾,不管原始內容是什么,最后都會計算出一個256位的二進制數(shù)字窗悯。而且可以保證区匣,只要原始內容不同,對應的 Hash 一定是不同的。

舉例來說亏钩,字符串123的 Hash 是 a8fdc205a9f19cc1c7507a60c4f01b13d11d7fd0(十六進制)莲绰,轉成二進制就是256位,而且只有123能得到這個 Hash姑丑。

因此蛤签,就有兩個重要的推論。

推論1:每個區(qū)塊的 Hash 都是不一樣的栅哀,可以通過 Hash 標識區(qū)塊震肮。

推論2:如果區(qū)塊的內容變了,它的 Hash 一定會改變留拾。

四戳晌、 Hash 的不可修改性

區(qū)塊與 Hash 是一一對應的,每個區(qū)塊的 Hash 都是針對"區(qū)塊頭"(Head)計算的痴柔。

Hash = SHA256(區(qū)塊頭)

上面就是區(qū)塊 Hash 的計算公式沦偎,Hash 由區(qū)塊頭唯一決定,SHA256是區(qū)塊鏈的 Hash 算法咳蔚。

前面說過豪嚎,區(qū)塊頭包含很多內容,其中有當前區(qū)塊體的 Hash谈火,還有上一個區(qū)塊的 Hash疙渣。這意味著,如果當前區(qū)塊的內容變了堆巧,或者上一個區(qū)塊的 Hash 變了妄荔,一定會引起當前區(qū)塊的 Hash 改變。

這一點對區(qū)塊鏈有重大意義谍肤。如果有人修改了一個區(qū)塊啦租,該區(qū)塊的 Hash 就變了。為了讓后面的區(qū)塊還能連到它荒揣,該人必須同時修改后面所有的區(qū)塊篷角,否則被改掉的區(qū)塊就脫離區(qū)塊鏈了。由于后面要提到的原因系任,Hash 的計算很耗時恳蹲,同時修改多個區(qū)塊幾乎不可能發(fā)生,除非有人掌握了全網(wǎng)51%以上的計算能力俩滥。

正是通過這種聯(lián)動機制嘉蕾,區(qū)塊鏈保證了自身的可靠性,數(shù)據(jù)一旦寫入霜旧,就無法被篡改错忱。這就像歷史一樣,發(fā)生了就是發(fā)生了,從此再無法改變以清。

每個區(qū)塊都連著上一個區(qū)塊儿普,這也是"區(qū)塊鏈"這個名字的由來。

五掷倔、采礦

由于必須保證節(jié)點之間的同步眉孩,所以新區(qū)塊的添加速度不能太快。試想一下勒葱,你剛剛同步了一個區(qū)塊勺像,準備基于它生成下一個區(qū)塊,但這時別的節(jié)點又有新區(qū)塊生成错森,你不得不放棄做了一半的計算吟宦,再次去同步。因為每個區(qū)塊的后面涩维,只能跟著一個區(qū)塊殃姓,你永遠只能在最新區(qū)塊的后面,生成下一個區(qū)塊瓦阐。所以蜗侈,你別無選擇,一聽到信號睡蟋,就必須立刻同步踏幻。

所以,區(qū)塊鏈的發(fā)明者中本聰(這是假名戳杀,真實身份至今未知)故意讓添加新區(qū)塊该面,變得很困難。他的設計是信卡,平均每10分鐘隔缀,全網(wǎng)才能生成一個新區(qū)塊,一小時也就六個傍菇。

這種產(chǎn)出速度不是通過命令達成的猾瘸,而是故意設置了海量的計算。也就是說丢习,只有通過極其大量的計算牵触,才能得到當前區(qū)塊的有效 Hash,從而把新區(qū)塊添加到區(qū)塊鏈咐低。由于計算量太大揽思,所以快不起來。

這個過程就叫做采礦(mining)渊鞋,因為計算有效 Hash 的難度绰更,好比在全世界的沙子里面瞧挤,找到一粒符合條件的沙子锡宋。計算 Hash 的機器就叫做礦機儡湾,操作礦機的人就叫做礦工。

六执俩、難度系數(shù)

讀到這里徐钠,你可能會有一個疑問,人們都說采礦很難役首,可是采礦不就是用計算機算出一個 Hash 嗎尝丐,這正是計算機的強項啊,怎么會變得很難衡奥,遲遲算不出來呢爹袁?

原來不是任意一個 Hash 都可以,只有滿足條件的 Hash 才會被區(qū)塊鏈接受矮固。這個條件特別苛刻失息,使得絕大部分 Hash 都不滿足要求,必須重算档址。

原來盹兢,區(qū)塊頭包含一個難度系數(shù)(difficulty),這個值決定了計算 Hash 的難度守伸。舉例來說绎秒,第100000個區(qū)塊的難度系數(shù)是 14484.16236122。

區(qū)塊鏈協(xié)議規(guī)定尼摹,使用一個常量除以難度系數(shù)见芹,可以得到目標值(target)。顯然蠢涝,難度系數(shù)越大辆童,目標值就越小。

Hash 的有效性跟目標值密切相關惠赫,只有小于目標值的 Hash 才是有效的把鉴,否則 Hash 無效,必須重算儿咱。由于目標值非常小庭砍,Hash 小于該值的機會極其渺茫,可能計算10億次混埠,才算中一次怠缸。這就是采礦如此之慢的根本原因。

區(qū)塊頭里面還有一個 Nonce 值钳宪,記錄了 Hash 重算的次數(shù)揭北。第 100000 個區(qū)塊的 Nonce 值是274148111扳炬,即計算了 2.74 億次,才得到了一個有效的 Hash搔体,該區(qū)塊才能加入?yún)^(qū)塊鏈恨樟。

七、難度系數(shù)的動態(tài)調節(jié)

就算采礦很難疚俱,但也沒法保證劝术,正好十分鐘產(chǎn)出一個區(qū)塊,有時一分鐘就算出來了呆奕,有時幾個小時可能也沒結果养晋。總體來看梁钾,隨著硬件設備的提升绳泉,以及礦機的數(shù)量增長,計算速度一定會越來越快姆泻。

為了將產(chǎn)出速率恒定在十分鐘零酪,中本聰還設計了難度系數(shù)的動態(tài)調節(jié)機制。他規(guī)定麦射,難度系數(shù)每兩周(2016個區(qū)塊)調整一次蛾娶。如果這兩周里面,區(qū)塊的平均生成速度是9分鐘潜秋,就意味著比法定速度快了10%蛔琅,因此難度系數(shù)就要調高10%;如果平均生成速度是11分鐘峻呛,就意味著比法定速度慢了10%罗售,因此難度系數(shù)就要調低10%。

難度系數(shù)越調越高(目標值越來越泄呈觥)寨躁,導致了采礦越來越難。

八牙勘、區(qū)塊鏈的分叉

即使區(qū)塊鏈是可靠的职恳,現(xiàn)在還有一個問題沒有解決:如果兩個人同時向區(qū)塊鏈寫入數(shù)據(jù),也就是說方面,同時有兩個區(qū)塊加入放钦,因為它們都連著前一個區(qū)塊,就形成了分叉恭金。這時應該采納哪一個區(qū)塊呢操禀?

現(xiàn)在的規(guī)則是,新節(jié)點總是采用最長的那條區(qū)塊鏈横腿。如果區(qū)塊鏈有分叉颓屑,將看哪個分支在分叉點后面斤寂,先達到6個新區(qū)塊(稱為"六次確認")。按照10分鐘一個區(qū)塊計算揪惦,一小時就可以確認遍搞。

由于新區(qū)塊的生成速度由計算能力決定,所以這條規(guī)則就是說丹擎,擁有大多數(shù)計算能力的那條分支尾抑,就是正宗的比特鏈歇父。

九蒂培、總結

區(qū)塊鏈作為無人管理的分布式數(shù)據(jù)庫,從2009年開始已經(jīng)運行了8年榜苫,沒有出現(xiàn)大的問題护戳。這證明它是可行的。

但是垂睬,為了保證數(shù)據(jù)的可靠性媳荒,區(qū)塊鏈也有自己的代價。一是效率驹饺,數(shù)據(jù)寫入?yún)^(qū)塊鏈钳枕,最少要等待十分鐘,所有節(jié)點都同步數(shù)據(jù)赏壹,則需要更多的時間鱼炒;二是能耗,區(qū)塊的生成需要礦工進行無數(shù)無意義的計算蝌借,這是非常耗費能源的昔瞧。

因此,區(qū)塊鏈的適用場景菩佑,其實非常有限自晰。

不存在所有成員都信任的管理當局

寫入的數(shù)據(jù)不要求實時使用

挖礦的收益能夠彌補本身的成本

如果無法滿足上述的條件,那么傳統(tǒng)的數(shù)據(jù)庫是更好的解決方案稍坯。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末酬荞,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子瞧哟,更是在濱河造成了極大的恐慌混巧,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绢涡,死亡現(xiàn)場離奇詭異牲剃,居然都是意外死亡,警方通過查閱死者的電腦和手機雄可,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門凿傅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來缠犀,“玉大人,你說我怎么就攤上這事聪舒”嬉海” “怎么了?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵箱残,是天一觀的道長滔迈。 經(jīng)常有香客問我,道長被辑,這世上最難降的妖魔是什么燎悍? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮盼理,結果婚禮上谈山,老公的妹妹穿的比我還像新娘。我一直安慰自己宏怔,他們只是感情好奏路,可當我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著臊诊,像睡著了一般鸽粉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上抓艳,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天触机,我揣著相機與錄音,去河邊找鬼壶硅。 笑死威兜,一個胖子當著我的面吹牛,可吹牛的內容都是我干的庐椒。 我是一名探鬼主播椒舵,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼约谈!你這毒婦竟也來了笔宿?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤棱诱,失蹤者是張志新(化名)和其女友劉穎泼橘,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體迈勋,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡炬灭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了靡菇。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片重归。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡米愿,死狀恐怖,靈堂內的尸體忽然破棺而出鼻吮,到底是詐尸還是另有隱情育苟,我是刑警寧澤,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布椎木,位于F島的核電站违柏,受9級特大地震影響,放射性物質發(fā)生泄漏香椎。R本人自食惡果不足惜漱竖,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望士鸥。 院中可真熱鬧闲孤,春花似錦谆级、人聲如沸烤礁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽脚仔。三九已至,卻和暖如春舆绎,著一層夾襖步出監(jiān)牢的瞬間鲤脏,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工吕朵, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留猎醇,地道東北人。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓努溃,卻偏偏與公主長得像硫嘶,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子梧税,可洞房花燭夜當晚...
    茶點故事閱讀 44,611評論 2 353

推薦閱讀更多精彩內容

  • 一沦疾、快速術語檢索 比特幣地址:(例如:1DSrfJdB2AnWaFNgSbv3MZC2m74996JafV)由一串...
    不如假如閱讀 15,945評論 4 87
  • 區(qū)塊鏈(blockchain)是眼下的大熱門,新聞媒體大量報道第队,宣稱它將創(chuàng)造未來哮塞。 可是,簡單易懂的入門文章卻很少...
    欲速_則不達閱讀 176評論 0 1
  • 讀大學以來凳谦,我基本很少回家忆畅。本科期間學校距家只有2個多小時的火車車程,可我也就清明尸执、暑假和寒假回家家凯。碩士期間眠屎,因跨...
    檀喆閱讀 318評論 0 0
  • 李笑來在《新生——七年就是一輩子》中介紹了一款好用的思維工具:類比思維這是一個幫助我們說明或理解的思維輔助工具。 ...
    Anana閱讀 735評論 1 4
  • 忙忙碌碌肆饶,朦朦朧朧2017就過去了改衩。人生、世界驯镊、未來葫督、愛情……一個詞接著一個詞,久久徘徊不定板惑。累而累橄镜。 三年一晃而...
    潶逅閱讀 162評論 0 0