999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于動態授權的信任度證明機制*

2019-10-24 05:49:34黃建華李忠誠李建華
軟件學報 2019年9期
關鍵詞:機制

黃建華,夏 旭,李忠誠,李建華,鄭 紅

(華東理工大學 信息科學與工程學院,上海 200237)

通訊作者:黃建華,E-mail:jhhuang@ecust.edu.cn

自2008 年比特幣[1]誕生伊始,比特幣的底層技術——區塊鏈技術開始進入人們視野.這種加密公共賬本技術具有去中心化、防篡改和可追溯等特性,激發了業界對于區塊鏈技術的研究熱情,由此也產生了眾多的數字貨幣加密技術,如以太幣(Ether)[2]、點點幣(PPCoin)[3]等,以及衍生出來的用于區塊擴容的閃電網絡(lightning network)[4].2015 年,Linux 基金會發起HyperLedger 項目,其中最著名的是Fabric 項目,Fabric 中沒有挖礦機制,也沒有使用代幣作為激勵機制,它是有準入資格授權的私有區塊鏈網絡,Fabric 的成員要在會員服務提供商進行注冊[5].文獻[6]詳細介紹了基于區塊鏈的平行社會發展趨勢,討論了智能合約的理念、應用和意義.針對第三方機構利用大量用戶隱私數據來提供個性化定制服務導致用戶個人隱私泄露的問題,文獻[7]提出了基于區塊鏈的個人數據保護系統,使用戶能夠在享受個性化定制服務的同時保護個人信息.但是,在點對點網絡中面臨著廣播帶來的網絡開銷較大問題,各個節點所觀察到的交易事務先后順序不可能完全一致.因此,區塊鏈系統需要設計一種機制,對在一定時間內發生事務的先后順序進行共識,這種對事務的先后順序達成共識的算法就是共識機制.區塊鏈分為公有鏈、聯盟鏈和私有鏈:公有鏈主流的共識機制是工作量證明(proof of work,簡稱PoW)和權益證明(proof of stake,簡稱 PoS),私有鏈或者聯盟鏈的共識機制以實用型拜占庭容錯協議(practical Byzantine fault tolerance,簡稱PBFT)為主.以PoW 為基礎的加密貨幣可能會遭受雙重支付攻擊,為了降低風險,交易通常需要等待一定數量的確認區塊(6 個).但是,這使得拒絕服務攻擊(DoS)有了實現的可能,例如,攻擊者可以發起很多低價值的交易來沖擊網絡.2015 年7 月,就有一次針對比特幣網絡的洪泛攻擊[8].比特幣系統的另一問題就是能耗巨大,2017 年,整個比特幣系統至少消耗2.55GW 電力,并且未來可能達到7.67GW,與奧地利全年耗電量相當[9,10].PoW 機制高昂的計算代價使其難以滿足一些每秒高達數萬筆交易的系統需求.目前,比特幣社區正在嘗試使用閃電網絡等解決方案,以改善網絡的吞吐量并降低耗電量.為了提高區塊鏈網絡交易吞吐量,King 于2012 年創立了點點幣,這是第1 種基于PoS 的加密貨幣.PoS 的提出雖然提高了網絡吞吐量,但是帶來了諸如短程攻擊(賄賂攻擊)、幣齡累積攻擊等新問題.PBFT 雖然可以每秒支持數千筆交易,但較低的節點可擴展性和較高的網絡開銷也使得PBFT 在公有鏈領域應用范圍有限.但是PBFT 在聯盟區塊鏈方面應用廣泛,典型的應用有騰訊公司發布的可信區塊鏈平臺TrustSQL 以及Linux 基金會發起的Hyperledger Fabric 項目.

本文分析了PoW 機制和POS 機制的優點和不足,提出基于信任度證明的共識機制(proof of trust,簡稱PoT),旨在解決權益證明機制中存在的易受賄賂攻擊、幣齡累積攻擊以及工作量證明機制中存在的自私挖礦問題,并對PoT 性能以及安全性進行了測試和分析.結果表明,PoT 的效率較PoW 有較大提高.同時,對于賄賂攻擊、權益粉碎攻擊以及權益累積攻擊,比PoS 有更高的防范能力.

1 共識機制

共識機制的目標是使所有的誠實節點保存一致的區塊鏈視圖,在盡可能短的時間內建立安全和不可篡改的去中心化系統.目前存在的共識機制主要分為PoW 和PoS,其中,PoW 是區塊鏈最早使用的共識機制,PoS 的概念則是由2012 年出現的點點幣引出的.

1.1 工作量證明機制(PoW)

比特幣系統是區塊鏈技術的首個應用,其采用的PoW 機制使得區塊的產生具有計算方面的難度.比特幣系統平均每10 分鐘產生一個區塊,每個節點都收集新的交易數據,并試圖根據這些交易生成新的區塊.PoW 解決共識問題的基本思路是尋找隨機數(nonce),該隨機數要使得給定區塊的哈希值前部分出現所需的足夠數量的0,而找到這個nonce 所需要的工作量與0 的數目呈指數增長.礦工節點進行循環的SHA-256 計算,最先找到這個nonce 的節點向全網廣播其工作量證明和新產生的區塊,其他節點驗證成功后就接受該區塊,然后跟隨在該區塊的末尾制造新的區塊,計算出結果的節點獲取比特幣作為獎勵.雖然這種機制截至目前為止被證明是安全的,但是任何擁有巨大算力(超過51%算力)的組織或者國家都有可能制造一個更長的區塊鏈.尤其是在攻擊者購買算力更強的礦機(ASIC)[11]之后,他將獲取比一般礦工更強的算力.

針對比特幣系統的一個可能的攻擊就是自私挖礦(selfish mining)[12],目的是獲得更大利潤.自私挖礦的攻擊者挖到新區塊后不在第一時間公布,其他誠實礦工因為不知道新區塊的存在,會繼續在舊區塊基礎上挖礦.等到攻擊者挖到第2 個區塊后,便會同時公布手中藏著的兩個區塊,這時,區塊鏈就出現了分叉.只要攻擊者比誠實礦工多挖一枚區塊,攻擊者所在的分叉就是最長鏈.自私挖礦的攻擊者只需要擁有全網1/3 的算力,就可以保證自己獲得更多的收益,相比51%攻擊,自私挖礦顯得更容易.作為礦工,在比特幣規則中一般都會采用有利于自己的自私挖礦策略.事實上,當有節點擁有超過25%算力的時候,比特幣的安全性就不能簡單地以51%為閾值來考慮[13],因為不能保證此時所有的礦工都遵守規則.但是在本文提出的PoT 機制中,產生區塊不需要投入過多的算力資源,這種攻擊反而變得沒有效率.

1.2 權益證明機制

權益證明的核心思想是產生區塊的難度與節點在網絡中所占權益成反比,即:所持權益越多,越容易產生區塊.這是一種效率更高的共識算法,使區塊鏈無需高昂的硬件和電力挖礦成本就能正常運行.

權益證明主要有兩大類:一種是基于鏈的權益證明,其模仿工作量證明機制,隨機地為權益人(stakeholder)分配創建區塊的權力,典型的有PPCoin、黑幣(blackcoin)[14]、活動鏈(CoA)[15]、DPoS[16]和PoA[17];另一種是基于拜占庭容錯的權益證明,在該機制中,只要有超過2/3 的節點遵循協議,無論網絡延時如何,協議都可以正常運行,典型的有Tendermint[18]和Casper[19].

在基于鏈的權益證明機制的虛擬幣PPCoin,Clockcoin[20]和Novacoin[21]中,區塊的創建是通過消耗幣齡(coin age)來完成的.該協議被詬病的地方就在于:即使節點沒有連接到網絡,幣齡也會增加.當前的系統事實上鼓勵節點濫用這一機制,它們平時保持離線,只在累積了可觀的幣齡以后才連線以獲得利息,然后再關閉連接.攻擊者可以利用這一點,當其所持權益足夠大時,對區塊鏈進行分叉并達成雙花.區塊生成后,幣齡就會歸零,攻擊者必須再次累積幣齡才能繼續攻擊.VeriCoin[22]使用基于幣齡的權益時間(stake time)來對節點所持權益進行度量,并且當節點不再參與共識時,其權益時間就開始衰減.Ouroboros[23]使用了一種新的獎勵機制來增加對節點誠實行為的獎勵,同時還使用了安全多方計算來保持節點中領導者的不可預測性,但是這種方法需要網絡中驗證節點之間的協調.

1.3 其他共識機制

文獻[24]基于可信執行環境(trust execution environments)提出了共識機制proof of luck,該機制運行在支持SGX 的CPU 上,用來抵御挖礦對于能源的消耗,但是算法的執行依賴于Intel 的特制CPU,違背了區塊鏈的去中心化思想.文獻[25]嘗試用一種空間證明(proof of space)的概念來取代PoW,并且已經在區塊鏈的框架背景下進行了專門研究.在空間證明中,證明者希望運用計算機存儲資源代替PoW 中的算力資源進行證明.空間證明雖然利用了一定的硬件資源,但是隨著時間的推移,對硬件資源的消耗量會減少.類似地,文獻[26]也提出了時空證明(proof of space-time)算法,但無論是空間證明還是時空證明都需要昂貴的硬件資源,到最后都會出現硬件資源集中化的現象.文獻[27]提出了一種有趣的燃燒貨幣機制PoB(proof of burn),該算法通過將代幣轉移到不可逆轉的地址上以銷毀代幣,節點燃燒的代幣量與被選中挖到下一個塊的概率成正比.在PoB 中,隨著時間的推移,節點在系統中所持的份額可能會減少,這會驅動節點燃燒貨幣來獲取更多的挖礦機會.這種機制雖然是一個不錯的嘗試,但是造成了代幣資源的浪費,并且挖礦的能力會逐漸被那些掌握更多資源并且愿意燃燒代幣的人所掌控.文獻[28]提出了一個重要性證明(proof of importance)算法,該算法運行時,節點需要提供自己的重要性才能獲取出塊權.在重要性證明下,節點所持權益不再是重要性的主要因素,取而代之的是節點的交易量以及交易雙方的關系.在重要性證明中,根據錢包的交易次數和貨幣資產來評估節點的重要性.但是該協議可能會鼓勵節點之間相互串通互刷交易量,同時,大資產節點的頻繁交易也會造成重要性中心化的問題.

2 基于信任度的共識機制

公有鏈假定所有節點都是不可信的,產生區塊的策略主要有兩種:基于算力的PoW 機制和基于權益的PoS機制.在PoS 中,每個節點的可信度與它本身所持的資源(比如加密貨幣數量)呈正相關,這就決定了該節點在網絡中所占的權重(以票數計).這種機制會帶來許多嚴重后果,最直接的就是權益粉碎攻擊[29,30].PoS 的一大優勢就是所持權益越多者越愿意維護系統,反之,所持權益越少責任也就越少.假設礦工只有1%的權益,其成功的概率只有1%,那么該節點可以盡可能嘗試分叉,因為在PoS 中分叉并不消耗任何資源.在比特幣系統采用的PoW機制中,創建分叉得不償失,因為必須為此付出大量算力資源.目前,比特幣網絡每10 分鐘產生一個區塊并獎勵12.5 個比特幣,即使耗費大量電力,挖礦仍然是一件有利可圖的事情,但是每產生21 萬個區塊后,收益會減半.當收益不足以維持挖礦所耗費的電力成本時,礦工們就不再有足夠的動機去維持區塊鏈的一致性.這就是經濟學領域所說的公地悲劇[31].中本聰預見到這個事情的發生,提出了交易費率的解決辦法[1].但是在公地悲劇中,參與者有機會自行其是,以犧牲他人的代價來實現自己的利益最大化,所以希望其他節點支付相應費用.每一個理性的礦工總是會采取這樣的行動,因為它只尋求自身最優解.如果網絡中每一個個體都表現得很自私,那么整個網絡環境安全性的下降就在所難免.

迄今為止,權益證明仍然是對區塊鏈公地悲劇的唯一解決方案.為了避免公地悲劇以及權益粉碎攻擊帶來的網絡安全問題,本文提出了基于信任度證明的PoT 共識機制.由于采用PoW 共識的區塊鏈網絡因其計算上的難度而不易受到攻擊,因此,PoT 中引入了少部分的工作量證明以避免權益粉碎攻擊.有別于工作量證明機制中的低吞吐量和巨大的資源耗費,以及純權益證明機制中幣齡累積所造成的權益中心化和易受權益粉碎攻擊,PoT 旨在建立一個高吞吐量、安全和低資源消耗的去中心化區塊鏈網絡.

PoT 的運行從時間上被劃分為一系列周期(epoch),每一個epoch 又被劃分為多個時隙(slot),一個slot 內產生一個區塊,權益的計算以每個epoch 開始前的歷史計算.在每個epoch 開始時,礦工節點都會計算生成一個滿足當前難度的空區塊,通過這個空區塊衍生出一組參與者(participants)集合{P1,P2,P3,…,PT},然后,每個slot 均從這些Participants 集合中隨機選取N個節點作為基本權益代表(stakeholder),這些代表用集合{S1,S2,S3,S4,…,SN}表示,這里N

logistic 回歸模型在對數增長期節點的信任度的增長是相當快的,不利于合理地判斷節點信任的增長.為了避免出現這種情況,本文提出了對logistic 回歸模型產生的信任度進行修正的算法,根據節點當前信任度和上一輪投票時的信任度,對在投票時的信任度進行權重均衡.最終進行投票時的信任度度量公式如下:

其中,h表示當前epoch 內第h個slot.節點在第t個epoch 中的第1 個slot 開始時的信任度與第t-1 個epoch 的最后一個slot 結束時的信任度相等,即,并且.通過β可以對信任度的增加速率進行修正,使其增長不會太快,避免在網絡初期階段的信任度中心化.初始時,β值為1,因為剛開始并不知道節點是否會有作惡傾向.

β的變化基于累計偏差,具體變化算法由公式(3)確定:

同樣地,在第t個epoch 開始時的信任度累積偏差與第t-1 個epoch 的最后一次參與共識時的信任累積偏差相等,即,并且.參數c是用戶定義的參數,用于控制對節點的最近行為的反應權重.threshold是為了防止β過于飽和趨近于1 而設置的閾值,其初始值為0.25(在社會學范疇中,對于人的歷史信任度比當前信任度能更好地分析人的信譽.threshold初始值設為0.25 可以在防止β過于飽和趨近于1 的同時,也能讓不會過分倚重當前信度函數直接評價所得的信任度).表示信任度的偏差,其計算方法見公式(4).

在第t個epoch,節點對第h個slot 進行共識時的信任度偏差等于當前信任度與對第h-1 個slot 進行投票時的投票信任度的絕對值之差.最終的累積偏差見公式(5).

從公式(5)可以看出:c值越大,說明用戶給予的最近的信任度偏差的權重比之前累積信任度偏差要高.

2.1 節點行為判別策略

傳統的共識機制單純依靠提高準入門檻,比如算力或者權益來維護區塊鏈網絡的穩定與安全,但是算力和基于幣齡的權益都會使區塊鏈網絡傾向于中心化.本文提出了一套完整的對于節點行為的判別策略,通過對節點運行機制的檢測與判別,以識別惡意的節點,并進行信任度懲罰.

本文將節點行為定義為#good 和#bad 兩種.

· #good:每一個stakeholder 對于區塊的簽名被認為是對該區塊的投票,投票時使用自己的私鑰進行簽名,可以用公鑰去驗證.只要節點參與生成的區塊的簽名合法,滿足當前難度,具備競爭上鏈資格,則將其行為定義為#good;

· #bad:如果前N-1 個stakeholder 發現它要簽名的區塊存在問題,那么根據協議就不予簽名.如果仍要簽名,那么具有區塊打包權的第N個stakeholder 在將區塊打包之前完全可以決定是否打包區塊.如果不打包,則認為該區塊無效,所有對該區塊進行的簽名操作都被視為無效,這將消耗這些stakeholder 的信任度.如果打包成功并且與其他區塊一起進行信任度競爭,網絡中的其他節點會對區塊的簽名進行驗證.如果區塊中有的簽名是非法的或者區塊頭哈希不正確,則認為該區塊非法.對該區塊進行簽名操作的所有stakeholder 均被認為是惡意的,使用相應的懲罰機制進行信任度懲罰.

基于經典的PBFT 的2/3 原則,可以設定一個投票上鏈的閾值.只有在區塊中擁有超過2/3 的stakeholder 投票的情況下才具有上鏈資格.節點成為stakeholder 的概率由公式(6)計算:

2.2 區塊生成

在PoT 中,區塊的產生過程被一分為二:首先,通過簡單難度的工作量證明產生一個空區塊;然后,通過stakeholder 的投票來確定該區塊是否有上鏈資格.在區塊產生過程中引入計算以求規避權益粉碎攻擊,在將交易放入區塊打包廣播到網絡的過程中,引入基于鏈的權益證明機制,所持信任度高的區塊相比于其他區塊上鏈機會更大.相比于單純基于算力的競爭,這種方法可以大幅度提高網絡的吞吐量,減少網絡的資源消耗.其具體架構如圖1 所示.

其中,stakeholder 由PoT 的跟隨幣機制衍生出來.在其產生后對其認可的空區塊進行私鑰簽名,最后一個stakeholder 即stakeholderN將其認可的交易進行打包,滿足要求的區塊被打包之后上就可以上鏈.

PoT 共識機制產生區塊的過程如下.

(1)首先,每個礦工都嘗試去產生一個區塊頭,這個區塊頭中包含了先前區塊的哈希(Bprev)、礦工地址(Adressminer)、該區塊在區塊鏈中的索引(height)以及一個隨機值(nonce).同時,區塊頭中不能包含任何交易.進行工作量證明計算.當礦工生成區塊頭之后,如果符合當前網絡難度目標,就向全網廣播該區塊頭;

(2)所有節點將這個區塊頭的散列值作為確定T個participants 的數據.具體算法是:通過將T個固定的值與區塊頭的散列值進行哈希運算,得到的第i個結果x將被用來確定第i個participant.這個過程就是在PoT 中引入一個跟隨幣機制,有意向成為participant 的節點將所有未花費的輸出(UTXO)按照字典的方式進行排序,這里假設UTXO 不為空,具體格式為{NodeID,Coin},其中,NodeID為節點的公鑰地址,Coin表示節點所持幣的數量.同時,CurrentID表示當前participant 的序號,并且CurrentID≤T.具體過程如下:節點選取一個其值介于1 和系統中UTXO 總數量之間的隨機數x,為了找到第x個幣的持有者,節點找到一個最小的i,使得列表從最開始到i的節點所持UTXO 代幣數量不小于x.這樣,第i個地址就是第x個幣的擁有者;

(3)在確定了T個participants(參與者)之后.在每一個slot 中,都會從中隨機選取N個節點作為stakeholder參與共識,這里N

(4)第N個stakeholder 向網絡廣播打包后的區塊,當其他節點收到這個區塊并驗證是有效時,這些節點將該區塊認為是區塊鏈的合法擴展.考慮到以后的網絡會拓展得很大,所以如果有兩個區塊同時在全網傳播,那么兩個區塊就進行基于鏈的權益證明競爭上鏈.當區塊被擴展到了鏈上,則給該區塊簽名的所有stakeholder 的行為均被定義為#good;

(5)區塊產生之后的獎勵由第N個stakeholder 收集,并且將之分享給礦工和前N-1 個stakeholder.

Fig.1 Proof of trust framework basedon dynamic authorization圖1 基于動態授權的信任證明機制

共識生成區塊的偽代碼算法見算法1.

算法1.Proof of Trust Consensus.

Input:Bprevprevious block;Adressminer:The miner’s public address;Height:Height relative to the genesis block;Nonce;CurrentID:The index of the stakeholder;M:User-defined parameters;D:The degree of difficulty that the network needs to satisfy;UTXO_List:The dictionary which is defined with {NodeID:Coin};

Output:A block with transactions.

2.3 信用消耗

信任度是節點誠實參與區塊生成而獲取的獎勵,同時也是節點信譽的表現形式.為了保持網絡中在線節點的數量,PoT 中引入了信用消耗機制.同時,因為logistic 回歸模型的特性,節點的信任度是有信用上限的.

(1)信用消耗

信用消耗是為了保證節點的參與度而設置,而不是為了讓節點以消耗信用度的方式參與區塊的生成.因為當網絡中的stakeholder 過少時,網絡的安全與穩定就得不到保證.在本機制中,節點的信用度會隨著時間的推移而降低.即使節點不是stakeholder,為了保證網絡安全,它也要參與區塊的驗證.只要參與區塊的驗證,就不會產生信用消耗.節點i的信任度具體消耗算法如公式(7)所示:

其中,ΔB表示區塊間隔,即上次參與生成的區塊與當前區塊之間的間隔(從0 開始),算法如下:

如果剛好兩個區塊是連續的,則ΔB=0.此時,節點以當前信任度繼續參與區塊生成,信任消耗函數就不會執行,這就最大程度地保證了網絡中節點積極在線參與區塊的驗證.D值表示當前一段時間內網絡的難度值,D的值越大,就表示越需要多次地反復嘗試才能找到有效的區塊.D的值根據網絡中的出塊速率進行動態調節,最終將網絡的出塊速率維持在一個穩定的水平.難度的提升,意味著區塊上鏈需要更多的信任度加權,上鏈成本就會增加,理性節點可能會選擇暫時不參與區塊生成,以尋求網絡難度更低、機會更大的時候參與區塊生成.當節點參與度過低時,惡意節點成功的概率也就越大.因此,在網絡難度提高的同時,也增大對于不參與區塊生成的節點的信任消耗,將有助于提高節點的參與度,維護區塊鏈網絡的運行安全.

(2)信用上限

PoT 中的節點可以不通過自身所持資源來確定其擁有的投票權重,并且其所持信任度上限最高為1,一定程度上解決了原始PoS 協議中的幣齡累積導致的中心化問題.傳統的PoS 機制中,投票權重的增長是線性的,PoT中信任度增長呈非線型的,信任度的提升速率隨著時間的推移會下降,最后趨近于0,因此不會造成單一節點信任度過高導致的網絡中心化問題.

2.4 投票機制

在PoT 中,原先的基于幣齡或者加密貨幣所有權的權益被修改為基于節點自身的信任度的權益,不再依賴于節點自身所持資源.stakeholder 通過對于區塊的簽名來賦予區塊信任度,信任度越高,則得到哈希結果的速度就越快,計算公式見公式(9).

這里,Bprev是節點投票區塊的前置區塊;投票節點的地址是A,它的信任度為trust(A);Blockcur是stakeholderN打包后的區塊;t是世界標準時間(UTC)的時間戳;M∈[1,D]是一個常數,可以根據網絡實時狀況動態變化;D值代表難度;δt則是從Bprev創建以后所經過的時間.當一個區塊被上傳到整個網絡之后,最初區塊滿足公式(9)的可能性是很低的;但是隨著時間的推移,成功概率將逐漸增加,首先計算出來的區塊才能成為區塊鏈的合法擴展.

對于地址為A的stakeholder 節點,其信任度是被鎖定的,即該節點一次只允許投票一次.基于所提供的地址A和上述公式的時間戳t,stakeholder 就能保證其簽名的有效性.

3 攻擊成本分析

3.1 賄賂攻擊

傳統雙花攻擊場景如下.

(1)攻擊者發起一個之后會被他自己撤銷的一個交易;

(2)在該交易之后,攻擊者在該交易所在區塊之前的那個區塊上開始建立側鏈;

(3)當新交易進入區塊并且獲得了足夠的確認數目(6 個區塊)且攻擊者的側鏈長度超過主鏈時,攻擊者的側鏈就成為了主鏈,攻擊者發起的第1 筆交易被判定為無效,雙花攻擊成功.

要想成功地進行雙花攻擊,攻擊者必須在整個攻擊過程中控制超過50%的網絡資源(PoW 算力、PoS 權益).相對于控制51%的算力,控制51%的流通代幣是非常困難的[3].但是這并不意味著在權益證明中就無法展開攻擊,攻擊者可以提供報酬給那些愿意在他指定的區塊上鑄造新區塊的節點.如果攻擊失敗,參加攻擊的用戶并不會遭受太多損失.對于攻擊者而言,只要賄賂的金額小于商品交易價格,那么總是有利可圖的.

在PoT 中,如果要進行賄賂攻擊是不可行的,因為每次生成區塊的stakeholder 都不相同,并且在區塊產生之前stakeholder 是不確定的.一旦被發現參與惡意投票,對于信任度的懲罰是極高的,而且只有第N個stakeholder具有對交易進行打包的權力.除非攻擊者提前找到第N個stakeholder,一旦stakeholderN對無效交易進行打包操作,就將受到信任度懲罰.因懲罰系數γ的存在,高昂的信任度懲罰對其來說是不可承受的.證明過程見公式(10)~公式(12).

公式(10)是節點i誠實參與共識所獲取的信任度,公式(11)是節點i在誠實投票之后進行惡意投票被系統識別后更新的信任度,公式(12)是節點i誠實投票后進行惡意投票的信任度與之前誠實投票的信任度所占比例.

假設t=2,γ=2,?x=τx=α=1 時,.在epoch 的第2 個slot 中,在誠實參與共識一次之后,惡意攻擊者進行惡意投票被系統識別后的信任度只有之前的36%.并且這種信任度懲罰會隨著輪數以及時間的遞增而快速上升,α越大,懲罰越重.這種懲罰力度的存在,對任何理性節點都是難以接受的.

3.2 累積攻擊

累積攻擊最原始的版本是幣齡累積攻擊,是針對PPCoin 和其他使用幣齡作為用戶權益的系統而發起的攻擊.在后來的PPCoin 版本中,UTXOs 的幣齡都以90 天為限制.在Novacoin 和BlackCoin 中,對于幣齡同樣也有限制.然而,通過限制幣齡來大幅降低攻擊的可能的同時,也減弱了以幣齡作為權益的好處.

在PoT 中,信任度的累積不是線性的,而是基于非線性的logistic 回歸模型.在PoT 中,如果想要進行累積攻擊,就需要對信任度進行累積.本文提出的修正logistic 算法使得信任度的累積變得十分漫長,并且節點惡意行為一旦被發現,對節點的信任度懲罰力度將是任何理性節點都不可承受的,因此在PoT 中,想要通過積累信任度發起攻擊的收益不足以抵消其遭受的信任度懲罰損失.如果攻擊者要繞過信任度,僅通過自身所持權益生成區塊與其他區塊進行上鏈競爭,其成功的概率也是相當低的.

證明:首先,攻擊者想要控制stakeholder 進行2/3 投票.在擁有n個stakeholder 節點的網絡中,攻擊者必須要控制至少2/3 的stakeholder 節點;同時,攻擊者還需要最后一個stakeholder 將自己捏造的虛假交易打包進區塊中,即攻擊者控制的stakeholder 中必須有一個是交易打包者.因此,攻擊者成功的總概率為

p表示成為stakeholder 的概率.假設一個擁有6 個stakeholder 的網絡,攻擊者持有20%的總權益,那么攻擊者繞過信任度,成功上鏈競爭.那么他成功的概率為

相比其擁有的20%的權益,區區1%的成功率實在是微不足道的.

3.3 權益粉碎攻擊

權益粉碎攻擊是針對PoS 特有的攻擊方式,其具體場景如下:在運行PoS 協議的網絡中,如果某個節點所持權益很低(比如1%),那么它成功生成區塊的概率也就是1%.任何一個理性的節點都愿意去嘗試分叉,因為在純PoS 協議中,分叉不需要消耗任何資源,唯一消耗的就是幣齡.如果該區塊沒有被接受,則幣齡也不會消耗.盡管這樣會造成整個網絡的加密貨幣價值降低,但是因為該節點所占權益很少,所以它們并不在乎.

在PoT 中,只有隨機生成的N個stakeholder 有權利擴展區塊鏈,礦工只負責生成區塊供stakeholder 進行簽名,并沒有決定權.在制定決策時就很清楚,不會有二義性,具有很強的治理能力.正常情況下是不會經歷任何分叉,因為N個stakeholder 是合作生產區塊而不是競爭.

4 實驗分析

基于提出的PoT 機制,在Docker version 18.03.0-ce,build 0520e24 中實現了原型系統,實驗環境為Intel I7-4702MQ CPU 2.20GHz 和16G 內存,操作系統為64 位Win10.通過搭建原型驗證模型,驗證PoT 協議的共識時延能否隨著時間的增長而降低以及對惡意節點的懲罰,并對節點信任度增長與消耗進行實驗.

4.1 信任度增長

原型系統信任度增長采用改進后的logistic 線性回歸模型.網絡中一共有10 個礦工節點,其中4 個作為stakeholder.因為stakeholder 節點每次的選取都是隨機的,所以在每一個slot 中,參與共識的stakeholder 不盡相同,網絡中節點信任度增長過程如圖2 所示.投票結果統計公式中常量threshold=0.25,用戶自定義常量c值分別為0.1,0.5,0.9.

Fig.2 Trust increase in network nodes圖2 網絡節點信任度增長

圖2 表明:不同c值的信任度增長速率是不同的,但是最后都趨近于上限.c值越大,即說明用戶給予的最近的信任度偏差的權重比累積信任度偏差要高,從而最近時間片內的信任度增長率在總體信任度增長率中占比升高.經過多輪共識,網絡中節點的信任度均會維持在一個恒定的水平,因此不會產生單個節點權益過大而導致的權益中心化問題.

4.2 信任度懲罰

假設原型系統中所有stakeholder 在其信任度到達高峰時保持離線狀態,不再參與共識,整個網絡將會變得不再安全,其總體信任度下降過程如圖3 所示.

可以看出:如果網絡中被選出的stakeholder 都不參與區塊的生成過程,開始幾輪其總體信任度還能保持基本穩定,但從第5 輪開始,信任度明顯下降,并呈現非線性的下降過程,在17 輪后逐漸趨于0.

Fig.3 Trust consumption in network nodes圖3 信任度消耗

4.3 共識時延

原型系統搭建了擁有10 個節點的分布式網絡,stakeholder 節點有4 個.投票結果統計公式中常量的取值為:難度D=4,5,M=2,一共進行25 輪共識,并且對最終的時延結果進行了最小二乘曲線擬合,結果如圖4 所示.

Fig.4 Time delay in consensus圖4 共識時延對比圖

圖4 表示在難度值D分別為4 和5 時,經過25 輪之后,PoT 協議與的PoW 協議的共識時延變化情況.共識時延表示區塊鏈網絡中的出塊時間,即區塊上鏈所經過的時間,時延單位為秒(s).虛線部分是PoW 的共識時延變化過程,實線是PoT 的共識時延變化過程.在此基礎上分別進行了擬合,因為哈希計算的隨機性,PoW 時延波動性很大,但是擬合的結果趨于穩定.這說明實驗平臺的算力是穩定的.相反,PoT 協議的共識時延隨著共識輪數的增加而降低,最終會維持在穩定的水平.

圖5 表示在D=4 時,網絡中stakeholder 節點數量的不同對于共識時延的影響.參與共識的stakeholder 節點數量分別取N=5,N=6,N=8.

由圖5 可知:隨著網絡中stakeholder 節點數量的增加,網絡共識時延會有所下降,最終會維持穩定的水平.但是stakeholder 數量的增加不能是無限制的,當網絡中stakeholder 節點數量過多時,節點被攻擊者賄賂的概率也將上升.同時,如果網絡中stakeholder 節點過少,網絡共識時延將增大,導致stakeholder 暴露時間過長,增大了stakeholder 節點被攻擊者賄賂的概率.圖中曲線的波動是因為網絡中每次參與共識的stakeholder 的不確定造成了區塊信任度的波動,從而最終導致共識時延的波動,但是共識時延都是呈下降趨勢.

Fig.5 Effect of the number of stakeholder on time delay in consensus圖5 stakeholder 數量對時延影響

4.4 節點數量對共識時延的影響

圖6 表示在D=4,stakeholder 數量增長到7 時,網絡中節點數量的變化對于共識時延的影響.一共進行了30輪共識,普通節點數量分別為20,50 和100.

Fig.6 Effect of the number of nodes on time delay in consensus圖6 節點數量對時延影響

由圖6 可知:隨著網絡中節點數量的增加,共識時延并沒有發生特別大的改變.這是因為在PoT 中,只有stakeholder 才能決定區塊是否上鏈,區塊產生的難易程度與普通節點的數量沒有直接關系.這也說明PoT 具有一定的節點可擴展性,出塊效率并不因普通節點數量的變化而變化.

4.5 懲罰系數

懲罰系數測試分別對節點行為所占不同比重以及不同懲罰系數下,節點在經過惡意投票之后信任度的下降比例進行實驗驗證,結果如圖7(a)~圖7(d)所示.在一個epoch 中,當節點誠實行為占比較大時,比如圖7(a)中誠實行為占70%,惡意行為占30%,懲罰系數對于信任度下降比的影響很大:當懲罰系數較低時,如γ=1,節點仍然可以通過進行誠實投票來努力恢復自己的信任度;但是隨著懲罰系數的增大,如γ=3 時,節點越來越難以恢復到作惡前的信任度.并且隨著誠實行為所占比越來越少,例如當誠實行為僅占50%時,信任度最高也只能維持在惡意投票之前的50%.隨著惡意投票行為占比的擴大,節點信任度下降速度也會隨之增大.

由圖7(c)和圖7(d)可知:當惡意行為所占比重很大時,懲罰系數對于節點信任度的懲罰使得節點信任度下降極快,經過兩至三個epoch 信任度就下降為0.因此,無論誠實行為所占比重如何,一旦被檢測有惡意行為發生,其信任度的下降速率將是極快的,對于任何理性節點而言這都是難以承受的下降速率.

Fig.7 Trust penalty in network nodes圖7 信任度懲罰

5 結束語

區塊鏈是近年來研究的熱點,許多行業在使用區塊鏈技術進行行業內的技術革新.然而針對不同的應用場景,單一的共識機制是不足以滿足所有業務需求的,不同業務場景采用的共識機制也不盡相同.本文針對現有共識機制中存在的問題進行了研究與改進,解決了權益證明機制中存在的易受賄賂攻擊、幣齡累積攻擊以及工作量證明機制中存在的自私挖礦等問題.與PoW 相比,在保證網絡安全的前提下,PoT 降低了共識時延.本文提供了一種共識機制的改進思路,并且通過實驗對改進的共識機制的可行性和性能進行了分析和驗證.結果表明:在共識時延方面,PoT 相比PoW 有較大優勢;在預防賄賂攻擊、累積攻擊以及權益粉碎攻擊方面,相較于PoS 也有著顯著優勢.此外,PoT 還可以實現維護網絡拓撲結構、保持在線節點數量以及更高效的資源利用.

猜你喜歡
機制
構建“不敢腐、不能腐、不想腐”機制的思考
自制力是一種很好的篩選機制
文苑(2018年21期)2018-11-09 01:23:06
“三項機制”為追趕超越蓄力
當代陜西(2018年9期)2018-08-29 01:21:00
丹鳳“四個強化”從嚴落實“三項機制”
當代陜西(2017年12期)2018-01-19 01:42:33
保留和突破:TPP協定ISDS機制中的平衡
定向培養 還需完善安置機制
中國衛生(2016年9期)2016-11-12 13:28:08
破除舊機制要分步推進
中國衛生(2015年9期)2015-11-10 03:11:12
氫氣對缺血再灌注損傷保護的可能機制
注重機制的相互配合
中國衛生(2014年3期)2014-11-12 13:18:12
打基礎 抓機制 顯成效
中國火炬(2014年4期)2014-07-24 14:22:19
主站蜘蛛池模板: 亚洲永久视频| 高清色本在线www| aa级毛片毛片免费观看久| 精品视频在线一区| 国产乱子精品一区二区在线观看| 亚洲美女一区| 国产精品不卡片视频免费观看| 欧美精品二区| hezyo加勒比一区二区三区| 538国产在线| lhav亚洲精品| 91精品啪在线观看国产91| 日韩视频免费| 特级精品毛片免费观看| 午夜毛片免费观看视频 | 成人免费视频一区| 免费一级毛片| 久久天天躁狠狠躁夜夜2020一| www.av男人.com| 久久国语对白| 国产精品自在在线午夜区app| 免费亚洲成人| 国产毛片高清一级国语| 国产精品分类视频分类一区| 视频在线观看一区二区| 福利姬国产精品一区在线| 国产男人天堂| 看国产毛片| 国产手机在线ΑⅤ片无码观看| 日韩精品无码一级毛片免费| 99资源在线| 亚洲欧美在线综合一区二区三区 | 91精品视频在线播放| 国产成人精品一区二区秒拍1o| 中文字幕色站| 国产综合在线观看视频| 国产91熟女高潮一区二区| 亚洲第一成人在线| 日本三级欧美三级| 欧美人人干| 精品国产欧美精品v| 熟妇丰满人妻av无码区| 一级毛片免费的| 美女免费黄网站| 亚洲无线一二三四区男男| 综合色88| av在线手机播放| 在线观看无码av免费不卡网站| 国产精品福利社| 亚洲婷婷丁香| 欧美久久网| 五月天久久婷婷| 欧美激情二区三区| 国产成人精品视频一区视频二区| 波多野结衣视频一区二区| 三上悠亚一区二区| 日本亚洲成高清一区二区三区| 91视频精品| 一级毛片免费不卡在线| 麻豆精品国产自产在线| 18禁高潮出水呻吟娇喘蜜芽| 国产另类视频| 日韩东京热无码人妻| 久久综合九九亚洲一区| 亚洲色婷婷一区二区| 狠狠亚洲五月天| 国产噜噜在线视频观看| 日本91在线| 欧美在线中文字幕| 久久久受www免费人成| 国产xx在线观看| 免费av一区二区三区在线| 国产精品久久久久鬼色| 91精品综合| 99re这里只有国产中文精品国产精品| 一级毛片免费不卡在线视频| 国产美女91视频| 嫩草影院在线观看精品视频| 成人午夜天| 视频国产精品丝袜第一页| 在线观看国产精品日本不卡网| 激情无码视频在线看|