關于比特幣和區(qū)塊鏈,你所知道的都對嗎?

7 評論 16866 瀏覽 100 收藏 23 分鐘

比特幣是世界上第一個通過密碼學,而非中央銀行發(fā)行的電子加密貨幣。而區(qū)塊鏈是比特幣使用的一種特殊的數(shù)據(jù)庫,是比特幣存在的基礎。任何人都可以架設服務器,加入?yún)^(qū)塊鏈網(wǎng)絡,成為一個節(jié)點。本文主要作為一篇普及貼,簡單的來探討一下技術原理。

區(qū)塊鏈大火,讓我等吃瓜群眾猝不及防。雖然網(wǎng)上文章鋪天蓋地,比如:“一圖看懂”系列,但仍然雞同鴨講,莫衷一是,并不知其所以然,頂多知道是個同步賬本。

作為一篇學習總結(jié),我希(盡)望(力)本文能作為一篇普及貼,也能讓其他人看懂。所以這里不會深入探討技術原理,大佬們請繞過。

比特幣是世界上第一個通過密碼學,而非中央銀行發(fā)行的電子加密貨幣。因為其發(fā)行總量固定,無中央銀行干預,讓許多”民主人士“認為這是極為先進的民主思想技術革命。

然而去中心化的系統(tǒng)帶來了一些新問題:

  • 沒有政府背書和資產(chǎn)擔保,貨幣信任、交易真實性成了問題。
  • 每個人都有權了解這個世界在發(fā)生什么,信息一旦變化,所有數(shù)據(jù)庫需要同步更新,平等對稱。
  • 沒有集中決策,為了信息對稱,如何達成共識,變成了難題。

大問題“交易信任”、“數(shù)據(jù)對稱”、“共識達成”。

解決辦法“非對稱加密”、“P2P網(wǎng)絡”、“共識機制”。

中本聰用以上三種方法,構(gòu)架出了區(qū)塊鏈技術結(jié)構(gòu),讓比特幣的發(fā)行流通構(gòu)想得以實現(xiàn)。

什么是比特幣?

比特幣(bitcoin)誕生于2008年的一篇論文《A Peer-to-Peer Electronic Cash System》并規(guī)定了一些基礎協(xié)議:

圖:比特幣協(xié)議特點

  • 比特幣總量為2100萬枚;
  • 平均10分鐘誕生一個區(qū)塊;
  • 被寫入?yún)^(qū)塊的交易按照手續(xù)費高低排優(yōu)先級;
  • 區(qū)塊的大小只有 1MB,一筆交易大概是500字節(jié)左右,因此一個區(qū)塊最多只能包含2000多筆交易;
  • 挖到新區(qū)塊的礦工將獲得獎勵,一開始(2008年)是50個比特幣,然后每4年減半,目前(2018年)是12.5個比特幣;
  • 一筆交易確認需要等待6個區(qū)塊。

比特幣網(wǎng)絡每10分鐘,最多只能處理2000多筆交易,換算一下,就是處理速度為3~7筆/秒。

也就是說,比特幣區(qū)塊鏈每秒最多只能處理7筆交易,要是交易數(shù)據(jù)再大點,可能連7筆都達不到。而支付寶一秒處理12萬筆交易,這本應在1秒處理的12萬筆交易,比特幣需要10小時。

每4年獎勵減半,那么到了2140年,礦工將得不到任何獎勵,比特幣的數(shù)量也將停止增加。這時,礦工的收益就完全依靠交易手續(xù)費了。

這些數(shù)據(jù)是怎么確定的,眾說紛紜。比如:一個區(qū)塊鏈的大小是1MB,中本聰在設計之初也并未預料到會發(fā)展到今天的規(guī)模,其本身是一個構(gòu)想的實驗。很多數(shù)據(jù)并未驗證,甚至可以說是拍腦袋定的。

?1. 讓交易被信任——非對稱加密

比特幣的基礎是加密學,如果不知道一筆錢從哪來,是誰的,誰敢拿它當貨幣呢?非對稱加密從技術上解決了可信性問題,這也是這一類數(shù)字憑證被稱為”加密貨幣”的原因。

所謂非對稱加密,其實很簡單——加密和解密需要一把公鑰和一把私鑰。

交易的第一件事就是你必須擁有自己的公鑰和私鑰(任何交易所開戶或錢包類網(wǎng)站都會給)。

驗證一筆交易是否有效,需要兩步:

(1)FROM(誰發(fā)送的,包括兩部分):

  1. Previous tx:這筆錢的來源賬單的id, 驗證資金來源;
  2. scriptSig:這筆交易的簽名,就是把交易用私鑰做hash。

(2)TO(誰接受,包括兩部分):

  1. Value:要發(fā)多少;
  2. scriptPubKey:支付方的公鑰,也就是比特幣地址。

對于比特幣,錢不是支付給個人的,而是支付給某一個地址,沒有人知道,那些私鑰和地址背后的主人是誰——匿名性。

什么是區(qū)塊鏈? ?

區(qū)塊鏈(blockchain)是比特幣使用的一種特殊的數(shù)據(jù)庫,是比特幣存在的基礎。任何人都可以架設服務器,加入?yún)^(qū)塊鏈網(wǎng)絡,成為一個節(jié)點。

圖:區(qū)塊鏈結(jié)構(gòu)示意圖

區(qū)塊鏈由一個個區(qū)塊(block)組成,區(qū)塊很像數(shù)據(jù)庫的記錄,每次寫入數(shù)據(jù),就是創(chuàng)建一個區(qū)塊。每個區(qū)塊包含兩個部分:區(qū)塊頭和區(qū)塊體。

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

其中包含:

  1. 生成時間;
  2. 上一個區(qū)塊的 Hash;
  3. 區(qū)塊體的Hash。

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

其中比較重要的概念是“Hash”,所謂 Hash 是對任意內(nèi)容,計算出一個長度相同的特征值。而且保證,只要原始內(nèi)容不同,對應的 Hash 一定是不同的,比特幣區(qū)塊用的SHA256加密算法。

  1. 每個區(qū)塊的 Hash 都是不一樣的,通過 Hash 標識區(qū)塊。
  2. 如果區(qū)塊的內(nèi)容變了,它的 Hash 一定會改變。

圖:區(qū)塊結(jié)構(gòu)示意圖

?1. 如何把交易寫入?yún)^(qū)塊鏈——“挖礦”?

“挖礦”指的是:把網(wǎng)絡上待確認的交易寫入新區(qū)塊,并獲得比特幣獎勵的過程。

“礦工”是用GPU等硬件設備進行數(shù)據(jù)計算的一群人,正是這群人,把交易者的數(shù)據(jù)一筆一筆記入帳中?!巴诘V”的機器叫“礦機”;成規(guī)?!巴诘V”的場地叫“礦廠”。

回顧挖礦歷史,比特幣挖礦總共經(jīng)歷了以下五個時代:CPU(20MHash/s)→GPU(400MHash/s)→FPGA(25GHash/s)→ASIC(3.5THash/s)→大規(guī)模集群挖礦(3.5THash/s*X)。

圖:礦廠

“挖礦”道理其實很簡單,想要挖到新區(qū)塊必算出符合要求的哈希值。你可能會有一個疑問,計算一個哈希值為什么這么難?

原來正確的哈希值是有一定要求的:

fetch_file34c9302fe0fe0715aed06155faa2b6d6-picture

圖:515798號區(qū)塊信息

(1)Difficulty

區(qū)塊頭包含一個難度系數(shù)(difficulty),這個值決定了計算 Hash 的難度。舉例來說:第515798個區(qū)塊的難度系數(shù)是 3462542391191.56,而第100000個區(qū)塊鏈難度可只有14484.162361。

(2)Target

區(qū)塊鏈協(xié)議規(guī)定,使用一個常量除以難度系數(shù),可以得到目標值(target)。

Target = Targetmax/ Difficulty?

顯然,難度系數(shù)越大,目標值就越小。

Hash 的有效性跟目標值密切相關,只有小于目標值的Hash 才是有效的,這就是采礦如此之慢的根本原因。

(3)Nonce

區(qū)塊頭里面還有一個 Nonce 值,記錄了 Hash 重算的次數(shù)。

第 515798 個區(qū)塊的 Nonce 值是213587466,即計算了 2.1 億次,才得到了一個有效的 Hash,該區(qū)塊才能加入?yún)^(qū)塊鏈。

(5)難度系數(shù)的動態(tài)調(diào)節(jié)

實際上,新的區(qū)塊有時候幾分鐘就可能被算出來,有的可能需要幾小時。為了保證新區(qū)塊在10分鐘左右的時間內(nèi)產(chǎn)生,并且考慮到硬件設備的升級,中本聰將Difficulty每2016個區(qū)塊調(diào)整一次以保證新區(qū)塊平均產(chǎn)生時間在10分鐘。

2. 挖礦的意外——分叉?

圖:分叉示意圖

在挖礦的過程中,如果同時生成了兩個新區(qū)快,鏈接著同一個上級區(qū)塊,便形成了分叉。

如果發(fā)生這種狀況:認定率先達到6個新區(qū)塊的一條鏈為有效鏈(比特幣交易的六次確認),即需要1小時左右。

一個很直觀的例子可以說明為何這種經(jīng)濟博弈模式:

超市付款需要排成一隊,可能有人不守規(guī)矩要插隊。超市管理員會檢查隊伍,認為最長的一條隊伍是合法的,并讓不合法的分叉隊伍重新排隊。只要大部分人不傻,就會自覺在最長的隊伍上排隊。

?3. 讓信息對稱——P2P網(wǎng)絡結(jié)構(gòu)?

P2P網(wǎng)絡保證每個人的信息同步,任何人都可以成為一個節(jié)點。每個節(jié)點都包含了整個區(qū)塊鏈(目前100G),并且節(jié)點之間時刻不停的同步信息。

當你發(fā)生了一筆交易,你所在的節(jié)點就會把這筆交易告訴另一個節(jié)點,直到傳遍整個網(wǎng)絡?!暗V工”搜集各種新發(fā)生的交易,將他們寫入?yún)^(qū)塊鏈。一旦寫入成功,此“礦工”所在節(jié)點的區(qū)塊鏈就成了最新版本,其他節(jié)點會來復制新增的區(qū)塊,保證全網(wǎng)同步。

圖:P2P節(jié)點分布全球,每個節(jié)點信息一致

?4. 關于挖礦方法爭論——共識機制?

“挖礦”這種行為的本質(zhì)是尋求達到某一共識,再把信息寫入?yún)^(qū)塊的勞動。這種共識決策其實不只比特幣所使用的一種方法。

目前主流共識機制目前有:

POW(Proof of Work)、POS (Proof of Stake)、DPOS(Delegated Proof of Stake)

(1)POW(Proof of Work)

一句話介紹:干的快,收的越多。

工作量證明協(xié)議。比特幣所用共識機制。它要求發(fā)起者進行一定量的運算,也就意味著需要消耗計算機一定的時間。

優(yōu)點:

  1. 算法簡單,容易實現(xiàn);
  2. 節(jié)點間無需交換額外的信息即可達成共識;
  3. 破壞系統(tǒng)需要投入極大的成本。

缺點:

  1. 浪費能源;
  2. 區(qū)塊的確認時間難以縮短;
  3. 新的區(qū)塊鏈必須找到一種不同的散列算法,否則就會面臨比特幣的算力攻擊;
  4. 容易產(chǎn)生分叉,需要等待多個確認;
  5. 永遠沒有最終性,需要檢查點機制來彌補最終性。

(2)POS (Proof of Stake)

一句話介紹:持有越多,獲得越多。

權益證明:最早在?Peercoin?系統(tǒng)中被實現(xiàn),類似現(xiàn)實生活中的股東機制,擁有股份越多的人越容易獲取記賬權。在POW中,如果用戶花費2000美元購買硬件設備,當然會獲得兩倍算力來挖礦;同樣,在POS機制中投入兩倍的代幣作為押金,就有兩倍大的機會獲得產(chǎn)生新區(qū)塊的權利。

優(yōu)點:

  1. 在一定程度上縮短了共識達成的時間;
  2. 不再需要大量消耗能源挖礦。

缺點:

還是需要挖礦,本質(zhì)上沒有解決商業(yè)應用的痛點。

(3)DPOS (Delegated Proof of Stake)

一句話介紹: 選出代表,高效運算。

Dan Larimer發(fā)明的這種新共識算法,被稱為股份授權證明機制(DPoS),應用于比特股和Steemit社區(qū)。

每個股東按其持股比例選定代表,每個股東將選票授予一名代表。獲票數(shù)最多的前100位代表加1位隨機代表,按既定時間表輪流產(chǎn)生區(qū)塊,每名代表分配到一個時間段來生產(chǎn)區(qū)塊,所有的代表將收到等同于一個平均水平的區(qū)塊所含交易費的10%作為報酬。

該模式可以每30秒產(chǎn)生一個新區(qū)塊,每次單人有序生產(chǎn)區(qū)塊在正常的網(wǎng)絡條件下區(qū)塊鏈分叉的可能性極其小,即使發(fā)生也可以在幾分鐘內(nèi)得到解決。

優(yōu)點:高效。

缺點:整個共識機制還是依賴于代幣,很多商業(yè)應用是不需要代幣存在的。

5. 區(qū)塊鏈2.0——以太坊?

為什么會有以太坊呢?

它的創(chuàng)始人Vitalik Buterin在《以太坊白皮書》前言部分挑明:因為比特幣沒有賬戶狀態(tài)的概念,而且POW機制效能低,浪費大量時間和資源。而以太坊作為區(qū)塊鏈平臺,將區(qū)塊鏈技術的發(fā)展帶入到 2.0 時代。

以太坊要實現(xiàn)的是——一個內(nèi)置了編程語言(Solidity)的區(qū)塊鏈協(xié)議。那么理論上任何區(qū)塊鏈應用都可以用這門語言進行定義,運行于以太坊的區(qū)塊鏈協(xié)議之上(該協(xié)議的意義與互聯(lián)網(wǎng)時代的 TCP/IP 協(xié)議相似)。這使得區(qū)塊鏈應用開發(fā)者們高效快速地開發(fā)頂層應用,變?yōu)榭赡堋?/p>

以太坊涉及的問題非常多,很難一言蔽之。這里只對其地位和意義做簡要了解。如果感興趣可以登陸其官網(wǎng):https://www.ethereum.org/

ICO和其他電子加密貨幣

圖:火幣pro上市幣種

目前交易所上市的電子加密貨幣已經(jīng)不下1000種,那他們是什么?從哪來?什么是山寨幣,分叉幣,ICO?

山寨幣

是我們最初指除比特幣以外的加密貨幣。

分叉幣

是由主鏈分叉出來的新幣,比如:比特幣BTC分叉的比特現(xiàn)金B(yǎng)CH。

ICO是Initial Coin Offering的簡稱

所有成功的數(shù)字貨幣以及區(qū)塊鏈項目無一不是社區(qū)項目。常見的ICO里,數(shù)字貨幣和區(qū)塊鏈項目向早期愛好者出售項目代幣,項目團隊通過ICO獲取技術開發(fā)和市場拓展資金,而項目愛好者通過ICO支持項目,同時也可在對應代幣進入交易市場后選擇交易退出。

可查的首個ICO來自于Mastercoin項目(現(xiàn)已更名為Omni),其在13年7月時在Bitcointalk(最大的比特幣和數(shù)字貨幣社區(qū)論壇)上宣布通過比特幣進行ICO眾籌,并生成對應的Mastercoin代幣并分發(fā)給到眾籌參與者。

本質(zhì)上來說這次ICO是一種以物換物的行為,即參與者用比特幣換得Mastercoin項目里的代幣。一開始ICO只是數(shù)字貨幣愛好者的一種社區(qū)行為,隨著數(shù)字貨幣以及區(qū)塊鏈的不斷發(fā)展,開始被越來越多人接受并參與,絕大部分ICO都是通過比特幣或其他數(shù)字貨幣進行的。

幾個著名的ICO案例:

  • 2013年7月,Mastercoin(現(xiàn)更名為Omni):可查的最早ICO項目,通過meta-protocol拓展比特幣功能,募集5000 BTC。
  • 2013年12月,NXT(未來幣):首個完整的PoS區(qū)塊鏈,曾經(jīng)神秘的開發(fā)者,持續(xù)發(fā)展的強大社區(qū)。ICO神話:募集21 BTC(是的你沒看錯,21BTC,約等于當時6000美元),市值峰值曾到達過1億美元。
  • 2013年-2014年,Bitshares(比特股):曾經(jīng)的“數(shù)字資產(chǎn)二代幣三劍客”之一(另外兩個為NXT和CounterParty),國內(nèi)數(shù)字貨幣界口水之源,毀譽參半,其社區(qū)培養(yǎng)了國內(nèi)大量早期ICO以及數(shù)字資產(chǎn)愛好者。
  • 2014年7月,Ethereum(以太坊):ICO時募集3萬余個比特幣曾創(chuàng)下紀錄。將智能合約理念推進到極致的區(qū)塊鏈項目,讓全世界重新認識區(qū)塊鏈公有鏈的項目。近兩年最成功的ICO,也是至今為止除比特幣以外市值最高的數(shù)字貨幣/區(qū)塊鏈項目,近期由于TheDAO事件影響晴雨不定。
  • 2015年3月,F(xiàn)actom(公正通):雙代幣設計,首提存在性證明的區(qū)塊鏈商業(yè)化以及由此導出的基金會與公司雙機構(gòu)設置。
  • 2016年3月,Lisk:以太坊挑戰(zhàn)者,利用側(cè)鏈的Dapp解決方案。
  • 2016年5月,TheDAO:等值1.5億美元破世界紀錄的ICO眾籌,非典型ICO(其本身不是區(qū)塊鏈)。向世界大聲宣告智能合約時代到來后一個月即被黑客攻克,在歷史上刻下了深深的雙重驚嘆號?(該項目目前已經(jīng)失?。?。
  • 2017年6月, EOS (Enterprise Operation System) :為商用分布式應用設計的一款區(qū)塊鏈操作系統(tǒng)。 創(chuàng)始人是比特股創(chuàng)始人、DPOS發(fā)明者Dan Larimer,已經(jīng)創(chuàng)造了一個新的ICO記錄——5天內(nèi)籌集了1.85億美元,它是以以太坊為募集基礎的代幣。

這是個平等的世界嗎?

細心的觀眾可能已經(jīng)發(fā)現(xiàn),這套民主思想的技術,似乎并沒有那么公平。如果你有足夠資本建立礦場,將會持有大量的比特幣(尤其前期難度不高)。

資本逐漸慢慢聚攏到算力集中的少數(shù)礦場的手里,形成馬太效應,去中心化效應減弱。比如:現(xiàn)在的比特大陸(一度接近51%的算力),郭宏才也是這樣挖礦起家,現(xiàn)在挖礦已經(jīng)不是小散戶玩的起的游戲了。

擴容問題

比特幣的區(qū)塊大小為1M,如果比特幣交易越來越多,很多交易就不會在發(fā)生后的第一個區(qū)塊被打包和確認,可能要等好幾個區(qū)塊,甚至更久。比特幣交易的擁堵導致了轉(zhuǎn)賬速度變慢,手續(xù)費也越來越高。

中本聰曾提出了在比特幣容量不夠用的時候應該怎樣進行擴容。白皮書發(fā)布之后,他自己在社區(qū)留言的第一個問題,就指出了比特幣未來的擴容隱患。

THE END

區(qū)塊鏈技術性強,技術分支也越來越多,這里也只聊了九牛一毛。

從業(yè)務上看,應用卻已經(jīng)很多:網(wǎng)易星球、阿里的麻吉寶。然而目前給人的感覺都還是為了做區(qū)塊鏈而區(qū)塊鏈,需求的還沒有真正出現(xiàn)。

目前德國、英國、日本等政府認可比特幣的價值,和此前加密貓的誕生,推著幣價一度走高。不過,區(qū)塊鏈和比特幣到底是鉆石還是郁金香,等待驗證還有很多。

參考文章:

《區(qū)塊鏈入門》

《比特幣入門》

《比特幣分叉是怎么回事?》

《什么是ICO眾籌?》

《如何理解拜占庭將軍問題?》

《區(qū)塊鏈共識機制有哪些?》

 

作者:owenii ,公眾號 Hao設計(ID:HaoDesign_)歡迎添加微信:owenii 一起探討交流,「一個設計師的胡思亂想」。

本文由 @owenii 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載

題圖作者提供

更多精彩內(nèi)容,請關注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 感覺這是我看到的為數(shù)不多的,能讓我看懂的講解了。
    但是關于以太坊和比特幣有什么區(qū)別,能講解一下嗎?

    來自北京 回復
    1. 嗯,有這個打算

      來自北京 回復
  2. 很客觀

    回復
  3. 首先大家要知道,區(qū)塊鏈是技術,比特幣等貨幣是基于區(qū)塊鏈技術的應用之一。區(qū)塊鏈的去中心化等特性并不適用于所有領域,更不是包治百病的靈丹妙藥。以我淺薄的經(jīng)驗。目前市面上大多數(shù)的代幣項目。投資人的意圖很明顯。圈錢套現(xiàn)。

    回復
    1. 贊同

      回復
  4. 給我這種什么都不懂的人科普了一番~感謝~

    來自上海 回復