區(qū)塊鏈技術(shù)簡介( 去中心化 )

  • 賬本

區(qū)塊鏈賬本是一個基于密碼學(xué)安全的分布式賬本,是一個方便驗證不可篡改的賬本.


講到區(qū)塊鏈就不得不說明一下哈希函數(shù): hash(原始信息)=摘要信息

哈希函數(shù)有幾個特點:

  • 同樣的原始信息通過同一個哈希函數(shù)總能得到相同的摘要信息
  • 原始信息任何微妙的變化都會使哈希出來的摘要信息面目全非
  • 摘要信息不能逆向推算出原始信息
#舉例說明:
Hash(張三找沖哥借了100w,一天后還,利息10w)=ABC123,于是賬本上就有了ABC123這條記錄.
由此可見賬本信息展現(xiàn)了哈希函數(shù)的幾個特點:
1.很好理解,信息變短了
2.賬本是ABC123這條信息,原始信息被隱匿了,能夠直接用摘要信息代替原始信息
3.如果雙方出現(xiàn)欺騙,可以由ABC123來還原原始信息并驗證是誰在撒謊

那么區(qū)塊鏈?zhǔn)窃鯓佑涃~的呢

假設(shè)有一個賬頁序號為0的交易記錄如下
---------------------------------------------------------
賬號  入賬  出賬  余額  備注說明
王二  100        190   收到xxx貨款
張三        100   30    xxxx
李四  120    90   170   xxxx
記賬時間為:2017-10-22 10:22:02
----------------------------------------------------------
區(qū)塊鏈會在記賬時把賬單信息(包括序號,時間,記錄等)作為原始信息進(jìn)行Hash得到一個Hash值,如:ABC123
用函數(shù)表示為:Hash(序號0,時間2017-10-22 10:22:02,交易記錄xxx)=ABC123
賬頁信息和Hash值組合在一起就構(gòu)成了一個區(qū)塊.
#比特幣是十分鐘記一次賬,即每個區(qū)塊形成的時間為十分鐘
在第二次記賬的時候,則會把上次生成的Hash值作為原始信息Hash進(jìn)去:
Hash(上一個Hash值,序號,時間,交易記錄)=BCD234
這樣第二個區(qū)塊不僅包含了此次的賬本信息,還包含了上個區(qū)塊的信息.
照這樣記賬最新的區(qū)塊總是包含了之前所有的賬本信息.
所有這些區(qū)塊組合起來就形成了區(qū)塊鏈,這樣的區(qū)塊鏈就構(gòu)成了一個便于驗證(只驗證最后一個Hash值就等于驗證了所有賬本),不可更改(任何一個區(qū)塊的更改,會導(dǎo)致之后形成的區(qū)塊的Hash值發(fā)生變化,這樣在驗證時就無法通過)的總賬本.

賬戶所有權(quán)問題

  • 現(xiàn)有的轉(zhuǎn)賬:在銀行通過身份證,手機(jī)號,拍照等等進(jìn)行注冊便生成了屬于個人的銀行卡號.甲通過乙的銀行卡號給乙轉(zhuǎn)賬100元實際上就是在銀行上面的賬本上進(jìn)行甲:-100和乙:+100,所有的安全操作都是通過銀行來保證,這樣就導(dǎo)致銀行在特殊情況下會撤銷此次轉(zhuǎn)賬操作.
  • 比特幣系統(tǒng):點對點操作,沒有第三方參與,雖然這樣賬戶獲得了所有權(quán),但是安全性降低了.在比特幣系統(tǒng)中每個賬戶都配有地址私鑰,地址代表賬戶,而私鑰代表支付密碼,一旦丟失或者被盜,無法找回(沒有第三方擔(dān)保).
在銀行系統(tǒng)中賬號和密碼是沒有任何關(guān)聯(lián),而且密碼可以重置.
但是在比特幣系統(tǒng)秘鑰可以經(jīng)過兩次Hash推倒就能還原地址,比如:
地址:abcd1234
秘鑰:efg5678
Hash(Hash(efg5678))->adcd1234
#過程不可逆,即不能用地址推導(dǎo)出私鑰

如果這樣就會有朋友問:如果我使用私鑰的時候被別人看到豈不是所有權(quán)就沒了?
在這里比特幣系統(tǒng)提供了另一項安全技術(shù):
非對稱加密技術(shù)(交易簽名)

簽名過程:
hash ('
      {"付款地址":"fdshfjdshf",
        "收款地址":"gfkjgfhg",
        "金額":"1.2btc"
}') -> 87fjfjdi

#87fjfjdi為上面生成的交易摘要,fdfshfsdhfiushd為私鑰,dfsodhfd為生成的簽名信息
sign("87fjfjdi","fdfshfsdhfiushd") - > "dfsodhfd"

付款之后就會在系統(tǒng)廣播發(fā)布:
fdshfjdshf -> gfkjgfhg ...."1.2btc"
簽名:dfsodhfd

收到廣播的節(jié)點會進(jìn)行驗證:
#dfsodhfd為上面生成的簽名信息,fdshfjdshf是付款方地址,87fjfjdi是原始摘要信息(包含付款方,收款方,金額等)
verify("dfsodhfd","fdshfjdshf") -> "87fjfjdi" 
如果驗證出來的摘要信息和原始信息一樣,即為驗證通過

其實簽名就是對摘要信息和私鑰進(jìn)行加密,驗證就是對簽名信息和付款方地址進(jìn)行解密

補(bǔ)充

  • 隱私:彼此不知道該貨幣屬于誰,有多少
  • 安全:不會對來路不明的貨幣進(jìn)行追蹤,也不會泄露個人信息(剛辦卡就有貸款電話來電?)

對于每個節(jié)點為什么要幫忙記賬?

記賬會消耗計算機(jī)資源,而系統(tǒng)會對成功記賬的節(jié)點進(jìn)行獎勵

記賬規(guī)則:

  • 一段時間內(nèi)只可以有一個人記賬成功
  • 通過解決密碼學(xué)難題(即工作量證明)競爭獲取得唯一記賬權(quán)
  • 其他的節(jié)點復(fù)制記賬結(jié)果
如果只是對于公式 Hash(上一個Hash值,交易記錄集) = ABC123 作為記賬權(quán)的判定,那每個人都可以做到
所以要增加記賬難度,即:
Hash(上一個Hash值,交易記錄集,隨機(jī)數(shù)) = 0000ABC123

在滿足記賬條件的時候必須要滿足生成的Hash值必須要以若干個0開頭,所以要引入隨機(jī)數(shù)做為變量.
因為變量任何一點微妙的變化對于生成的Hash值都會有很大的影響

所以當(dāng)我們不斷的去改變這個隨機(jī)數(shù)使生成的Hash值滿足以若干個0開頭這樣的過程就叫挖礦.
所以顯卡變貴了很多 ?﹏? ........(顯卡的運(yùn)算速度比CPU快)
舉個例子:
1000個曠工進(jìn)行挖礦,當(dāng)系統(tǒng)廣播發(fā)出交易摘要后.滿足Hash值前18位為0的朋友就能獲得記賬權(quán).
這時候肯定不能通過人力去計算,只能通過計算機(jī)去不斷的改變這個隨機(jī)值,計算的越快獲得記賬權(quán)的概率就越大.

在這里基本上能綜合出整個挖礦過程

挖礦過程:

  1. 收集系統(tǒng)廣播中還沒有被記賬的交易
  2. 驗證交易的有效性 (付款地址,私鑰,摘要信息,付款方余額夠不夠等)
  3. 完成上面兩步后再添加一筆給自己轉(zhuǎn)賬的記錄(即挖礦獎勵)

補(bǔ)充:

生成的Hash值是16進(jìn)制的字符串,
由于前十六位得為0,
所以前一位生成0的概率為1/16,
前兩位都是0的概率為1/(16 * 16),
前三位都是0的概率為1/(16 * 16 * 16)
.
.
.
.
前十六位都是0的概率是1/(16的16次方),
即計算機(jī)要進(jìn)行16的16次方次運(yùn)算,
emmmm

有的同學(xué)就會問了剖膳,如果兩節(jié)點同時完成了區(qū)塊打包該取誰的有效呢旧找?
由于區(qū)塊鏈不像咱們生活中有12315這樣的仲裁機(jī)構(gòu)论悴,無法由‘裁判’去規(guī)定誰才是勝出者各薇。
于是就形成了共識機(jī)制 :區(qū)塊最長運(yùn)算最多難度最大的選手勝出查吊!


好啦,簡介就到這里了翎苫,下一章我們一起學(xué)習(xí)Python3實現(xiàn)區(qū)塊鏈技術(shù)兔院。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市谆吴,隨后出現(xiàn)的幾起案子倒源,更是在濱河造成了極大的恐慌,老刑警劉巖纪铺,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件相速,死亡現(xiàn)場離奇詭異,居然都是意外死亡鲜锚,警方通過查閱死者的電腦和手機(jī)突诬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進(jìn)店門苫拍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人旺隙,你說我怎么就攤上這事绒极。” “怎么了蔬捷?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵垄提,是天一觀的道長。 經(jīng)常有香客問我周拐,道長铡俐,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任妥粟,我火速辦了婚禮审丘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘勾给。我一直安慰自己滩报,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布播急。 她就那樣靜靜地躺著脓钾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪桩警。 梳的紋絲不亂的頭發(fā)上可训,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天,我揣著相機(jī)與錄音捶枢,去河邊找鬼沉噩。 笑死,一個胖子當(dāng)著我的面吹牛柱蟀,可吹牛的內(nèi)容都是我干的川蒙。 我是一名探鬼主播,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼长已,長吁一口氣:“原來是場噩夢啊……” “哼畜眨!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起术瓮,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤康聂,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后胞四,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體恬汁,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年辜伟,在試婚紗的時候發(fā)現(xiàn)自己被綠了氓侧。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片脊另。...
    茶點故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖约巷,靈堂內(nèi)的尸體忽然破棺而出偎痛,到底是詐尸還是另有隱情,我是刑警寧澤独郎,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布踩麦,位于F島的核電站,受9級特大地震影響氓癌,放射性物質(zhì)發(fā)生泄漏谓谦。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一贪婉、第九天 我趴在偏房一處隱蔽的房頂上張望茁计。 院中可真熱鬧,春花似錦谓松、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至逊脯,卻和暖如春优质,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背军洼。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工巩螃, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人匕争。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓避乏,卻偏偏與公主長得像,于是被迫代替她去往敵國和親甘桑。 傳聞我的和親對象是個殘疾皇子拍皮,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,851評論 2 361

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