區塊鏈技術指南女巫攻擊
⑴ pos機制解決了pow的問題
pos機制解決了pow的問題:
基於權益證明(PoS),通常將金錢作為股權使用。
POA指的是身份的使用。這背後的想法是,人們會注意自己的名聲,因此會被勸阻不要惡意行事。
POW 工作量證明支持不可信的分布式共識,這對於加密貨幣等行業非常重要。它涉及挖掘過程,最好描述為執行計算以驗證交易的合法性和創建新貨幣。
第一個完成計算的礦工將獲得一枚新代幣,並將區塊添加到鏈中。POS 權益證明的定義是在決定誰將創建新塊時使用權益關系。這個權益的取決於每個人持有的代幣數量。
持有更多代幣的人更有可能被選為下一個塊的驗證器。獎勵來自交易費用,因為在這個過程中不會產生新的代幣。
pos是公鏈中的共識演算法,作為pow的一種替換。pow是保證比特幣,當前以太坊和許多區塊鏈安全的一種機制,但是pow演算法在挖礦過程中,因為破壞環境和浪費電而受到指責,pos試圖通過一種不同的機製取代挖礦的概念,從而解決這些問題。
ps機制可以被描述成一種虛擬挖礦,鑒於pow主要依賴於計算硬體的稀缺性,來防止女巫攻擊。在pow中,一個用戶有可能用一千美元來買計算機,加入網路來挖礦,產生新區塊,從而得到獎勵。在pos中,用戶可以拿到一千美元,買到等值的代幣,把這些代幣當做押金放在pos機制之中,只要用戶就有機會產生,這樣用戶可以得到獎勵。
pos演算法如下,存在一個持幣人的集合,他們把手中的代幣放入pos機制中,這樣他們就變成驗證者。
⑵ 女巫攻擊與雙花攻擊
女巫攻擊 的名字源於1973年由小說《Sybil》改編的同名電影。電影中的女主人公Sybil Dorsett患有分離性身份認同障礙,本身兼有16種人格。
區塊鏈底層是 P2P網路 。網路中各個節點可以隨時加入或退出,為了維持網路的有效性,一般一份數據常常需要部署在若干個分布式節點上。如果一個惡意節點偽裝有多個身份就存在可獲得全部數據的幾率,下面我打個比方:
假設神龍造出了七顆龍珠,並且要將它們分別投放到地球的各個角落。於是神龍昭告天下,讓每個洲來一個人領取龍珠。此時,精通喬裝易容術的我分別假扮出七個不同地域的人來神龍這拿到了龍珠。本來神龍將龍珠放到世界不同的地方基配圓就是為了平衡各地方力量,但是由於我偽造了身份,成功地拿到了全部龍珠,控制了地球。
以上比喻就是女巫攻擊的本質體現。
雙花攻擊是大多區塊鏈加密數字貨幣都要面對的一種攻擊手段。顧名思義,雙花攻擊就是一筆有效的錢被先後花了兩次。
雙花攻擊的可行性完全是由於區塊鏈的共識機制導致。拿比特幣舉例,由於比特幣的POW共識機制屬於最終一致性共識,一筆交易從發布到全網所有節點都達成統一確認需要一定時間,而攻擊者就是利用這個時間間隙進行攻擊。舉個生活中的例子:
假如銀行A有兩個支行B和C。但是,這個銀行的賬目系統比較低效,支行B和C每過1個小時才會去主行A那裡同步賬本。我在主行A中存了100塊錢,過了一個小時後支行B和C同步了賬本,於是我在B和C中都可以查到我擁有100塊錢。之後,我通過支行B用我的賬戶買了100塊錢的好吃的,隨即又通過支行C用我的賬戶賣唯買了100塊錢好玩的。由於支行B和C之間做不到賬目的隨時同步,所以支行C在我去買好玩的時候依然認為我擁搏塌有100塊錢。
以上就是雙花攻擊,並且「雙花」永遠是一種 流通貨幣 所要解決的首要問題。
⑶ 女科學家段斯斯:在區塊鏈「江湖」背後「雙手互搏」
段斯斯在清華大學高等研究院。(受訪者供圖)
段斯斯在清華大學高等研究院擔任研究員。她工作的地方擺放的東西很少,裝備不過是三台電腦。奇崛險怪的攻防進退,只在腦海里醞釀,在鍵盤上推演,找不到任何「硝煙」的痕跡。
她的研究方向是「拜占庭容錯演算法」,旨在防範分布式系統內各節點因「敵人破壞」導致的網路崩潰。形象地說,她在進行一場高智商的「雙手互博」。第一步,假想一個可能的漏洞或「敵人」;第二步,找到讓「敵人」失效的辦法;第三步,讓同行們相信她解決的是個「真問題」。
段斯斯這樣定義自己:介於科學家與工程師之間。她不像網路工程師那樣直接同黑客「鬥法」,她用數學和邏輯的力量設下讓「敵人」無能為力的規則。
「我們中間有匪。」段斯斯用「殺人 游戲 」用語比喻她研究的「拜占庭將軍問題」。「匪傳遞假消息,誤導好人的判斷,仗自然就打輸了。我要做的是制定一個協議,確保即便有匪,好人也不會輸。」
上世紀八十年代初提出「拜占庭將軍問題」時,還沒人知道什麼是區塊鏈。正是對這一問題不斷地務虛研究,才撐起如今的區塊鏈技術。現在,中國已把區塊鏈視作核心技術自主創新的重要突破口。
一開始,段斯斯選擇的方向有點冷門,不明就裡的人以為那是在解奧數題,她也遭遇過科學期刊的拒稿。區塊鏈興起後,人們看到網路安全協議的重要性,她的學術成就才被更多人看到。
今年1月,段斯斯入選《麻省理工 科技 評論》2021年中國區「35歲以下 科技 創新35人」,獲獎理由是她提出多個業界指標性拜占庭容錯協議,在分布式系統、區塊鏈和應用密碼學領域取得突出成果。
搭上新興技術的快車,段斯斯說自己挺走運的,可運氣的解釋力畢竟有限。她碩博階段本就不多的女同學,多數沒有繼續搞學術。支持她不放棄的原因,是「這挺有意思的」。
讓段斯斯覺得有意思的正是她自己想出來的各種刁鑽問題。在她看來,發現問題有時比找到答案更重要。
「女巫攻擊」「硬分叉」「梅克爾樹」「非對稱加密」……被要求科普這些區塊鏈圈的「黑話」時,段斯斯就像在智力競賽節目中按下搶答器,思維很快,語速也很快,且很快就把問題說明白了。
段斯斯本科就讀於香港大學電機電子工程系,2014年獲美國加州大學戴維斯分校計算機博士學位,畢業後曾就職於美國橡樹嶺國家實驗室和馬里蘭大學,2020年舉家回國。
「我覺得國內發展快,工作節奏也快,我比較嚮往發展這一點,尤其在計算機領域,盡管會比較累。」她說。
年輕有為、事業有趣、家庭圓滿,周圍人說她是「人生贏家」,她卻認為自己的生活「一地雞毛」。她是兩個男孩兒的媽媽,一個6歲,一個4歲。她曾經一手抱娃,一手寫代碼。
她打小不服輸,想做的事就停不下來,這也反映在工作風格中。「別人寫代碼可以零敲碎打,可我習慣一口氣寫下去。」
解決一個段斯斯式的問題要寫上萬行代碼,至少得花個把月工夫。現在這位「帶娃科學家」最渴望的是大塊的時間。「一旦被打斷,再回來就忘記自己當時是怎麼想的了。」她說。
段斯斯分享了一條有關「時間管理」的經驗:如果你遇到5分鍾之內可以解決的事,那麼現在就解決它,拖到後面做肯定不止5分鍾。
⑷ 一文讀懂混合型智能合約:如何結合鏈上與鏈下計算資源
混合型智能合約包含鏈上運行的代碼和鏈下數據、計算資源,預言機可為其提供喂價、儲備金證明、可擴展計算等功能。
撰文:Chainlink
混合型智能合約包含區塊鏈上運行的代碼以及區塊鏈下的數據和計算資源,這些資源由去中心化預言機網路傳輸至鏈上。混合型智能合約可以協調復雜的經濟和 社會 活動,具有區塊鏈防篡改的特質,並且可以安全地接入鏈下預言機服務,實現各種創新功能,如可擴展性、保密性、公允排序以及接入任何鏈下數據源或系統。
本文將明確定義混合型智能合約在區塊鏈信任模式中的作用,並闡述 Chainlink 預言機為混合型智能合約提供的各種去中心化服務,以及這一發展將如何催生出新一代的混合型智能合約應用。這些連通了鏈下資源的混合型智能合約將在未來席捲幾乎所有主流行業,並改變整個 社會 的合作方式。
預言機如何擴展區塊鏈上的合作方式
區塊鏈在本質上是促進可信合作的計算基礎架構,這是它的關鍵功能。參與者有了信任,才會堅定地認為合作關系是可靠、真實且有效的。在合作中建立信任最常見的方式就是簽署合約。合約定義了各方的法律和商業義務,以及他們行為會受到的獎勵和懲罰。然而,如今的合約義務執行機制卻漏洞百出。甚至一些情況下,某個參與者會擁有絕對優勢,比如操縱和影響合約執行機制,比對手方得知更多消息,或擁有更多時間和資本延長仲裁過程。因此,現在的合約系統變成了:你必須相信對手方的品牌背書,才能信任你們之間的合作關系是牢靠的。
區塊鏈技術的出現使合作從品牌背書轉向了基於演算法的信任(math-based trust)。合約的存放、執行和託管都轉移到了去中心化網路中運行的代碼邏輯中,個人完全無法干預和篡改。區塊鏈就像一台沒有聯網的計算機,可信度非常高,因為它是一個封閉的環境,並且只能實現幾種容易執行的功能,比如在一個封閉賬本中的多個地址之間轉移通證。這種設置是有意而為。雖然區塊鏈的封閉性和功能的單一性為它帶來了防篡改性和高度的確定性(這也是區塊鏈最有價值的地方),但同時也排除了任何需要接入鏈下數據、計算或功能的合作方式。
由於用戶希望擴展區塊鏈上可行的合作方式,因此預言機以及混合型智能合約相繼出現。預言機為區塊鏈接入外部世界提供了安全的門戶,讓智能合約應用可以驗證外部事件,基於外部系統觸發操作,並完成在鏈上無法實現的計算任務。
Chainlink2.0 白皮書中提到,去中心化預言機網路(DONs)極大擴展了智能合約可以實現的鏈上合作方式。去中心化金融(DeFi)的快速崛起就是一個很好的例子。Chainlink 去中心化預言機網路將金融市場數據傳輸到區塊鏈,支持 Aave 貨幣市場、Synthetix 衍生品平台、dYdX 杠桿交易市場以及 Ampleforth 演算法穩定幣等各種混合型智能合約協議,因此加速了 DeFi 的發展。
混合型智能合約的構成要素
混合型智能合約應用包含兩個部分,即:1)智能合約——這是專門在區塊鏈上運行的代碼;2)去中心化的預言機網路——這是為智能合約提供的安全鏈下服務。這兩個模塊安全地無縫交互,共同形成了混合型智能合約應用。最後,鏈上代碼通過許多獨特的方式得到增強,並且激活了一系列全新的應用場景,突破了之前鏈上代碼在技術、法律或金融等方面的限制。
混合型智能合約將兩個完全不同的計算環境同步在一起,打造出區塊鏈或預言機網路單獨無法實現的應用功能,並且將這兩個環境中獨一無二的優勢結合在一起。鏈上代碼在極其安全且功能受限的區塊鏈環境中運行,攻擊表面較小,因此用戶在執行和儲存時可以獲得極高的確定性,代碼一定會嚴格執行,結果將被永遠儲存在鏈上,不可篡改。而 DON 則在鏈下運行,因此可以更靈活地實現更多功能並訪問更多數據。
值得注意的是,DON 也具有非常高的防篡改性和可靠性,可以與智能合約相媲美,但不同的是,DON 是在封閉的鏈下環境中運行,並且採用了多種安全機制。每個 DON 都會為一個應用提供定製化的去中心化服務,也就是說同一條區塊鏈上的其他智能合約與這個 DON 的性能沒有任何關聯,而且保障所有智能合約安全的底層區塊鏈共識機制也不會有任何風險。DON 作為獨立的服務,不僅在安全上具有優勢,而且還兼具靈活性,可以驗證並計算更復雜且開放式的鏈下數據。
比如,一些智能合約選擇接入 DON 的標準是去中心化水平以及加密經濟安全性,而另一些智能合約則會選擇節點聲譽高且採用了高級加密技術展開可驗證隱私計算的 DON。在這些異構網路中,可以並行幾千個或甚至幾百萬個 DON,每個 DON 之間不會相互依賴,並可以為具體應用提供專門的去中心化服務。同一個 DON 的用戶也可以共攤服務成本(如:目前眾多 DeFi 協議共同使用 Chainlink ETH/USD 喂價預言機,並分攤成本)。這個框架非常重要,可以同時為所有區塊鏈和應用提供服務,比如為高速區塊鏈上運行的應用接入鏈下數據並保障隱私。另外,去中心化程度較高的區塊鏈上的應用也需要接入可擴展的計算資源。
混合型智能合約如何結合鏈上和鏈下計算資源
為了進一步了解鏈上和鏈下模塊的差異,我們先為每個模塊明確定義:
鏈上模塊:區塊鏈
維護賬本,可靠地託管用戶資產,並與私鑰交互。
處理用戶之間不可逆的轉賬交易,執行最終結算。
解決分歧,建立安全護欄,保障 DON 的鏈下服務正常運行。
鏈下:去中心化的預言機網路
從鏈下 API 安全地獲取和驗證數據,並傳輸到區塊鏈和 layer-2 網路中的智能合約。
為區塊鏈和 layer-2 網路中的智能合約展開各種計算任務。
將智能合約輸出的數據傳輸至其他區塊鏈或鏈下系統。
混合型智能合約結合了鏈上代碼和鏈下去中心化預言機網路,實現更高級的區塊鏈應用
Chainlink 去中心化服務為混合型智能合約保駕護航
定義了混合型智能合約之後,我們來討論一下 Chainlink DON 為智能合約提供的各種去中心化服務。這些去中心化服務可以大致分為兩類,即:鏈下數據和鏈下計算。
鏈下數據
DON 可以在各種鏈下數據和區塊鏈之間搭起連通橋梁,為混合型智能合約輸入所需數據。以下是初步可以訪問的數據類型:
喂價——從幾百家交易平台聚合的資產價格數據,數據基於交易量加權計算,並剔除了異常值和虛假交易。
儲備金證明——關於通證資產當前儲備金余額的最新數據,比如 WBTC 的比特幣抵押資產,或 TUSD 的美元抵押資產。
任何 API——來自受密碼保護 API 介面的付費數據,數據類型涵蓋天氣預報、 體育 比賽結果、企業後台數據以及物聯網數據。
區塊鏈中間件——區塊鏈抽象層,使鏈下系統可以接入任何區塊鏈網路中的智能合約,雙向讀寫數據。
鏈下計算
DON 可以代表智能合約執行一系列鏈下計算,幫助智能合約獲取某些數據,或者打造原生區塊鏈上無法實現的功能,比如隱私保護、可擴展性以及公允排序。以下是目前已經實現和未來即將實現的部分 DON 計算功能:
Keeper 網路——指定期維護智能合約的自動化 bot,在適當的時間點啟動合約,執行關鍵的鏈上功能。
鏈下報告(OCR)——以可擴展的方式聚合 DON 預言機節點響應的數據,然後將聚合數據在單筆交易中發送至鏈上,以降低鏈上成本。
可擴展的計算——為智能合約執行實現高吞吐量和低成本,採用現成的 layer-2 技術定期與鏈上同步。
可驗證隨機函數(VRF)——安全地生成可驗證的隨機數,採用加密證明技術,證明過程的完整性。
數據和計算隱私——保護隱私的預言機計算功能採用零知識證明(DECO)、可信硬體(Town Crier)、安全的多方計算以及特定的 DON 委員會制度,將敏感數據保密地傳輸至智能合約。
公允排序服務(FSS)——根據預定義的公平原則開展去中心化的交易排序,避免搶跑攻擊和礦工可提取價值(MEV)。
鏈上合約隱私——將合約邏輯與結算結果解綁,保護智能合約交易隱私,比如通過 DON 的 Mixicles 功能在兩方之間傳輸數據。
Chainlink 去中心化的預言機網路提供一系列豐富的服務,拓展了混合型智能合約應用的功能
混合型智能合約對全球各個行業帶來的影響
DON 可以實現高級的混合型智能合約框架,將不同系統和區塊鏈上的各個獨立實體無縫連接,實現安全和通用的自動化交互。Chainlink 為開發者克服了智能合約的技術壁壘,開發者可以利用區塊鏈的高確定性,並通過 DON 實現外部連接、隱私保障、可擴展性以及公允排序等各種關鍵功能。混合型智能合約不僅為網路中各個參與者創造了更可信和高效的合作空間,還將區塊鏈網路接入傳統鏈下基礎架構,並且無需在後端做任何修改。
DON 將為眾多智能合約應用提供所需的隱私保障和可擴展性,並涵蓋大多數企業應用場景和眾多 游戲 和金融應用,為其實現高吞吐量和實時決策。混合型智能合約還將激活一系列前所未有的全新應用場景,比如通過可驗證隨機數和去中心化交易排序實現基於演算法的經濟公平性和透明性。
已經感受到,或即將感受到混合型智能合約影響的部分主流行業:
身份信息——身份信息可自動驗證,並保護信息隱私。智能合約可以定義所需的個人信息以及所需操作。DON 對這些數據展開計算,驗證用戶個人信息,並同時保護信息不透露給對手方,並且不會儲存在鏈下系統。
金融——抗審查的開放式金融市場,訪問不設門檻,信息透明。智能合約可以為買家和賣家定義交易規則,DON 可以使用鏈下數據定價和結算,並實現額外的功能,如:隱藏交易、KYC 驗證、公允交易排序以及高速鏈下處理等。
供應鏈——在共享賬本上運行的多方交易協議,將產品線數字化,基於驗證過的數據跨多個系統進行自動化操作。智能合約可以定義合約義務、支付條款和懲罰機制。DON 可以利用隱私計算和物聯網數據追蹤運輸信息、監控質量控制、驗證客戶身份並觸發結算付款。
保險——基於預定義事件建立雙邊預測市場,並在此基礎上創建參數型保險。智能合約可以定義保費和理賠流程,DON 可以將合約接入鏈下數據,獲得報價並處理理賠申請。DON 還可以開展風險評估計算,從雲平台等數據源獲取復雜的風險評估結果,並以保密的方式驗證用戶身份。
游戲 ——自動發放 游戲 獎勵,用戶可以通過 NFT 完全擁有 游戲 內資產,並提供權威證明,證明所有參與者都有同樣的獲勝概率。智能合約可以定義 游戲 規則和獎勵發放模式,DON 可以提供防篡改的隨機數,保障 游戲 的公平性可以得到驗證,並且獎勵發放過程是公平的。 游戲 dApp 接入 DON 後,還可以接入增強現實的物聯網感測器等一系列鏈下數據源,並在鏈下處理部分 游戲 功能,以提高 游戲 性能。
市場營銷——營銷活動基於各種參數和指標自動實時發放獎勵。智能合約可以定義階梯式的獎勵發放模式,並設置具體的里程碑目標。DON 可以驗證目標是否達成,並對客戶數據和市場趨勢展開保密計算,以更有效地評估營銷活動。
治理——分布式社區可以安全公平地管理共享系統和資金池。智能合約可以定義完整的治理框架,DON 可以提供鏈下數據和計算資源,觸發利潤分發、費用分攤和身份認證等各種操作,有效抵禦女巫攻擊,驗證各成員的參與度,或甚至實現自動化的決策流程。
最終,DON 可以提供所有無法在鏈上實現的服務,並為現有數據和系統帶來更強大的加密安全保障,以啟動鏈下服務生態。混合型智能合約基礎架構可以豐富去中心化系統的合作方式,讓各個區塊鏈和非區塊鏈基礎設施可以安全可靠地無縫交互,並保障可擴展性、保密性、定製化和通用連接性。雖然目前加密貨幣資產規模已達數萬億美元,且 DeFi 經濟規模逼近 1000 億美元,但是區塊鏈生態仍處於發展初期,還有巨大潛力未被挖掘,因此混合型智能合約和 Chainlink 去中心化預言機網路擁有巨大的應用空間和潛力。
如果你想立刻著手開發混合型智能合約應用,並需要接入鏈下數據或計算資源,請查看我們的開發者文檔,你也可以在 Discord 頻道詢問技術問題或與 Chainlink 專家透過電話溝通。
⑸ 知鏈區塊鏈金融應用實踐平台成績怎麼算
1. 工作量證明(PoW)
中本聰在2009年提出的比特幣(Bitcoin)是區塊鏈技術最早的應用,其採用PoW作為共識演算法,其核心思想是節點間通過哈希算力的競爭來獲取記賬權和比特幣獎勵。PoW中,不同節點根據特定信息競爭計算一個數學問題的解,這個數學問題很難求解,但卻容易對結果進行驗證,最先解決這個數學問題的節點可以創建下一個區塊並獲得一定數量的幣獎勵。中本聰在比特幣中採用了HashCash[4]機制設計這一數學問題。本節將以比特幣採用的PoW演算法為例進行說明,PoW的共識步驟如下:
節點收集上一個區塊產生後全網待確認的交易,將符合條件的交易記入交易內存池,然後更新並計算內存池中交易的Merkle根的值,並將其寫入區塊頭部;
在區塊頭部填寫如表1.1所示的區塊版本號、前一區塊的哈希值、時間戳、當前目標哈希值和隨機數等信息;
表1.1 區塊頭部信息
隨機數nonce在0到232之間取值,對區塊頭部信息進行哈希計算,當哈希值小於或等於目標值時,打包並廣播該區塊,待其他節點驗證後完成記賬;
一定時間內如果無法計算出符合要求的哈希值,則重復步驟2。如果計算過程中有其他節點完成了計算,則從步驟1重新開始。
比特幣產生區塊的平均時間為10分鍾,想要維持這一速度,就需要根據當前全網的計算能力對目標值(難度)進行調整[5]。難度是對計算產生符合要求的區塊困難程度的描述,在計算同一高度區塊時,所有節點的難度都是相同的,這也保證了挖礦的公平性。難度與目標值的關系為:
難度值=最大目標值/當前目標值 (1.1)
其中最大目標值和當前目標值都是256位長度,最大目標值是難度為1時的目標值,即2224。假設當前難度為,算力為,當前目標值為,發現新區塊的平均計算時間為,則
根據比特幣的設計,每產生2016個區塊後(約2周)系統會調整一次當前目標值。節點根據前2016個區塊的實際生產時間,由公式(1.4)計算出調整後的難度值,如果實際時間生產小於2周,增大難度值;如果實際時間生產大於2周,則減小難度值。根據最長鏈原則,在不需要節點同步難度信息的情況下,所有節點在一定時間後會得到相同的難度值。
在使用PoW的區塊鏈中,因為網路延遲等原因,當同一高度的兩個區塊產生的時間接近時,可能會產生分叉。即不同的礦工都計算出了符合要求的某一高度的區塊,並得到與其相近節點的確認,全網節點會根據收到區塊的時間,在先收到的區塊基礎上繼續挖礦。這種情況下,哪個區塊的後續區塊先出現,其長度會變得更長,這個區塊就被包括進主鏈,在非主鏈上挖礦的節點會切換到主鏈繼續挖礦。
PoW共識演算法以算力作為競爭記賬權的基礎,以工作量作為安全性的保障,所有礦工都遵循最長鏈原則。新產生的區塊包含前一個區塊的哈希值,現存的所有區塊的形成了一條鏈,鏈的長度與工作量成正比,所有的節點均信任最長的區塊鏈。如果當某一組織掌握了足夠的算力,就可以針對比特幣網路發起攻擊。當攻擊者擁有足夠的算力時,能夠最先計算出最新的區塊,從而掌握最長鏈。此時比特幣主鏈上的區塊大部分由其生成,他可以故意拒絕某些交易的確認和進行雙花攻擊,這會對比特幣網路的可信性造成影響,但這一行為同樣會給攻擊者帶來損失。通過求解一維隨機遊走問題,可以獲得惡意節點攻擊成功的概率和算力之間的關系:
圖1.1 攻擊者算力與攻擊成功概率
2. 權益證明(PoS)
隨著參與比特幣挖礦的人越來越多,PoW的許多問題逐漸顯現,例如隨著算力競爭迅速加劇,獲取代幣需要消耗的能源大量增加,記賬權也逐漸向聚集了大量算力的「礦池」集中[6-9]。為此,研究者嘗試採用新的機製取代工作量證明。PoS的概念在最早的比特幣項目中曾被提及,但由於穩健性等原因沒被使用。PoS最早的應用是點點幣(PPCoin),PoS提出了幣齡的概念,幣齡是持有的代幣與持有時間乘積的累加,計算如公式(1.4)所示。利用幣齡競爭取代算力競爭,使區塊鏈的證明不再僅僅依靠工作量,有效地解決了PoW的資源浪費問題。
其中持有時間為某個幣距離最近一次在網路上交易的時間,每個節點持有的幣齡越長,則其在網路中權益越多,同時幣的持有人還會根據幣齡來獲得一定的收益。點點幣的設計中,沒有完全脫離工作量證明,PoS機制的記賬權的獲得同樣需要進行簡單的哈希計算:
其中proofhash是由權重因子、未消費的產出值和當前時間的模糊和得到的哈希值,同時對每個節點的算力進行了限制,可見幣齡與計算的難度成反比。在PoS中,區塊鏈的安全性隨著區塊鏈的價值增加而增加,對區塊鏈的攻擊需要攻擊者積攢大量的幣齡,也就是需要對大量數字貨幣持有足夠長的時間,這也大大增加了攻擊的難度。與PoW相比,採用PoS的區塊鏈系統可能會面對長程攻擊(Long Range Attack)和無利害攻擊(Nothing at Stake)。
除了點點幣,有許多幣也使用了PoS,但在記賬權的分配上有著不同的方法。例如,未來幣(Nxt)和黑幣(BlackCion)結合節點所擁有的權益,使用隨機演算法分配記賬權。以太坊也在逐步採用PoS代替PoW。
3. 委託權益證明(DPoS)
比特幣設計之初,希望所有挖礦的參與者使用CPU進行計算,算力與節點匹配,每一個節點都有足夠的機會參與到區塊鏈的決策當中。隨著技術的發展,使用GPU、FPGA、ASIC等技術的礦機大量出現,算力集中於擁有大量礦機的參與者手中,而普通礦工參與的機會大大減小。
採用DPoS的區塊鏈中,每一個節點都可以根據其擁有的股份權益投票選取代表,整個網路中參與競選並獲得選票最多的n個節點獲得記賬權,按照預先決定的順序依次生產區塊並因此獲得一定的獎勵。競選成功的代表節點需要繳納一定數量的保證金,而且必須保證在線的時間,如果某時刻應該產生區塊的節點沒有履行職責,他將會被取消代表資格,系統將繼續投票選出一個新的代表來取代他。
DPoS中的所有節點都可以自主選擇投票的對象,選舉產生的代表按順序記賬,與PoW及PoS相比節省了計算資源,而且共識節點只有確定的有限個,效率也得到了提升。而且每個參與節點都擁有投票的權利,當網路中的節點足夠多時,DPoS的安全性和去中心化也得到了保證。
4. 實用拜占庭容錯演算法(PBFT)
在PBFT演算法中,所有節點都在相同的配置下運行,且有一個主節點,其他節點作為備份節點。主節點負責對客戶端的請求進行排序,按順序發送給備份節點。存在視圖(View)的概念,在每個視圖中,所有節點正常按照處理消息。但當備份節點檢查到主節點出現異常,就會觸發視圖變換(View Change)機制更換下一編號的節點為主節點,進入新的視圖。PBFT中客戶端發出請求到收到答復的主要流程如圖4.1所示[10] [11],伺服器之間交換信息3次,整個過程包含以下五個階段:
圖4.1 PBFT執行流程
目前以PBFT為代表的拜占庭容錯演算法被許多區塊鏈項目所使用。在聯盟鏈中,PBFT演算法最早是被Hyper ledger Fabric項目採用。Hyperledger Fabric在0.6版本中採用了PBFT共識演算法,授權和背書的功能集成到了共識節點之中,所有節點都是共識節點,這樣的設計導致了節點的負擔過於沉重,對TPS和擴展性有很大的影響。1.0之後的版本都對節點的功能進行了分離,節點分成了三個背書節點(Endorser)、排序節點(Orderer)和出塊節點(Committer),對節點的功能進行了分離,一定程度上提高了共識的效率。
Cosmos項目使用的Tendermint[12]演算法結合了PBFT和PoS演算法,通過代幣抵押的方式選出部分共識節點進行BFT的共識,其減弱了非同步假設並在PBFT的基礎上融入了鎖的概念,在部分同步的網路中共識節點能夠通過兩階段通信達成共識。系統能夠容忍1/3的故障節點,且不會產生分叉。在Tendermint的基礎上,Hotstuff[13]將區塊鏈的塊鏈式結構和BFT的每一階段融合,每階段節點間對前一區塊簽名確認與新區塊的構建同時進行,使演算法在實現上更為簡單,Hotstuff還使用了門限簽名[14]降低演算法的消息復雜度。
5. Paxos與Raft
共識演算法是為了保障所存儲信息的准確性與一致性而設計的一套機制。在傳統的分布式系統中,最常使用的共識演算法是基於Paxos的演算法。在拜占庭將軍問題[3]提出後,Lamport在1990年提出了Paxos演算法用於解決特定條件下的系統一致性問題,Lamport於1998年重新整理並發表Paxos的論文[15]並於2001對Paxos進行了重新簡述[16]。隨後Paxos在一致性演算法領域占據統治地位並被許多公司所採用,例如騰訊的Phxpaxos、阿里巴巴的X-Paxos、亞馬遜的AWS的DynamoDB和谷歌MegaStore[17]等。這一類演算法能夠在節點數量有限且相對可信任的情況下,快速完成分布式系統的數據同步,同時能夠容忍宕機錯誤(Crash Fault)。即在傳統分布式系統不需要考慮參與節點惡意篡改數據等行為,只需要能夠容忍部分節點發生宕機錯誤即可。但Paxos演算法過於理論化,在理解和工程實現上都有著很大的難度。Ongaro等人在2013年發表論文提出Raft演算法[18],Raft與Paxos同樣的效果並且更便於工程實現。
Raft中領導者占據絕對主導地位,必須保證伺服器節點的絕對安全性,領導者一旦被惡意控制將造成巨大損失。而且交易量受到節點最大吞吐量的限制。目前許多聯盟鏈在不考慮拜占庭容錯的情況下,會使用Raft演算法來提高共識效率。
6. 結合VRF的共識演算法
在現有聯盟鏈共識演算法中,如果參與共識的節點數量增加,節點間的通信也會增加,系統的性能也會受到影響。如果從眾多候選節點中選取部分節點組成共識組進行共識,減少共識節點的數量,則可以提高系統的性能。但這會降低安全性,而且候選節點中惡意節點的比例越高,選出來的共識組無法正常運行的概率也越高。為了實現從候選節點選出能夠正常運行的共識組,並保證系統的高可用性,一方面需要設計合適的隨機選舉演算法,保證選擇的隨機性,防止惡意節點對系統的攻擊。另一方面需要提高候選節點中的誠實節點的比例,增加誠實節點被選進共識組的概率。
當前在公有鏈往往基於PoS類演算法,抵押代幣增加共識節點的准入門檻,通過經濟學博弈增加惡意節點的作惡成本,然後再在部分通過篩選的節點中通過隨機選舉演算法,從符合條件的候選節點中隨機選舉部分節點進行共識。
Dodis等人於1999年提出了可驗證隨機函數(Verifiable Random Functions,VRF)[19]。可驗證隨機函數是零知識證明的一種應用,即在公私鑰體系中,持有私鑰的人可以使用私鑰和一條已知信息按照特定的規則生成一個隨機數,在不泄露私鑰的前提下,持有私鑰的人能夠向其他人證明隨機數生成的正確性。VRF可以使用RSA或者橢圓曲線構建,Dodis等人在2002年又提出了基於Diffie-Hellman 困難性問題的可驗證隨機函數構造方法[20],目前可驗證隨機函數在密鑰傳輸領域和區塊鏈領域都有了應用[21]。可驗證隨機函數的具體流程如下:
在公有鏈中,VRF已經在一些項目中得到應用,其中VRF多與PoS演算法結合,所有想要參與共識的節點質押一定的代幣成為候選節點,然後通過VRF從眾多候選節點中隨機選出部分共識節點。Zilliqa網路的新節點都必須先執行PoW,網路中的現有節點驗證新節點的PoW並授權其加入網路。區塊鏈項目Ontology設計的共識演算法VBFT將VRF、PoS和BFT演算法相結合,通過VRF在眾多候選節點中隨機選出共識節點並確定共識節點的排列順序,可以降低惡意分叉對區塊鏈系統的影響,保障了演算法的公平性和隨機性。圖靈獎獲得者Micali等人提出的Algorand[22]將PoS和VRF結合,節點可以採用代幣質押的方式成為候選節點,然後通過非互動式的VRF演算法選擇部分節點組成共識委員會,然後由這部分節點執行類似PBFT共識演算法,負責交易的快速驗證,Algorand可以在節點為誠實節點的情況下保證系統正常運行。Kiayias等人提出的Ouroboros[23]在第二個版本Praos[24]引入了VRF代替偽隨機數,進行分片中主節點的選擇。以Algorand等演算法使用的VRF演算法為例,主要的流程如下:
公有鏈中設計使用的VRF中,節點被選為記賬節點的概率往往和其持有的代幣正相關。公有鏈的共識節點范圍是無法預先確定的,所有滿足代幣持有條件的節點都可能成為共識節點,系統需要在數量和參與度都隨機的節點中選擇部分節點進行共識。而與公有鏈相比,聯盟鏈參與共識的節點數量有限、節點已知,這種情況下聯盟鏈節點之間可以通過已知的節點列表進行交互,這能有效防止公有鏈VRF設計時可能遇到的女巫攻擊問題。
7. 結合分片技術的公式演算法
分片技術是資料庫中的一種技術,是將資料庫中的數據切成多個部分,然後分別存儲在多個伺服器中。通過數據的分布式存儲,提高伺服器的搜索性能。區塊鏈中,分片技術是將交易分配到多個由節點子集組成的共識組中進行確認,最後再將所有結果匯總確認的機制。分片技術在區塊鏈中已經有一些應用,許多區塊鏈設計了自己的分片方案。
Luu等人於2017年提出了Elastico協議,最先將分片技術應用於區塊鏈中[25]。Elastico首先通過PoW演算法競爭成為網路中的記賬節點。然後按照預先確定的規則,這些節點被分配到不同的分片委員會中。每個分片委員會內部執行PBFT等傳統拜占庭容錯的共識演算法,打包生成交易集合。在超過的節點對該交易集合進行了簽名之後,交易集合被提交給共識委員會,共識委員會在驗證簽名後,最終將所有的交易集合打包成區塊並記錄在區塊鏈上。
Elastico驗證了分片技術在區塊鏈中的可用性。在一定規模內,分片技術可以近乎線性地拓展吞吐量。但Elastico使用了PoW用於選舉共識節點,這也導致隨機數產生過程及PoW競爭共識節點的時間過長,使得交易延遲很高。而且每個分片內部採用的PBFT演算法通訊復雜度較高。當單個分片中節點數量較多時,延遲也很高。
在Elastico的基礎上,Kokoris-Kogias等人提出OmniLedger[26],用加密抽簽協議替代了PoW選擇驗證者分組,然後通過RandHound協議[27]將驗證者歸入不同分片。OmniLedger。OmniLedger在分片中仍然採用基於PBFT的共識演算法作為分片中的共識演算法[28],並引入了Atomix協議處理跨分片的交易,共識過程中節點之間通信復雜度較高。當分片中節點數量增多、跨分片交易增多時,系統TPS會顯著下降。
Wang等人在2019年提出了Monoxide[29]。在PoW區塊鏈系統中引入了分片技術,提出了連弩挖礦演算法(Chu ko-nu mining algorithm),解決了分片造成的算力分散分散問題,使得每個礦工可以同時在不同的分片進行分片,在不降低安全性的情況下提高了PoW的TPS。
⑹ 區塊鏈中女巫攻擊問題
何為女巫攻擊?
解釋一: 大規模的p2p系統面臨著有問題的和敵對的節點的威脅,為了應付這種威脅,很多系統採用了冗餘。然而,如果一個有惡意的實體模仿了多個身份,他就可以控制橘虛核系統的很大一部分,破壞了系統的冗餘策略。我們把這種模仿多個身份的攻擊定義為女巫攻擊(Sybil Attack)。
解釋二: 女巫攻擊是在P2P網路中,因為節點隨時加入退出等圓掘原因,為了維持網路穩定,同一份數據通常需要備份到多個分布式節點上,這就是 數據冗餘機制 。 女巫攻擊是攻擊數據冗餘機制的一種有效手段。譽鋒 如果網路中存在一個惡意節點,那麼同一個惡意節點可以具有多重身份,就如電影里的女主角都可以分裂出16個身份,那麼惡意節點比它還能分。這樣,原來需要備份到多個節點的數據被欺騙地備份到了同一個惡意節點(該惡意節點偽裝成多重身份),這就是女巫攻擊。
總而言之就是 分身詐騙術
如何解決這種攻擊?
1.幹活 你即便分身千千萬,唯有真心能幹活。分心是虛幻的,沒有力氣,pow證明。
2.發身份證 可靠第三方公安局給你發身份證,沒有身份證都是分身妖怪(根據某一個可靠的第三方進行身份驗證)
3.熟人社會 你遷戶口到一個新的村子裡,必須得到村子裡,大部分人的認證,這就是中國傳統社會的身份認證方法。群眾的眼睛就是火眼金睛,照出一切妖魔鬼怪。(新加入的節點都需要獲得當前網路中所有可靠節點的認證,這種方法採用了隨機密鑰分發驗證的公鑰體系的認證方式,需要獲得網路中大多數節點的認證才能加入)
⑺ 比特幣錢包
比特幣(bitcoin)誕生於2008年的一篇論文。
一個署名為中本聰的人,提出了革命性的構想:讓我們創造一種不受政府或其他任何人控制的貨幣!這個想法堪稱瘋狂:一串數字,背後沒有任何資產支持,也沒有任何人負責,你把它當作錢付給對方,怎麼會有人願意接受?
Merkle tree
跟二叉樹長得很像,只是這個是下面兩個節點取哈希值得到上面節點。只需要記住根節點,就可以檢測整棵樹有沒有被篡改。
根哈希值存在block header里,交易過程存在block body里。全節點包括block header和block body,但是輕節點(比如手機上比特幣錢包)只包括block header。這棵樹可以證明包含某個交易已經被寫進了區塊鏈。
3.共識協議
去中心化的貨幣要注意的兩個問題:
1.誰能發行數字貨幣:挖礦。
2.怎麼驗證交易的合法性:區塊鏈。
雙花攻擊(double spending attack)
雙花攻擊是數字貨幣的一個主要挑戰。
比特幣中的交易都要有輸入和輸出,幣從哪來,花到哪去。
正常情況也可能有兩個分叉,因為兩個節點同時獲得記賬權,兩個節點打包的區塊,同時計算出了那個隨機數。此時會暫時兩個分叉共存,直到其中某一個區塊搶先找到了下一個區塊,這條就成了最長合法鏈,另一個分叉就被丟棄。
女巫攻擊(sybil attack)
某惡意節點不停產生賬戶,賬戶總數超過總賬戶的一半,則取得了區塊鏈的控制權。
比特幣中的共識協議(Consensus)
一些節點是有惡意的,大部分節點是好的。
想法1:把一些交易打包到區塊里作為候選區塊,讓每個區塊投票,如果通過就寫入區塊鏈。
不行,因為有的惡意節點一直發布一些含有惡意交易的區塊,則一直投票,佔用資源。而且有的節點不投票。
想法2:不按賬戶個數投票,而是按照計算力投票。每個節點都可以產生合法交易放入區塊,這些節點就開始試隨機數,直到找到H(block header)≤ target,則這個節點有記賬權。
唯一產生比特幣的途徑
coinbase transaction。這個不用指出幣的來源,有了記賬權的節點(找到了隨機數)會有出塊獎勵。
50BTC->25BTC->12.5BTC,每21萬個比特幣,獎勵就減半。
比特幣爭奪記賬權的過程叫挖礦。爭奪記賬權的節點叫礦工。
⑻ 「守好錢包」Filecoin入門手冊,看完再無選擇困難症
投資有風險,入局需謹慎!不管什麼樣的投資,最怕的就是遇到騙子,一著不慎,多年的積蓄頃刻化為烏有。
而出現這種情況的主要原因,很大一部分都是因為投資者對這個項目了解不深,才會經常中招。
所以我為大家特地整理出了一台filecoin投資入門手冊,幫助大家守好錢包
Filecoin挖礦機制
Filecoin採用的是預期共識(EC),而且用復制證明(PoRep)和時空證明(PoSt)來保證EC共識機制的運行。
預期共識
Filecoin採用的是預期共識(EC),而且用復制證明(PoRep)和時空證明(PoSt)來保證EC共識機制的運行。
復制證明
礦工要向系統證明自己確實存儲了用戶所需要的數據。而不是臨時從其它節點或源頭獲取的數據,這個證明是系統為了防止女巫攻擊所設定的一個指標。除此之外,還可以防止外源攻擊和生成攻擊。
時空證明
礦工要向系統證明自己不僅存儲了用戶的數據,而且在某一段時間內一直都存儲了用戶的數據。這是礦工向系統證明數據存儲有效性和穩定性的一個指標。
質押機制
這是filecoin中維護生態的一種懲罰機制,礦工在進行挖礦前,必須向系統提交FIL質押
Filecoin經濟收益
Filecoin挖礦角色以及收益模式
在Filecoin網路體系裡,存在兩種礦工類型,分別為存儲礦工與檢索礦工。Filecoin的獎勵機制是建立在存儲礦工、檢索礦工與用戶的交互上的。我們可以把存儲礦工和檢索礦工簡單的理解為Filecoin系統的「打工者」,FIL幣是他們辛勤勞動後所得的「工資」,用戶是Filecoin系統的「消費者」。
存儲礦工的收益:
存儲礦工的收益由三部分構成,分別為新幣發放收益,存儲收益和區塊收益。其中的新幣發放收益與區塊收益是在Filecoin的共識機制監督下獲得的。
檢索礦工的收益:
檢索礦工的收益模式相對而言比較單一,他們不參與Filecoin的共識機制,不能獲取新幣分發收益。只能為用戶的檢索訂單提供服務,並從中獲得交易代幣。但隨著IPFS建設的越來越大,Filecoin的使用規模越來越廣,檢索訂單的數量會呈現遞增趨勢,礦工的檢索收益也會越來越大。此外,為一些熱門文件和高下載量文件提供下載服務的檢索礦工收益也會更多,檢索礦工的收益與IPFS系統中的數據下載量成正比關系。
Filecoin激勵
礦工的收益主要來自三個方面 ,第一個是區塊獎勵,也就是我們所說的爆塊;第二個是存儲的收益;第三個是檢索的收益。 在網路的初期是區塊獎勵為主,後期隨著存儲的需求增長,存儲和檢索的收益會越來越多。通過挖礦產生的Fil幣總共有14億枚。
Filecoin存儲礦工根據其存儲能力獲得塊獎勵。存儲能力是Filecoin存儲礦工為網路提供多少有用存儲的度量。從較高的層次上講,礦工通過接受客戶的文件,公開承諾將其存儲一段時間並反復證明它們實際上正在隨時間存儲來獲得存儲能力。
四種收益模式
在Filecoin經濟體系裡,檢索礦工和存儲礦工的收益構成是完全不同的,在Filecoin經濟體系中礦工共有四種收益模式:
1、新幣發放收益
存儲礦工和檢索礦工通過投入存儲設備和帶寬服務來獲取Filecoin新幣。這屬於早期挖礦紅利。
2、存儲收益
存儲礦工通過抵押一部分代幣向網路提供可供出售的存儲空間,存儲空間被用戶購買後,可獲取用戶支付的交易費用。
3、檢索收益
檢索礦工向網路提供數據檢索服務,銷售自己的網路帶寬,通過找尋用戶所需下載的數據進行交易,獲取用戶支付的數據下載費用。
4、區塊鏈收益
存儲礦工爭取新的區塊可獲得兩種收益。一種是打包區塊所產生的的新幣;另一種是區塊內所有交易包含的交易費用。
影響挖礦因素
配置
硬碟:
預期共識在理論上是誰的存力佔比大,誰的出塊率就高,但現實中,由於受到網路拓撲、磁碟性能以及GPU等硬體因素的制約,有效存力和出塊率並不是完全對等的關系。增加有效存力只需要完成封存並生成復制證明,這個難度不大。但是爆塊是需要在45秒內完成時空證明的,這個難度就大大增加了。所以我們看到有些節點存力增加很快,但是出塊效率卻不高。
CPU:
1.文件切片,大的文件拆分成小文件
2.密封時會用到CPU,類似數據打包
3.復制證明共識機制需要用到CPU,需要計算哈希值等
4.運算一些基礎的程序
GPU(直接影響出塊效率)
在復制證明中,有個過程要進行「零知識證明」的計算。這個過程用GPU可以加速計算,但是如果CPU足夠強大,那麼加GPU的意義不大。
在時空證明中,Filecoin項目增加了「選舉證明(election post)」這個指標。在每一個區塊周期(Lotus測試網是45S),每個礦工根據自己的存力都可能獲得一張選票,並被選中,被選中的礦工需要在不到45S時間內快速計算出「時空證明(PoSt)」並提交到鏈上,完成這個過程才能獲得區塊獎勵,否則就和區塊獎勵絕緣了。而提交時空證明靠的就是GPU的算力。
內存:
密封文件時,臨時存儲密封的文件
運行挖礦程序各環節,計算數據緩存使用
網路、電力:
如果沒有網路,光有硬碟也沒用。挖礦的天花板取決於網路,即便做大礦場也好,做散戶也好,網路是大家的天花板。
做大礦場的話,甚至需要在不同的城市去建不同的礦場,拿不同的網路資源。
filecoin需要保證24小時連續在線,如果掉線可能會被扣除抵押的幣,雖然耗電量不大,但是電力的穩定性也是必然要保證的。
24小時不間斷挖幣,硬碟壽命5年左右,而裡面的晶元,主板,內存,電源都是可以超過10年以上的壽命。正常情況下,一台礦機最少能持續工作3年。
礦機
礦機在單位時間內封存數據的能力。Filecoin是一個用於存儲的區塊鏈,我們要封存客戶提交的數據,必須經過一個特定的過程,叫做precommit和commit。這裡面用到業界一些現成的演算法,比如SDR和zk-SNARK,都是需要消耗計算資源的。這些計算資源由CPU和GPU提供,我們要解決的是如何搭配各個組件,讓整機性能發揮到最大,在最短的時間內封存最多的數據。單位時間內封存的數據越多,有效存力的增長速度就越快。有效存力的增長速度越快,就越能提高存力佔比。在Filecoin預期共識下,存力佔比越高,理論上拿到區塊獎勵的概率也越高。
從這兩個方面,我們可以得出一個礦機投入產出比的計算公式:
每萬元每小時有效存力×單位存力出塊率
即使是同樣的價格,節點越多,性價比也不一定越高。因為如果CPU、GPU、內存等存在較大差異,同一個節點,其算力累積的速度可能差幾十倍。
同樣配置的硬體,銷售價格也可能不一樣。因為軟體優化是決定FIL產出的核心因素。同樣的硬體,運行的代碼不一樣,對硬體的優化可能存在天壤之別,在穩定性方面也各有差異。
礦機指標
兩方面來衡量礦機的性能。
礦機在單位時間內封存數據的能力。Filecoin是一個用於存儲的區塊鏈,我們要封存客戶提交的數據,必須經過一個特定的過程,叫做precommit和commit。這裡面用到業界一些現成的演算法,比如SDR和zk-SNARK,都是需要消耗計算資源的。這些計算資源由CPU和GPU提供,我們要解決的是如何搭配各個組件,讓整機性能發揮到最大,在最短的時間內封存最多的數據。單位時間內封存的數據越多,有效存力的增長速度就越快。有效存力的增長速度越快,就越能提高存力佔比。在Filecoin預期共識下,存力佔比越高,理論上拿到區塊獎勵的概率也越高。
從這兩個方面,我們可以得出一個礦機投入產出比的計算公式:
每萬元每小時有效存力×單位存力出塊率
即使是同樣的價格,節點越多,性價比也不一定越高。因為如果CPU、GPU、內存等存在較大差異,同一個節點,其算力累積的速度可能差幾十倍。
同樣配置的硬體,銷售價格也可能不一樣。因為軟體優化是決定FIL產出的核心因素。同樣的硬體,運行的代碼不一樣,對硬體的優化可能存在天壤之別,在穩定性方面也各有差異。
Filecoin什麼機器不能買?
集群
集群是filecoin中一個很重要的概念,由於filecoin對帶寬和環境要求很高,所以最好是有一所IDC機房。
其他因素
演算法優化: Filecoin原生代碼有很多可以改進的地方,所以有技術的團隊會對代碼進行優化,提升封存和零知識證明速度,從而提升爆單率。
註:改為NSE演算法?
PoREP演算法,從window SDR改成SDR,時間並不長。新的PoREP演算法NSE已經在醞釀中。NSE演算法的全稱:Narrow Stacked Expander PoRep。
PoREP的NSE演算法,是SDR演算法的另外一種嘗試。嘗試降低單個處理的數據大小(window),嘗試不採用節點的前後依賴(layer的計算可以並行),加大單層的依賴,加大layer的層數。整個演算法底層還是採用sha256演算法。NSE演算法可以理解為安全性和性能之間平衡的一種嘗試。
協議實驗室在2020年5月29日稱,主網上線時,暫時不使用新的NSE演算法。社區對NSE演算法的擔憂,主要是怕又要更新相應的硬體設備。但是目前所用的硬體配置已經比較高的,需要繼續升級硬體的概率不是很大,否則大量硬體會被拋棄,會引來社區的強烈不滿。
軟體支持: 在Filecoin市場體系中,涉及到一些經濟行為,比如提交訂單,接收訂單,如何管理錢包,以及機器交付後如何管理機器和礦場等等,這都需要管理軟體來支持。
網路運維: 單獨一台礦機拿到手裡是沒什麼用的,只有把所有的硬體聯網,協同作戰才能發揮出機器的最大性能。這里涉及到機房、網路拓撲、網路交換硬體配置、系統穩定性測試、陣列升級、故障排除等等,這一塊主要是在交付以後,所以是否有一支技術扎實的運維團隊非常重要。
FIL
發行量
總量20億,60年挖完,每個區塊都減少一次,大約6年產量減半一次。
PFS(Filecoin)在2017年8月份募集到了2.5億美金,而這次Token Sale僅僅只出售10%的代幣(2億個),ico時市值25億美金。ICO成本: 預售階段 0.75美元, 正式階段 1.3到5美元。
礦工:70%,通過區塊獎勵的方式線性釋放,每6年減半;
團隊:15%,作為協議實驗室團隊的研發及運營費用,按6年線性釋放;
投資人:10%,分配給參與私募與公募的投資者,按6-36個月線性釋放;
基金會:5%,作為長期社區建設,網路管理等費用,按6年線性釋放;
每個區塊約30秒,第一年平均每個區塊產量為(153+137)/2=145個。
第一年,每天產幣數量約為145*1440/2=41.76萬個,第一年總產幣數量約為1.5億個。
期貨
目前在交易的Filecoin並不是我們平常意義的數字資產,它只是一個期貨產品的期貨,在其中隱藏著極大的風險。主網沒上線前,沒有任何一枚Filecoin是實際存在的。
當時參與ICO的投資人相當於從Filecoin官方購買了一些Filecoin的期貨,然後某些投資人把這些Filecoin的期貨放到交易所上再次以期貨的形式進行交易。
目前Gate.io,LBank和比特股內盤上的Filecoin期貨交易都沒有提供相應的原始期貨出讓者和交易所之間簽訂的期貨出讓協議。所以目前大家購買的Filecoin期貨存在非常巨大的風險,只能依靠交易所和原始期貨出讓人的個人信用。
總體來看,想要投資filecoin,技術門檻相當的高,所以一個好的技術支持真的很重要
⑼ pos機制的起源與設計理念
POS起源
2012年,背景是POW進淪為資本玩家的玩具,算力過於中心化,隨時都有被「51%攻擊」。
開放者Sunny Kind第一次提出了POS(股權證明)的概念,與POW是完全不一樣的。
POS不用大量的算力來維持網路安全,只要參與者打開自已的錢包在線增加權重,獲得相應的獎勵也就是利息。
POS的設計理念
我們應該都知道,比特幣的區塊產量每四年就會減半,這樣區塊的產量將會越來越少,礦工就會「曠工」,因為賺到的越來越少。
那麼,人數少了,比特幣就可能被一些高算力的人所掌握,數字貨幣網路將會癱瘓。
POS解決方法:並非所有的區塊都是靠挖礦得來的,只要打開錢包客戶端程序,就能發現區塊,也可以得到利息,這樣就會有一個引流的效果。
POS機制可以描述成一種虛擬挖礦。鑒於POW主要依賴於計算機硬體的稀缺性來防止女巫攻擊,POS則主要依賴於區塊鏈自身里的代幣。
女巫攻擊
這個名字是基於1973年的小說《女巫》改編的同名電影,女主具有16重人格。
因為節點隨時加入和退出等原因,為了維護網路的穩定,同一份數據可能備份在很多節點上,這就是數據冗餘機制。
若是在網路上存在惡意節點,那這一個節點就具有多重身份。那這個惡意節點就可能騙到其他節點備份到他這里。
POW就是根據計算能力隨機,而POS則根據擁有財產隨機。POW是保證比特幣、當前以太坊和許多其它區塊鏈安全的一種機制。
但是POW演算法在挖礦過程中因破壞環境和浪費電力而受到指責。POS試圖通過以一種不同的機製取代挖礦的概念,從而解決這些問題。
PoS的優點
不再需要為了安全產生區塊而大量消耗電能。由於不再需要大量能耗,通過發行新幣以激勵參與者繼續參與網路的壓力會下降。PoS機制下,全網每秒可以處理的交易數增加,可以提供比PoW機制更好的性能。
POS演算法是個資本主義
你擁有的錢越多,得到的權利也就越大。為什麼?
因為你在裡面的錢越多你想要維護系統的願望也就更大。若是有惡意攻擊,他們的錢也就只能是竹籃打水一場空。
POS演算法
如果我手上有500個代幣,把它放進POS機制,這樣裡面的500個代幣就變成了驗證者.假設它在區塊鏈里最新的塊。
POS演算法將從驗證者裡面抽取一個隨機的,給他們權利產生下一個區塊。
PoS 機制由股東自己保證安全,工作原理是利益捆綁。在這個模式下,不持有 PoS 的人無法對 PoS 構成威脅。PoS 的安全取決於持有者,和其他任何因素無關。
PoS機制源於人們對PoW機制的不滿以及改進。早期的PoS機制有各種缺陷,隨著各種項目對PoS機制的不斷改進,PoS正逐漸成為主流的共識機制。
⑽ 區塊鏈為什麼有分叉分叉會發生什麼情況
區塊鏈的分叉(fork)的形成原因可能有多種。
當兩個結點幾乎在同一個時間挖到了礦並同時發布區塊,此時就出現臨時性的的分叉(state fork),
本質上是對比特幣這個區塊鏈當前的狀態產生了意見分歧,
當人為的發起分叉攻擊(forking attack),也就是故意造成這類分叉(deliberate fork)還有一類分叉是,當比特幣的協議發生了改變的時候,軟體需要升級。而在分布式系統中不能保證所有節點同時升級軟體,假設存在部分節點未升級,會導致協議分叉(protocol fork)。對協議修改的內容的不同,又可以將分叉分為硬分叉(hard fork)和軟分叉(soft fork);
比特幣協議增加新協議,擴展新功能,未升級軟體的舊節點會不認可這些修改,會認為這些特性是非法的。這也就是對比特幣協議內容產生分歧,從而導致的分叉叫 硬分叉 。此時,就出現了新節點永遠沿著新節點產生的鏈挖礦,舊節點永遠沿著舊節點鏈挖礦,由於新節點算力足夠強,所以形成兩條永遠都在延伸且平行的鏈。只要這部分舊節點永遠不更新,則舊鏈將一直延續,可見這種分叉是持久性的。
出現hard fork後,便變成了兩條平行的鏈,也就造成了社區分裂。社區中有一部分人,會認為下面的鏈才是根正苗紅,各個鏈上的貨幣獨立。以太坊歷史上的一件大事就是硬分叉事件。以太坊稱為ETH,但目前看到的ETH已經不是最初的ETH了,以太坊在歷史上發生過硬分叉,另一個鏈稱為ETC。實際上,ETC才是以太坊設計原本的協議,而ETH是黑客攻擊ETH上一個智能合約THE DAO後,進行回滾的協議鏈(將黑客攻擊偷取的以太幣採用硬分叉方式回滾回到另一智能合約,然後退還給真正擁有者)。
分叉之初,由於兩個鏈分叉造成了互相影響,產生了很多麻煩。比如:在ETH鏈上有一筆轉賬B->C,有人便在ETC鏈上回放,將ETC鏈上的貨幣頁轉給了C(C收到兩筆錢)。後來,對兩條鏈各添加了一個chainID,將兩個鏈區分開,才使得這兩條鏈真正分開。
如果對BTC協議添加限制,使得原本合法交易在新交易中不合法,便會形成軟分叉。
當大多數節點已經更新完畢之後,舊節點認可新節點挖出的區塊,因此發布自己挖出的區塊,但新節點不認可舊結點挖出的區塊,便沿著上一個新節點發布的區塊繼續挖礦,當新節點擁有大部分算力的時候,新鏈會越來越長,從而舊節點挖出並發布的區塊一直被拋棄,無法獲得出塊獎勵,最終倒逼舊節點升級軟體,實現所有節點認可新協議並進行升級。可見,只要系統中擁有半數以上算力節點更新軟體,此類分叉不會出現永久性分叉。比特幣腳本中的P2SH就是通過軟分叉方法加進去的。
這一部分我並沒有查到太多的資料,但是在絕大多數共識協議之中我們都假設需要過半算力;
在理論上,如果掌握了50%以上的算力,就擁有了獲得記賬權的絕對優勢,可以更快地生成區塊,也擁有了篡改區塊鏈數據的權利。因此,當具有過半的算力,也就是51%都是誠實可靠的,能保證整一個區塊鏈在合法有序的進行運行。
但是為什麼選擇過半的算力,而不是過半的用戶?比特幣系統,任何人都可以加入,且創建賬戶及其簡單,只需要本地產生公私鑰對即可。只有轉賬(交易)時候,比特幣系統才能知道該賬戶的存在。這樣,黑客可以使用計算機專門生成大量公私鑰對,當其產生大量公私鑰對超過系統中一半數目,就可以獲得支配地位(女巫攻擊)。因此,比特幣系統中很巧妙的使用算力作為投票的依據。