㈠ 區塊鏈技術發展現狀與展望
區塊鏈技術發展現狀與展望
區塊鏈技術起源於2008年由化名為 「中本聰」 (Satoshi Nakamoto)的學者在密碼學郵件組發表的奠基性論文《比特幣:一種點對點電子現金系統》。近兩年來,區塊鏈技術的研究與應用呈現出爆發式增長態勢,被認為是繼大型機、個人電腦、互聯網、移動/社交網路之後計算範式的第五次顛覆式創新,是人類信用進化史上繼血親信用、貴金屬信用、央行紙幣信用之後的第四個里程碑。區塊鏈技術是下一代雲計算的雛形,有望像互聯網一樣徹底重塑人類社會活動形態,並實現從目前的信息互聯網向價值互聯網的轉變。區塊鏈的技術特點
區塊鏈具有去中心化、時序數據、集體維護、可編程和安全可信等特點。 去中心化:區塊鏈數據的驗證、記賬、存儲、維護和傳輸等過程均是基於分布式系統結構,採用純數學方法而不是中心機構來建立分布式節點間的信任關系,從而形成去中心化的可信任的分布式系統; 時序數據:區塊鏈採用帶有時間戳的鏈式區塊結構存儲數據,從而為數據增加了時間維度,具有極強的可驗證性和可追溯性; 集體維護:區塊鏈系統採用特定的經濟激勵機制來保證分布式系統中所有節點均可參與數據區塊的驗證過程(如比特幣的「挖礦」過程),並通過共識演算法來選擇特定的節點將新區塊添加到區塊鏈; 可編程:區塊鏈技術可提供靈活的腳本代碼系統,支持用戶創建高級的智能合約、貨幣或其它去中心化應用; 安全可信:區塊鏈技術採用非對稱密碼學原理對數據進行加密,同時藉助分布式系統各節點的工作量證明等共識演算法形成的強大算力來抵禦外部攻擊、保證區塊鏈數據不可篡改和不可偽造,因而具有較高的安全性。區塊鏈與比特幣 比特幣是迄今為止最為成功的區塊鏈應用場景,區塊鏈技術為比特幣系統解決了數字加密貨幣領域長期以來所必需面對的雙重支付問題和拜占庭將軍問題。與傳統中心機構(如中央銀行)的信用背書機制不同的是,比特幣區塊鏈形成的是軟體定義的信用,這標志著中心化的國家信用向去中心化的演算法信用的根本性變革。近年來,比特幣憑借其先發優勢,目前已經形成體系完備的涵蓋發行、流通和金融衍生市場的生態圈與產業鏈,這也是其長期占據絕大多數數字加密貨幣市場份額的主要原因。區塊鏈的發展脈絡與趨勢
區塊鏈技術是具有普適性的底層技術框架,可以為金融、經濟、科技甚至政治等各領域帶來深刻變革。按照目前區塊鏈技術的發展脈絡,區塊鏈技術將會經歷以可編程數字加密貨幣體系為主要特徵的區塊鏈1.0模式,以可編程金融系統為主要特徵的區塊鏈2.0模式和以可編程社會為主要特徵的區塊鏈3.0模式。然而,上述模式實際上是平行而非演進式發展的,區塊鏈1.0模式的數字加密貨幣體系仍然遠未成熟,距離其全球貨幣一體化的願景實際上更遠、更困難。目前,區塊鏈領域已經呈現出明顯的技術和產業創新驅動的發展態勢,相關學術研究嚴重滯後、亟待跟進。區塊鏈的基礎模型與關鍵技術
一般說來,區塊鏈系統由數據層、網路層、共識層、激勵層、合約層和應用層組成。其中,數據層封裝了底層數據區塊以及相關的數據加密和時間戳等技術;網路層則包括分布式組網機制、數據傳播機制和數據驗證機制等;共識層主要封裝網路節點的各類共識演算法;激勵層將經濟因素集成到區塊鏈技術體系中來,主要包括經濟激勵的發行機制和分配機制等;合約層主要封裝各類腳本、演算法和智能合約,是區塊鏈可編程特性的基礎;應用層則封裝了區塊鏈的各種應用場景和案例。該模型中,基於時間戳的鏈式區塊結構、分布式節點的共識機制、基於共識算力的經濟激勵和靈活可編程的智能合約是區塊鏈技術最具代表性的創新點。區塊鏈技術的應用場景
區塊鏈技術不僅可以成功應用於數字加密貨幣領域,同時在經濟、金融和社會系統中也存在廣泛的應用場景。根據區塊鏈技術應用的現狀,本文將區塊鏈目前的主要應用籠統地歸納為數字貨幣、數據存儲、數據鑒證、金融交易、資產管理和選舉投票共六個場景:數字貨幣:以比特幣為代表,本質上是由分布式網路系統生成的數字貨幣,其發行過程不依賴特定的中心化機構。數據存儲:區塊鏈的高冗餘存儲、去中心化、高安全性和隱私保護等特點使其特別適合存儲和保護重要隱私數據,以避免因中心化機構遭受攻擊或許可權管理不當而造成的大規模數據丟失或泄露。數據鑒證:區塊鏈數據帶有時間戳、由共識節點共同驗證和記錄、不可篡改和偽造,這些特點使得區塊鏈可廣泛應用於各類數據公證和審計場景。例如,區塊鏈可以永久地安全存儲由政府機構核發的各類許可證、登記表、執照、證明、認證和記錄等。金融交易:區塊鏈技術與金融市場應用有非常高的契合度。區塊鏈可以在去中心化系統中自發地產生信用,能夠建立無中心機構信用背書的金融市場,從而在很大程度上實現了「金融脫媒」;同時利用區塊鏈自動化智能合約和可編程的特點,能夠極大地降低成本和提高效率。資產管理:區塊鏈能夠實現有形和無形資產的確權、授權和實時監控。無形資產管理方面已經廣泛應用於知識產權保護、域名管理、積分管理等領域;有形資產管理方面則可結合物聯網技術形成「數字智能資產」,實現基於區塊鏈的分布式授權與控制。選舉投票:區塊鏈可以低成本高效地實現政治選舉、企業股東投票等應用,同時基於投票可廣泛應用於博彩、預測市場和社會製造等領域。區塊鏈技術的現存問題
安全性威脅是區塊鏈迄今為止所面臨的最重要的問題。其中,基於PoW共識過程的區塊鏈主要面臨的是51%攻擊問題,即節點通過掌握全網超過51%的算力就有能力成功篡改和偽造區塊鏈數據。其他問題包括新興計算技術破解非對稱加密機制的潛在威脅和隱私保護問題等。 區塊鏈效率也是制約其應用的重要因素。區塊鏈要求系統內每個節點保存一份數據備份,這對於日益增長的海量數據存儲來說是極為困難的。雖然輕量級節點可部分解決此問題,但適用於更大規模的工業級解決方案仍有待研發。比特幣區塊鏈目前每秒僅能處理7筆交易,且交易確認時間一般為10分鍾,這極大地限制了區塊鏈在大多數金融系統高頻交易場景中的應用。 PoW共識過程高度依賴區塊鏈網路節點貢獻的算力,這些算力主要用於解決SHA256哈希和隨機數搜索,除此之外並不產生任何實際社會價值,因而一般意義上認為這些算力資源是被「浪費」掉了,同時被浪費掉的還有大量的電力資源。如何能有效匯集分布式節點的網路算力來解決實際問題,是區塊鏈技術需要解決的重要問題。 區塊鏈網路作為去中心化的分布式系統,其各節點在交互過程中不可避免地會存在相互競爭與合作的博弈關系,例如比特幣礦池的區塊截留攻擊博弈等。區塊鏈共識過程本質上是眾包過程,如何設計激勵相容的共識機制,使得去中心化系統中的自利節點能夠自發地實施區塊數據的驗證和記賬工作,並提高系統內非理性行為的成本以抑制安全性攻擊和威脅,是區塊鏈有待解決的重要科學問題。智能合約與區塊鏈技術
智能合約是一組情景-應對型的程序化規則和邏輯,是部署在區塊鏈上的去中心化、可信共享的程序代碼。通常情況下,智能合約經各方簽署後,以程序代碼的形式附著在區塊鏈數據(例如一筆比特幣交易)上,經P2P網路傳播和節點驗證後記入區塊鏈的特定區塊中。智能合約封裝了預定義的若干狀態及轉換規則、觸發合約執行的情景(如到達特定時間或發生特定事件等)、特定情景下的應對行動等。區塊鏈可實時監控智能合約的狀態,並通過核查外部數據源、確認滿足特定觸發條件後激活並執行合約。 智能合約對於區塊鏈技術來說具有重要的意義。一方面,智能合約是區塊鏈的激活器,為靜態的底層區塊鏈數據賦予了靈活可編程的機制和演算法,並為構建區塊鏈2.0和3.0時代的可編程金融系統與社會系統奠定了基礎;另一方面,智能合約的自動化和可編程特性使其可封裝分布式區塊鏈系統中各節點的復雜行為,成為區塊鏈構成的虛擬世界中的軟體代理機器人,這有助於促進區塊鏈技術在各類分布式人工智慧系統中的應用,使得基於區塊鏈技術構建各類去中心化應用(Decentralized application, Dapp)、去中心化自治組織(Decentralized Autonomous Organization, DAO)、去中心化自治公司(Decentralized Autonomous Corporation, DAC)甚至去中心化自治社會(Decentralized Autonomous Society, DAS)成為可能。 區塊鏈和智能合約技術的主要發展趨勢是由自動化向智能化方向演化。現存的各類智能合約及其應用的本質邏輯大多仍是根據預定義場景的「 IF-THEN」類型的條件響應規則,能夠滿足目前自動化交易和數據處理的需求。未來的智能合約應具備根據未知場景的「 WHAT-IF」推演、計算實驗和一定程度上的自主決策功能,從而實現由目前「自動化」合約向真正的「智能」合約的飛躍。區塊鏈驅動的平行社會
近年來,基於CPSS(Cyber-Physical-SocialSystems)的平行社會已現端倪,其核心和本質特徵是虛實互動與平行演化。區塊鏈是實現CPSS平行社會的基礎架構之一,其主要貢獻是為分布式社會系統和分布式人工智慧研究提供了一套行之有效的去中心化的數據結構、交互機制和計算模式,並為實現平行社會奠定了堅實的數據基礎和信用基礎。 就數據基礎而言,管理學家愛德華戴明曾說過:除了上帝,所有人必須以數據說話。然而在中心化社會系統中,數據通常掌握在政府和大型企業等「少數人」手中,為少數人「說話」,其公正性、權威性甚至安全性可能都無法保證。區塊鏈數據則通過高度冗餘的分布式節點存儲,掌握在「所有人」手中,能夠做到真正的「數據民主」。就信用基礎而言,中心化社會系統因其高度工程復雜性和社會復雜性而不可避免地會存在「默頓系統」的特性,即不確定性、多樣性和復雜性,社會系統中的中心機構和規則制定者可能會因個體利益而出現失信行為;區塊鏈技術有助於實現軟體定義的社會系統,其基本理念就是剔除中心化機構、將不可預測的行為以智能合約的程序化代碼形式提前部署和固化在區塊鏈數據中,事後不可偽造和篡改並自動化執行,從而在一定程度上能夠將「默頓」社會系統轉化為可全面觀察、可主動控制、可精確預測的「牛頓」社會系統。 ACP(人工社會Artificial Societies、計算實驗Computational Experiments和平行執行ParallelExecution)方法是迄今為止平行社會管理領域唯一成體系化的、完整的研究框架,是復雜性科學在新時代平行社會環境下的邏輯延展和創新。 ACP方法可以自然地與區塊鏈技術相結合,實現區塊鏈驅動的平行社會管理。首先,區塊鏈的P2P 組網、分布式共識協作和基於貢獻的經濟激勵等機制本身就是分布式社會系統的自然建模,其中每個節點都將作為分布式系統中的一個自主和自治的智能體(agent)。隨著區塊鏈生態體系的完善,區塊鏈各共識節點和日益復雜與自治的智能合約將通過參與各種形式的Dapp,形成特定組織形式的DAC和DAO,最終形成DAS,即ACP中的人工社會。其次,智能合約的可編程特性使得區塊鏈可進行各種「 WHAT-IF」 類型的虛擬實驗設計、場景推演和結果評估,通過這種計算實驗過程獲得並自動或半自動地執行最優決策。最後,區塊鏈與物聯網等相結合形成的智能資產使得聯通現實物理世界和虛擬網路空間成為可能,並可通過真實和人工社會系統的虛實互動和平行調諧實現社會管理和決策的協同優化。不難預見,未來現實物理世界的實體資產都登記為鏈上智能資產的時候,就是區塊鏈驅動的平行社會到來之時。
㈡ 區塊鏈可不可以寫進有關數據結構的論文里
你考上可不可以寫進有關數據結構的路人里,區塊鏈兒可以寫進數據結構的論文里。
㈢ 區塊鏈畢業設計開題報告
課題研究的背景:
隨著現代科技與信息產業的發展,現階段,第四次工業革命初見端倪,全球即將進入一個以互聯網、人工智慧等新技術為核心的科技時代,同時,區塊鏈技術應運而生,成為國際眾多政府與行業關注的熱點對象。區塊鏈技術已經被視為繼蒸汽機、電力、信息和互聯網科技之後,最有潛力觸發第五輪顛覆性革命浪潮的核心技術。過去10年,在政府與政策的大力支持下,我國公益慈善事業的發展形勢較為樂觀。然而隨著慈善規模不斷發展擴大,我國公益事業逐漸顯露了一些弊端。傳統的公益事業存在的最大問題是公信力不足,存在慈善組織內部管理不健全、成本高等問題,但目前許多互聯網公益服務公司正積極利用區塊鏈這一新技術解決該問題。區塊鏈技術具有去中心化、信息可追溯且不可篡改、公開透明、智能合約等特點,能夠彌補傳統公益事業中存在的信息不透明、管理效率低等不足, 區塊鏈技術進入公益事業,將為慈善行業帶來新的發展契機。
課題研究的主要內容: 本課題主要包括以下三個方面的內容:
[if !supportLists]一、[endif]區塊鏈技術與公益結合會出現的問題並解決。
[if !supportLists]二、[endif]基於區塊鏈技術做一個公益查詢網頁
[if !supportLists]三、[endif]對該查詢系統應用問題及闡述
課題研究的目的:
我國公益規模不斷的發展擴大,隨之而來我們的弊端也被顯露出來,公信力不足,慈善組織缺乏管理,而利用區塊鏈技術可以達到解決這問題的效果。該技術會在捐贈流程中實行數據和行為的全程跟蹤,存證,實現公益鏈的完整公開,使捐贈者進行有效監督,避免了效率低,資金流向明確等缺點,為公益項目控股風險,提升公信力和公益項目的透明度,促進公益項目的發展與進步,增強了人與人的信任。公益性企業根據區塊鏈系統的屬性與特點,可以在公益流程中實行數據與行為的全周期跟蹤、存證與審計,使公益項目參與各方能夠對該項目進行全程跟蹤及有效監督, 避免公益中因人為降低效率的缺點,從而為公益項目提供控制風險、判斷效果的理性方法, 提升公益事業的透明度,促進公益發展。
課題研究的意義: 本課題擬在區塊鏈技術的基礎上,結合我國公益事業發展實際,做出關於公益事業捐贈的追蹤,公開透明的系統。通過對區塊鏈技術和慈善事業業務的深入分析, 我們發現區塊鏈技術對解決公益透明性問題有著天然優勢。區塊鏈技術可理解為是一種分布式的記賬方式,可記錄所有交易信息並確保無法篡改,這就決定了凡需要公正、公平、誠信的地方,區塊鏈都有很大的技術發揮空間。同時,智能合約的加入直接解決了專款專用這一業務難題。
最終將會實現公民之間信任增強,捐贈渠道速度加快,推動社會捐助事業的發展
二、文獻綜述 (國內外相關研究現況和發展趨向)
[if !supportLists] (一) [endif] 國外區塊鏈相關產業現狀
中歐在區塊鏈產業政策中逐漸佔領全球,歐盟在2018年2月已成立歐洲區塊鏈觀察論壇,主要職責包括:政策確定,產學研聯動,跨國境BaaS
(Blockchain as a Service)服務構建,標准開源制定等,組在Horizon2020投入 500萬歐作為區塊鏈研發基金(在2018年12月19日前),預計三年內(2018-2020) 區塊鏈方面投資將達到3.4億歐元。美國則由於各州之間政策不一,雖然區塊鏈在美國初創企業中仍然是熱潮,產業政策推動-直較慢。中東地區以迪湃為首在引|領區塊鏈的潮流,由政府牽頭,企業配合以探索區塊鏈的新技術應用。亞太區域日韓也相對活躍,日本以NTT為主,政府背後提供支撐,韓國以金融為切入點探索區塊鏈應用。主義也時刻在威脅著中國社會的各個領域。綜觀國外主要發達國家新媒體文化的發展現狀,總結經驗,吸取教訓,對中國新媒體文化發展有一定的啟示。
[if !supportLists] (二) [endif] 國內新媒體研究現狀
中國國務院印發《「十三五」國家信息化規劃》,區塊鏈與大數據、人工智慧、機器深度學習等新技術,成為國家布局重點。中國人民銀行印發了《中國金融業信息技術"十三五」發展規劃》,明確提出積極推進區塊鏈、人工智慧等新技術應用研究,並組織進行國家數字貨幣的試點。在2017年10月,工信部發布《中國區塊鏈技術和應用發展白皮書》,這是首個落地的區塊鏈官方指導文件。
各地政府,特別是沿海地區紛紛成立區塊鏈實驗地、研究院。前,深圳、杭州、廣州、貴陽等地政府都在積極建立區塊鏈發展專區,給予特別扶植政策。中廣州在2017年12月正式發布廣州區塊鏈10條策略,在黃浦區和開發區打造區塊鏈企業技術創新區。深圳在2018年3月由深圳市經濟貿易和信息化委員會發布《市經貿信息委關於組織實施深圳市戰略性新興產業新一代信息技術信息安全轉型201 8年第二批扶持計劃的通知》,區塊鏈在扶持方向之列,這是繼廣州、貴陽、鴿杭州之後,國內第5個地方政府,出台的關於區塊鏈的扶持政策。
( 三)區塊鏈在開源領域的現狀
超級賬本(Hyperledger)
超級賬本(Hyperledger)是由Linux基會於2015年發起的推進區塊鏈數字技術和交易驗證的開源項目,吸引了包括IBM,英特爾,Fujitsu,UPS,Cisco,華為,Redhat,Oracle,三星,騰訊雲,網路金融等眾多公司參與,目前已經有超過200家會員單位,Aache基金會創始人BranBehlendorf擔任賬本項目的執行董事。
超級賬本項目的目標是讓成員共同合作,共建開放平台,滿足來自多個不同行業的用戶案例並簡化業務流程。流程賬本旗下有多個區塊鏈平台項目,包括BIM貢獻的Fabric項目,Intel貢獻的Sawtooth項目,以及Iroha,Burrow,Indy等。
區塊鏈在標准領域的發展現狀
ITU-T
ITU-T (國際電信聯盟標准化組織)於2016至2017年初,SG16 (Study Group)、SG17和SG20分別啟動了分布式賬本的總體需求、安全,以吸在物聯網中的應用研究。成立三個焦點組Focus Group (分布式賬本焦點組(FG DLT)、數據處理與管理焦點組(FG DPM) )、法定數字貨幣焦點組(FG DFC) ), 分別針對區塊鏈與分布式賬本技術應用與服務研究,基於區塊鏈建立可信任的物聯網和智慧城市數據管理框架,基於數字貨幣的區塊鏈應用展開標准化工作。華為擔任分布式賬本焦點組(FG DLT)架構組主席和數據處理與管理焦點組(FGDPM)區塊鏈組主席。
CCSA (中國通信標准化協會)兩個委員會分別成立了子組和項目:
CCSA TC10 (物聯網技術工作委員會) 2017年10月成立物聯網區塊鏈子組:負責區塊鏈技術在物聯網及其涵蓋的智慧城市、車聯網、邊緣計算、物聯網大數據、物聯網行業應用、物流和智能製造等領域的應用研究與標准化,由中國聯通技術專家擔任組長,華為技術專家擔任副組長。
CCSA TC1 (互聯網與應用技術工作委員會)下區塊鏈與大數據工作組完成兩個區塊鏈行業標准:《區塊鏈: 第1部分區塊鏈總體技術要求》和《區塊鏈:第2部分評價指標和評測方法》,華為積極參與其中。
JPEG
201 8年2月第78屆JPEG會議期間,JPEG委員會組織了關於區塊鏈和分布式賬本技術及其對JPEG標准影響的特別會議。考慮到區塊鏈和分布式賬本等技術對未來多媒體的潛在影響,委員會決定成立一個特設小組在多媒體環境下探索與區塊鏈技術相關的用例和標准化需求,歧持專注於圖像和多媒體應用的標准化工作。
IETF
在2017年6月lETF99會議上成立"Decentralized Internet Infrastructure ProposedRG
(Research Group),計劃研究區塊鏈架構和相應的標准,201 8年IETF在區塊鏈上將可能更多的關注區塊鏈的互聯互通的標準的落地發展。
三、擬採取的研究方法(方案、技術路線等)和可行性論證
本課題主要研究區塊鏈技術的應用於慈善捐贈的結合採取的研究方法:
1、以文獻資料法收集相關理論,以信息檢索、篩選等方法收集文獻資料及其相關理論,來了區塊鏈技術的現狀,掌握區塊鏈去中心化技術。
2、以理論與實際相結合的方法,將該技術與公益事業結合起來。完成對系統的改進。
3、採用對比分析的方法,從國內外兩個方面討論新媒體運營發展現狀,以及我國新媒體運營模式發展的現存問題,並展望該技術領域的發展前景。
可行性論證:
1、技術可行性,本課題所涉及的研究目標,在國內外已經有相當多的理論基礎。通過文獻調查,可以了解到實際的、可靠的、有用的信息數據,實際要求的難度不大。
2、經濟可行性,本課題的研究,可以通過網路和圖書館查閱文獻資料,方便可行,不需要很多的經濟消耗,所以,從經濟的角度,完全可行。
3、操作可行性,本課題要求對區塊鏈技術與公益的結合特別是追溯這些方面應用,對關於此課題的畢業設計的系統的全面解析,能夠通過對既有文獻的學習和既有資料文檔的研習,利用自己搜集的數據,進行整理和分析,學以致用,完整的完成本次課題。從可操作性的角度來講,完全可行。
四、預期結果(或預計成果)
1、通過對資料的研究,明確區塊鏈技術的相關概念,熟練運用dapp,製作出網頁。
2、通過對分布式應用,製作出可以使大眾快速瀏覽與了解公益進程的系統為我國公益事業進一步發展增加便利。
3、希望我能夠從這次論文的撰寫的過程中不斷學習,不斷進步。能夠掌握區塊鏈的相關的知識,對自己以後的事業能有所幫助。
㈣ 求一份計算機本科的畢業設計,題目只要計算機類的就可以
計算機畢業設計
基於Python的SIFT和KCF的運動目標匹配與跟蹤 畢業論文+項目源碼
基於Python決策嫌襲樹演算法的學生學習行為數據分析 設計報告+代碼及數據
基於Sring+bootstrap+MySQL的住房公積金管理系統 課程報告+項目源碼及資料庫文件
基於C++的即時通信軟體設計 畢業論文+項目源碼
基於JavaWeb+MySQL的圖書管理系統 課程報告+項目源碼及資料庫文件
基於Android Studio+Android SDK的手機通訊錄管理軟體設計 課程報告+項目源碼
基於JSP+MySQL的校園網上訂餐系統 畢業論文+項目源碼及資料庫文件
基於AndroidStudio的花藝分享平台APP設計 報告+源碼及APK文件
基於Python的酒店評論情感分析 課程報告+答辯PPT+項目源碼
基於QT的教務選課管理系統設計與實現 畢業論文+項目源碼
基於Android+Springboot+Mybatis+Mysql的個人生活APP設計 說明書+項目源碼
基於Vue.js+Go的Web3D宇宙空間數據可視化系統 設計報告+前後端源碼及數據
基於java+android+SQLite的保健型果飲在線銷售APP設計 畢業論文+源碼資料庫及APK文件
基於Vue.js+SpringBoot+MyBatis+MySQL的高校綜合資源發布分享社交二手平台 畢業論文+項目源碼及資料庫文件+演示視頻
基於Delphi+MySQL的大學生競賽發布及組隊系統 設計報告+源碼資料庫及可執行文件+使用說明書
基於Android的名片信息管理系統宴者滾設計與實現 畢業論文+任務書+外文翻譯及原文+演示視頻+項目源碼
基於Python的電影數據可視化分析系統 設計報告+答辯PPT+項目源碼
基於JavaWeb的企業公司管理系統設計與實現 畢業論文+答辯PPT+演示視頻+項目源碼
高校成績管理資料庫系統的設計與實現 畢業論文+項目源碼
基於JavaWeb的家庭食譜管理系統設計與實現 畢業論文+項目源碼及資料庫文件
基於Python+SQLSERVER的快遞業務管理系統的設計與實現 畢業論文+項目源碼及資料庫文件
基於Python的語音詞頻提取雲平台 設計報告+設計源碼
在推薦系統中引入 Serendipity 的演算法研究 畢業論文+參考文獻+項目源碼
基於Html+Python+Django+Sqlite的機票預訂系統 畢業論文+項目源碼及資料庫文件
基於Python的卷積神經網路的貓狗圖像識別系統 課程晌余報告+項目源碼
基於C++的雲安全主動防禦系統客戶端服務端設計 畢業論文+項目源碼
基於JavaSSM的學生成績管理APP系統設計與實現 畢業論文+答辯PPT+前後台源碼及APK文件
基於JavaSwing+MySQL的清朝古代名人數據管理系統設計 畢業論文+任務書+項目源碼及資料庫文件
基於Python_Django的社會實踐活動管理系統設計與實現 畢業論文
基於Servlet WebSocket MySQL實現的網路在線考試系統 畢業論文+項目源碼
基於JavaWEB+MySQL的學生成績綜合管理系統 畢業論文+項目源碼及資料庫文件
基於SpringBoot+Vue和MySQL+Redis的網路課程平台設計與實現 畢業論文+任務書+開題報告+中期報告+初稿+前後台項目源碼
基於Java的畢業設計題目收集系統 課程報告+項目源碼
基於Java+Python+html的生產者與消費者演算法模擬 畢業論文+任務書+項目源碼
基於JavaWeb+MySQL的學院黨費繳費系統 畢業論文+項目源碼及資料庫文件
基於Java+MySQL的學生成績管理系統 畢業論文+任務書+答辯PPT+項目源碼及資料庫文件
基於Java+MySQL的學生和客戶信息管理系統 課程報告+項目源碼及資料庫文件
基於Java的長整數加減法演算法設計 畢業論文+項目源碼
基於vue+MySQL的畢業設計網上選題系統 畢業論文+項目源碼
基於背景建模和FasterR-CNN的視頻前景和目標檢測 畢業論文+答辯PPT+項目源碼
基於Python的智能視頻分析之人數統計的多種實現 畢業論文+答辯PPT+項目源碼
基於C#+SQL server的校園卡消費信息管理系統 畢業論文+項目源碼及資料庫文件
㈤ POA(Proof of Activity)區塊鏈共識演算法
POA(Proof of Activity)演算法是一個區塊鏈的共識演算法,基本原理是結合POW(Proof of work)和POS(Proof of stake)演算法的特點進行工作,POW演算法和POS演算法的具體內容可以參考:
POW演算法 : https://www.jianshu.com/p/b23cbafbbad2
POS演算法 : https://blog.csdn.net/wgwgnihao/article/details/80635162
POA演算法相比於其他演算法可以改進網路拓撲,維持在線節點比例,需求更少的交易費同時減少共識演算法過程中的能量損耗。
POA演算法需求的網路中同樣包含兩類節點,礦工和普通參與者,其中普通參與者不一定一直保持在線。POA演算法首先由礦工構造區塊頭,由塊頭選出N個幣,這N個幣的所有者參與後續的校驗和生成塊的過程。
從這里可以看到POA演算法不僅與算力有關,後續的N個參與者的選舉則完全由參與者在網路中所擁有的幣的總數量決定。擁有越多幣的參與者越有機會被選為N個後續的參與者。而後續N個參與者參與的必要條件是這N個參與者必須在線,這也是POA命名的由來,POA演算法的維護取決於網路中的活躍節點(Active)。
POA演算法的一個理想的基本流程是,類似於POW協議,礦工構造出一個符合難度要求的塊頭,通過礦工得到的塊頭計算衍生出N個幣的編號,從區塊鏈中追溯可以得到這幾個幣目前所述的參與者。礦工將這個塊頭發送給這N個參與者,其中前N-1個參與者對這個塊進行校驗和簽名,最後第N個參與者校驗並將交易加入到該塊中,將這個區塊發布出去,即完成一個區塊的出塊。
一個理想過程如下圖所示:
在實際運行中,無法保證網路上所有參與者都在線,而不在線的參與者則無法進行校驗和簽名,這個無法被校驗和簽名的塊頭則會被廢棄。
即在實際運行中,應該是一個礦工構造出塊頭後廣播給各個參與者簽名,同時繼續重新構造新的塊頭,以免上一個塊頭衍生的N個參與者存在有某一個沒有在線,而導致塊頭被廢棄。
因此,在這種情況下,一個塊是否被確認不僅與礦工的計算能力有關同時也與網路上的在線比例有關。
與純POW相比,在與比特幣(POW)同樣10分鍾出一個塊的情況下,POA由於會有參與者不在線而產生的損耗,因此,10分鍾內礦工可以構造的塊的數量會更多,即塊頭的難度限制會降低,那麼礦工在挖礦過程中會造成的能量損耗也會降低。
與純POS相比,可以看到POA的出塊流程並不會將構造區塊過程中的相關信息上鏈,可以明顯減少區塊鏈上用於維護協議產生的冗餘信息的量。
本節對上訴協議中一些參數設置進行分析
在礦工構造出塊頭後對塊頭進行校驗和區塊構造的N個參與者的數量選定比較類似於比特幣中每一個塊的出塊時間的選取。比特幣中選擇了10分鍾作為每一個塊的期望出塊時間並通過動態調節難度來適應。
這里N的取值同樣可以選擇選定值或者動態調節。動態調節需要更加復雜的協議內容,同時可能會帶來區塊鏈的數據膨脹,而復雜的協議也增加了攻擊者攻擊的可能性。另外暫時沒有辦法證明動態調節可以帶來什麼好處。靜態調節在後續的分析(4 安全分析)中可以得到N=3的取值是比較合適的。
從上面的描述可以看到,構造新的區塊的除了礦工還有從塊頭中衍生出來的N個幣所有者。在構造出一個新的區塊後,這些參與者同樣應該收到一定的激勵,以維持參與者保持在線狀態。
礦工與參與者之間的非配比例與參與者的在線狀態相關。給予參與者的激勵與參與者保持在線狀態的熱情密切相關,越多參與者保持在線狀態,能更好地維持網路的穩定。因此,可以在網路上在線參與者不夠多的時候,提高參與者得到的激勵分成比例,從而激發更多的參與者上線。
如何確定當前參與者的在線情況呢?可以最後第N個參與者構造區塊時,將構造出來但是被廢棄的塊頭加入到區塊中,如果被丟棄的塊頭數量過多,說明在線人數過低,應當調節分成比例。
同時最後第N個參與者與其他參與者的分成同樣需要考慮,第N個參與者需要將交易加入區塊中,即需要維護UTXO池,同時第N個參與者還需要將被丟棄的塊頭加入新構建的區塊中。
為了激勵其將廢棄區塊頭加入新構建的區塊中,可以按照加入的區塊頭,適當增加一點小的激勵。雖然加入更多的區塊頭,可以在下一輪的時候增加分成的比例,應當足夠激勵參與者往區塊中加入未使用的塊頭了(這里參與者不可能為了增加分成而更多地加入區塊頭,每一個區塊頭都意味著一位礦工的工作量)。
一個參與者如果沒有維護UTXO池則無法構造區塊,但是可以參與前N-1個的簽名,因此為了激勵參與者維護UTXO池,作為最後一個構造區塊的參與者,必須給予更多的激勵,比如是其他參與者的兩倍。
從3.2的描述中可以知道一個用戶必須在線且維護UTXO池才可能盡可能地獲得利益。這種機制勢必會導致一些用戶將自己的賬戶託管給一個中心化的機構。這個機構一直保持在線,並為用戶維護其賬戶,在被選為構造區塊的參與者時參與區塊的構建並獲取利益。最後該機構將收益按照某種形式進行分成。
上面說到參與者必須用自己的密鑰進行簽名,而託管給某個機構後,這個機構在可以用這個密鑰簽名構造區塊的同時,也有可能使用這個密鑰消費用戶的財產。這里可以採用一種有限花銷的密鑰,這個密鑰有兩個功能,一個是將賬戶中的部分財產消費出去,另一個是將所有財產轉移到一個指定賬戶。在託管的時候可以使用這個密鑰,在被通知部分財產被花費後可以立即將所有財產轉移到自己的另一個賬戶下,以保證財產的安全。
從上面的分析可以看到,POA的安全性與攻擊者所擁有的算力和攻擊者所擁有的股權有關。假設攻擊者擁有的在線股權佔比為 ,則攻擊者的算力需要達到其他所有算力的 倍才能達成分叉。假設攻擊者股權總佔比為 ,網路中誠實用戶的在線比例為 ,則攻擊者的算力需要達到其他所有算力的 倍才能達成攻擊。
攻擊的分析表格如下:
從上文的分析可以看到,POA演算法相比於其他演算法可以改進網路拓撲,維持在線節點比例,需求更少的交易費同時減少共識演算法過程中的能量損耗。同時,PoA協議的攻擊成本要高於比特幣的純PoW協議。
參考文獻:Proof of Activity: Extending Bitcoin』s Proof of Work via Proof of Stake
㈥ 區塊鏈共識演算法——(二)PoS共識(Proof of Stake)
2011 年 7 月, 一 位 名 為 Quantum Mechanic 的 數 字 貨 幣 愛 好 者 在 比 特 幣 論 壇 首次提出了權益證明 PoS 共識演算法. 隨後, Sunny King 在 2012 年 8 月發布的點點幣 (Peercoin, PPC) 中首次實現. PoS 由 系統中具有最高權益而非最高算力的節點獲得記賬 權, 其中權益體現為節點對特定數量貨幣的所有權, 稱為幣齡或幣天數 (Coin days)
PoS是考慮到PoW的最大缺陷:浪費資源而提出的,簡單來說就是 誰的權益大,誰說了算 。
PoS共識機制(Proof of Stake 權益證明)通過權益記賬的方式,解決效率低下、資源浪費、節點一致性等問題。
各個節點需要滿足一定的條件(如抵押一定的代幣)才能成為驗證節點(權益提高),系統通過演算法在其中選擇一部分作為出塊節點(礦工),每隔一段時間重新選擇,演算法會保證完全隨機,不可被操控。只有出塊節點才能進行數據處理,爭奪記賬權。
權益主要由權益因子決定,可以是持幣數量,也可以是幣齡及兩者的結合。
以太坊在之後很有可能會改用PoS進行共識,其更加符合以太坊高效率的特點。
㈦ 深入了解區塊鏈的共識機制及演算法原理
所謂「共識機制」,是通過特殊節點的投票,在很短的時間內完成對交易的驗證和確認;對一筆交易,如果利益不相乾的若干個節點能夠達成共識,我們就可以認為全網對此也能夠達成共識。再通俗一點來講,如果中國一名微博大V、美國一名虛擬幣玩家、一名非洲留學生和一名歐洲旅行者互不相識,但他們都一致認為你是個好人,那麼基本上就可以斷定你這人還不壞。
要想整個區塊鏈網路節點維持一份相同的數據,同時保證每個參與者的公平性,整個體系的所有參與者必須要有統一的協議,也就是我們這里要將的共識演算法。比特幣所有的節點都遵循統一的協議規范。協議規范(共識演算法)由相關的共識規則組成,這些規則可以分為兩個大的核心:工作量證明與最長鏈機制。所有規則(共識)的最終體現就是比特幣的最長鏈。共識演算法的目的就是保證比特幣不停地在最長鏈條上運轉,從而保證整個記賬系統的一致性和可靠性。
區塊鏈中的用戶進行交易時不需要考慮對方的信用、不需要信任對方,也無需一個可信的中介機構或中央機構,只需要依據區塊鏈協議即可實現交易。這種不需要可信第三方中介就可以順利交易的前提是區塊鏈的共識機制,即在互不了解、信任的市場環境中,參與交易的各節點出於對自身利益考慮,沒有任何違規作弊的動機、行為,因此各節點會主動自覺遵守預先設定的規則,來判斷每一筆交易的真實性和可靠性,並將檢驗通過的記錄寫入到區塊鏈中。各節點的利益各不相同,邏輯上將它們沒有合謀欺騙作弊的動機產生,而當網路中有的節點擁有公共信譽時,這一點尤為明顯。區塊鏈技術運用基於數學原理的共識演算法,在節點之間建立「信任」網路,利用技術手段從而實現一種創新式的信用網路。
目前區款連行業內主流的共識演算法機制包含:工作量證明機制、權益證明機制、股份授權證明機制和Pool驗證池這四大類。
工作量證明機制即對於工作量的證明,是生成要加入到區塊鏈中的一筆新的交易信息(即新區塊)時必須滿足的要求。在基於工作量證明機制構建的區塊鏈網路中,節點通過計算隨機哈希散列的數值解爭奪記賬權,求得正確的數值解以生成區塊的能力是節點算力的具體表現。工作量證明機制具有完全去中心化的優點,在以工作量證明機制為共識的區塊鏈中,節點可以自由進出。大家所熟知的比特幣網路就應用工作量證明機制來生產新的貨幣。然而,由於工作量證明機制在比特幣網路中的應用已經吸引了全球計算機大部分的算力,其他想嘗試使用該機制的區塊鏈應用很難獲得同樣規模的算力來維持自身的安全。同時,基於工作量證明機制的挖礦行為還造成了大量的資源浪費,達成共識所需要的周期也較長,因此該機制並不適合商業應用。
2012年,化名Sunny King的網友推出了Peercoin,該加密電子貨幣採用工作量證明機制發行新幣,採用權益證明機制維護網路安全,這是權益證明機制在加密電子貨幣中的首次應用。與要求證明人執行一定量的計算工作不同,權益證明要求證明人提供一定數量加密貨幣的所有權即可。權益證明機制的運作方式是,當創造一個新區塊時,礦工需要創建一個「幣權」交易,交易會按照預先設定的比例把一些幣發送給礦工本身。權益證明機制根據每個節點擁有代幣的比例和時間,依據演算法等比例地降低節點的挖礦難度,從而加快了尋找隨機數的速度。這種共識機制可以縮短達成共識所需的時間,但本質上仍然需要網路中的節點進行挖礦運算。因此,PoS機制並沒有從根本上解決PoW機制難以應用於商業領域的問題。
股份授權證明機制是一種新的保障網路安全的共識機制。它在嘗試解決傳統的PoW機制和PoS機制問題的同時,還能通過實施科技式的民主抵消中心化所帶來的負面效應。
股份授權證明機制與董事會投票類似,該機制擁有一個內置的實時股權人投票系統,就像系統隨時都在召開一個永不散場的股東大會,所有股東都在這里投票決定公司決策。基於DPoS機制建立的區塊鏈的去中心化依賴於一定數量的代表,而非全體用戶。在這樣的區塊鏈中,全體節點投票選舉出一定數量的節點代表,由他們來代理全體節點確認區塊、維持系統有序運行。同時,區塊鏈中的全體節點具有隨時罷免和任命代表的權力。如果必要,全體節點可以通過投票讓現任節點代表失去代表資格,重新選舉新的代表,實現實時的民主。
股份授權證明機制可以大大縮小參與驗證和記賬節點的數量,從而達到秒級的共識驗證。然而,該共識機制仍然不能完美解決區塊鏈在商業中的應用問題,因為該共識機制無法擺脫對於代幣的依賴,而在很多商業應用中並不需要代幣的存在。
Pool驗證池基於傳統的分布式一致性技術建立,並輔之以數據驗證機制,是目前區塊鏈中廣泛使用的一種共識機制。
Pool驗證池不需要依賴代幣就可以工作,在成熟的分布式一致性演算法(Pasox、Raft)基礎之上,可以實現秒級共識驗證,更適合有多方參與的多中心商業模式。不過,Pool驗證池也存在一些不足,例如該共識機制能夠實現的分布式程度不如PoW機制等
這里主要講解區塊鏈工作量證明機制的一些演算法原理以及比特幣網路是如何證明自己的工作量的,希望大家能夠對共識演算法有一個基本的認識。
工作量證明系統的主要特徵是客戶端要做一定難度的工作來得到一個結果,驗證方則很容易通過結果來檢查客戶端是不是做了相應的工作。這種方案的一個核心特徵是不對稱性:工作對於請求方是適中中的,對於驗證方是易於驗證的。它與驗證碼不同,驗證碼是易於被人類解決而不是易於被計算機解決。
下圖所示的為工作量證明流程。
舉個例子,給個一個基本的字元創「hello,world!」,我們給出的工作量要求是,可以在這個字元創後面添加一個叫做nonce(隨機數)的整數值,對變更後(添加nonce)的字元創進行SHA-256運算,如果得到的結果(一十六進制的形式表示)以「0000」開頭的,則驗證通過。為了達到這個工作量證明的目標,需要不停地遞增nonce值,對得到的字元創進行SHA-256哈希運算。按照這個規則,需要經過4251次運算,才能找到前導為4個0的哈希散列。
通過這個示例我們對工作量證明機制有了一個初步的理解。有人或許認為如果工作量證明只是這樣一個過程,那是不是只要記住nonce為4521使計算能通過驗證就行了,當然不是了,這只是一個例子。
下面我們將輸入簡單的變更為」Hello,World!+整數值」,整數值取1~1000,也就是說將輸入變成一個1~1000的數組:Hello,World!1;Hello,World!2;...;Hello,World!1000。然後對數組中的每一個輸入依次進行上面的工作量證明—找到前導為4個0的哈希散列。
由於哈希值偽隨機的特性,根據概率論的相關知識容易計算出,預計要進行2的16次方次數的嘗試,才能得到前導為4個0的哈希散列。而統計一下剛剛進行的1000次計算的實際結果會發現,進行計算的平均次數為66958次,十分接近2的16次方(65536)。在這個例子中,數學期望的計算次數實際就是要求的「工作量」,重復進行多次的工作量證明會是一個符合統計學規律的概率事件。
統計輸入的字元創與得到對應目標結果實際使用的計算次數如下:
對於比特幣網路中的任何節點,如果想生成一個新的區塊加入到區塊鏈中,則必須解決出比特幣網路出的這道謎題。這道題的關鍵要素是工作量證明函數、區塊及難度值。工作量證明函數是這道題的計算方法,區塊是這道題的輸入數據,難度值決定了解這道題的所需要的計算量。
比特幣網路中使用的工作量證明函數正是上文提及的SHA-256。區塊其實就是在工作量證明環節產生的。曠工通過不停地構造區塊數據,檢驗每次計算出的結果是否滿足要求的工作量,從而判斷該區塊是不是符合網路難度。區塊頭即比特幣工作量證明函數的輸入數據。
難度值是礦工們挖掘的重要參考指標,它決定了曠工需要經過多少次哈希運算才能產生一個合法的區塊。比特幣網路大約每10分鍾生成一個區塊,如果在不同的全網算力條件下,新區塊的產生基本都保持這個速度,難度值必須根據全網算力的變化進行調整。總的原則即為無論挖礦能力如何,使得網路始終保持10分鍾產生一個新區塊。
難度值的調整是在每個完整節點中獨立自動發生的。每隔2016個區塊,所有節點都會按照統一的格式自動調整難度值,這個公式是由最新產生的2016個區塊的花費時長與期望時長(按每10分鍾產生一個取款,則期望時長為20160分鍾)比較得出來的,根據實際時長一期望時長的比值進行調整。也就是說,如果區塊產生的速度比10分鍾快,則增加難度值;反正,則降低難度值。用公式來表達如下:
新難度值=舊難度值*(20160分鍾/過去2016個區塊花費時長)。
工作量證明需要有一個目標值。比特幣工作量證明的目標值(Target)的計算公式如下:
目標值=最大目標值/難度值,其中最大目標值為一個恆定值
目標值的大小與難度值成反比,比特幣工作量證明的達成就是礦中計算出來的區塊哈希值必須小於目標值。
我們也可以將比特幣工作量的過程簡單的理解成,通過不停變更區塊頭(即嘗試不同nonce值)並將其作為輸入,進行SHA-256哈希運算,找出一個有特定格式哈希值的過程(即要求有一定數量的前導0),而要求的前導0個數越多,難度越大。
可以把比特幣將這道工作量證明謎題的步驟大致歸納如下:
該過程可以用下圖表示:
比特幣的工作量證明,就是我們俗稱「挖礦」所做的主要工作。理解工作量證明機制,將為我們進一步理解比特幣區塊鏈的共識機制奠定基礎。
㈧ 區塊鏈共識演算法——(四)PoA共識(Proof of Activity)
PoA共識(Proof of Activity)也稱為活動證明,其結合了PoW工作量證明與PoS權益證明的特點並進行了相應擴展,PoA共識具有更為復雜的記賬節點選取,同時有更為公平的獎勵機制。
PoA活動證明,主要的優勢是利用公平的激勵措施保證節點保持在線狀態,調動節點積極性,線上礦工即使不挖礦也有一定的概率獲取收益。大大提高了全網維護質量。
step1:每個礦工先利用自身算力通過工作量證明機制後得出nonce並生成一個空區塊頭,這個區塊頭除了沒有交易信息數據外其他數據與正常區塊一致。
step2:最先生成空區塊的節點廣播全網節點,全網節點接收到消息後,將此區塊的hash值與上一區塊的hash值進行拼接,然後加上n個固定後綴值進行再hash,最後得出n個值作為輸入,進入follow-the-satoshi程序,然後可輸出n個隨機權益持有者。
step3:前n-1個隨機權益持有者對空區塊進行簽名,第n個隨機權益持有者即為獲取到記賬權的節點,他將在空區塊的基礎上添加交易數據與簽名。
step4:第n個隨機權益持有者將打包好的區塊廣播全網,全網節點接收到區塊後進行驗證,驗證成功後上鏈。
step5:產生空區塊的礦工與第n個隨機權益持有者以及前n-1個已簽名的隨機權益持有者共享交易費獎勵。
㈨ 區塊鏈論文精讀——Pixel: Multi-signatures for Consensus
論文主要提出了一種針對共識機制PoS的多重簽名演算法Pixel。
所有基於PoS的區塊鏈以及允許的區塊鏈均具有通用結構,其中節點運行共識子協議,以就要添加到分類賬的下一個區塊達成共識。這樣的共識協議通常要求節點檢查阻止提議並通過對可接受提議進行數字簽名來表達其同意。當一個節點從特定塊上的其他節點看到足夠多的簽名時,會將其附加到其分類帳視圖中。
由於共識協議通常涉及成千上萬的節點,為了達成共識而共同努力,因此簽名方案的效率至關重要。此外,為了使局外人能夠有效地驗證鏈的有效性,簽名應緊湊以進行傳輸,並應快速進行驗證。已發現多重簽名對於此任務特別有用,因為它們使許多簽名者可以在公共消息上創建緊湊而有效的可驗證簽名。
補充知識: 多重簽名
是一種數字簽名。在數字簽名應用中,有時需要多個用戶對同一個文件進行簽名和認證。比如,一個公司發布的聲明中涉及財務部、開發部、銷售部、售後服務部等部門,需要得到這些部門簽名認可,那麼,就需要這些部門對這個聲明文件進行簽名。能夠實現多個用戶對同一文件進行簽名的數字簽名方案稱作多重數字簽名方案。
多重簽名是數字簽名的升級,它讓區塊鏈相關技術應用到各行各業成為可能。 在實際的操作過程中,一個多重簽名地址可以關聯n個私鑰,在需要轉賬等操作時,只要其中的m個私鑰簽名就可以把資金轉移了,其中m要小於等於n,也就是說m/n小於1,可以是2/3, 3/5等等,是要在建立這個多重簽名地址的時候確定好的。
本文提出了Pixel簽名方案,這是一種基於配對的前向安全多簽名方案,可用於基於PoS的區塊鏈,可大幅節省帶寬和存儲要求。為了支持總共T個時間段和一個大小為N的委員會,多重簽名僅包含兩個組元素,並且驗證僅需要三對配對,一個乘冪和N -1個乘法。像素簽名幾乎與BLS多重簽名一樣有效,而且還滿足前向安全性。此外,就像在BLS多簽名中一樣,任何人都可以非交互地將單個簽名聚合到一個多簽名中。
有益效果:
為了驗證Pixel的設計,將Pixel的Rust實施的性能與以前的基於樹的前向安全解決方案進行了比較。展示了如何將Pixel集成到任何PoS區塊鏈中。接下來,在Algorand區塊鏈上評估Pixel,表明它在存儲,帶寬和塊驗證時間方面產生了顯著的節省。我們的實驗結果表明,Pixel作為獨立的原語並在區塊鏈中使用是有效的。例如,與一組128位安全級別的N = 1500個基於樹的前向安全簽名(對於T = 232)相比,可以認證整個集合的單個Pixel簽名要小2667倍,並且可以被驗證快40倍。像素簽名將1500次事務的Algorand塊的大小減少了約35%,並將塊驗證時間減少了約38%。
對比傳統BLS多重簽名方案最大的區別是BLS並不具備前向安全性。
對比基於樹的前向安全簽名,基於樹的前向安全簽名可滿足安全性,但是其構造的簽名太大,驗證速度有待提升。 本文設計減小了簽名大小、降低了驗證時間。
補充知識: 前向安全性
是密碼學中通訊協議的安全屬性,指的是長期使用的主密鑰泄漏不會導致過去的會話密鑰泄漏。前向安全能夠保護過去進行的通訊不受密碼或密鑰在未來暴露的威脅。如果系統具有前向安全性,就可以保證在主密鑰泄露時歷史通訊的安全,即使系統遭到主動攻擊也是如此。
構建基於分層身份的加密(HIBE)的前向安全簽名,並增加了在同一消息上安全地聚合簽名以及生成沒有可信集的公共參數的能力。以實現:
1、生成與更新密鑰
2、防止惡意密鑰攻擊的安全性
3、無效的信任設置
對於常見的後攻擊有兩種變體:
1、短程變體:對手試圖在共識協議達成之前破壞委員會成員。解決:通過假設攻擊延遲長於共識子協議的運行時間來應對短距離攻擊。
2、遠程變體:通過分叉選擇規則解決。
前向安全簽名為這兩種攻擊提供了一種干凈的解決方案,而無需分叉選擇規則或有關對手和客戶的其他假設。(說明前向安全簽名的優勢)。
應用於許可的區塊鏈共識協議(例如PBFT)也是許多許可鏈(例如Hyperledger)的核心,在這些區塊鏈中,只有經過批準的方可以加入網路。我們的簽名方案可以類似地應用於此設置, 以實現前向保密性,減少通信帶寬並生成緊湊的塊證書。
傳統Bellare-Miner 模型,消息空間M的前向安全簽名方案FS由以下演算法組成:
1、Setup
pp ←Setup(T), pp為各方都同意的公共參數,Setup(T)表示在T時間段內對於固定參數的分布設置。
2、Key generation
(pk,sk1) ←Kg
簽名者在輸入的最大時間段T上運行密鑰生成演算法,以為第一時間段生成公共驗證密鑰pk和初始秘密簽名密鑰sk1。
3、Key update
skt+1←Upd(skt) 簽名者使用密鑰更新演算法將時間段t的秘密密鑰skt更新為下一個周期的skt + 1。該方案還可以為任何t0> t提供 「快速轉發」更新演算法 skt0←$ Upd0(skt,t0),該演算法比重復應用Upd更有效。
4、Signing
σ ←Sign(skt,M),在輸入當前簽名密鑰skt消息m∈M時,簽名者使用此演算法來計算簽名σ。
5、Verification
b ← Vf(pk,t,M,σ)任何人都可以通過運行驗證演算法來驗證消息M在公共密鑰pk下的時間段t內的簽名M的簽名,該演算法返回1表示簽名有效,否則返回0。
1、依靠非對稱雙線性組來提高效率,我們的簽名位於G2×G1中而不是G2 ^2中。這樣,就足以給出公共參數到G1中(然後我們可以使用散列曲線實例化而無需信任設置),而不必生成「一致的」公共參數(hi,h0 i)=(gxi 1,gxi 2)∈G1× G2。
2、密鑰生成演算法,公鑰pk更小,參數設置提升安全性。
除了第3節中的前向安全簽名方案的演算法外,密鑰驗證模型中的前向安全多重簽名方案FMS還具有密鑰生成,該密鑰生成另外輸出了公鑰的證明π。
新增Key aggregation密鑰匯總、Signature aggregation簽名匯總、Aggregate verification匯總驗證。滿足前向安全的多重簽名功能的前提下也證明了其正確性和安全性。
1、PoS在後繼損壞中得到保護
後繼損壞:後驗證的節點對之前的共識驗證狀態進行攻擊破壞。
在許多用戶在同一條消息上傳播許多簽名(例如交易塊)的情況下,可以將Pixel應用於所有這些區塊鏈中,以防止遭受後繼攻擊並潛在地減少帶寬,存儲和計算成本。
2、Pixel整合
為了對區塊B進行投票,子協議的每個成員使用具有當前區塊編號的Pixel簽署B。當我們看到N個委員會成員在同一塊B上簽名的集合時,就達成了共識,其中N是某個固定閾值。最後,我們將這N個簽名聚合為單個多重簽名Σ,而對(B,Σ)構成所謂的 區塊證書 ,並將區塊B附加到區塊鏈上。
3、注冊公共密鑰
希望參與共識的每個用戶都需要注冊一個參與簽名密鑰。用戶首先採樣Pixel密鑰對並生成相應的PoP。然後,用戶發出特殊交易(在她的消費密鑰下簽名), 注冊新的參與密鑰 。交易包括PoP。選擇在第r輪達成協議的PoS驗證者,檢查(a)特殊交易的有效性和(b)PoP的有效性。如果兩項檢查均通過,則 使用新的參與密鑰更新用戶的帳戶 。從這一點來看,如果選中,則用戶將使用Pixel登錄塊。
即不斷更換自己的參與密鑰,實現前向安全性。
4、傳播和聚集簽名
各個委員會的簽名將通過網路傳播,直到在同一塊B上看到N個委員會成員的簽名為止。請注意,Pixel支持非互動式和增量聚合:前者意味著簽名可以在廣播後由任何一方聚合,而無需與原始簽名者,而後者意味著我們可以將新簽名添加到多重簽名中以獲得新的多重簽名。實際上,這意味著傳播的節點可以對任意數量的委員會簽名執行中間聚合並傳播結果,直到形成塊證書為止。或者,節點可以在將塊寫入磁碟之前聚合所有簽名。也就是說,在收到足夠的區塊證明票後,節點可以將N個委員會成員的簽名聚集到一個多重簽名中,然後將區塊和證書寫入磁碟。
5、密鑰更新
在區塊鏈中使用Pixel時,時間對應於共識協議中的區塊編號或子步驟。將時間與區塊編號相關聯時,意味著所有符合條件的委員會成員都應在每次形成新區塊並更新輪回編號時更新其Pixel密鑰。
在Algorand 項目上進行實驗評估,與Algorand項目自帶的防止後腐敗攻擊的解決方案BM-Ed25519以及BLS多簽名解決方案做對比。
存儲空間上:
節省帶寬:
Algorand使用基於中繼的傳播模型,其中用戶的節點連接到中繼網路(具有更多資源的節點)。如果在傳播過程中沒有聚合,則中繼和常規節點的帶寬像素節省來自較小的簽名大小。每個中繼可以服務數十個或數百個節點,這取決於它提供的資源。
節省驗證時間