區塊鏈pow拜占庭
① 區塊鏈共識機制有哪些
1.pow( Proof of Work)工作量證明
一句話介紹:乾的越多,收的越多。
2.POS Proof of Stake,權益證明
一句話介紹:持有越多,獲得越多。
3.PBFT :Practical Byzantine Fault Tolerance,實用拜占庭容錯
介紹:在保證活性和安全性(liveness & safety)的前提下提供了(n-1)/3的容錯性。
4.dBFT: delegated BFT 授權拜占庭容錯演算法
介紹:小蟻採用的dBFT機制,是由權益來選出記賬人,然後記賬人之間通過拜占庭容錯演算法來達成共識。
5.POOL驗證池
基於傳統的分布式一致性技術,加上數據驗證機制。
智鏈ChainNova是一家做區塊鏈的公司,感覺挺不錯的,雖然不懂什麼哈希演算法,但還是知道一點點。
② 區塊鏈共識機制,拜占庭將軍問題是什麼
POW完全依靠用經濟激勵的方式來大量增加記賬參與者, 從而稀釋作惡節點的比例, 或者說大幅增加作惡的成本, 做假賬者需要控制或者賄賂更多的節點。這是一種簡單粗暴的共識機制, 在演算法上沒有優化過,但是又非常可行, 現在體量最大的兩條區塊鏈, 比特幣和以太坊都是用POW挖礦的方式。
POW雖然不是最優,但是現在最最切實可行的共識演算法。例如比特幣、萊特幣、DECENT都是採用的POW證明機制。
③ 區塊鏈是什麼意思
區塊鏈(Blockchain)嚴格的定義是指通過基於密碼學技術設計的共識機制方式,在對等網路中多個節點共同維護一個持續增長,由時間戳和有序記錄數據塊所構建的鏈式列表賬本的分布式資料庫技術。該技術方案讓參與系統中的任意多個節點,把一段時間系統內全部信息交流的數據,通過密碼學演算法計算和記錄到一個數據塊(block),並且生成該數據塊的指紋用於鏈接(chain)下個數據塊和校驗,系統所有參與節點來共同認定記錄是否為真。
區塊鏈是一種類似於NoSQL(非關系型資料庫)這樣的技術解決方案統稱,並不是某種特定技術,能夠通過很多編程語言和架構來實現區塊鏈技術。並且實現區塊鏈的方式種類也有很多,目前常見的包括POW(Proof of Work,工作量證明),POS(Proof of Stake,權益證明),DPOS(Delegate Proof of Stake,股份授權證明機制)等。
區塊鏈的概念首次在論文《比特幣:一種點對點的電子現金系統(Bitcoin: A Peer-to-Peer Electronic Cash System)》中提出,作者為自稱中本聰(Satoshi Nakamoto)的個人(或團體)。因此可以把比特幣看成區塊鏈的首個在金融支付領域中的應用。
【通俗解釋】
無論多大的系統或者多小的網站,一般在它背後都有資料庫。那麼這個資料庫由誰來維護?在一般情況下,誰負責運營這個網路或者系統,那麼就由誰來進行維護。如果是微信資料庫肯定是騰訊團隊維護,淘寶的資料庫就是阿里的團隊在維護。大家一定認為這種方式是天經地義的,但是區塊鏈技術卻不是這樣。
如果我們把資料庫想像成是一個賬本:比如支付寶就是很典型的賬本,任何數據的改變就是記賬型的。資料庫的維護我們可以認為是很簡單的記賬方式。在區塊鏈的世界也是這樣,區塊鏈系統中的每一個人都有機會參與記賬。系統會在一段時間內,可能選擇十秒鍾內,也可能十分鍾,選出這段時間記賬最快最好的人,由這個人來記賬,他會把這段時間資料庫的變化和賬本的變化記在一個區塊(block)中,我們可以把這個區塊想像成一頁紙上,系統在確認記錄正確後,會把過去賬本的數據指紋鏈接(chain)這張紙上,然後把這張紙發給整個系統裡面其他的所有人。然後周而復始,系統會尋找下一個記賬又快又好的人,而系統中的其他所有人都會獲得整個賬本的副本。這也就意味著這個系統每一個人都有一模一樣的賬本,這種技術,我們就稱之為區塊鏈技術(Blockchain),也稱為分布式賬本技術。
由於每個人(計算機)都有一模一樣的賬本,並且每個人(計算機)都有著完全相等的權利,因此不會由於單個人(計算機)失去聯系或宕機,而導致整個系統崩潰。既然有一模一樣的賬本,就意味著所有的數據都是公開透明的,每一個人可以看到每一個賬戶上到底有什麼數字變化。它非常有趣的特性就是,其中的數據無法篡改。因為系統會自動比較,會認為相同數量最多的賬本是真的賬本,少部分和別人數量不一樣的賬本是虛假的賬本。在這種情況下,任何人篡改自己的賬本是沒有任何意義的,因為除非你能夠篡改整個系統裡面大部分節點。如果整個系統節點只有五個、十個節點也許還容易做到,但是如果有上萬個甚至上十萬個,並且還分布在互聯網上的任何角落,除非某個人能控制世界上大多數的電腦,否則不太可能篡改這樣大型的區塊鏈。
【要素】
結合區塊鏈的定義,我們認為必須具有如下四點要素才能被稱為公開區塊鏈技術,如果只具有前3點要素,我們將認為其為私有區塊鏈技術(私有鏈)。
1、點對點的對等網路(權力對等、物理點對點連接)
2、可驗證的數據結構(可驗證的PKC體系,不可篡改資料庫)
3、分布式的共識機制(解決拜占庭將軍問題,解決雙重支付)
4、納什均衡的博弈設計(合作是演化穩定的策略)
【特性】
結合定義區塊鏈的定義,區塊鏈會現實出四個主要的特性:去中心化(Decentralized)、去信任(Trustless)、集體維護(Collectively maintain)、可靠資料庫(Reliable Database)。並且由四個特性會引申出另外2個特性:開源(Open Source)、隱私保護(Anonymity)。如果一個系統不具備這些特徵,將不能視其為基於區塊鏈技術的應用。
去中心化(Decentralized):整個網路沒有中心化的硬體或者管理機構,任意節點之間的權利和義務都是均等的,且任一節點的損壞或者失去都會不影響整個系統的運作。因此也可以認為區塊鏈系統具有極好的健壯性。
去信任(Trustless):參與整個系統中的每個節點之間進行數據交換是無需互相信任的,整個系統的運作規則是公開透明的,所有的數據內容也是公開的,因此在系統指定的規則范圍和時間范圍內,節點之間是不能也無法欺騙其它節點。
集體維護(Collectively maintain):系統中的數據塊由整個系統中所有具有維護功能的節點來共同維護的,而這些具有維護功能的節點是任何人都可以參與的。
可靠資料庫(Reliable Database):整個系統將通過分資料庫的形式,讓每個參與節點都能獲得一份完整資料庫的拷貝。除非能夠同時控制整個系統中超過51%的節點,否則單個節點上對資料庫的修改是無效的,也無法影響其他節點上的數據內容。因此參與系統中的節點越多和計算能力越強,該系統中的數據安全性越高。
開源(Open Source):由於整個系統的運作規則必須是公開透明的,所以對於程序而言,整個系統必定會是開源的。
隱私保護(Anonymity):由於節點和節點之間是無需互相信任的,因此節點和節點之間無需公開身份,在系統中的每個參與的節點的隱私都是受到保護的。
④ 為什麼說區塊鏈公有鏈PoW應該仍然是最優的選擇
公有鏈:開放生態的交易網路,這層主要是為行業鏈和私有鏈提供全球交易網路。
由於私有鏈是封閉生態的存儲網路,也就是說使用傳統分布式一致性模型應該是最優的;由於聯盟行業鏈其半封閉半開放特性,使用Delegated Proof of XXX是最優的,可以考慮以傳統一致性演算法作為基礎加入拜占庭容錯/安全防護機制進行改進。
公有鏈PoW應該仍然是最優的選擇。
比特幣、瑞泰幣、萊特幣、狗狗幣採用的都是POW。
⑤ 如何學習區塊鏈技術
1、技術語言
Python和Go這兩門語言是眾多公司招聘都提到的技術語言。需要優先學習。而且這兩種語言在區塊鏈之外的技術方向也有很大的應用。比如Go用在大並發系統的後台構築,Python用於人工智慧系統構築。所以學習這兩門語言是優先考慮的問題。
2、技術框架
掌握Bitcoin、ETH和Hyperledger的一種或多種。BTC就不用說了,底層是C++寫的,大量的貨幣類項目,如萊特幣,dash,門羅,zcash等都使用比特幣的技術進行二次開發。
ETH則是區塊鏈2.0的代表,可以在ETH網路上構建各種各樣的應用類Dapp。現在大量的應用類區塊鏈項目都是使用ETH平台開發的。
Hyperledger fabric則是IBM力推的區塊鏈開發平台,主要用於聯盟鏈的開發,是目前普及度最高的聯盟鏈開發平台。
3、演算法
POW(工作量證明演算法),POS(權益證明演算法),PBFT(拜占庭容錯演算法)等都是區塊鏈中密碼學部分的重要組成,對於這些演算法有充分的了解,有利於你參加區塊鏈項目底層開發時能夠對密碼學的部分有更好的理解。
(5)區塊鏈pow拜占庭擴展閱讀:
區塊鏈技術就是一種分布式記賬技術,它的特點就是去中心化、公開透明,讓每個人都可以參與資料庫建立,而且每個建立的數據又是不可篡改的,大家都參與了,陌生人之間的信任問題也就解決了。
區塊鏈技術出現了,它是個全民參與的記賬技術,AB之間的交易信息和數據公布於眾,而且是不可篡改的,大家都知道有這個事情的發生,那麼這里就不需要什麼權威的第三方C了,或者說系統里的每一個都是充當了C的角色,這也叫做去中心化。
⑥ 區塊鏈幾大共識機制及優缺點
首先,沒有一種共識機制是完美無缺的,各共識機制都有其優缺點,有些共識機制是為解決一些特定的問題而生。
1.pow( Proof of Work)工作量證明
一句話介紹:乾的越多,收的越多。
依賴機器進行數學運算來獲取記賬權,資源消耗相比其他共識機制高、可監管性弱,同時每次達成共識需要全網共同參與運算,性能效率比較低,容錯性方面允許全網50%節點出錯。
優點:
1)演算法簡單,容易實現;
2)節點間無需交換額外的信息即可達成共識;
3)破壞系統需要投入極大的成本;
缺點:
1)浪費能源;
2)區塊的確認時間難以縮短;
3)新的區塊鏈必須找到一種不同的散列演算法,否則就會面臨比特幣的算力攻擊;
4)容易產生分叉,需要等待多個確認;
5)永遠沒有最終性,需要檢查點機制來彌補最終性;
2.POS Proof of Stake,權益證明
一句話介紹:持有越多,獲得越多。
主要思想是節點記賬權的獲得難度與節點持有的權益成反比,相對於PoW,一定程度減少了數學運算帶來的資源消耗,性能也得到了相應的提升,但依然是基於哈希運算競爭獲取記賬權的方式,可監管性弱。該共識機制容錯性和PoW相同。它是Pow的一種升級共識機制,根據每個節點所佔代幣的比例和時間,等比例的降低挖礦難度,從而加快找隨機數的速度
優點:在一定程度上縮短了共識達成的時間;不再需要大量消耗能源挖礦。
缺點:還是需要挖礦,本質上沒有解決商業應用的痛點;所有的確認都只是一個概率上的表達,而不是一個確定性的事情,理論上有可能存在其他攻擊影響。例如,以太坊的DAO攻擊事件造成以太坊硬分叉,而ETC由此事件出現,事實上證明了此次硬分叉的失敗。
DPOS與POS原理相同,只是選了一些「人大代表」。
BitShares社區首先提出了DPoS機制。
與PoS的主要區別在於節點選舉若干代理人,由代理人驗證和記賬。其合規監管、性能、資源消耗和容錯性與PoS相似。類似於董事會投票,持幣者投出一定數量的節點,代理他們進行驗證和記賬。
DPoS的工作原理為:
去中心化表示每個股東按其持股比例擁有影響力,51%股東投票的結果將是不可逆且有約束力的。其挑戰是通過及時而高效的方法達到51%批准。為達到這個目標,每個股東可以將其投票權授予一名代表。獲票數最多的前100位代表按既定時間表輪流產生區塊。每名代表分配到一個時間段來生產區塊。所有的代表將收到等同於一個平均水平的區塊所含交易費的10%作為報酬。如果一個平均水平的區塊含有100股作為交易費,一名代表將獲得1股作為報酬。
網路延遲有可能使某些代表沒能及時廣播他們的區塊,而這將導致區塊鏈分叉。然而,這不太可能發生,因為製造區塊的代表可以與製造前後區塊的代表建立直接連接。建立這種與你之後的代表(也許也包括其後的那名代表)的直接連接是為了確保你能得到報酬。
該模式可以每30秒產生一個新區塊,並且在正常的網路條件下區塊鏈分叉的可能性極其小,即使發生也可以在幾分鍾內得到解決。
成為代表:
成為一名代表,你必須在網路上注冊你的公鑰,然後分配到一個32位的特有標識符。然後該標識符會被每筆交易數據的「頭部」引用。
授權選票:
每個錢包有一個參數設置窗口,在該窗口裡用戶可以選擇一個或更多的代表,並將其分級。一經設定,用戶所做的每筆交易將把選票從「輸入代表」轉移至「輸出代表」。一般情況下,用戶不會創建特別以投票為目的的交易,因為那將耗費他們一筆交易費。但在緊急情況下,某些用戶可能覺得通過支付費用這一更積極的方式來改變他們的投票是值得的。
保持代表誠實:
每個錢包將顯示一個狀態指示器,讓用戶知道他們的代表表現如何。如果他們錯過了太多的區塊,那麼系統將會推薦用戶去換一個新的代表。如果任何代表被發現簽發了一個無效的區塊,那麼所有標准錢包將在每個錢包進行更多交易前要求選出一個新代表。
抵抗攻擊:
在抵抗攻擊上,因為前100名代表所獲得的權力權是相同的,每名代表都有一份相等的投票權。因此,無法通過獲得超過1%的選票而將權力集中到一個單一代表上。因為只有100名代表,可以想像一個攻擊者對每名輪到生產區塊的代表依次進行拒絕服務攻擊。幸運的是,由於事實上每名代表的標識是其公鑰而非IP地址,這種特定攻擊的威脅很容易被減輕。這將使確定DDOS攻擊目標更為困難。而代表之間的潛在直接連接,將使妨礙他們生產區塊變得更為困難。
優點:大幅縮小參與驗證和記賬節點的數量,可以達到秒級的共識驗證。
缺點:整個共識機制還是依賴於代幣,很多商業應用是不需要代幣存在的。
3.PBFT :Practical Byzantine Fault Tolerance,實用拜占庭容錯
介紹:在保證活性和安全性(liveness & safety)的前提下提供了(n-1)/3的容錯性。
在分布式計算上,不同的計算機透過訊息交換,嘗試達成共識;但有時候,系統上協調計算機(Coordinator / Commander)或成員計算機 (Member /Lieutanent)可能因系統錯誤並交換錯的訊息,導致影響最終的系統一致性。
拜占庭將軍問題就根據錯誤計算機的數量,尋找可能的解決辦法,這無法找到一個絕對的答案,但只可以用來驗證一個機制的有效程度。
而拜占庭問題的可能解決方法為:
在 N ≥ 3F + 1 的情況下一致性是可能解決。其中,N為計算機總數,F為有問題計算機總數。信息在計算機間互相交換後,各計算機列出所有得到的信息,以大多數的結果作為解決辦法。
1)系統運轉可以脫離幣的存在,pbft演算法共識各節點由業務的參與方或者監管方組成,安全性與穩定性由業務相關方保證。
2)共識的時延大約在2~5秒鍾,基本達到商用實時處理的要求。
3)共識效率高,可滿足高頻交易量的需求。
缺點:
1)當有1/3或以上記賬人停止工作後,系統將無法提供服務;
2)當有1/3或以上記賬人聯合作惡,且其它所有的記賬人被恰好分割為兩個網路孤島時,惡意記賬人可以使系統出現分叉,但是會留下密碼學證據
下面說兩個國產的吧~
4.dBFT: delegated BFT 授權拜占庭容錯演算法
介紹:小蟻採用的dBFT機制,是由權益來選出記賬人,然後記賬人之間通過拜占庭容錯演算法來達成共識。
此演算法在PBFT基礎上進行了以下改進:
將C/S架構的請求響應模式,改進為適合P2P網路的對等節點模式;
將靜態的共識參與節點改進為可動態進入、退出的動態共識參與節點;
為共識參與節點的產生設計了一套基於持有權益比例的投票機制,通過投票決定共識參與節點(記賬節點);
在區塊鏈中引入數字證書,解決了投票中對記賬節點真實身份的認證問題。
優點:
1)專業化的記賬人;
2)可以容忍任何類型的錯誤;
3)記賬由多人協同完成,每一個區塊都有最終性,不會分叉;
4)演算法的可靠性有嚴格的數學證明;
缺點:
1)當有1/3或以上記賬人停止工作後,系統將無法提供服務;
2)當有1/3或以上記賬人聯合作惡,且其它所有的記賬人被恰好分割為兩個網路孤島時,惡意記賬人可以使系統出現分叉,但是會留下密碼學證據;
以上總結來說,dBFT機制最核心的一點,就是最大限度地確保系統的最終性,使區塊鏈能夠適用於真正的金融應用場景。
5.POOL驗證池
基於傳統的分布式一致性技術,加上數據驗證機制。
優點:不需要代幣也可以工作,在成熟的分布式一致性演算法(Pasox、Raft)基礎上,實現秒級共識驗證。
缺點:去中心化程度不如bictoin;更適合多方參與的多中心商業模式。
⑦ 區塊鏈公鏈都有哪些
區塊鏈有公有區塊鏈、聯合(行業)區塊鏈、私有區塊鏈。公鏈有點對點電子現金系統:比特幣、智能合約和去中心化應用平台:以太坊。
區塊鏈為分布式數據存儲、點對點傳輸、共識機制、加密演算法等計算機技術的新型應用模式。
區塊鏈(Blockchain),為比特幣的一個重要概念,它本質上是一個去中心化的資料庫,同時作為比特幣的底層技術,是一串使用密碼學方法相關聯產生的數據塊,每一個數據塊中包含了一批次比特幣網路交易的信息,用於驗證其信息的有效性(防偽)和生成下一個區塊。
(7)區塊鏈pow拜占庭擴展閱讀
根據區塊鏈網路中心化程度的不同,分化出3種不同應用場景下的區塊鏈:
1、全網公開,無用戶授權機制的區塊鏈,稱為公有鏈;
2、允許授權的節點加人網路,可根據許可權查看信息,往往被用於機構間的區塊鏈,稱為聯盟鏈或行業鏈;
3、所有網路中的節點都掌握在一家機構手中,稱為私有鏈。
聯盟鏈和私有鏈也統稱為許可鏈,公有鏈稱為非許可鏈。
區塊鏈特徵
1、去中心化。區塊鏈技術不依賴額外的第三方管理機構或硬體設施,沒有中心管制,除了自成一體的區塊鏈本身,通過分布式核算和存儲,各個節點實現了信息自我驗證、傳遞和管理。去中心化是區塊鏈最突出最本質的特徵。
2、開放性。區塊鏈技術基礎是開源的,除了交易各方的私有信息被加密外,區塊鏈的數據對所有人開放,任何人都可以通過公開的介面查詢區塊鏈數據和開發相關應用,因此整個系統信息高度透明。
3、獨立性。基於協商一致的規范和協議(類似比特幣採用的哈希演算法等各種數學演算法),整個區塊鏈系統不依賴其他第三方,所有節點能夠在系統內自動安全地驗證、交換數據,不需要任何人為的干預。
4、安全性。只要不能掌控全部數據節點的51%,就無法肆意操控修改網路數據,這使區塊鏈本身變得相對安全,避免了主觀人為的數據變更。
5、匿名性。除非有法律規范要求,單從技術上來講,各區塊節點的身份信息不需要公開或驗證,信息傳遞可以匿名進行。
⑧ 區塊鏈是什麼意思,區塊鏈在跨境支付方面有什麼應用
為什麼說互聯網時代將要結束,區塊鏈時代即將來臨?
區塊鏈一旦發展起來,將會迸發更多的創新。作為區塊鏈的第一款產品的比特幣自從誕生以後,就相繼誕生許多創新。比如小額跨境支付,記錄貨幣間的轉賬交易,記錄各種股票,登記房屋產權,記錄程序代碼等
蒸汽時代解放了社會生產力,電氣時代盤活了社會協作能力,互聯網時代把世界聯系在一起,而區塊鏈時代,將讓我們真正實現自由。
⑨ 理論上區塊鏈怎麼解決拜占庭將軍問題
拜占庭將軍問題(以下簡稱「共識問題」)的正式表述是:如何在一個不基於信任的分布式網路中就信息達成共識?這個表述聽起來有些晦澀,但其本質並不復雜,下面的例子與共識問題雖然並不完全一致,但卻有助於我們的理解[9]。
想像一下在遙遠的拜占庭時代,有一個富饒的城邦,金銀珠寶綾羅綢緞應有盡有,它的領主哆啦A夢獨享著這一切奢華與榮耀。而在城邦的外圍,四位拜占庭將軍大雄、胖虎、小夫和靜香都覬覦著哆啦A夢的財富,於是他們決定聯手攻佔哆啦A夢的城邦。根據雙方的實力對比,必須有超過半數的將軍同時發起進攻方能克敵制勝,因此獲勝條件就是四人中至少三個人可以就進攻時間達成一致。那麼四位將軍的勝算有多少呢?
這個問題的答案就要取決於四個人的合作方式了,如果是集中式系統,有一個盟主,比如胖虎(相當於中央伺服器),那麼他們的勝利是毫無懸念的,因為就進攻時間達成一致非常簡單,只要胖虎召集大雄、小夫和靜香開個會討論一下就可以了,即使大家意見有分歧胖虎也可以在最後予以定奪。下面讓我們回到拜占庭將軍問題的假設里,在不基於信任的分布式網路中,四位將軍的勝算又如何呢?
?
首先由於四位將軍之間缺乏信任,因此聚到小黑屋裡開個密謀會的可能性被排除了(一旦在小黑屋裡被胖虎綁架了怎麼辦?);其次由於沒有盟主,四個人的意見都會被同等的看重。在這種情況下,四位將軍只能通過信使在各自營地之間傳遞消息,來商定進攻時間了。比如大雄覺得早上6點是發動進攻的好時機,他就會派信使將自己的意見告訴胖虎、小夫和靜香,與此同時,胖虎可能認為晚上9點發動突襲更好,小夫更喜歡下午3點出擊,而靜香希望是上午10點,他們三人也會在同一時間派出自己的信使。這樣一來,在第一輪通信結束後,四位將軍每個人都有了四個可供選擇的進攻時間,他們各自要在下一輪通信中把自己選定的時間告知另外三人。由於四個人的決策都是獨立做出的,因此最終的選擇結果就有256種可能,而只有當三人以上都恰好選擇了同一時間的時候,共識才被達成,而這樣的結果才64種,也就是說達成共識的概率僅為1/4。這還只是四位將軍的情況,如果將軍的人數是10人,100人,1000人呢?我們稍加計算就可以發現隨著人數的增加,達成共識的希望會變得越來越渺茫。
把上面例子中的將軍換成計算機網路中的節點,把信使換成節點之間的通信,把進攻時間換成需要達成共識的信息,你就可以理解共識問題所描述的困境了。達成共識的能力對於一個支付系統來說重要性不言而喻,如果你給家裡匯了一筆錢買車,第二天去銀行核實的時候櫃台告訴你「關於你匯了多少錢的問題,我們的系統里有三個版本的記錄」,這樣的銀行你顯然是不敢把錢存進去的。在比特幣出現之前共識問題是很難被完美解決的,要保證達成共識就需要採用集中式系統(除非節點滿足特定條件),要想去中心化共識就無法保證。那麼區塊鏈技術又是如何解決這一難題的呢?(關注公眾號weoption,回復「區塊鏈」,可查看全文。)