比特幣行情 比特幣行情
Ctrl+D 比特幣行情
ads
首頁 > BNB > Info

區塊鏈:區塊鏈的“生物鐘”長啥樣?

Author:

Time:1900/1/1 0:00:00

“時間”是歲月更迭中的永恒話題。圍繞時間的探討一直在區塊鏈以及其他分布式系統中進行。時間連接起進程與節點,我們也用時間的“粒度”來衡量連塊成鏈的去中心化網絡。

分布式系統中關于時間的難題在于,不同參與者的“物理時鐘”很難達成完全一致。分布式系統大師Lamport提供了去中心化的方法,將問題轉化為時間與順序的聯系,提出了邏輯時鐘的概念,就像為包括區塊鏈在內的分布式系統引入了“生物鐘”。

stakefish編譯Vac分析師、ENS開發者Dean Eigenmann的一篇文章,介紹Lamport關于時間、時鐘和順序的論述,為大家提示理解區塊鏈和分布式系統時間另一個角度。

關于分布式系統的系列文章,用哪個話題開篇比較合適呢?以太坊的隱私交易協議AZTEC?以難以掌握著稱的Paxos算法?這些話題還是留在以后寫。今天,我選了一個基礎話題作為開篇:分布式系統的時間話題。

Poly Network 創始成員John Wang:DeFi合約因自身復雜性而產生漏洞,是區塊鏈應用發展的必經階段:金色財經報道,7月23日,Poly Network 創始成員John Wang做客金色財經舉辦的“跨鏈橋-孤島互鏈,生態治理與關鍵”為主題的金色沙龍第67期活動。John Wang表示跨鏈的概念早在16年就被提出,時至今日已經成為了備受關注的熱門領域,但在火熱的浪潮之下,真正走出來的項目卻很少,是由于跨鏈技術存在很多難點,各個區塊鏈底層架構不同、數據結構不同、業務模式不同,因此真正要把異構鏈跨鏈落地其實很難。DeFi合約因為本身復雜性和組合型,所以經常會看到比較多的漏洞合約,這是區塊鏈應用發展必須要經歷的一個階段。[2021/7/23 1:11:40]

本文解讀的是圖靈獎得主、計算機大師Leslie Lamport的知名論文《分布式系統內的時間、時鐘和事件順序(Time, clocks, and the ordering of events in a distributed system)》。很久之后重讀這篇文章并提煉關鍵概念,另有一番趣味。

不熟悉Leslie Lamport的朋友可以大概了解一下,他以創造LaTeX、TLA+、Paxos而聞名,還論述了拜占庭將軍問題。當然還有Lamport時鐘(第一個邏輯時鐘),在本文中我們也將對其基本概念進行介紹。

金色相對論 | 中國電信梁偉:區塊鏈將成為新基建領域中的價值基礎設施:在今日舉行的金色相對論中,針對“國家、企業、個人及如何協同促進區塊鏈產業的健康落地”的問題,中國電信集團區塊鏈與數字經濟聯合實驗室主任梁偉表示,產業區塊鏈是將區塊鏈作為基礎技術為眾多行業提供服務的一個應用體系,使區塊鏈不再拘泥于數字貨幣,成為能為金融、醫療、電信等行業提供數據共享、多點協作功能的一個基礎技術。產業區塊鏈主要包含的有兩個方面,首先是基礎設施平臺,能夠為個人或企業提供數據、計算相關的基礎服務,提高其運作效率;其次是應用服務平臺,能夠為消費者提供智慧醫療、金融服務等行業應用,進一步改善人們的工作生活。而在現在新基建的背景下,區塊鏈更多地是作為一個底層基礎技術,與5G、人工智能、物聯網等技術相輔相成,來為后續的一些項目提供信用、安全、價值實現支持。所以我認為區塊鏈將成為新基建——信息基礎設施領域中的價值基礎設施。區塊鏈產業應用的健康落地也是一個老問題了,相比于區塊鏈產業的資本因素,各方各界其實都應該更關注技術本身或者技術能帶來的行業賦能作用,加強對區塊鏈與其他技術的結合創新,積極推動區塊鏈產業應用脫虛向實。我們也正在基于運營商特色應用需求,探索區塊鏈在網絡安全、企業財稅、電子招投標等領域的應用。[2020/6/3]

現場 | 華夏銀行天津自由貿易試驗區分行行長王冬梅:華夏銀行積極擁抱區塊鏈技術:金色財經現場報道,10月8日,由天津口岸區塊鏈驗證試點實驗室主辦、微觀科技承辦的“區塊鏈解碼跨境貿易,數字經濟助力科技金融—天津口岸區塊鏈科技金融賦能貿易新聞發布會” 在天津麗思卡爾頓酒店召開。華夏銀行天津自由貿易試驗區分行行長王冬梅現場指出,華夏銀行積極擁抱區塊鏈,更好的促進天津貿易的發展進步。未來華夏銀行將積極與天津貿易直通車平臺內的合作伙伴積極合作,促進區塊鏈賦能實體經濟。[2019/10/8]

先來看看分布式系統的定義。Lamport給出的定義是這樣的:

“如果一個系統內信息傳遞的延遲,與單一進程里的事件間隔的時間相比是不能忽略不計的,則稱之為分布式系統。”

我喜歡這個定義,因為其專注在發出和收取消息之間的延遲上。

明確了定義,我們開始正式介紹。

為事件排序在本地再簡單不過了。你只需在發生的時候為每一個事件賦予一個時間戳就好了。我們能夠獲得所有事件的總體順序,也就意味著,所有事件都能夠按照特定順序排列。

但這個問題在分布式系統的情境下就困難多了。為什么呢?

動態 | 天府科技金融加速器落地成都,服務對象包括區塊鏈等領域企業:據成都日報報道,4月25日,國內首個新經濟基金加速器在成都落地,天府科技金融加速器啟動儀式在天府國際基金小鎮舉行。天府科技金融加速器是以科技賦能金融業務的技術型機構。服務對象包括云計算、大數據、區塊鏈、人工智能等領域企業,為企業提供覆蓋全生命周期的金融綜合服務。為配套天府新經濟基金加速器集群發展,天府國際基金小鎮配套設立了首期規模2億元的產業基金,重點為加速器落地項目提供配套支持,后續將持續擴大基金規模為加速器項目注入更多資金力量。[2019/4/26]

一切皆因分布式系統的一個非常簡單的性質:在節點之間傳遞的消息在發出之后,在未來的任何時間點都可能到達0次、1次或多次。這樣的話,分布式系統的各個節點之間就不能就時間達成一致。舉例來說:

一個節點可以向另一個節點發送一條消息標注當前時間是12:00:00,但是接收者不知道消息用了多長時間傳遞,也就沒辦法確認到達時是否仍為12:00:00。如果這樣,節點之間來來回回傳一整天消息也無法確定信息是否同步。如果不能在時間上達成一致,我們也就不能在事件順序上達成共識。

金色財經現場報道 世界區塊鏈中心·BitTemple新加坡開幕酒會正式開幕:5月3日晚,世界區塊鏈中心·BitTemple新加坡開幕酒會上,火幣生態總經理王潤發表致辭,王潤表示,火幣的生態分為火幣全球生態基金,火幣生態開放平臺,火幣公鏈三個方向,王潤稱,火幣生態旨讓區塊鏈行業中的一些項目能夠扎實的運營。[2018/5/3]

那怎么解決這個問題?

在分布式系統內,多個節點通過互相發送信息進行交流。節點收到信息首先確認這個信息,然后執行他的下一個事件。這樣的順序,本來就顯示了一種“因果關系”:信息必須先被發出,才能被收到。

譯注:這種因果關系是一種時序關系,不是邏輯上的原因和結果的關系。

那么根據因果關系就能得出順序:發消息肯定在被他被接收之前。單看A、B兩個事件,我們就能給出“發生在……之前(happens before)”的關系來描述順序了。

現在,無需系統物理時間概念就可以識別這種關系:如果A對B造成了因果影響,事件A肯定發生在事件B之前。因果關系讓我們確定系統中相關事件的順序,是一種偏序(partial order)。

偏序也有一個局限性:如果不能確定相關性,我們可能不知道系統中每個事件的確切順序。因為可能有許多事件會在整個系統內并發(concorrent),并非所有節點都知道這些事件的發生。

時鐘

不過既然我們已經有了偏序,接下來把時鐘添加到系統中,就能獲取系統中的所有事件的總序(total order)。

剛才我們已經知道了在分布式系統里使用物理時鐘是不可行的,那么我們就需要使用邏輯時鐘。邏輯時鐘本質上是一個函數,能夠給事件分配一個數字。這個數字表示事件發生的時間(從現在開始我們將把這個數字稱為時間),與物理時間沒有任何關系。

我們假設在這個分布式系統里的每個節點都有一個時鐘。這個時鐘隨著在執行的事件間滴答行進,但時鐘的行進并不被視為系統中的事件。對于系統中某個節點上發生的每個事件,邏輯時鐘都會為該事件分配一個數字。根據這個假設,我們可以滿足以下時鐘條件:

?a,b a → b ? C(a) < C(b)

以上表達式代表什么意思呢?

箭頭“→”表示“發生在……之前(happened before)”,而C代表時鐘函數,可簡單的理解為時間。所以要表達意思就是:對于每一個事件a,b,如果a發生在b之前,那么a的時間要小于b的時間。

但反推不成立,僅因為一個事件的時間比另一個事件的時間小,并不能說這個事件發生在前,他們可以是并發的。

在上面的圖片中,我們可以看到節點α上,時間1和時間2各發生了1個事件;節點β在自己的時間1發生了1個事件。在節點α的時間1和時間2發生的事件,與在節點β的時間1發生的事件是并發的,沒有因果聯系。

如果a和b是單個節點上的兩個事件,且a發生在b之前,則a的時間應該小于b的時間。

如果a是一個發送消息的節點,b是另一收到消息的節點,那么a的時間仍然應該小于b的時間。

節點需要在事件之間讓時鐘進行計時。如果不是,則必須將時鐘調快到比從其他節點接收到的任何消息中包含的時間更晚的時間。b就可以在時鐘調快之后發生了。

現在好啦,我們可以使用滿足這些條件的時鐘,建立整個分布式系統的總序啦,這里只是簡單的根據各個事件的時鐘給出的時間來排序。

用例

最后我們設置一個狀態機來看看邏輯時鐘的用法。比如我們有一個分布式系統,多個節點都想訪問其中的共享資源,每次只能訪問一個節點。狀態機需要滿足以下條件:

條件1:可以訪問資源的節點必須先釋放資源,然后其他節點才能訪問他。

條件2:對資源的請求必須按照發出請求的順序被授予訪問權。

條件3:如果每個被授予訪問權的節點最終都釋放了資源,那么每個請求最終都會被授權。

為什么不引入一個中間協調者呢?因為這樣的話,如果發生較早的請求卻較晚到達,就不能滿足條件2了;另一個原因是,我們希望采取去中心化的解決方案。

所以我們還是要構建條件,滿足這個邏輯時鐘。如何滿足條件呢?

Lamport為我們提供了一個去中心化解決方案。首先,我們要讓所有節點儲存一個請求隊列。其次,要滿足一些簡單的假設:

假設1:所有消息都按發送的順序接收。

假設2:所有消息最終都被接收。

假設3:每個節點都可以直接向系統中的所有其他節點發送消息。

如果有更復雜的算法和協議,可以忽略以上假設。

現在我們可以定義滿足這3個條件的算法,并在實踐中展示時鐘的功能:

1、如果一個節點想要請求一個資源,他會用當前時間創建一個請求,將他添加到他的隊列中,并將他發送給其他每個節點。

2、所有其他節點將這個請求放入他們的隊列中并發回響應消息。

3、釋放資源的節點發送帶有當前時間的釋放消息,并從其隊列中刪除原來的請求。

4、當節點收到釋放的消息時,他將從自己的隊列中清除相關請求。

5、當一個節點在他的隊列中有自己的排在任何其他請求之前請求時(按照時間總序),他可以自由地訪問該資源,并且他在該時間之后從所有其他節點接收到消息。

上述算法是完全由各個節點獨立執行的去中心化算法,他利用時鐘來對請求按總序進行排序,從而實現對資源的訪問和節點間的協調。

好啦,我們通過文章大概了解到如何使用這些邏輯時鐘對分布式系統中的事件進行排序,并分析了分布式系統訪問資源時確定順序的實際應用問題。歡迎大家的意見反饋,我將繼續更新更多關于分布式系統的文章。

原文標題:Time, clocks, and order

作者:Dean Eigenmann    

編譯:stakefish

Tags:區塊鏈PORAMPPORT區塊鏈上班都是干什么的porto幣發展前景bitstamp交易平臺下載PORT價格

BNB
區塊鏈:現在還是屯幣好時間嗎?2020年值得關注的6件大事 一文讀懂CoinGecko年度報告

加密貨幣數據公司CoinGecko近日發布了長達50余頁的2019年年度加密貨幣市場報告,對2019年全年的加密貨幣市場整體情況做了全面總結;并對2020年加密貨幣市場的發展做了富有洞察力的預測.

1900/1/1 0:00:00
區塊鏈:金色深度丨加密公司能在歐盟5AMLD新監管環境下生存嗎?

金色財經 區塊鏈1月11日訊 從今天開始,英國金融行為監管局(FCA)將監督涉及加密資產業務的公司,因為此前英國政府已經更改、修訂了該國反洗錢(AML)和反恐怖主義融資法規.

1900/1/1 0:00:00
SEC:美國SEC將加密合規列為2020年優先事項 但暗示會采取更溫和的做法

據Cointelegraph 1月8日報道,美國證券交易委員會合規辦公室將金融科技和數字資產列入其年度優先事項清單,并會繼續對加密領域進行審查.

1900/1/1 0:00:00
FAT:各國代表在FATF開會討論如何監管虛擬資產和虛擬資產服務提供商

據FATF官網消息,1月9日,各國主管開會討論了如何監督和管理虛擬資產和虛擬資產服務提供商(VASP).

1900/1/1 0:00:00
區塊鏈:百度出手了:6億入股宇信科技 合作開發AI、區塊鏈等領域

財聯社1月7日訊,宇信科技早間公告稱,公司股東遠創基因和特定股東光控基因與百度簽署了《股份購買協議》,遠創基因和光控基因合計擬轉讓公司5.71%股權(2286萬股無限售流通股)給百度.

1900/1/1 0:00:00
區塊鏈:聯邦儲備撥款有貓膩?美國財政部要用區塊鏈技術追蹤觀察

管理美國政府收入的美國財政部正在測試通過區塊鏈技術跟蹤聯邦撥款。 動態 | 俄羅斯聯邦儲蓄銀行獲得回購協議區塊鏈解決方案專利:金色財經報道,根據11月19日發布的公告,俄羅斯聯邦儲蓄銀行(Sbe.

1900/1/1 0:00:00
ads