區塊鏈原理(一)

一、公鑰以及簽名和認證

公私鑰的關係

私鑰通過橢圓曲線算法生成公鑰是單向不可逆的。處理BASE58的箭頭是雙向,其他的都是單向的,爲什麼會這麼設計的呢,這主要是爲了安全考慮,不能反向推到出公私鑰。

 

具體是怎麼對交易進行交易簽名

用私鑰對 轉賬數額和轉入錢包地址通過簽名算法,私鑰通過橢圓曲線算法得出轉出公鑰,轉出公鑰+轉出簽名+轉賬數額和轉入錢包地址,然後生成正式的數據然後就廣播了,廣播到比特幣的網絡中進行轉賬。

 

交易時怎樣驗證的

 

二、分叉

分叉判斷:區塊鏈分叉判斷,選擇最長的區塊鏈,最終創建區塊。分叉分兩大類:

1、同樣機制的分叉

首先有一個礦工把答案算出來了,然後它向全網進行傳播,然後全網進行驗證,驗證是通過的,繼續傳播。比如它在全網覆蓋需要3秒時間,在第2秒的時候,另外一個礦工也算出這個結果,並且也是對的,並且他們同時在擴散,最後會造成一個結果,不同礦工看到這兩個結果的順序是不一樣的,礦工會把看到的區塊複製下來,繼續挖礦,然後在這個區塊的基礎上繼續挖新塊。

那麼這個怎麼解決呢?

因爲這兩個區塊的礦工數目是不一樣的,所以它的算力也是不一樣的,進過一段時間後,這兩個區塊的長短就分出來了。

當礦工發現更長的鏈的話,他就會拋棄短的鏈,把更長的鏈複製下來,在更長的鏈上繼續挖礦。這分叉就消失了。

 

2、不同機制的分叉-THE DAO的硬分叉

分兩種情況,一種情況是軟分叉,這種還好解決,就是區塊鏈軟件升級的話,一部分礦工還沒來得及升級,出現遵循不同的機制產生的分叉,只要這部分礦工軟件升級後這個分叉就消失了。

還有一種是硬分叉,礦工間出現了分歧,一部分礦工採用不同的機制,比如說它堅決不升級,產生的分叉它不會消失。

給大家講個案例,區塊鏈當中最有影響力的硬分叉,應該以太坊的分叉事件,說到這就得提下DAO,DAO就是去中心化組織,由於它存在軟件DA軟件調用漏洞的問題,導致黑客竊取了360萬個以太幣,隨後以太官方提出解決方案,進行下軟分叉,把高度176萬開始與DAO交易的爲無效交易,用來攻擊者在27天后與DAO提走的以太幣,同時發佈了軟分叉的客戶端,但攻擊裝肯定會反抗,它以智能合約的形式獎勵不支持軟分叉的礦工100萬個以太幣和100個比特幣來對抗軟分叉。爲了解決大量資金被盜的問題,以太坊官方推出了針對軟分叉版本,版本號爲1.4.8的版本,這版本增加了一些規則,來鎖定黑客鎖定的以太幣。然後絕大多數的礦工都升級了這個版本,軟分叉似乎成功了,但是由於時間的倉儲這版本遺漏了收取交易所收的燃料費的費用,這燃料費有兩個作用,是礦工交易費以及增加攻擊者的攻擊成本,它沒有了之後就成了DAO攻擊的目標,攻擊裝可以0成本發起大量的攻擊使整個網絡癱瘓。以太坊團隊通過修改以太坊代碼,在2016年7月20號,在高度爲1920000的區塊中強行把DAO及其DAO的所有資金全部轉換到一個特定的匯款合約地址,從而奪回了黑客所控制的DAO合約幣。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章