技術(shù)
導(dǎo)讀:三大支柱第三篇,我們終于可以把最重要的基底立完了,今天我們就來(lái)討論討論區(qū)塊鏈的「不可篡改性」。
三大支柱第三篇,我們終于可以把最重要的基底立完了,今天我們就來(lái)討論討論區(qū)塊鏈的「不可篡改性」。之前有說(shuō)過(guò),區(qū)塊鏈的新數(shù)據(jù)會(huì)不斷延續(xù)在舊數(shù)據(jù)后面延伸,變成一條長(zhǎng)長(zhǎng)的鏈子,這也就是為甚么區(qū)塊鏈不可篡改。以<區(qū)塊鏈奇談 3 不可篡改>這篇文章中的例子來(lái)說(shuō):
第一筆交易
0 <- 上一則紀(jì)錄的鎖鑰,由于這是第一則紀(jì)錄,所以沒(méi)有密鑰
1 號(hào)計(jì)算機(jī)向 2 號(hào)計(jì)算機(jī)支付了 100 元
2017-04-01 17:24:07
5 號(hào)計(jì)算機(jī)確認(rèn)
第二筆交易
2178 <- 上一則紀(jì)錄的密鑰,按上一則紀(jì)錄的內(nèi)容計(jì)算
14 號(hào)計(jì)算機(jī)向 7 號(hào)計(jì)算機(jī)支付了 75 元
2017-04-01 17:35:12
61 號(hào)計(jì)算機(jī)確認(rèn)
第三筆交易
4421
1 號(hào)計(jì)算機(jī)向 2 號(hào)計(jì)算機(jī)支付了 100 元
2017-04-01 17:24:07
6 號(hào)計(jì)算機(jī)確認(rèn)
密鑰是怎么來(lái)的有看出來(lái)了嗎?計(jì)算機(jī)所設(shè)計(jì)的表達(dá)式就是利用上一筆交易紀(jì)錄的所有數(shù)字相加的到的。以第二筆交易紀(jì)錄來(lái)說(shuō),他的密鑰就是2178,來(lái)自前一筆交易紀(jì)錄的紀(jì)錄0+1+2+100+2017+4+1+17+24+7+5。假設(shè)其中一臺(tái)計(jì)算機(jī)在記錄第二筆交易時(shí)出錯(cuò),把75元記錄成76元,在記錄第三則交易的時(shí)候便會(huì)發(fā)現(xiàn)自己的密鑰和其他人不同,就能馬上抓出自己的錯(cuò)誤。這例子只是方便大家理解,計(jì)算機(jī)所運(yùn)用的算式更加復(fù)雜的。算式的設(shè)計(jì)確保了每一條紀(jì)錄都有一支對(duì)應(yīng)的密鑰,不論是內(nèi)容、交易次序還是金額的改動(dòng),都會(huì)對(duì)應(yīng)出一把全新得密鑰。雖然這條密鑰難以計(jì)算,又很花時(shí)間,單相對(duì)來(lái)說(shuō)是非常容易去驗(yàn)算的,而提供運(yùn)算能力的計(jì)算機(jī),就是我們所說(shuō)的「礦工」啦。這種密鑰產(chǎn)生的方式就是我們常說(shuō)的「哈希函數(shù)」(Hashcash)。當(dāng)然哈希函數(shù)不只用于虛擬貨幣的買賣,在醫(yī)學(xué)上,電子病歷的簽章,加密,也都是運(yùn)用到哈希函數(shù)來(lái)運(yùn)作的喔!
圖片來(lái)源:https://en.bitcoinwiki.org/wiki/Block_hashing_algorithm