04-BTC-UTXO与挖矿
提示:文章寫(xiě)完后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔
目錄
前言
一、未被花費(fèi)的交易輸出(Unspent Transaction Output)
二、挖礦
1.挖礦難度的調(diào)整
2.伯努利試驗(yàn)與伯努利過(guò)程
總結(jié)
前言
? ? 今天看了北大肖臻老師《區(qū)塊鏈技術(shù)與應(yīng)用》公開(kāi)課,有很大收獲,在此寫(xiě)博客以做筆記,加深印象,若有不當(dāng)之處,歡迎斧正。
一、未被花費(fèi)的交易輸出(Unspent Transaction Output)
比特幣的全節(jié)點(diǎn)要要維護(hù)一個(gè)叫做UTXO(Unspent Transaction Output)的數(shù)據(jù)結(jié)構(gòu)
比特幣采用的是基于交易的賬本模式,UTXO就是未被花費(fèi)的交易輸出,如圖:?
A發(fā)起了一筆交易,給B、C分別轉(zhuǎn)了5比特和3比特,如果B收到這5比特后把它花了出去,那么B的輸出就不在UTXO中,C還沒(méi)有花出去,那么這個(gè)輸出就在UTXO中。也就i是說(shuō)同一個(gè)交易有的輸出在UTXO中,有的不在。
- UTXO集合中的每一個(gè)元素要給出產(chǎn)生這個(gè)輸出的交易的哈希值和這個(gè)輸出在這個(gè)交易的第幾個(gè)輸出
維護(hù)UTXO的作用:檢測(cè)雙花問(wèn)題,你想花掉的幣只有在UTXO集合里面才是合法的,所以全節(jié)點(diǎn)要在內(nèi)存中維護(hù)UTXO,以便快速檢測(cè)雙花問(wèn)題。
- 在一個(gè)交易中總的輸入不一定會(huì)等于總的輸出,有時(shí)候總輸入可能會(huì)略大于總輸出,中間多出來(lái)的一點(diǎn)點(diǎn)輸入就作為交易的手續(xù)費(fèi),獎(jiǎng)勵(lì)給負(fù)責(zé)打包的礦工。?
- 現(xiàn)在礦工挖礦的主要?jiǎng)恿κ菫榱顺鰤K獎(jiǎng)勵(lì),但出塊獎(jiǎng)勵(lì)大約每隔四年就會(huì)減半,所以到最后打包區(qū)塊的交易費(fèi)就成了礦工挖礦的動(dòng)力。
二、挖礦
1.挖礦難度的調(diào)整
近幾年比特幣的火爆加劇了挖礦行業(yè)的競(jìng)爭(zhēng),使得挖礦難度一調(diào)再調(diào),到現(xiàn)在為止已經(jīng)非常高了,但只有4個(gè)字節(jié)的nonce無(wú)法適用于這么高的mining難度,所以就使用了最開(kāi)始的鑄幣交易中的Coinbase域來(lái)擴(kuò)展nonce
2.伯努利試驗(yàn)與伯努利過(guò)程
挖礦就是不斷地嘗試新的nonce,每一次嘗試都可以看作是一個(gè)伯努利試驗(yàn),如果我們做很多的伯努利試驗(yàn),每一個(gè)試驗(yàn)都是隨機(jī)的,那么這些試驗(yàn)就構(gòu)成了一個(gè)伯努利過(guò)程,伯努利過(guò)程的一個(gè)性質(zhì)是無(wú)記憶性,也就是說(shuō)你做了大量的試驗(yàn),前面很多次的試驗(yàn)對(duì)后面的試驗(yàn)的結(jié)果是沒(méi)有任何影響的。對(duì)于挖礦來(lái)說(shuō),每一次嘗試找到正確nonce的可能性是微乎其微的,要嘗試大量的nonce才能找到正確的答案,那么這種情況下可以用泊松過(guò)程來(lái)近似。
總結(jié)
UTXO是比特幣當(dāng)中重要的數(shù)據(jù)結(jié)構(gòu)
總結(jié)
以上是生活随笔為你收集整理的04-BTC-UTXO与挖矿的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: HTML、CSS、JavaScript常
- 下一篇: 从零教你写专利之开宗明义篇