劉懿中, 姜 楠, 陳若楠, 劉建偉
1.北京航空航天大學(xué) 網(wǎng)絡(luò)空間安全學(xué)院, 北京 100191
2.密碼科學(xué)技術(shù)全國重點實驗室, 北京 100878
2008 年, 比特幣[1]的出現(xiàn)帶動了對數(shù)字貨幣的研究熱潮, 而作為數(shù)字貨幣底層技術(shù)的區(qū)塊鏈技術(shù)也成為了一個備受關(guān)注的研究領(lǐng)域.區(qū)塊鏈的本質(zhì)是一種分布式、去中心化的賬本, 此賬本記錄了所有參與者的一系列交易和事件, 這些記錄以區(qū)塊的形式鏈接在一起, 形成一個不可篡改的鏈條.區(qū)塊鏈的發(fā)展為各種領(lǐng)域帶來了創(chuàng)新的可能與機(jī)遇, 尤其是在醫(yī)療、金融等領(lǐng)域[2].但區(qū)塊鏈在可擴(kuò)展性方面的缺陷也限制了其應(yīng)用與推廣.當(dāng)前, 比特幣的交易吞吐量大約為3–7 TPS (transactions per second), 以太坊[3]大約為10–20 TPS, 而中心化支付服務(wù)提供商VISA 大約為3000 TPS[4].顯然, 當(dāng)前的區(qū)塊鏈數(shù)字貨幣平臺難以滿足人們的支付愿景, 因此, 解決區(qū)塊鏈的可擴(kuò)展性問題進(jìn)而提高交易性能是必須的.
區(qū)塊鏈?zhǔn)且粋€分布式數(shù)據(jù)庫, 其中存儲了各種記錄的有序列表.記錄存儲在鏈接的塊中.塊之間的鏈接通過哈希函數(shù)實現(xiàn).
一個區(qū)塊主要由區(qū)塊頭和區(qū)塊體構(gòu)成.區(qū)塊頭記錄了區(qū)塊的基本信息, 例如版本號(version number)、前一區(qū)塊的哈希值(previous block hash)、默克爾樹根值(Merkle root)、時間戳(timestamp)、隨機(jī)數(shù)(nonce) 等.區(qū)塊體一般記錄了當(dāng)前區(qū)塊內(nèi)的交易信息, 例如轉(zhuǎn)賬的發(fā)送方、接收方、交易金額等.
默克爾樹(Merkle tree)[5]是一種哈希樹的數(shù)據(jù)結(jié)構(gòu).這個樹結(jié)構(gòu)是由計算機(jī)科學(xué)家Merkle 在1987年首次提出的, 默克爾樹在區(qū)塊鏈中的應(yīng)用主要包括……