官术网_书友最值得收藏!

3.2 區(qū)塊和鏈

區(qū)塊存儲的是一段時間內(nèi)的交易信息,實(shí)際上是對交易信息的一種封裝;在比特幣里,一個區(qū)塊可存儲約3000筆交易信息。一旦這個區(qū)塊被確認(rèn),3000筆交易就一同被確認(rèn)了。如果不對交易信息進(jìn)行封裝,每次確認(rèn)一筆交易,則需要高頻的確認(rèn)操作,效率較低。

每個區(qū)塊包含指向上個區(qū)塊的地址信息,如此環(huán)環(huán)相扣,形成從最新區(qū)塊到創(chuàng)世區(qū)塊的一條“鏈”。不同的共識機(jī)制,提供不同的方案來產(chǎn)生新的區(qū)塊;有時候,同一時段內(nèi)有可能產(chǎn)生2個(或更多)內(nèi)容不同的區(qū)塊,這就是“分叉”(圖3-1)。不同的區(qū)塊之后,各自又會產(chǎn)生新的區(qū)塊,而使各個鏈條有所延長。但一般而言,鏈條延長的速度是不同的。絕大部分區(qū)塊鏈項(xiàng)目都遵循“選最長鏈作為主鏈”的規(guī)則,這一規(guī)則可保證即便出現(xiàn)分叉,在一定時間后,總能有一條鏈條是公認(rèn)的“主鏈”(圖3-1)。

圖3-1 分叉示意圖

由于最長鏈?zhǔn)俏ㄒ坏模杏脩舳紝淹绘湕l記錄在本地?cái)?shù)據(jù)庫上,這就保證了賬本的唯一性,也就解決了賬本一致性的問題。

此外,鏈?zhǔn)浇Y(jié)構(gòu)還帶來一個好處。所有的區(qū)塊都通過“鏈”連接在一起,形成了一個緊密的整體。如果黑客想要篡改歷史上的某筆交易內(nèi)容,則需要篡改交易所在的區(qū)塊;黑客無法創(chuàng)造一個新的區(qū)塊并直接進(jìn)行替換,而需要把從這一區(qū)塊直至最新區(qū)塊的整個鏈條都重新替換(在比特幣中,也就是從需要修改的區(qū)塊開始重新挖礦,連續(xù)挖出此后的所有區(qū)塊,并在進(jìn)度上最終超過其他所有礦工,創(chuàng)造一條新的最長鏈),代價高昂。由此可避免篡改交易等攻擊。

然而這種數(shù)據(jù)結(jié)構(gòu)仍然存在問題:數(shù)據(jù)處理能力較低。在區(qū)塊鏈中,為了避免存在沖突的交易信息(不允許持續(xù)分叉),也為了保證賬本的一致性(需選出唯一的鏈),區(qū)塊鏈采用的是最長單鏈結(jié)構(gòu)。由于每次只能新增一個區(qū)塊,在P2P網(wǎng)絡(luò)中,區(qū)塊信息的傳播、確認(rèn)需要時間,而區(qū)塊的容量有限,這就使得一段時間內(nèi),能記錄的交易信息存在上限??梢姡?span id="ssmzubf" class="bold">“數(shù)據(jù)處理能力低”實(shí)際上是滿足一致性要求而付出的代價。目前比特幣區(qū)塊鏈平均一秒只能處理約7筆交易,與中心化的電子支付系統(tǒng)存在較大差距。

主站蜘蛛池模板: 清新县| 大冶市| 阿克苏市| 万盛区| 永兴县| 寻乌县| 扎鲁特旗| 建宁县| 呼和浩特市| 泰兴市| 永清县| 湄潭县| 清流县| 榆林市| 昆山市| 瑞丽市| 扎兰屯市| 佛教| 谷城县| 开原市| 潞西市| 盐山县| 漳州市| 清流县| 虎林市| 汉中市| 桦甸市| 偃师市| 伊宁县| 龙岩市| 安阳市| 汝南县| 万安县| 内乡县| 巴中市| 连州市| 江西省| 许昌市| 金乡县| 孟津县| 永清县|