今天的內(nèi)容是近期上的區(qū)塊鏈開發(fā)課的筆記一部分,偏技術(shù)颂斜,是自己聽的很有感覺的一節(jié)課,非區(qū)塊鏈行業(yè)的同學如果看到我這片文章江滨,會不知所云庸论。
區(qū)塊鏈概述
一個區(qū)塊鏈职辅,相當于一個賬本,它是記錄交易的聂示,一個區(qū)塊鏈像一本書一樣域携,每一個個別的區(qū)塊像書里的一頁,每一頁都會有一定數(shù)量的交易鱼喉。
所以一個區(qū)塊鏈描述的是一個封閉的生態(tài)的歷史涵亏,從第一個交易到最后一個交易;不同的交易會被包裝成個別的區(qū)塊蒲凶,整個歷史是一個交易的排序气筋,不同的交易會被包裝在不同區(qū)塊內(nèi),為了記賬和驗證的原因旋圆,它必須把整個歷史分為一些明確的單位宠默,這些單位就叫做區(qū)塊。
每一個交易都是一個很明確的結(jié)構(gòu)灵巧,比如甲方到乙方的交易搀矫,會描述,1.甲方是誰刻肄;2.乙方是誰瓤球;3.轉(zhuǎn)帳的額度,這是最基本的對交易的理解敏弃。
如果你的程序想要計算任何人的交易卦羡,通過一個節(jié)點程序查看任何人賬號的交易都可以,所有的賬號的交易都是公開的麦到。
但是區(qū)塊鏈不會記每個人有多少錢绿饵,你需要查看交易歷史,把所有的錢加在一起瓶颠,才能知道它現(xiàn)在的額度拟赊。
比如甲的全部交易歷史有三筆,第一筆收入500粹淋,第二筆收入200吸祟,第三筆支出100瑟慈,把這些交易歷史加起來,為600屋匕,這就是甲現(xiàn)在擁有的額度封豪。
這種操作和傳統(tǒng)電商的數(shù)據(jù)庫沒有太大差別,一個區(qū)塊鏈的賬本是很多人一起編寫的炒瘟,它不是一個人編寫的吹埠,它是以競爭形式記賬的,所以每一個區(qū)塊是由不同的人生產(chǎn)的疮装,而且不同的機器會相互競爭為了得到機會來編寫下一個區(qū)塊缘琅。
每個區(qū)塊鏈都有網(wǎng)絡(luò),區(qū)塊鏈的參與者之間相會有聯(lián)系廓推,一部分的參與者是挖掘者刷袍,一部分不是挖掘者,不是挖掘者的參與者樊展,他們只是在做記錄和驗證呻纹,如果任何人試圖進行非法的交易,比如我只有100专缠,我試圖來發(fā)送給別人200雷酪,他們會檢查到,他們會拒絕這個交易涝婉,所以他們是來幫著做審查的哥力,并且?guī)椭鴣肀4鏀?shù)據(jù)。
挖掘者們會通過競爭墩弯,來獲取編寫下一個區(qū)塊的權(quán)利吩跋。比如在BTC內(nèi),每10分鐘渔工,都會有一次競爭(算力的競爭)锌钮,那么每一局的勝利者就會獲得編寫下一個區(qū)塊的權(quán)力。
POW VS POS
PoW叫做勞動證明引矩,在PoW以下梁丘,會有一群人,為了獲得編寫下一個區(qū)塊的權(quán)力進行競爭脓魏,這些人都是陌生人兰吟,他們不用泄漏個人信息通惫,而且他們能隨時進入競爭茂翔,能隨時退出,在這個系統(tǒng)下履腋,一個正常的用戶珊燎,如果他們想要交易的話惭嚣,他的錢包程序會通知一群挖掘者,它會做一個廣播悔政,很多挖掘者都會收到他的廣播信息晚吞,贏得競爭的人會將我的交易寫進下一個區(qū)塊。
PoS叫做權(quán)益證明谋国,在權(quán)益證明下槽地,一群人不會以競爭名義來寫賬本,而是協(xié)作來寫賬本芦瘾,要是你想要加入這個群體的話捌蚊,你必須要付很大的押金,然后你進去之后近弟,這個群體會提前設(shè)定一個規(guī)則來設(shè)定在哪一個時刻由那個人來負責記賬缅糟。所以他們的規(guī)則會安排好每10分鐘或幾分鐘輪到誰來記賬,然后如果那個人在那個區(qū)間沒有發(fā)布出來一個區(qū)塊祷愉,比如他的計算機下線了窗宦,他就會獲得懲罰,然后會輪到下一個人二鳄。
PoS被發(fā)明的原因是PoW使用的電力太多了赴涵,所以他們創(chuàng)造一個模式來減少能源的消耗,因為它不是競爭的订讼,所以它用的電力特別少句占,在PoW模式下,所有的挖掘者都在用他們所有的算力躯嫉,每時每刻都投入他們所有的算力來超過互相纱烘,因此挖礦消耗的電量超過了一些小的國家的平均消耗的電量。
在PoS之下寫進行一次記賬祈餐,和正常的寫一個儲存程序消耗的電力差別不大擂啥,網(wǎng)絡(luò)上的每個節(jié)點會根據(jù)排序進行挖掘,然后他們簡單的把這些交易放到一個包裝之后帆阳,他們就會發(fā)送哺壶,因為他們?nèi)サ袅烁偁幮裕阅軌驕p少能源的消耗蜒谤。
但是PoS也有一些問題山宾,PoS的系統(tǒng)沒有過非常大的交易量,有的人認為它邏輯上有漏洞鳍徽,PoS系統(tǒng)運行起來之前资锰,它必須有一個復雜的協(xié)議,這個協(xié)議首先讓所有的挖掘者得到一個時間的排序阶祭,并且他要隨時讓挖掘者能夠進來和出去绷杜,因為他們付了押金直秆,但是他們不應(yīng)該讓挖掘者猜到什么時候該輪到他們,因為這個原因鞭盟,他們擁有一個隨機生產(chǎn)器的算法圾结,他們會用一個算法把之前所有的內(nèi)容給消化來變成一個數(shù)字,然后由數(shù)字來決定誰是下個一挖掘者齿诉。