比特幣挖礦——區(qū)塊鏈技術(shù)

1. 說明

區(qū)塊鏈具有數(shù)據(jù)運行公開、不可篡改穆桂、可溯源融虽、跨國際享完、去中心化的特點有额。因此越來越多地被應(yīng)用在各個領(lǐng)域彼绷。區(qū)塊鏈主要技術(shù)包括:分布式數(shù)據(jù)存儲茴迁、點對點傳輸、共識機制猜旬、加密算法倦卖,將在下面一一介紹。

2. 點對點傳輸

點對點技術(shù)(peer-to-peer怕膛, 簡稱P2P)又稱對等互聯(lián)網(wǎng)絡(luò)技術(shù),它依賴網(wǎng)絡(luò)中參與者的計算能力和帶寬褐捻,而不是把依賴都聚集在較少的幾臺服務(wù)器上。最典型的應(yīng)用就是電驢倦蚪。在這里它提供了最底層的去中心化支持边苹。

3. 分布式數(shù)據(jù)存儲

先看看對區(qū)塊鏈最直觀的感覺:當?shù)谝淮芜\行比特幣錢包時,會下載很多數(shù)據(jù)个束,2017年10月有150G左右,且還在不斷增加沪悲。數(shù)據(jù)存儲在data/blocks目錄下阱表,blk*.dat這就是區(qū)塊block殿如。
第一個問題是:為什么建礦池需要下載這么多數(shù)據(jù)最爬?區(qū)塊鏈本質(zhì)上是一個去中心化的數(shù)據(jù)庫,我們下載的是比特幣所有數(shù)據(jù)所組成的數(shù)據(jù)庫烤送,因此很大糠悯。去中心化的數(shù)據(jù)庫妻往,數(shù)據(jù)并不是保存在某一個服務(wù)器上,而且在P2P的每個節(jié)點上都需要保存一份讯泣。對于中心化的數(shù)據(jù)庫灰署,數(shù)據(jù)庫可能被宿主或者黑客篡改局嘁,因而可靠性變差。而去中心化數(shù)據(jù)庫就像一個公共帳本悦昵,所有人都能查看,但沒人能私自修改以往數(shù)據(jù)寡痰,因為它不可能修改分散在其他人機器上的數(shù)據(jù)庫棋凳。在某個數(shù)據(jù)與其它數(shù)據(jù)庫不一致時拦坠,則以大多數(shù)一致的為準剩岳,這就是所謂的“共識機制”。
隨著交易增加晓铆,錢包還會不斷變大绰播。太大之后,會用到硬分叉技術(shù)蠢箩。也就是啟用一個全新的網(wǎng)絡(luò)并讓所有的用戶大規(guī)模遷移。

4. 區(qū)塊鏈(blockchain)

區(qū)塊鏈是一串使用密碼學(xué)方法相關(guān)聯(lián)產(chǎn)生的數(shù)據(jù)塊滔韵,每一個數(shù)據(jù)塊(block)中包含了一次比特幣網(wǎng)絡(luò)交易的信息呵萨,用于驗證其信息的有效性和生成下一個區(qū)塊(根據(jù)一個生成下一生,構(gòu)成鏈chain)潮峦。
所謂挖礦就是計算出一個滿足規(guī)則的隨機數(shù)勇婴,從而獲得本次記帳權(quán)嘱腥,發(fā)出本輪需要記錄的數(shù)據(jù),然后向全網(wǎng)廣播齿兔,每個節(jié)點都會將收到交易信息,并記錄到一個區(qū)塊中添诉,然后鏈接到現(xiàn)有的區(qū)塊鏈上医寿。

5. 算法

哈希算法是一個字符串到一個(有限位數(shù)的)數(shù)的映射。
Block的算法是根據(jù)上一個block的hash值靖秩,尋找滿足某些hash結(jié)果的字符串,簡單的說就是不停地拼湊字符串花颗,計算SHA256哈希值(碰撞哈希值)惠拭,直到找到產(chǎn)生合適的哈希的字符串,這個字符串就是解今野。具體公式如下:
SHA256(SHA256(version + prev_hash + merkle_root + ntime + nbits + x )) < TARGET
挖礦就是求解上述方程中的x罐农。
其中,version是block的版本涵亏,prev_hash是上一個block的hash值,merkle_root是需要寫入的交易記錄的merkle樹的值(merkle樹被應(yīng)用在了交易的存儲上拆内,其基本原理就是將葉子節(jié)點(每筆交易的hash)兩兩配對做哈希運算生成父節(jié)點宠默,不斷迭代這一過程最終生成唯一的根節(jié)點merkle root),ntime是更新時間,nbits是當前難度抹沪,TARGET根據(jù)當前難度求出。x的范圍是0~2^32敏弃,這就是個求解x的問題噪馏,一旦你找到了x,你就可以廣播一個新的block欠肾。
TARGET越小,解出x的難度就越大步清,每產(chǎn)生2016個block(約14天)虏肾,網(wǎng)絡(luò)會根據(jù)這段時間產(chǎn)生新block的平均間隔調(diào)整之后的TARGET欢搜,以保證每10分鐘產(chǎn)生一次的速度。因此炒瘟,隨著網(wǎng)上算力的不斷增加,計算難度會越來越大疮装,礦也越來越難挖了。
如果兩人同時挖到刷袍,block chain會出現(xiàn)分叉樊展,客戶端在眾多分支中找到符合當前難度且最長的。

6. 安全機制

1) 私鑰

私鑰是形式如下的一段字符串:
5KYZdUEo39z3FPrtuX2QbbwGnNP5zTd7yyr2SC1j299sBCnWjss专缠。只要是正確支持比特幣協(xié)議的應(yīng)用都可以把這段字符串識別為私鑰,轉(zhuǎn)換成公鑰哥力,再轉(zhuǎn)換為地址墩弯,如果對應(yīng)的地址上面有比特幣蟀淮,就可以使用這個私鑰花費上面的比特幣钞澳。一般被盜指的都是私鑰被盜。

2) 公私

公鑰是由私鑰生成的轧粟,一個私鑰經(jīng)過橢圓曲線變換之后會生成一個65個byte的數(shù)組,一般我們會看到這樣形式的一個公鑰:04a34b99f22c790c4e36b2b3c2c35a36db06226e41c692fc82b8b56ac1c540c5bd5b8dec5235a0fa8722476c7709c02559e3aa73aa03918ba2d492eea75abea235
操作是用私鑰簽名的通惫,只有對應(yīng)的公鑰才能解開混蔼,地址也是從公鑰生成的,這樣就可以驗證操作是不是屬于這個地址的惭嚣。

3) 地址

地址是由公鑰產(chǎn)生的,生成的過程是晚吞,先對公鑰做一次SHA256,對得到的結(jié)果做一次RIPEMD160,再從結(jié)果中取20個byte的數(shù)組迁沫,這個得到的數(shù)組就是得到的hash160捌蚊,形如:9a1c78a507689f6f54b847ad1cef1e614ee23f1e

4) 流程

從你這里發(fā)出的數(shù)據(jù)都是由私鑰加密的(包括挖到礦的廣播缅糟,轉(zhuǎn)帳等等)溺拱,傳數(shù)據(jù)的時候也會傳一個公鑰,通過這個公鑰解密沐扳。如果公/私鑰能對上沪摄,就可以證明你的身份杨拐。公鑰是大家可見的,而私鑰被盜帆阳,那么別人就可以用你的身份交易了蜒谤。具體加解密和密鑰導(dǎo)入導(dǎo)出方法請見后續(xù)“錢包”篇鳍徽。

7. 挖礦與深度學(xué)習(xí)

1) 組織算力

挖礦和深度學(xué)習(xí)都需要組織算力敢课。在運算量大時都需要構(gòu)建集群直秆,拆分計算切厘,集成結(jié)果等等疫稿。

2) 硬件基礎(chǔ)

挖礦和深度學(xué)習(xí)都是數(shù)學(xué)模型計算鹃两,它們對于大規(guī)模學(xué)習(xí)的解決方案都是:顯卡俊扳,F(xiàn)PGA馋记,ASIC梯醒。當然功能并不完全相同,深度學(xué)習(xí)需要矩陣乘法畜隶,卷積等基本運算籽慢,而挖礦主要是hash碰撞箱亿。都需要并行性届惋、多線程和高內(nèi)存帶寬等特性,雖然功能相近氢卡,但硬件還是有不少的差別译秦。硬件說明詳見后續(xù)“控制器與礦機”篇筑悴。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末阁吝,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子坷虑,更是在濱河造成了極大的恐慌迄损,老刑警劉巖芹敌,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件氏捞,死亡現(xiàn)場離奇詭異幌衣,居然都是意外死亡,警方通過查閱死者的電腦和手機欲间,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進店門猎贴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來她渴,“玉大人趁耗,你說我怎么就攤上這事苛败“涨” “怎么了篇亭?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵曼月,是天一觀的道長十嘿。 經(jīng)常有香客問我,道長蹦魔,這世上最難降的妖魔是什么勿决? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任嘉冒,我火速辦了婚禮讳推,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘礼饱。我一直安慰自己镊绪,他們只是感情好蝴韭,可當我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著牢硅,像睡著了一般芝雪。 火紅的嫁衣襯著肌膚如雪惩系。 梳的紋絲不亂的頭發(fā)上堡牡,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天擦剑,我揣著相機與錄音芥颈,去河邊找鬼爬坑。 笑死盾计,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的岩四。 我是一名探鬼主播骑素,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼献丑!你這毒婦竟也來了末捣?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤创橄,失蹤者是張志新(化名)和其女友劉穎箩做,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體妥畏,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年醉蚁,在試婚紗的時候發(fā)現(xiàn)自己被綠了燃辖。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡网棍,死狀恐怖黔龟,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情滥玷,我是刑警寧澤氏身,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站惑畴,受9級特大地震影響蛋欣,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜如贷,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一陷虎、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧杠袱,春花似錦泻红、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽讹躯。三九已至菩彬,卻和暖如春缠劝,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背骗灶。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工惨恭, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人耙旦。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓脱羡,卻偏偏與公主長得像,于是被迫代替她去往敵國和親免都。 傳聞我的和親對象是個殘疾皇子锉罐,可洞房花燭夜當晚...
    茶點故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內(nèi)容