看完這個視頻,你會比99.999%的人懂區(qū)塊鏈

區(qū)塊鏈
是什么?
去中心化的數(shù)據(jù)庫
原理和組成?
賬戶(中心化數(shù)據(jù)庫:只有數(shù)據(jù)庫管理人員可以創(chuàng)建賬戶):
- 任何人都可以創(chuàng)建賬戶(通過錢包app或代碼);
- 可以往賬戶里放代碼,被其他賬戶調(diào)用(智能合約):別的賬戶通過調(diào)用這個賬戶和賬戶里的應(yīng)用進行交互;
- 組成:
地址:賬號
密鑰:密碼(不被存儲,保證安全)(密鑰丟失的解決方案:multisig錢包等)
數(shù)字簽名:
1. 怎么證明一條消息是誰發(fā)的
非對稱加密/公私鑰加密[1]:即用私鑰簽名、公鑰驗簽
公鑰vk <= 一一對應(yīng),公鑰/私鑰加密可用私鑰/公鑰破解 => 私鑰sk
2. 怎么證明一條消息有沒有被篡改
交易的哈希值(指紋):
交易M =生成哈希值=> 指紋 H(M) =私鑰sk簽名=> 數(shù)字簽名S(H(M))
btc交易里包括:交易數(shù)據(jù)M,公鑰vk,數(shù)字簽名S(H(M))
每個賬戶對應(yīng)一個私鑰
私鑰生成公鑰,公鑰生成地址
想 操作地址(交易) 必須用私鑰對 操作(交易數(shù)據(jù)) 的哈希值進行簽名
公鑰驗簽,證明消息來自私鑰擁有者
驗簽得到的哈希值等于交易的哈希值則證明消息沒被篡改
交易
被賬號的私鑰簽名過的一系列指令
區(qū)塊鏈的狀態(tài)通過交易得到改變
區(qū)塊:存放被公認(rèn)的交易記錄(是一系列的交易)
區(qū)塊頭:存放區(qū)塊最基礎(chǔ)的數(shù)據(jù)
(包括:區(qū)塊對應(yīng)的狀態(tài)所存的地址、區(qū)塊對應(yīng)的交易所存的地址(交易的哈希值)、上一個區(qū)塊的哈希值)
通過 區(qū)塊頭 我們可以找到此區(qū)塊中包含的交易
區(qū)塊鏈上的新的狀態(tài)變化(新的交易)加入各個節(jié)點的方法:
所有區(qū)塊鏈上的交易都會通知整個區(qū)塊鏈網(wǎng)絡(luò)(所有節(jié)點都能收到新的交易)
每隔一段時間選一個節(jié)點生成一個新的區(qū)塊,其他節(jié)點檢查是否合法,如果合法,新區(qū)快的生成者會獲得一定的虛擬貨幣獎勵。
共識機制
!怎么選擇節(jié)點(新區(qū)塊的選?。?/p>
- 不能讓節(jié)點不付出代價地參與隨機抽?。ㄩ_放共識體系不可能存在[2])
- 節(jié)點必須付出資源才能參與新區(qū)快的生成
區(qū)塊鏈的種類:
工作量證明(proof of work)—— 付出計算資源 —— btc、eth 1.0
權(quán)益證明(proof of stake)—— 付出金錢資源(抵押資金越多越有機會被抽中生成新區(qū)塊)—— eth 2.0、cardano
——分支:歷史證明,更公平—— solana
空間證明(proof of space)——付出儲存資源—— chia、filecoin
區(qū)塊鏈給到節(jié)點的預(yù)期收益必須大于節(jié)點預(yù)期付出的資源(虛擬貨幣獎勵)
!以哪個節(jié)點的區(qū)塊歷史為準(zhǔn):
背景: pow區(qū)塊鏈中兩個節(jié)點同時解答出結(jié)果 等情況會造成不同節(jié)點歷史不一樣(分叉)
一般以最長的鏈為準(zhǔn)(nakamoto共識算法):被最多的資源認(rèn)證/經(jīng)過最多證明,最可靠
加密經(jīng)濟學(xué)(用經(jīng)濟學(xué)原理讓不同節(jié)點達成共識)
- 節(jié)點選擇最長的鏈的動機:經(jīng)濟利益
- 但是節(jié)點還是有一定的動機發(fā)起51%攻擊,解決辦法:讓攻擊的預(yù)期收益遠低于支出
更廣義的區(qū)塊鏈
layer 2:應(yīng)用層(智能合約)
layer 1.5:計算層(智能合約運行的環(huán)境,儲存智能合約運行的狀態(tài)、數(shù)據(jù)、邏輯)=> 廣義 (一臺去中
layer 1:共識層(狹義區(qū)塊鏈) => 區(qū)塊鏈 心化的電腦)
去中心化的電腦被所有使用者共享
[1]
RSA公鑰和私鑰是什么?
首先來說,RSA是一種非對稱加密算法,它是由三位數(shù)學(xué)家(Rivest、Shamir、Adleman)設(shè)計出來的。
非對稱加密是相對于對稱加密而言的。對稱加密算法是指加密解密使用的是同一個秘鑰,而非對稱加密是由兩個密鑰(公鑰、私鑰)來進行加密解密的,由此可見非對稱加密安全性更高。
公鑰顧名思義就是公開的密鑰會發(fā)放給多個持有人,而私鑰是私有密碼往往只有一個持有人。
公私鑰特性
- 公鑰與私鑰是成對出現(xiàn)的;
- 私鑰文件中包含了公鑰數(shù)據(jù),所以可以基于私鑰導(dǎo)出公鑰;
- 密鑰越長,越難破解,所以2048位密鑰比1024位密鑰要更安全;
- 公鑰和私鑰都是密鑰,被公開的那個就是公鑰,沒有被公開的那個就是私鑰。
公鑰和私鑰都可用于加密和解密
公鑰和私鑰都可以用于加解密操作,用公鑰加密的數(shù)據(jù)只能由對應(yīng)的私鑰解密,反之亦然。雖說兩者都可用于加密,但是不同場景使用不同的密鑰來加密,規(guī)則如下:
1、私鑰用于簽名、公鑰用于驗簽
簽名和加密作用不同,簽名并不是為了保密,而是為了保證這個簽名是由特定的某個人簽名的,而不是被其它人偽造的簽名,所以私鑰的私有性就適合用在簽名用途上。
私鑰簽名后,只能由對應(yīng)的公鑰解密,公鑰又是公開的(很多人可持有),所以這些人拿著公鑰來解密,解密成功后就能判斷出是持有私鑰的人做的簽名,驗證了身份合法性。
2、公鑰用于加密、私鑰用于解密,這才能起到加密作用
因為公鑰是公開的,很多人可以持有公鑰。若用私鑰加密,那所有持有公鑰的人都可以進行解密,這是不安全的!
若用公鑰加密,那只能由私鑰解密,而私鑰是私有不公開的,只能由特定的私鑰持有人解密,保證的數(shù)據(jù)的安全性。
[2]
開放共識體系:不做人數(shù)限制、不做用戶權(quán)限認(rèn)證
2005年《secure computation without authentication》證明這種系統(tǒng)無法保證誠實用戶的共識能夠獲勝
惡意用戶制造大量用戶來占據(jù)網(wǎng)絡(luò)的大多數(shù)(sybil attack)
2008年 satoshi nakamoto 比特幣建立共識體制
sybil attack根源:惡意用戶 低成本 參與
解決:大幅提升賬戶參與區(qū)塊鏈抽取的成本
btc里:解數(shù)學(xué)難題(付出計算資源)后才有機會生成新的區(qū)塊(更新區(qū)塊鏈的狀態(tài))
“挖礦” => 避免sybil attack