區(qū)塊鏈的“歷史證明機(jī)制”是怎么一回事
前言:時間對我們普通人來說,它是從鐘表傳達(dá)出來的。幾點(diǎn)起床,幾點(diǎn)上班,幾點(diǎn)吃飯,幾點(diǎn)睡覺。。.。。.但真的認(rèn)識時間的本質(zhì)嗎?而時間對于區(qū)塊鏈來說,又意味著什么?基于對時間的理解,誕生了一個新的區(qū)塊鏈項(xiàng)目Solana,它會對區(qū)塊鏈?zhǔn)澜鐜硎裁醇墑e影響?現(xiàn)在還不知道。不過,我們可以隨時關(guān)注Solona這種探索,它的歷史證明機(jī)制(PoH)的創(chuàng)新值得我們關(guān)注。
你如何辨別時間?
在有鐘表之前,辨別時間很簡單:抬頭望天,找到空中的太陽,然后稱之為白天。過了一段時期,盡管這樣區(qū)分時間很簡潔和優(yōu)雅,但我們?nèi)祟愡€是決定創(chuàng)造設(shè)備來將一天劃分為更小、更可區(qū)分的部分,于是,人類有了日晷和水時鐘。
如今,我們大多數(shù)人都依賴手機(jī)、手表以及設(shè)備中的時鐘。在同一時區(qū)的兩個人之間溝通共同時間很容易:我們要做的只是看我們的時鐘,然后說出時間。
但是,我們的設(shè)備如何辨別時間?而且,更重要的是,我們的設(shè)備之間如何溝通時間?
答案比看起來更復(fù)雜。就算不是大多數(shù)計算機(jī),很多計算機(jī)也依賴于可信來源——例如,原子時鐘,以實(shí)現(xiàn)對事件的排序。因此,一臺在柬埔寨的計算機(jī)可以信任一臺在倫敦的計算機(jī)是同步相同時間的,對嗎?
不完全是。
這是由于網(wǎng)絡(luò)延遲、相對效應(yīng)以及時間膨脹(飛機(jī)上的某個人和地面上的某個人之間是有差異的)的影響,這種變化,不管有多小,都會阻止整個網(wǎng)絡(luò)上時間的準(zhǔn)確同步。
在構(gòu)建去中心化支付網(wǎng)絡(luò)時,這種差異至關(guān)重要。節(jié)點(diǎn)無法依賴第三方系統(tǒng),例如原子時鐘。為了防止用戶進(jìn)行雙花,網(wǎng)絡(luò)需要可靠的系統(tǒng)來給交易排序。
PoW是支持比特幣協(xié)議的機(jī)制,它通過SHA-256蠻力搜索解決了這一問題。這個解決方案雖然具有里程碑式的意義,但其速度慢且笨拙。比特幣每秒最多只能處理7筆交易。Solana是世界上第一個為web規(guī)模而構(gòu)建的區(qū)塊鏈,因?yàn)樗鼰o須重大開銷即可解決分布式時間問題。讓它成為可能的核心創(chuàng)新是PoH(歷史證明),它是一種持續(xù)排序的機(jī)制,可以作為Solana網(wǎng)絡(luò)的全球時鐘。
PoH創(chuàng)建了一條記錄,可以證明事件在某個特定時刻發(fā)生。其他(區(qū)塊鏈)網(wǎng)絡(luò)要求參與者進(jìn)行通信以確認(rèn)時間的流逝,而每個Solana節(jié)點(diǎn)則通過在一系列連續(xù)事件中編碼時間的流逝來維護(hù)自己的時鐘。
在“沙子”的幫助下,讓我們來學(xué)習(xí)它是如何運(yùn)作的。
開始
在Solana網(wǎng)絡(luò)上的時間概念來源于驗(yàn)證節(jié)點(diǎn)持續(xù)進(jìn)行SHA-256哈希值計算,從而創(chuàng)建出一種事件的加密鏈。
想象一下,有一個沙漏,其中每個沙粒代表一個時間單位(計算SHA-256哈希值所花費(fèi)的時間)。每粒沙子都有相應(yīng)的ID與之關(guān)聯(lián),可以證明它在一沙粒之前,而沙粒在它之后。
沙漏充滿時,它通過連續(xù)的沙粒創(chuàng)建事件鏈。
分組
沙漏持續(xù)讓沙子通過瓶頸,直到達(dá)到一定的閥值。此時,沙漏將收集到的沙粒依次釋放到在下面等待的桶中。
倒掉
各個沙漏會繼續(xù)產(chǎn)生這些桶,直到準(zhǔn)備好分組。為了將桶鏈接在一起,特定桶中的最后一個沙粒(如中間所示),被復(fù)制為下一個桶的第一個沙粒。這在桶之間創(chuàng)建了重疊,從而可以快速確定其正確排序。
立即將所有的桶釋放到下面的另一組沙漏中。
秘制醬
此處的創(chuàng)新在于驗(yàn)證速度:即使它花費(fèi)10個單元時間來充滿10個桶,它也僅花費(fèi)1個單元時間來驗(yàn)證所有10個桶中的沙粒排序。
通過連續(xù)制造沙粒的鏈,Solana網(wǎng)絡(luò)解決了分布式計時的問題。
復(fù)制
這個過程在網(wǎng)絡(luò)中的所有節(jié)點(diǎn)上復(fù)制。各個節(jié)點(diǎn)使用沙粒為基礎(chǔ)驗(yàn)證時間的流逝,以確定沙桶之間經(jīng)過了多少時間,且與其他節(jié)點(diǎn)通信。由于通過多個沙漏進(jìn)行并行處理,因此只需要花費(fèi)一小部分時間即可驗(yàn)證沙粒的排序。
花點(diǎn)時間考慮一下。例如,十秒的交易,可以被網(wǎng)絡(luò)上的所有節(jié)點(diǎn)一秒內(nèi)驗(yàn)證。時間記錄的這種同時產(chǎn)生,隨著時間流逝它被外推出數(shù)千個桶和數(shù)百萬個沙粒,這意味著Solana網(wǎng)絡(luò)可以在其他區(qū)塊鏈網(wǎng)絡(luò)的一小部分時間內(nèi)同步事件。
現(xiàn)在怎么辦?
這個過程創(chuàng)建了相對的PoH(藍(lán)狐筆記:Proof of History,歷史證明),它允許Solana網(wǎng)絡(luò)上的所有節(jié)點(diǎn)以最佳容量運(yùn)行,且專注于驗(yàn)證網(wǎng)絡(luò)上的交易。就速度而言,PoH提出了區(qū)塊鏈網(wǎng)絡(luò)結(jié)構(gòu)中的根本性進(jìn)步,其在當(dāng)前的測試網(wǎng)上可實(shí)現(xiàn)每秒50,000次個交易吞吐量。
我們怎么樣?
歷史證明(PoH)是支持Solana實(shí)現(xiàn)web級別擴(kuò)展的區(qū)塊鏈的眾多技術(shù)創(chuàng)新之一。我們知道這不容易理解?,F(xiàn)在能理解了嗎?