【通俗理解】區塊鏈

各位童鞋,很久不見~
python

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


今天開工大吉,先給你們講個相親的故事:git

女孩:你有車嗎?github

男孩搖頭。算法

女孩:你有房嗎?bash

男孩搖頭。微信

「什麼都沒有也好意思來相親」,女孩很失望,轉身欲離開。網絡

「等等」,男孩從口袋中掏出了一個硬盤,「我有1000個比特幣」機器學習

女孩又嬌羞的坐下來:「討厭,你怎麼不早說~」分佈式


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


最近小編一直在忙於研究區(wa)塊(xu)鏈(ni)技(huo)術(bi),在開始展現個人研究成果以前,我先給你們掃盲一下,什麼叫作區塊鏈。性能


區塊鏈實際上是兩個東西:一個是區塊,一個是鏈。說玄虛一點,就是一鏈子的區塊。


由於它是存在於計算機中的東西,因此咱們能夠釐定它的一個物理形態是啥樣子的,就是數字信息被分紅一個一個區塊而後把這些區塊連接起來。


舉個例子,下圖中的方塊,每個都表示一個國家,並且每個都包含了對應國家的城市名稱。

640?wx_fmt=png

等等,其實還有更多東西來着。這裏的每個方塊都是一個叫作哈希的東西。一個哈希就是一串字符 (好比 「1hi515AHA5H」 )。


哈希是根據方塊裏面所包含的信息來獲得的。U.S.A 的方塊擁有 New York, Los Angeles,還有 Chicago 這幾個城市,因此它的哈希就是像 「NYLAC」 的東西了 (技術上其實遠非如此,但你理會精要就好了)。

640?wx_fmt=png

每個接續的方塊都會包含前一個方塊的哈希,因此這個就是(強制性的)將它們綁到一塊兒的紐帶。


若是有人擅自篡改了第一個方塊,加入了城市 Boston,那麼新的哈希就會是 「NYLACB」。


然然後面接續的 India 這個方塊已經存着的哈希仍是 「NYLAC」,這種不匹配就會把鏈條打斷。因此哈希的目的就是確保沒有人能夠篡改區塊。


那若是有人修改了一個方塊的內容,而後把後面的接續方塊的哈希也一併更新會如何呢? 


這也是有可能的,不過有一件事情我尚未告訴你。區塊鏈的數據並不僅是存在於僅僅一臺計算機裏面。一臺計算機裏面的區塊鏈數據並不能騙到人,由於它會被複制到網絡中每個用戶的計算機裏面去。


若是你加入了一個區塊鏈網絡,那麼你的計算機就會去下載這些區塊數據,若是有人篡改了他擁有的版本,整個網絡也會考慮佔多數的人的計算機上所擁有的版本纔是正確的。(這就是爲何你在挖礦以前,要下載一個很大很大的數據文件,噓~)


總結一下,區塊鏈技術本質上是提供了一個分佈式帳本(去中心化)。用技術保證沒人能夠篡改交易記錄(除非有人能聯合全網51%的算力)。爲了鼓勵你們記帳,對成功記帳(區塊被承認)的機器有必定的虛擬幣獎勵。因此每一個記帳的機器就叫作礦工,挖礦過程就是求知足條件的哈希值來實現成功記帳,獲得的獎勵就是對應的虛擬幣。


比特幣是區塊鏈技術最知名的產品了。但是隨着各類ASIC礦機的出現,家庭電腦已經沒有可能挖出來幣了。因此比特幣被礦場大佬把持,寡頭化了,有悖於去中心化的設計初衷。第二代明星產品以太坊吸收了這個教訓。其挖礦算法對計算能力要求不高,對內存讀寫速度要求高。這樣若是用ASIC來實現,須要開闢一大塊芯片面積作存儲,使得性價比不高。


不說這些虛的了,來實戰吧!前面已經說了,比特幣挖不出來了,咱們來挖以太幣吧!

640?wx_fmt=png


  如今要挖以太幣,若是要用NVIDIA的芯片,必須1050Ti以上的顯卡,顯存不能少於3G(隨着DAG文件的增大,明年3G的顯卡也挖不了啦)。Windows下a很簡單,裝好驅動,下載個挖礦軟件就行了。想超頻也容易,用微星的afterburner設置。


可是window的挖礦軟件容易被人抽水。就是軟件開發者,每隔幾個小時就把你的算力切換到他本身的錢包上,至關於收取了軟件使用費。這個是不能忍受的,咱們來用Linux挖礦吧!開源的軟件,沒有抽水。


組裝好電腦後,首先去裝上顯卡驅動。成功後reboot發現,下面命令的configuration一行的driver=nvidia了,代表驅動安裝成功。

640?wx_fmt=png


而後能夠查看你的顯卡信息。好比我這塊顯卡是Nvidia的1060,6G。去年雙十一時1999,如今3099。是否是比你工資漲得快多了?


還能夠看到,個人挖礦程序ethminer佔用了2.5G的顯存。隨着DAG文件增大,明年中期預計DAG文件超過3G,那時3G的顯卡就挖不到了。大批礦場須要對顯卡進行更新換代,二手市場上3G顯卡礦難般下跌。聰明的你是否看出來一點商機?

640?wx_fmt=png


如今就能夠挖礦了,在github上下載ethminer便可。網速很差的能夠經過設置proxy來提升性能。固然最重要的是對顯卡進行超頻,超頻後大概有30%的提高。


經過設置coolbit,重啓後發現顯卡驅動程序中的超頻被打開(Editable Performance Levels)。就能夠經過bash或顯卡驅動的圖形界面程序進行超頻了。

640?wx_fmt=png


這裏有一個很大的坑。就是若是你用集成顯卡時,每次重啓Xorg.conf文件將被重置,無法打開超頻。


開挖後,proxy窗口顯示以下。能夠看到我這邊網絡很是差,435ms延時。算力在19--20之間。

640?wx_fmt=png

ethminer的終端窗口顯示以下。個人顯卡在孜孜不倦地工做……

640?wx_fmt=png


不忘初心 方得始終,這篇文章就當一個插曲吧,若是喜歡能夠留言,咱們能夠介紹更多區塊鏈(wa kuang)的技術。


往期回顧:

外賣機器人誕生!快遞小哥會失業嗎?

剛剛,有位大神用AI搞定了多位女神

你敢@微信官方,不怕它真送你一頂綠色聖誕帽?

別人都在曬18歲照片,而我卻在學習~

今日頭條敗給了色情?AI算法不行,仍是另有隱情?

【機器學習】python憑什麼能被歸入教材

【機器學習】樸素貝葉斯算法分析

【機器學習】主成分(PCA)算法分析

【機器學習】非線性迴歸算法分析

【機器學習】線性迴歸算法分析

  讀AlphaZero論文隨想

 進擊的TensorFlow

 【通俗理解】協方差

【通俗理解】貝葉斯統計

 從一個雙控開關思考神經網絡(下)

 從一個雙控開關思考神經網絡(上)


640?wx_fmt=jpeg