- 區塊鏈應用開發指南:業務場景剖析與實戰
- 熊麗兵 董一凡等
- 614字
- 2022-07-28 20:17:49
1.7.1 區塊是怎么產生的
每個區塊由參與其中的計算機節點獨立生成。由于是分布式網絡,所以就會有不同的區塊在同一時間被生產出來。區塊鏈數據庫中的區塊通過哈希信息相連構成了一條基于哈希信息的歷史鏈。不同的區塊在同一時間產生,系統中就出現了多條歷史鏈。區塊鏈會提供一套算法來對每一條歷史鏈進行打分,以此來留下分數更高的鏈,同時淘汰分數低的鏈。
隨著時間的推移,區塊鏈的每一個獨立節點都在生產自己的區塊,同時接收其他節點傳遞過來的區塊。所以節點本地總是會有多條歷史鏈。這時候,節點就需要在本地生產的區塊和接收到的區塊中進行選擇,如果接收到的區塊構成的歷史鏈優于自己本地的,那么就會銷毀自己剛剛生成的區塊,然后以更優的歷史鏈為基礎,再生成新的區塊并廣播給網絡中其他的節點。
由于區塊生成一直在各個節點中不停地發生,所以從任何一個節點上得到的歷史鏈都無法保證是最優的。但是由于區塊鏈總是把新的區塊不停地加到舊的歷史鏈上,每一次添加都會增加這條鏈的分數。這也就意味著,隨著時間的推移,某一個區塊后邊總是會跟上很多新的區塊,當它被廣播出去之后,該區塊也更可能被更多的機器所識別,并以此為基礎構建本地的新鏈,所以雖然這個區塊后邊跟隨的新區塊在不同的歷史鏈上可能不一樣,但是就這個區塊來說,這個區塊被所有節點都認為是有效的可能性會越來越高。到一定的程度之后,我們就可以認為這是一個不可修改的區塊。這也是我們經常聽到當區塊達到一定高度,我們就信任這筆交易的原因。