當前位置:首頁 » 區塊鏈知識 » 區塊鏈cap定理

區塊鏈cap定理

發布時間: 2025-05-05 08:42:28

A. 不可能三角

不可能三角是一個有意思的理論。意思是有三項特性不可能同時獲得,只能舍棄一項,從而獲得其他兩項。

最有名的是蒙代爾不可能三角理論,這也成了不可能三角理論的代名詞。蒙代爾不可能三角理論:

    一個經濟體,貨幣政策的自主性、資本的自由流動和匯率的穩定,這三者不可兼得,只能犧牲一樣才能獲得另外兩樣。

在其他領域也有類似的「不可能三角理論」。

在項目管理領域:

    質量、效率和成本,這三者構成不可能三角。

分布式領域:

    CAP定理,指的是在一個分布式系統中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分區容錯性),這三者構成不可能三角。

    從理論上論證了存儲高可用的復雜度。也就是說,存儲高可用不可能同時滿足「一致性、可用性、分區容錯性」,最多滿足其中兩個,這就要求在做架構設計時結合業務進行取捨。

投資領域:

    收益高、流動性強、低風險,構成不可能三角。

區塊鏈領域:

    高效率、安全和去中心化,構成不可能三角。

    一個區塊鏈系統不可能在這三點上都兼得,至少得犧牲一項來加強其他兩項。

    傳統的互聯網是把「高效率」做到了極致,在「安全」上做得也不錯,但是完全舍棄了「去中心化」。比特幣舍棄了「高效率」,做到了「安全」和「去中心化」。

最後還聽說過一個笑話中的「不可能三角」。

為什麼某些公司招聘程序員時非黨員能獲得加分?

    一個人在黨性、真誠、智慧三樣東西中,只可能擁有兩樣。

    我們希望能招聘到同時擁有真誠和智慧的同事,因此……

雖然「不可能三角」不一定在任何時候都對,但是理解「不可能理論」,有助於我們更好地分析問題,做出決策,避免陷入思考或對目標追求的泥潭。

20180606.

B. 區塊鏈交易怎麼廣播(區塊鏈的交易流程)

區塊鏈的具體工作流程是怎樣的?

對於區塊鏈的工作流程金窩窩集團認為可以總結為以下幾步:

1、發送節點將新的數據記錄向全網進行廣播

2、接受節點對收到的數據進行記錄和檢驗

3、全網所有接受節點對區塊執行共識演算法

4、區塊通過共識演算法過程後被正式納入區塊鏈中儲存

區塊鏈的共識機制

1.網路上的交易信息如何確認並達成共識??

雖然經常提到共識機制,但是對於共識機制的含義和理解卻並清楚。因此需要就共識機制的相關概念原理和實現方法有所理解。?

區塊鏈的交易信息是通過網路廣播傳輸到網路中各個節點的,在整個網路節點中如何對廣播的信息進行確認並達成共識最終寫入區塊呢??如果沒有相應的可靠安全的實現機制,那麼就難以實現其基本的功能,因此共識機制是整個網路運行下去的一個關鍵。

共識機制解決了區塊鏈如何在分布式場景下達成一致性的問題。區塊鏈能在眾多節點達到一種較為平衡的狀態也是因為共識機制。那麼共識機制是如何在在去中心化的思想上解決了節點間互相信任的問題呢??

當分布式的思想被提出來時,人們就開始根據FLP定理和CAP定理設計共識演算法。規范的說,理想的分布式系統的一致性應該滿足以下三點:

1.可終止性(Termination):一致性的結果可在有限時間內完成。

2.共識性(Consensus):不同節點最終完成決策的結果應該相同。

3.合法性(Validity):決策的結果必須是其他進程提出的提案。

但是在實際的計算機集群中,可能會存在以下問題:

1.節點處理事務的能力不同,網路節點數據的吞吐量有差異

2.節點間通訊的信道可能不安全

3.可能會有作惡節點出現

4.當非同步處理能力達到高度一致時,系統的可擴展性就會變差(容不下新節點的加入)。

科學家認為,在分布式場景下達成完全一致性是不可能的。但是工程學家可以犧牲一部分代價來換取分布式場景的一致性,上述的兩大定理也是這種思想,所以基於區塊鏈設計的各種公式機制都可以看作犧牲那一部分代價來換取多適合的一致性,我的想法是可以在這種思想上進行一個靈活的變換,即在適當的時間空間犧牲一部分代價換取適應於當時場景的一致性,可以實現靈活的區塊鏈系統,即可插拔式的區塊鏈系統。今天就介紹一下我對各種共識機制的看法和分析,分布式系統中有無作惡節點分為拜占庭容錯和非拜占庭容錯機制。

FLP定理即FLP不可能性,它證明了在分布式情景下,無論任何演算法,即使是只有一個進程掛掉,對於其他非失敗進程,都存在著無法達成一致的可能。

FLP基於如下幾點假設:

僅可修改一次:?每個進程初始時都記錄一個值(0或1)。進程可以接收消息、改動該值、並發送消息,當進程進入decidestate時,其值就不再變化。所有非失敗進程都進入decidedstate時,協議成功結束。這里放寬到有一部分進程進入decidedstate就算協議成功。

非同步通信:?與同步通信的最大區別是沒有時鍾、不能時間同步、不能使用超時、不能探測失敗、消息可任意延遲、消息可亂序。

通信健壯:只要進程非失敗,消息雖會被無限延遲,但最終會被送達;並且消息僅會被送達一次(無重復)。

Fail-Stop模型:進程失敗如同宕機,不再處理任何消息。

失敗進程數量:最多一個進程失敗。

CAP是分布式系統、特別是分布式存儲領域中被討論最多的理論。CAP由EricBrewer在2000年PODC會議上提出,是EricBrewer在Inktomi期間研發搜索引擎、分布式web緩存時得出的關於數據一致性(consistency)、服務可用性(availability)、分區容錯性(partition-tolerance)的猜想:

數據一致性(consistency):如果系統對一個寫操作返回成功,那麼之後的讀請求都必須讀到這個新數據;如果返回失敗,那麼所有讀操作都不能讀到這個數據,對調用者而言數據具有強一致性(strongconsistency)(又叫原子性atomic、線性一致性linearizableconsistency)[5]

服務可用性(availability):所有讀寫請求在一定時間內得到響應,可終止、不會一直等待

分區容錯性(partition-tolerance):在網路分區的情況下,被分隔的節點仍能正常對外服務

在某時刻如果滿足AP,分隔的節點同時對外服務但不能相互通信,將導致狀態不一致,即不能滿足C;如果滿足CP,網路分區的情況下為達成C,請求只能一直等待,即不滿足A;如果要滿足CA,在一定時間內要達到節點狀態一致,要求不能出現網路分區,則不能滿足P。

C、A、P三者最多隻能滿足其中兩個,和FLP定理一樣,CAP定理也指示了一個不可達的結果(impossibilityresult)。

如何創建和簽署以太坊交易?

交易

區塊鏈交易的行為遵循不同的規則集

由於公共區塊鏈分布式和無需許可的性質,任何人都可以簽署交易並將其廣播到網路。

根據區塊鏈的不同,交易者將被收取一定的交易費用,交易費用取決於用戶的需求而不是交易中資產的價值。

區塊鏈交易無需任何中央機構的驗證。僅需使用與其區塊鏈相對應的數字簽名演算法(DSA)使用私鑰對其進行簽名。

一旦一筆交易被簽名,廣播到網路中並被挖掘到網路中成功的區塊中,就無法恢復交易。

以太坊交易結構

以太坊交易的數據結構:交易0.1個ETH

{

'nonce':Ɔx00',?//十進制:0

'gasLimit':Ɔx5208',//十進制:21000

'gasPrice':Ɔx3b9aca00',//十進制1,000,000,000

'to':'',//發送地址

'value':Ɔx16345785d8a0000',//100000000000000000,10^17

'data':Ɔx',//空數據的十進製表示

'chainId':1//區塊鏈網路ID

}

這些數據與交易內容無關,與交易的執行方式有關,這是由於在以太坊中發送交易中,您必須定義一些其他參數來告訴礦工如何處理您的交易。交易數據結構有2個屬性設計"gas":"gasPrice","gasLimit"。

"gasPrice":單位為Gwei,為1/1000個eth,表示交易費用

"gasLimit":交易允許使用的最大gas費用。

這2個值通常由錢包提供商自動填寫。

除此之外還需要指定在哪個以太坊網路上執行交易(chainId):1表示以太坊主網。

在開發時,通常會在本地以及測試網路上進行測試,通過測試網路發放的測試ETH進行交易以避免經濟損失。在測試完成後再進入主網交易。

另外,如果需要提交一些其它數據,可以用"data"和"nonce"作為事務的一部分附加。

Anonce(僅使用1次的數字)是以太坊網路用於跟蹤交易的數值,有助於避免網路中的雙重支出以及重放攻擊。

以太坊交易簽名

以太坊交易會涉及ECDSA演算法,以Javascript代碼為例,使用流行的ethers.js來調用ECDSA演算法進行交易簽名。

constethers=require('ethers')

constsigner=newethers.Wallet('錢包地址')

signer.signTransaction({

?'nonce':Ɔx00',?//十進制:0

??'gasLimit':Ɔx5208',//十進制:21000

??'gasPrice':Ɔx3b9aca00',//十進制1,000,000,000

??'to':'',//發送地址

??'value':Ɔx16345785d8a0000',//100000000000000000,10^17

??'data':Ɔx',//空數據的十進製表示

??'chainId':1//區塊鏈網路ID

})

.then(console.log)

可以使用在線使用程序Composer將已簽名的交易傳遞到以太坊網路。這種做法被稱為」離線簽名「。離線簽名對於諸如狀態通道之類的應用程序特別有用,這些通道是跟蹤兩個帳戶之間余額的智能合約,並且在提交已簽名的交易後就可以轉移資金。離線簽名也是去中心化交易所(DEXes)中的一種常見做法。

也可以使用在線錢包通過以太坊賬戶創建簽名驗證和廣播。

使用Portis,您可以簽署交易以與加油站網路(GSN)進行交互。

鏈喬教育在線旗下學碩創新區塊鏈技術工作站是中國教育部學校規劃建設發展中心開展的「智慧學習工場2020-學碩創新工作站」唯一獲準的「區塊鏈技術專業」試點工作站。專業站立足為學生提供多樣化成長路徑,推進專業學位研究生產學研結合培養模式改革,構建應用型、復合型人才培養體系。

有沒有大佬告訴我區塊鏈游戲的運作原理用最簡潔明了的語言描述區塊鏈游戲。

區塊鏈游戲,主要是指Dapp中屬於游戲類的區塊鏈應用,需要和各種區塊鏈公鏈有一定程度上的交互。區塊鏈游戲從17年11月開始逐漸興起,發展歷史極為短暫,與成熟游戲相比,目前的玩法也相當簡單。在業界人士看來,很多游戲甚至只是個裹著游戲外衣的資金盤。

根據Cryptogames的分類,目前上線的區塊鏈游戲中,hotpotato、收藏交易、菠菜和ponzi是最主要的游戲玩法。數量最多的要屬於hotpotato類游戲,包括近期火爆的兩款游戲都是這個類型的-CryptoCelebrities(加密名人)和CryptoCountries(加密世界)。收藏交易類有35款,居第二,主要代表作為CryptoKitties(加密貓)。菠菜和ponzi類共17款,居第三,明星產品分別為EtherRoll和Etheremon。

區塊鏈游戲所使用的主題也是五花八門,從貓、狗、龍、豬等各種動物,到人、車、國家、球隊等等各種各樣的題材。

區塊鏈游戲1.0時代

時間:2017年11月到12月

主要玩法:收藏+交易

代表作:CryptoKitties、CryptoPunks

區塊鏈技術給玩家的數字資產賦予了唯一性。這便逐漸了產生了NFT(non-fungibletokens,不可替代的令牌)概念,人們在區塊鏈游戲中的資產唯一性和稀缺性不會隨游戲本身而改變。最先應用這個概念的是LarvaLabs在17年6月推出的CryptoPunks。系統隨機生成一萬張朋克頭像,通過智能合約放在以太坊上,免費發放給玩家後供玩家交易。

當AxiomZen工作室在NFT的基礎上增加屬性、繁殖和拍賣功能後,Cryptokitties爆款便誕生了。人們可以購買不同屬性的小貓,與別的貓「繁衍後代「,或者將自己的貓通過荷蘭式拍賣賣出。擁有稀缺獨特基因的小貓被人們瘋狂追捧,獲得了相當高的溢價。

人們在Cryptokitties的基礎上繼續開發,添加了飾品和戰斗功能,也增加了掘金、喂養、奪寶等玩法。

區塊鏈游戲2.0時代

時間:2017年12月到2018年1月

主要玩法:類Ponzi

代表作:Etheremon

剛開始時,Etheremon的玩法一開始非常簡單粗暴,在玩家買了某個寵物之後,後面只要有人購買相同的寵物,玩家就可以獲得一小部分eth獎勵。游戲團隊在一周內迅速獲得了2000ETH左右的利潤。然後徹底改變玩法,成功轉型為收藏+戰斗的游戲。這種類Ponzi的玩法迅速被其他廠家所效仿,出現了以太車、ethertanks等眾多模仿者。

區塊鏈游戲3.0時代

時間:2018年1月

主要玩法:固定售價、強制漲價的hotpotato模式

代表作:CryptoCelebrities,CryptoCountries

玩家購買加密名人(中本聰,馬斯克等)和加密國家(日本,美國等),由於資產的唯一性,後續玩家只能用更高的價格從資產擁有者中購買,價格強制漲價,平台賺取一部分差價。目前最高價格的國家是日本,大約700多ETH,最貴的名人是ElonMusk,」身價「大約200ETH。

區塊鏈游戲4.0時代

時間:2018年2月

主要玩法:多種機制結合

代表作:World.Mycollect,Cryptocities

游戲中採用了多級銷售和分成,玩家探索(隨機性),抽獎,資源獨特性等多種玩法。比如在Cryptocities中,玩家可以購買國家、大洲和世界來進行「征服」。征服了世界的玩家可以獲得大洲和國家交易額的1%稅收,征服大洲的玩家可以獲得國家交易額1%的稅收。而征服國家的玩家在未來可以獲得其下屬城市的交易額1%稅收。玩家在探索新城市的時候,有幾率探索出寶石,獲得寶石即可獲得ETH獎勵。

同時期興起的,還有菠菜類游戲。區塊鏈的高透明度讓它們更容易獲得投資者信任。比較有名的有Etheroll和Vdice,玩法簡單粗暴,玩家花費一定的ETH投注某個數字,當系統隨機生成的數字小於該數字時,就可以獲得收益。

除此之外,還有RPG(EtherCraft),戰斗游戲(Etherbots)和二次元(以太萌王)等。

2

區塊鏈游戲的優勢和劣勢

縱觀這些成功的案例,我們發現區塊鏈游戲確實有著獨特的優勢:

較高的信任度:通過開源合約快速建立信任,使用過程完全透明,信息完全對稱。公正性:可以做到數據無法篡改、規則永遠不變。資產屬於玩家個人:玩家資產不會隨游戲的衰落而流失。具有極強的社區屬性:區塊鏈本身具有較強的交易和社區屬性。

當然,目前區塊鏈游戲也處於萌芽時期,有著明顯的缺點:

無法及時交互:區塊鏈交易存在著不確定的等待時間和擁堵的可能,很難在玩家之間形成及時交互。發送指令費用較高:每次發送指令都需要消耗GAS,而ETH的價格仍然使得GAS費用顯得比較高昂。開發環境不成熟:目前以太坊的虛擬機和編程語言solidity已經是眾多公鏈中開發環境最為成熟的一個了。但是其和其他熱門語言比起來還非常的不成熟。

3

游戲化將助推區塊鏈落地

在傳統的桌面網路游戲中,廠商不斷激勵新進玩家導致了通貨膨脹,一個游戲賬號所有資產的實際價值往往遠低於玩家的投入。手游出現後,道具綁定賬號,賬號綁定身份證的模式很快得到了普及。這也使得一旦玩家決定離開某個游戲,就必須放棄所有在游戲中的虛擬資產。區塊鏈技術的出現和不斷成熟,將使得游戲規則去中心化制定和虛擬資產去中心化儲存從技術層面變得可行。而虛擬資產上鏈的便捷性,也使區塊鏈在游戲場景中更容易落地。

Cryptogames認為,區塊鏈游戲的發展方向,或者說是經典游戲(就像籃球、足球和棋類一樣,一經確定規則,便經久不衰)的發展方向,一定是「去中心化」的:

規則是由玩家協商確定玩家之間互相監督保證游戲按照規則來進行游戲中所用的所有道具都由各個玩家自己所有有人破壞規則或者玩的不爽可以直接走人游戲本身不存在一個中心化的組織者

CryptoKitties的風靡極大地推廣了私人錢包,區塊鏈游戲作為早期落地的區塊鏈應用,迅速推動了區塊鏈的普及。同樣,利用游戲開發經驗和游戲設計理念開發出

比特幣向全網廣播是怎麼實現的?

兩個說法供參考,都是從巴比特找到的:

比特幣採取一種數學競賽的方式來決定交易到達節點的時間,並同時保護這種順序,在比特幣系統中是通過將交易按組分配來對交易進行排序的,這樣的組被稱作區塊(同一時刻發生的交易會分在同一個區塊內),然後將這些區塊鏈接起來,被稱作區塊鏈。區塊鏈是用來對交易排序,而交易鏈則是追蹤記錄比特幣所有權變化的,這些區塊是按照時間排列的就是一個鏈接,未在區塊內的交易被成為未確認或者未排序的交易,任何節點都快要將一組未經確認的交易放入區塊中,然後向網路中的其他節點廣播他們對於下一個區塊應該是什麼的建議。

??????如果同一時刻有多人同時生成區塊(這種概率基本很小),所以就會有當前的區塊的下一個區塊會有多個選擇,為了保證區塊鏈接的順序性,比特幣系統讓每個有效的區塊必須包括一個特殊數學問題的答案,計算機會計算整個區塊的文本,再加上基於加密哈希進行的隨機猜測,直到得出一個低於某個特定數值的輸出,哈希函數能夠從任意長度的文本中創建一段簡短的摘要,這個固定輸出值是非常復雜的找到他的唯一方法就是隨機猜測,這就是所謂的挖礦

King在去年發行PPC的時候引入了檢查點機制,以在其發展初期保護避免攻擊。這個機制使其能夠抵禦51%攻擊。」開發者可以控制一個母節點並向全網廣播「檢查點」,這讓其它節點在某些區塊上達成一致。「他說,這其實是一個」(區塊鏈)連續性警告信息「。

C. 區塊鏈的共識機制

1. 網路上的交易信息如何確認並達成共識? 

雖然經常提到共識機制,但是對於共識機制的含義和理解卻並清楚。因此需要就共識機制的相關概念原理和實現方法有所理解。 

區塊鏈的交易信息是通過網路廣播傳輸到網路中各個節點的,在整個網路節點中如何對廣播的信息進行確認並達成共識 最終寫入區塊呢?  如果沒有相應的可靠安全的實現機制,那麼就難以實現其基本的功能,因此共識機制是整個網路運行下去的一個關鍵。

共識機制解決了區塊鏈如何在分布式場景下達成一致性的問題。區塊鏈能在眾多節點達到一種較為平衡的狀態也是因為共識機制。那麼共識機制是如何在在去中心化的思想上解決了節點間互相信任的問題呢? 

當分布式的思想被提出來時,人們就開始根據FLP定理和CAP定理設計共識演算法。 規范的說,理想的分布式系統的一致性應該滿足以下三點:

1.可終止性(Termination):一致性的結果可在有限時間內完成。

2.共識性(Consensus):不同節點最終完成決策的結果應該相同。

3.合法性(Validity):決策的結果必須是其他進程提出的提案。

但是在實際的計算機集群中,可能會存在以下問題:

1.節點處理事務的能力不同,網路節點數據的吞吐量有差異

2.節點間通訊的信道可能不安全

3.可能會有作惡節點出現

4.當非同步處理能力達到高度一致時,系統的可擴展性就會變差(容不下新節點的加入)。

科學家認為,在分布式場景下達成 完全一致性 是不可能的。但是工程學家可以犧牲一部分代價來換取分布式場景的一致性,上述的兩大定理也是這種思想,所以基於區塊鏈設計的各種公式機制都可以看作犧牲那一部分代價來換取多適合的一致性,我的想法是可以在這種思想上進行一個靈活的變換,即在適當的時間空間犧牲一部分代價換取適應於當時場景的一致性,可以實現靈活的區塊鏈系統,即可插拔式的區塊鏈系統。今天就介紹一下我對各種共識機制的看法和分析,分布式系統中有無作惡節點分為拜占庭容錯和非拜占庭容錯機制。

FLP定理即FLP不可能性,它證明了在分布式情景下,無論任何演算法,即使是只有一個進程掛掉,對於其他非失敗進程,都存在著無法達成一致的可能。

FLP基於如下幾點假設:

僅可修改一次 :  每個進程初始時都記錄一個值(0或1)。進程可以接收消息、改動該值、並發送消息,當進程進入decide state時,其值就不再變化。所有非失敗進程都進入decided state時,協議成功結束。這里放寬到有一部分進程進入decided state就算協議成功。

非同步通信 :  與同步通信的最大區別是沒有時鍾、不能時間同步、不能使用超時、不能探測失敗、消息可任意延遲、消息可亂序。

通信健壯: 只要進程非失敗,消息雖會被無限延遲,但最終會被送達;並且消息僅會被送達一次(無重復)。

Fail-Stop 模型: 進程失敗如同宕機,不再處理任何消息。

失敗進程數量 : 最多一個進程失敗。

CAP是分布式系統、特別是分布式存儲領域中被討論最多的理論。CAP由Eric Brewer在2000年PODC會議上提出,是Eric Brewer在Inktomi期間研發搜索引擎、分布式web緩存時得出的關於數據一致性(consistency)、服務可用性(availability)、分區容錯性(partition-tolerance)的猜想:

數據一致性 (consistency):如果系統對一個寫操作返回成功,那麼之後的讀請求都必須讀到這個新數據;如果返回失敗,那麼所有讀操作都不能讀到這個數據,對調用者而言數據具有強一致性(strong consistency) (又叫原子性 atomic、線性一致性 linearizable consistency)[5]

服務可用性 (availability):所有讀寫請求在一定時間內得到響應,可終止、不會一直等待

分區容錯性 (partition-tolerance):在網路分區的情況下,被分隔的節點仍能正常對外服務

在某時刻如果滿足AP,分隔的節點同時對外服務但不能相互通信,將導致狀態不一致,即不能滿足C;如果滿足CP,網路分區的情況下為達成C,請求只能一直等待,即不滿足A;如果要滿足CA,在一定時間內要達到節點狀態一致,要求不能出現網路分區,則不能滿足P。

C、A、P三者最多隻能滿足其中兩個,和FLP定理一樣,CAP定理也指示了一個不可達的結果(impossibility result)。

熱點內容
1060挖以太坊收益 發布:2025-05-05 11:31:12 瀏覽:305
塊鏈從數字貨幣到信用社會 發布:2025-05-05 11:06:06 瀏覽:434
全球區塊鏈理事會gbbc 發布:2025-05-05 11:05:49 瀏覽:627
區塊鏈的基礎設施層 發布:2025-05-05 10:44:32 瀏覽:52
元宇宙概念與現實落差 發布:2025-05-05 10:23:09 瀏覽:368
比特幣礦機怎麼運轉 發布:2025-05-05 10:18:58 瀏覽:189
數字貨幣開通了嗎 發布:2025-05-05 09:48:55 瀏覽:817
基於區塊鏈的分布式資料庫應用 發布:2025-05-05 09:47:30 瀏覽:455
解決了數字貨幣的雙花問題 發布:2025-05-05 09:47:28 瀏覽:798
算力世界是啥 發布:2025-05-05 09:42:04 瀏覽:846