20189215 2018-2019-2 《密碼與安全新技術專題》第9周做業

課程:《密碼與安全新技術專題》
班級: 1892班
姓名: 李煬
學號:20189215
上課教師:謝四江
上課日期:2019年4月23日
必修/選修: 選修算法

1.本次講座的學習總結

講座主題:區塊鏈技術

區塊鏈

  1. 比特幣:是一種由開源的P2P軟件產生的電子幣,數字幣,是一種網絡虛擬資產。比特幣基於一套密碼編碼、經過複雜算法產生,這一規則不受任何我的或組織干擾,去中心化;任何人均可如下載並運行比特幣客戶端而參與制造比特幣;比特幣利用電子簽名的方式來實現流通,經過P2P分佈式網絡來覈查重複消費。每一塊比特幣的產生、消費都會經過P2P分佈式網絡記錄並告知全網,不存在僞造的可能。
  2. 比特幣的特色:
    1. 數字貨幣
    2. 不依託於任何國家或組織而利用計算機技術獨立發行
    3. 經過P2P分佈式技術實現,不受任何我的或組織干擾,去中心化
    4. 全部人都可自由地參與(所以比特幣是不少黑灰產業的交易工具)
    5. 總量有限,不可再生(所以比特幣極具投機色彩)
    6. 機制開源,能夠被山寨(因此有不少幣種)
  3. 比特幣交易
    • 交易單:交易單記錄一筆交易的具體信息,好比付款人(交易發起方的公鑰)、收款人(交易接收方的公鑰)、付款金額(上一筆交易信息)、付款人簽名(加密後的Hash值)等。
    • 如何交易:每一位全部者(A)利用他的私鑰對前一次交易T1和下一位全部者(B)的公鑰(俗稱:地址)簽署一個隨機散列的數字簽名,A將此數據簽名製做爲交易單T2並將其(交易單T2)廣播全網,電子貨幣就發送給了下一位全部者。
      • 交易發起者的私鑰:私鑰爲我的所知,他人無從知曉。
      • 前一次交易:前一次交易數聽說明了該次交易的貨幣的來源(這部分貨幣是怎麼到當前發起人這裏來的)。
      • 下一位全部者的公鑰:即交易接收方的地址,此數聽說明了當前交易的目標是誰。
      • 數字簽名:發起方將前一次交易數據和接收方公鑰鏈接起來並對其求Hash值x,再利用本身的私鑰對x加密,便獲得了這份數字簽名
    • 驗證交易:
      • 利用交易T2中交易的發起方A的公鑰對簽名進行解密,獲得整數x。
      • 將T1交易數據和B的公鑰鏈接起來,用一樣的Hash算法計算Hash值y。
      • 若x==y,說明:
        • 這筆交易確實是A本人發起的,由於只有A本人的私鑰才能夠生成此 簽名(A同時也沒法否定本身曾簽署了此份交易)。
        • 交易的目的方確實是B。
        • 發起方確實是打算把交易T1中A得到的貨幣發送給B。
    • 本質上,比特幣的存在是經過交易單來提現。
    • 交易單相似於銀行的對帳單,其經過記錄貨幣的去留來證實你有多少貨幣,而不是提供給你具體的貨幣單元。
  4. Block
    • 比特幣網絡中,數據以文件的形式被永久記錄,稱之爲區塊(Block),Block是記錄交易單的數據單元,一個Block上會記錄不少交易單。
    • 區塊的「面容」以下圖,全部區塊以雙向鏈表的方式連接起來,且每一個Block都會保存其上一個Block的Hash值,就變成了區塊鏈。
    • 第一個Block沒有上一節點,稱爲創世Block。
    • Block有不少份,每一個Block只記錄比特幣全網10分鐘內的交易信息,每約10分鐘產生一個新的Block。
  5. 挖礦
    • 生產Block的過程,被形象的稱爲「挖礦」,生產工也被稱爲「礦工」。
    • 一個Block被建立後,這個Block裏初始就有錢(歸建立這個Block者全部,此規則稱爲「激勵」)
      • 第0個 – 第21萬個Block,每一個Block裏有50個比特幣
      • 第21萬-第42萬個Block,每一個Block裏有25個比特幣(2016年)
      • 依次遞減,最後比特幣全網中只會有2100萬個比特幣
      • 最後比特幣的實際可用個數應少於2100W,由於會有部分幣隨着擁有者的密鑰丟失而永遠的沒法流通(儘管記錄這些幣的交易單還在,但誰也沒法使用它)
    • 挖礦過程實際上就是反覆去嘗試尋找一個隨機數(又稱「幸運數」),使得將最後一個Block的hash值、當前世界中還沒有被加入到任何Block的交易單、隨機數三部分組織起來送入SHA256算法計算出散列值X(256位),若是X知足必定條件(好比前20位均爲0),那麼該節點初步得到建立Block的權利
    • 工做量證實難度係數
      • 對於每一個Block存在一個難度係數,此係數能夠轉換爲一個256位的整數,挖礦計算出的Hash值X必須小於該整數,此條件做爲尋找隨機數的附加條件。、
      • 當某時刻網絡檢測到新Block的產生速度不符合約10分鐘一個時,將調解該係數(加大或者縮小),從而使下一個Block的產生速度符合預期。
      • 每當節點(礦工)計算出了一個符合條件的隨機數時,它僅僅得到了建立臨時Block的權利,它當即將相關數據打包好做爲一個臨時Block並廣播全網。
    • Block鏈分支,某一節點若收到多個針對同一前續Block的後續臨時Block,則該節點會在本地Block鏈上創建分支,多個臨時Block對應多個分支。
    • 分支選擇Best Chain:
      • 不一樣高度的分支,老是接受最高(即最長)的那條分支
      • 相同高度的,接受難度最大的
      • 高度相同且難度一致的,接受時間最先的
      • 若全部均相同,則按照從網絡接受的順序
      • 等待Block Chain高度增一,則從新選擇Best Chain

區塊鏈技術

  1. 點對點對等網絡
    • 網格網絡
    • 權限對等、數據公開
    • 數據分佈式、高冗餘存儲
  2. 共識問題
    • 工做量證實(PoW)
    • 權益證實(PoS):Pow的一種升級共識機制;根據每一個節點所佔代幣的比例和時間;等比例的下降挖礦難度,從而加快找隨機數的速度。優勢是在必定程度上縮短了共識達成的時間,缺點是仍是須要挖礦,本質上沒有解決商業應用的痛點。
    • 基於信任的Quorum:是一種分佈式系統中經常使用的,用來保證數據冗餘和最終一致性的投票算法。
  3. 數據可驗證
    • PKI公鑰體系
      • 數字簽名提供密碼學證據
      • 零知識證實
    • 不可變數據
      • 只可添加,不可編輯
      • 不可變數據+時間戳,爲互聯網加上了時間軸
  4. 獎勵合做的制度設計
    • 非合做博弈--不基於信任,無外部強制力
    • 合做是一種演化穩定策略,合做達到納什均衡
    • 51%攻擊問題
  5. 51%攻擊問題
    • 攻擊步驟:
      1. 將手中的BTC充值各大交易所,而後賣掉,提現;或者也能夠直接賣給某人或某一羣人;
      2. 運用手中的算力,從本身對外付款交易以前的區塊開始,忽略本身全部對外的付款交易,從新構造後面的區塊,利用算力優點與全網賽跑,當最終建立的區塊長度超過原主分支區塊,成爲新的主分支,至此,攻擊完成;
    • 攻擊結果:因爲撤銷了全部對外付款交易,等於收回來因此已賣掉的比特幣。
    • 可行性評估:如今比特幣全網算力差很少90T,並且還會快速增加,如今看來只有如今的幾大礦池聯合,才具備發動51%攻擊的實力,普通我的或機構實施此攻擊的可能性愈來愈小。

區塊鏈與將來

  1. 區塊鏈技術發展的三個階段交叉重疊:貨幣、合約、治理。
  2. 貨幣Currency
    • 貨幣的發行機制
    • 貨幣的分配機制
    • 貨幣的幣值調節機制
  3. 合約Contract
    • 股權、債權
    • 博彩
    • 證券與金融合約
    • 防僞
    • 互助保險
    • 物聯網
    • 權利的登記、轉讓
    • 智能合約
  4. 治理Governance
    • 身份認證
    • 公證、見證
    • 司法仲裁
    • 投票
    • 健康管理
    • 人工智能
    • 去中心化自治組織

2.學習中遇到的問題及解決

  • 問題1:比特幣挖礦的「激勵」機制,在後來挖礦的收益變得很小時,如何發揮做用?
  • 問題1解決方案:經過搜索和論文閱讀,發現比特幣爲礦工提供了兩種激勵措施,分別爲建立block的激勵機制和交易費用的激勵機制。在比特幣整個系統啓動時,挖礦建立block的收益佔絕大多數,隨着每一個block的獎勵減小,交易費用的激勵機制佔據的比例逐漸增長,更多的是獎勵礦工交易的手續費。
  • 問題2:區塊鏈的共識機制。
  • 問題2解決方案:區塊鏈技術的核心是由系統中節點競爭進行記帳,這個競爭的評判標準稱之爲「共識機制」,不一樣的區塊鏈可能採用不一樣的共識機制。下面說一下POW(工做量證實)和POS(權益證實機制)
    • POW(Proof of Work,工做量證實)安全

      比特幣在Block的生成過程當中使用了POW機制,一個符合要求的Block Hash由N個前導零構成,零的個數取決於網絡的難度值。要獲得合理的Block Hash須要通過大量嘗試計算,計算時間取決於機器的哈希運算速度。當某個節點提供出一個合理的Block Hash值,說明該節點確實通過了大量的嘗試計算,固然,並不能得出計算次數的絕對值,由於尋找合理hash是一個機率事件。當節點擁有佔全網n%的算力時,該節點即有n/100的機率找到Block Hash。
      優勢是:
      1.去中心化,將記帳權公平的分派到其餘節點。可以得到幣的數量,取決於挖礦貢獻的有效工做。
      2.安全性高,破壞系統須要投入極大的成本,若是想做弊,要有壓倒大多數人的算力(51%攻擊)。
      缺點是:
      1.挖礦形成大量的資源浪費,bitcoin已經吸引全球大部分的算力,其它再用Pow共識機制的區塊鏈應用很難得到相同的算力來保障自身的安全。這讓依據算力公平分配獎勵的機制,演變爲了對礦機算力的大舉投入,扭曲了中本聰的設計初衷。
      2.網絡性能過低,須要等待多個確認,容易產生分叉,區塊的確認共識達成的週期較長(10分鐘)。
      3.PoW共識算法算力集中化,慢慢的偏離了原來的去中心化軌道。服務器

    • POS(Proof of Stake,權益證實機制)網絡

      相似於財產儲存在銀行,這種模式會根據你持有數字貨幣的量和時間,分配給你相應的利息。
      簡單來講,就是一個根據你持有貨幣的量和時間,給你發利息的一個制度,在股權證實POS模式下,有一個名詞叫幣齡,每一個幣天天產生1幣齡,好比你持有100個幣,總共持有了30天,那麼,此時你的幣齡就爲3000,這個時候,若是你發現了一個POS區塊,你的幣齡就會被清空爲0。你每被清空365幣齡,你將會從區塊中得到0.05個幣的利息(假定利息可理解爲年利率5%),那麼在這個案例中,利息 = 3000 * 5% / 365 = 0.41個幣,這下就頗有意思了,持幣有利息。
      優勢是在必定程度上縮短了共識達成的時間。
      缺點是仍是須要挖礦,本質上沒有解決商業應用的痛點。框架

3.本次講座的學習感悟、思考等

在此次講座以前,我對於區塊鏈和比特幣知識略有耳聞,有一個大概的概念,知道挖礦是計算一個數值,但沒有深刻、全面地瞭解這個方面。此次講座爲咱們詳細地講解了區塊鏈的產生和發展,由匿名做者中本聰發佈的《比特幣:一種點對點的電子現金系統》白皮書,演化成爲今天這個比特幣體系,雖然在我國比特幣交易是明令禁止的,但技術是無罪的。講座讓我對區塊鏈的知識有了全面的瞭解,對系統總體的運行方式和流程有了認識,這一技術還在不斷地發展、擴充中,目前來看它的設計是「精妙絕倫的」,但它的機制合理性、系統安全性、系統穩定性等還須要更長時間的驗證。less

4.最新研究現狀

論文1:Bitcoin: A Peer-to-Peer Electronic Cash System點此查看

做者:Satoshi Nakamoto

研究進展:

這篇論文雖然時間比較久遠,但它的意義無比巨大,這是匿名做者使用「中本聰」的化名在2008年發表的一篇白皮書,提出了比特幣這麼一種徹底經過點對點技術實現的電子現金系統,它使得在線支付可以直接由一方發起並支付給另一方,中間不須要經過任何的金融機構。
爲了解決交易中的雙重支付問題,提出了一個新的解決方案,該方案提出一個「時間戳服務器」。時間戳服務器經過對以區塊(block)形式存在的一組數據實施隨機散列而加上時間戳,並將該隨機散列進行廣播,顯然,該時間戳可以證明特定數據必然於某特定時間是的確存在的,由於只有在該時刻存在了才能獲取相應的隨機散列值。每一個時間戳應當將前一個時間戳歸入其隨機散列值中,每個隨後的時間戳都對以前的一個時間戳進行加強(reinforcing),這樣就造成了一個鏈條(Chain)。
dom


爲了在點對點的基礎上構建一組分散化的時間戳服務器,還須要一個相似於Adam Back提出的哈希現金(Hashcash),在進行隨機散列運算時,工做量證實機制引入了對某一個特定值的掃描工做,對結果進行檢驗則僅須要一次隨機散列運算。

這篇白皮書提出了一種不須要信用中介的電子支付系統,雖然這種系統爲全部權提供了強有力的控制,可是不足以防止雙重支付。爲了解決這個問題,提出了一種採用工做量證實機制的點對點網絡來記錄交易的公開信息,只要誠實的節點可以控制絕大多數的CPU計算能力,就能使得攻擊者事實上難以改變交易記錄。本框架包含了一個P2P電子貨幣系統所須要的所有規則和激勵措施。

論文2:The unseen economic forces that govern the Bitcoin protocol點此查看

做者:Li Z, Liao Q

會議名稱:2018 5th International Conference on Information Science and Control Engineering (ICISCE)

研究進展:

比特幣建立了一個支配其內部運行的複雜經濟激勵機制(incentives)。這些激勵機制強烈影響了協議的能力、安全保證,以及將來發展的道路。這篇論文探討了比特幣協議的經濟暗流、優點缺陷,以及它們如何反過來影響協議自己。
論文經過比特幣經濟學方法論、礦池和風險規避、攻擊和違反規則的經濟學原理等方面進行論述,肯定激勵機制確實在比特幣協議中發揮着重要做用。激勵機制對於比特幣協議的安全性、及其平常運行的有效性相當重要。
這篇論文指出,礦工爲了最大限度地增長收入而費盡心機,而且常常會找到一些創造性的方法,而這些方法與比特幣協議並不符合。加密貨幣的協議應該創建在更加堅實的激勵基礎之上。還有不少領域須要改進,包括基本的挖礦報酬機制,交互共識機制,礦池的報酬分配機制,以及交易手續費市場自己的方方面面。electron

論文3:On the Instability of Bitcoin Without the Block Reward點此查看

做者:Carlsten M , Kalodner H , Weinberg S M

會議名稱:Acm Sigsac Conference on Computer & Communications Security. ACM, 2016.

研究進展:

比特幣爲礦工提供了兩種激勵措施,分別爲建立block的激勵機制和交易費用的激勵機制。在比特幣整個系統啓動時,挖礦建立block的收益佔絕大多數,隨着建立block的獎勵減小,交易費用的激勵機制佔據的比例逐漸增長,這隱含了一層意思:即礦工是經過block獎勵仍是交易費來支付,不會影響區塊鏈的安全性。
這篇論文證實狀況並不是如此,這篇文章的觀點是當獎勵只有交易費用,因爲指數分佈的塊到達時間,塊獎勵的方差很是高,而且分叉「富裕」塊以「竊取」其中的獎勵變得有吸引力。換言之就是對獎勵值比較高的block進行分支更可以得到利益,這會致使比特幣安全性和性能的不良特性均衡,甚至在某些狀況下也會出現非均衡。
論文經過理論分析,以及一個可能獨立獲利的比特幣採礦模擬器確認。討論了比特幣將來安全性的結果使人不安的影響,併爲新加密貨幣的設計提供了經驗。jsp

論文4:Security Enhancement In Bitcoin Protocol點此查看

做者:R. Bala ; R. Manoharan

會議名稱:2018 International Conference on Wireless Communications, Signal Processing and Networking (WiSPNET)

研究進展:

比特幣保持了用戶的匿名性,並在全球範圍內實現了點對點即時支付。比特幣是一種分散的匯款協議,能夠在不暴露用戶憑證的狀況下進行交易,並在沒有任何第三方干預的狀況下進行驗證。雖然它保持匿名,但「去中心化」的概念引入了漏洞,致使嚴重的安全問題,如雙重支出,阻止預扣和51%的攻擊。這些問題須要比特幣協議中的安全特定加強。
這篇論文提出了一個有效的預採礦模塊,只容許值得信賴的礦工參與採礦過程,以減輕安全攻擊,即51%,雙重支出,阻止預扣。 這能夠經過在挖掘過程當中引入標準檢查和驗證模塊來實現,這能夠阻止攻擊者進入比特幣挖掘網絡。 此外,提出了一種加強的塊建立和驗證算法,該算法將比特幣協議的事務速率從當前的7-8tps提升到12.749tps。分佈式

論文5:Section-Blockchain: A Storage Reduced Blockchain Protocol, the Foundation of an Autotrophic Decentralized Storage Architecture點此查看

做者:Yibin Xu

會議名稱:2018 23rd International Conference on Engineering of Complex Computer Systems (ICECCS)

研究進展:

比特幣派生出了區塊鏈,存儲需求的快速增加阻礙了存儲能力不足的設備使用區塊鏈驅動的分佈式應用程序,論文提出了Section-Blockchain,旨在解決超大存儲問題而不會損害區塊鏈的安全性。Section-Blockchain容許用戶存儲區塊鏈的一部分,但得到徹底的安全性,就像NakamotoBlockchain中的完整節點同樣。區塊鏈還爲系統提供了豐富的輕量級節點,並容許用戶加入系統,不只能夠提供計算能力,還能夠協助存儲。能夠在上面構建分散的自養存儲系統。實驗證實,Section-Blockchain是有效的,顯着減小了存儲,而且能夠承受大規模的忽然節點丟失。
在將來的研究中,如何消除採礦權集中將是進一步保障區塊鏈的關鍵。此外,存儲的底線以及每一個塊須要選擇的保證節點將在系統達到穩定的用戶規模後逐個時間地進行計算,這將減小塊能夠處理的事務數量,由於塊將須要包含如此多的PoSenquires和保證交易。將來的研究還能夠關注如何減少塊大小,例如,使用IBM和Bloom過濾器來建立輕量塊等。

論文總結

區塊鏈做爲一門比較新的技術,在當前有其發展的必然性和必要性,不過設計上的安全性須要時間來進行驗證,目前也有不少研究代表最初的設計不是很是安全的,須要進行改進。但無論怎麼說,區塊鏈技術仍是將來發展的一個大方向。

參考資料

相關文章
相關標籤/搜索