自學(xué)區(qū)塊鏈(三)BTC協(xié)議

前言

數(shù)字貨幣,由于是一段數(shù)據(jù),如果我們花掉這個(gè)貨幣,我們也可以復(fù)制這段數(shù)據(jù)來(lái)達(dá)到使用多次的效果(雙花攻擊)。

在去中心化的系統(tǒng)中,數(shù)字貨幣面臨的兩個(gè)問(wèn)題,誰(shuí)來(lái)發(fā)行數(shù)字貨幣,誰(shuí)來(lái)驗(yàn)證數(shù)字貨幣的有效性。

誰(shuí)來(lái)發(fā)行貨幣(鑄幣權(quán))

是找到合法Nonce的節(jié)點(diǎn)會(huì)獲得記賬權(quán),同時(shí)會(huì)獲得鑄幣權(quán)的獎(jiǎng)勵(lì),根據(jù)時(shí)間推進(jìn),BTC的出塊獎(jiǎng)勵(lì)會(huì)不停衰減,每21萬(wàn)個(gè)區(qū)塊出塊獎(jiǎng)勵(lì)會(huì)減半。由最開(kāi)始的50BTC到現(xiàn)在12.5BTC。

怎么防范雙花攻擊(double spending attack)

這個(gè)需要用到一個(gè)區(qū)塊鏈這個(gè)數(shù)據(jù)結(jié)構(gòu)來(lái)保證。這里有兩個(gè)哈希指針,一個(gè)是指向前一個(gè)區(qū)塊(連接區(qū)塊的)。另一個(gè)是哈希指針是指向交易的,說(shuō)明幣的來(lái)源(防范雙花攻擊)。轉(zhuǎn)賬交易中A的前面交易時(shí)的公鑰的哈希和A轉(zhuǎn)賬給B時(shí)發(fā)給它的公鑰,這樣驗(yàn)證,幣的合法性。當(dāng)前交易的輸入的腳本和前面提供幣的來(lái)源的輸出腳本,拼接起來(lái)運(yùn)行,沒(méi)有報(bào)錯(cuò)表示合法。

系統(tǒng)中分為全節(jié)點(diǎn)和輕節(jié)點(diǎn),輕節(jié)點(diǎn)一般來(lái)說(shuō)是無(wú)法獨(dú)立驗(yàn)證交易的合法性,交易內(nèi)容要取得分布式的共識(shí)。系統(tǒng)就需要維護(hù)一個(gè)分布式的哈希表。

那么BTC共識(shí)協(xié)議是什么?

在實(shí)際系統(tǒng)中由于網(wǎng)絡(luò)時(shí)延或者存在惡意節(jié)點(diǎn)等各種原因,是無(wú)法達(dá)到全部共識(shí)的。就需要設(shè)計(jì)共識(shí)協(xié)議。如果是基于投票表決的方案,就需要確定誰(shuí)有投票權(quán)。但是這個(gè)直接投票不適用于BTC,由于產(chǎn)生賬戶(hù)的成本很低,可以通過(guò)不停產(chǎn)生賬戶(hù)達(dá)到操控結(jié)果的方法(女巫攻擊)。在BTC中也是采用投票方式,但是根據(jù)找到BTC參數(shù)Nonce來(lái)獲取記賬權(quán),只有有了記賬權(quán)才能往BTC這個(gè)去中心化的賬本上寫(xiě)入下一個(gè)區(qū)塊的權(quán)利。


分叉攻擊

BTC規(guī)定交易要在最長(zhǎng)合法鏈上,接受區(qū)塊時(shí)需要接在最長(zhǎng)合法鏈后面

還有一種情況會(huì)出現(xiàn)合法的分叉,當(dāng)同時(shí)找到合法Nonce,而其他節(jié)點(diǎn)會(huì)根據(jù)收到廣播的時(shí)間添加新的區(qū)塊,由于時(shí)延各種原因,就會(huì)導(dǎo)致分叉,這種臨時(shí)的分叉會(huì)持續(xù)一段時(shí)間,直到有一方區(qū)塊的數(shù)量超過(guò)另一方,成為最長(zhǎng)合法鏈。

另一條分支會(huì)被舍棄。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容