比特幣是世界上第一個通過密碼學(xué),而非中央銀行發(fā)行的電子加密貨幣。而區(qū)
塊鏈?zhǔn)潜忍貛攀褂玫囊环N特殊的數(shù)據(jù)庫胁附,是比特幣存在的基礎(chǔ)。任何人都可以
架設(shè)服務(wù)器滓彰,加入?yún)^(qū)塊鏈網(wǎng)絡(luò)控妻,成為一個節(jié)點(diǎn)。本文主要作為一篇普及貼揭绑,簡
單的來探討一下技術(shù)原理弓候。?
區(qū)塊鏈大火,讓我等吃瓜群眾猝不及防他匪。雖然網(wǎng)上文章鋪天蓋地菇存,比如:“一圖
看懂”系列,但仍然雞同鴨講邦蜜,莫衷一是依鸥,并不知其所以然,頂多知道是個同步
賬本悼沈。
作為一篇學(xué)習(xí)總結(jié)贱迟,我希(盡)望(力)本文能作為一篇普及貼,也能讓其他人
看懂絮供。所以這里不會深入探討技術(shù)原理衣吠,大佬們請繞過。
比特幣是世界上第一個通過密碼學(xué)壤靶,而非中央銀行發(fā)行的電子加密貨幣缚俏。因?yàn)槠?/p>
發(fā)行總量固定,無中央銀行干預(yù)贮乳,讓許多”民主人士“認(rèn)為這是極為先進(jìn)的民主
思想技術(shù)革命忧换。
然而去中心化的系統(tǒng)帶來了一些新問題:
沒有政府背書和資產(chǎn)擔(dān)保,貨幣信任塘揣、交易真實(shí)性成了問題包雀。
每個人都有權(quán)了解這個世界在發(fā)生什么,信息一旦變化亲铡,所有數(shù)據(jù)庫需
要同步更新才写,平等對稱。
沒有集中決策奖蔓,為了信息對稱赞草,如何達(dá)成共識,變成了難題吆鹤。
大問題“交易信任”厨疙、“數(shù)據(jù)對稱”、“共識達(dá)成”疑务。
解決辦法“非對稱加密”沾凄、“P2P網(wǎng)絡(luò)”梗醇、“共識機(jī)制”。
中本聰用以上三種方法撒蟀,構(gòu)架出了區(qū)塊鏈技術(shù)結(jié)構(gòu)叙谨,讓比特幣的發(fā)行流通構(gòu)想得
以實(shí)現(xiàn)。
誕生于2008年的一篇論文《A Peer-to-Peer Electronic
Cash System》并規(guī)定了一些基礎(chǔ)協(xié)議:
圖:比特幣協(xié)議特點(diǎn)
比特幣總量為2100萬枚保屯;
平均10分鐘誕生一個區(qū)塊手负;
被寫入?yún)^(qū)塊的交易按照手續(xù)費(fèi)高低排優(yōu)先級;
區(qū)塊的大小只有 1MB姑尺,一筆交易大概是500字節(jié)左右竟终,因此一個區(qū)塊
最多只能包含2000多筆交易;
挖到新區(qū)塊的礦工將獲得獎勵切蟋,一開始(2008年)是50個比特幣统捶,然
后每4年減半,目前(2018年)是12.5個比特幣敦姻;
一筆交易確認(rèn)需要等待6個區(qū)塊瘾境。
比特幣網(wǎng)絡(luò)每10分鐘,最多只能處理2000多筆交易镰惦,換算一下迷守,就是處理速度為3
~7筆/秒。
也就是說旺入,比特幣區(qū)塊鏈每秒最多只能處理7筆交易兑凿,要是交易數(shù)據(jù)再大點(diǎn),可能
連7筆都達(dá)不到茵瘾。而支付寶一秒處理12萬筆交易礼华,這本應(yīng)在1秒處理的12萬筆交
易,比特幣需要10小時拗秘。
每4年獎勵減半圣絮,那么到了2140年,礦工將得不到任何獎勵雕旨,比特幣的數(shù)量也將停
止增加扮匠。這時,礦工的收益就完全依靠交易手續(xù)費(fèi)了凡涩。
這些數(shù)據(jù)是怎么確定的棒搜,眾說紛紜。比如:一個區(qū)塊鏈的大小是1MB活箕,中本聰在設(shè)
計(jì)之初也并未預(yù)料到會發(fā)展到今天的規(guī)模力麸,其本身是一個構(gòu)想的實(shí)驗(yàn)。很多數(shù)據(jù)
并未驗(yàn)證,甚至可以說是拍腦袋定的克蚂。
比特幣的基礎(chǔ)是加密學(xué)闺鲸,如果不知道一筆錢從哪來,是誰的陨舱,誰敢拿它當(dāng)貨幣
呢翠拣?非對稱加密從技術(shù)上解決了可信性問題,這也是這一類數(shù)字憑證被稱為”加
密貨幣”的原因游盲。
所謂非對稱加密,其實(shí)很簡單——加密和解密需要一把公鑰和一把私鑰蛮粮。
交易的第一件事就是你必須擁有自己的公鑰和私鑰(任何交易所開戶或錢包類網(wǎng)
站都會給)益缎。
(1)FROM(誰發(fā)送的,包括兩部分):
1. Previous tx:這筆錢的來源賬單的id然想, 驗(yàn)證資金來源莺奔;
2. scriptSig:這筆交易的簽名,就是把交易用私鑰做hash变泄。
(2)TO(誰接受令哟,包括兩部分):
1. Value:要發(fā)多少;
2. scriptPubKey:支付方的公鑰妨蛹,也就是比特幣地址屏富。
對于比特幣,錢不是支付給個人的蛙卤,而是支付給某一個地址狠半,沒有人知道,那些
私鑰和地址背后的主人是誰——匿名性颤难。
是比特幣使用的一種特殊的數(shù)據(jù)庫神年,是比特幣存在的基
礎(chǔ)。任何人都可以架設(shè)服務(wù)器行嗤,加入?yún)^(qū)塊鏈網(wǎng)絡(luò)已日,成為一個節(jié)點(diǎn)。
圖:區(qū)塊鏈結(jié)構(gòu)示意圖
區(qū)塊鏈由一個個區(qū)塊(block)組成栅屏,區(qū)塊很像數(shù)據(jù)庫的記錄飘千,每次寫入數(shù)據(jù),就
是創(chuàng)建一個區(qū)塊既琴。每個區(qū)塊包含兩個部分:
其中包含:
1. 生成時間占婉;
2. 上一個區(qū)塊的 Hash;
3. 區(qū)塊體的Hash甫恩。
其中比較重要的概念是“Hash”逆济,所謂 Hash 是對任意內(nèi)容,計(jì)算出一個長度相
同的特征值。而且保證奖慌,只要原始內(nèi)容不同抛虫,對應(yīng)的 Hash 一定是不同的,比特
幣區(qū)塊用的SHA256加密算法简僧。
1. 每個區(qū)塊的 Hash 都是不一樣的建椰,通過 Hash 標(biāo)識區(qū)塊。
2. 如果區(qū)塊的內(nèi)容變了岛马,它的 Hash 一定會改變棉姐。
圖:區(qū)塊結(jié)構(gòu)示意圖
把網(wǎng)絡(luò)上待確認(rèn)的交易寫入新區(qū)塊,并獲得比特幣獎勵的過
程啦逆。
“礦工”是用GPU等硬件設(shè)備進(jìn)行數(shù)據(jù)計(jì)算的一群人伞矩,正是這群人,把交易者的數(shù)
據(jù)一筆一筆記入帳中夏志∧死ぃ“挖礦”的機(jī)器叫“礦機(jī)”;成規(guī)墓得铮“挖礦”的場地
叫“礦廠”湿诊。
回顧挖礦歷史,比特幣挖礦總共經(jīng)歷了以下五個時代:
圖:礦廠
“挖礦”道理其實(shí)很簡單瘦材,想要挖到新區(qū)塊必算出符合要求的哈希值厅须。你可能會
有一個疑問,計(jì)算一個哈希值為什么這么難宇色?