2018-2019-2 20189206 《密碼與安全新技術專題》 第五次做業

20189206 2018-2019-2 《密碼與安全新技術專題》第五次做業

課程:《密碼與安全新技術專題》算法

班級: 1892數據庫

姓名: 王子榛編程

學號:20189206安全

上課教師:張健毅服務器

上課日期:2019年4月23日網絡

1.本次講座的學習總結

比特幣

比特幣(Bitcoin)的概念最初由中本聰在2008年11月1日提出,並於2009年1月3日正式誕生。根據中本聰的思路設計發佈的開源軟件以及建構其上的P2P網絡。比特幣是一種P2P形式的虛擬的加密數字貨幣。點對點的傳輸意味着一個去中心化的支付系統。數據結構

與全部的貨幣不一樣,比特幣不依靠特訂貨幣機構發行,它依據特定算法,經過大量的計算產生,比特幣經濟使用整個P2P網絡中衆多節點構成的分佈式數據庫來確認並記錄全部的交易行爲,並使用密碼學的設計來確保貨幣流通各個環節安全性。P2P的去中心化特性與算法自己能夠確保沒法經過大量製造比特幣來人爲操控幣值。基於密碼學的設計可使比特幣只能被真實的擁有者轉移或支付。這一樣確保了貨幣全部權與流通交易的匿名性。比特幣與其餘虛擬貨幣最大的不一樣,是其總數量很是有限,具備極強的稀缺性。該貨幣系統曾在4年內只有不超過1050萬個,以後的總數量將被永久限制在約2100萬個。oracle

  • 比特幣的特色
    • 數字貨幣
    • 不依託於任何國家組織而利用計算機技術獨立發行
    • 經過P2P分佈式技術實現,無中心點
    • 全部人都可自由參與
    • 總量有限,不可再生
    • 自己機制開源,能夠被山寨
  • 比特幣的交易方式

每一位全部者(A)利用他的私鑰對前一次交易T1和下一位全部者(B)的公鑰(俗稱:地址)簽署一個隨機散列的數字簽名, A將此數據簽名製做爲交易單T2並將其(交易單T2)廣播全網,電子貨幣就發送給了下一位全部者。
【注意】前一次交易是指 這裏比特幣是如何到達如今這位用戶手中的,前一份表單。框架

特色:dom

  • 交易發起者的私鑰:只爲我的所知,他人無從知曉
  • 前一次交易:前一次交易說明了該次交易的貨幣的來源
  • 下一位全部者的公鑰:即交易接收方的地址,次數聽說明了當前交易的目標是誰
  • 數字簽名:發起方將前一次交易數據和接收方公鑰鏈接起來並對其求Hash值x,再利用本身的私鑰對x加密,獲得這份數字簽名

驗證交易:

  • 利用交易T2中交易的發起方A的公鑰對簽名進行解密,獲得整數x。
  • 將T1交易數據和B的公鑰鏈接起來,用一樣的Hash算法計算Hash值y。
  • 若x==y,說明:
    • 這筆交易確實是A本人發起的,由於只有A本人的私鑰才能夠生成此簽名(A同時也沒法否定本身曾簽署了此份交易)。
    • 交易的目的方確實是B。
    • 發起方確實是打算把交易T1中A得到的貨幣發送給B。

上面的交易單即展現了比特幣交易的方式,每一個交易單記錄一筆交易的具體信息,好比付款人(交易發起方的公鑰)、收款人(交易接收方的公鑰)、付款金額(上一筆交易信息)、付款人簽名(加密後的Hash值)等。

比特幣網絡中,數據以文件的形式被永久記錄,被稱之爲區塊(Block)。

get:一直覺得比特幣這種電子貨幣也會擁有特定的數據結構來表示貨幣,可是,本質上比特幣的存在體如今交易單。交易單相似於銀行的帳單,經過記錄貨幣的去留來證實你有多少貨幣,而不是提供給你具體的貨幣單元。

區塊鏈

區塊鏈是分佈式數據存儲、點對點傳輸、共識機制、加密算法等計算機技術的新型應用模式。區塊鏈(Blockchain),是比特幣的一個重要概念,它本質上是一個去中心化的數據庫,同時做爲比特幣的底層技術,是一串使用密碼學方法相關聯產生的數據塊,每個數據塊中包含了一批次比特幣網絡交易的信息,用於驗證其信息的有效性(防僞)和生成下一個區塊。
比特幣白皮書英文原版 其實並未出現blockchain一詞,而是使用的chain of blocks。最先的比特幣白皮書中文翻譯版中,將chain of block翻譯成了區塊鏈。這是「區塊鏈」這一中文詞最先的出現時間。

許多的區塊構成了區塊鏈,Block之間以雙向鏈表的方式連接起來,而且每一個Block都會保存其上一個Block的Hash值,只有一個Block沒有上一個節點,即創世Block。Block有不少份, 每一個Block只記錄比特幣全網10分鐘內的交易信息,每約10分鐘產生一個新的Block。產生Block的過程,也被稱爲「挖礦」。

get:能夠看到,不是每一份帳單就構成一個區塊,一個區塊包含了多筆交易,許多區塊連成雙向鏈表。

區塊鏈的核心技術

  • 分佈式帳本
    • 交易記帳由分佈在不一樣地方的多個節點共同完成,並且每個節點都記錄的是完整的帳目,所以它們均可以參與監督交易合法性,同時也能夠共同爲其做證。

跟傳統的分佈式存儲有所不一樣,區塊鏈的分佈式存儲的獨特性主要體如今兩個方面:一是區塊鏈每一個節點都按照塊鏈式結構存儲完整的數據,傳統分佈式存儲通常是將數據按照必定的規則分紅多份進行存儲。二是區塊鏈每一個節點存儲都是獨立的、地位等同的,依靠共識機制保證存儲的一致性,而傳統分佈式存儲通常是經過中心節點往其餘備份節點同步數據。

  • 非對稱加密和受權技術
    • 存儲在區塊鏈上的交易信息是公開的,可是帳戶身份信息是高度加密的,只有在數據擁有者受權的狀況下才能訪問到,從而保證了數據的安全和我的的隱私。
  • 共識機制
    • 全部記帳節點之間怎麼達成共識,去認定一個記錄的有效性,這既是認定的手段,也是防止篡改的手段。區塊鏈提出了四種不一樣的共識機制,適用於不一樣的應用場景,在效率和安全性之間取得平衡。
    • 區塊鏈的共識機制具有「少數服從多數」以及「人人平等」的特色
  • 智能合約
    • 智能合約是基於這些可信的不可篡改的數據,能夠自動化的執行一些預先定義好的規則和條款。以保險爲例,若是說每一個人的信息都是真實可信的,那就很容易的在一些標準化的保險產品中,去進行自動化的理賠。

Block的產生細則

每一筆交易發生後,並不算完成,交易數據必須寫入數據庫,纔算成立,對方纔能真正收到錢。首先,全部的交易數據都會傳送到礦工那裏。礦工負責把這些交易寫入區塊鏈。計算哈希的過程叫挖礦,計算哈希的機器就叫作礦機,操做礦機的人就叫作礦工。根據比特幣協議,一個區塊的大小最大是 1MB,而一筆交易大概是500字節左右,所以一個區塊最多能夠包含2000多筆交易。礦工負責把這2000多筆交易打包在一塊兒,組成一個區塊,而後計算這個區塊的哈希(Hash)。

中本聰故意讓添加新區塊,變得很困難。他的設計是,平均每10分鐘,全網才能生成一個新區塊,一小時也就六個。因爲人爲設置了大量的計算及難度係數,須要大量算力才能獲得當前區塊的有效哈希,進而新區塊添加到區塊鏈。礦工之間也在競爭,誰先算出來了,誰就能第一個添加新區塊進入區塊鏈,從而享受這個區塊的所有收益。其它礦工只能過來把那一頁抄寫一份,貼在本身帳本的最後面,而後又開始新的記帳過程。周而復始,生生不息,帳本一頁一頁的增長,帳本愈來愈厚。

全網每十分鐘(算法動態調節至約十分鐘產生一個)產生一個新的Block,每一個新的Block含有的必定數額的比特幣歸建立者全部,此規則稱爲「激勵」。

比特幣體系的設計要求:
Block應由那些最誠實最勤勞的節點產生,於是引入工做量證實(Proof Of Work,POW)機制。比特幣體系傾向於認爲:一個節點在提供信息以前付出了巨大的工做量,那麼他多是誠實的機率比較高(他提供的Block中數據最有可能沒有問題,固然不管如何其餘節點也是會對其進行檢查的)。

挖礦過程實際上就是反覆去嘗試尋找一個隨機數(又稱「幸運數」),使得將最後一個Block的hash值、當前世界中還沒有被加入到任何Block的交易單、隨機數三部分組織起來送入SHA256算法計算出散列值X(256位),若是X知足必定條件(好比前20位均爲0),那麼該節點初步得到建立Block的權利。

工做量證實的基本原理

工做量證實系統主要特徵是客戶端須要作必定難度的工做得出一個結果,驗證方卻很容易經過結果來檢查出客戶端是否是作了相應的工做。這種方案的一個核心特徵是不對稱性:工做對於請求方是適中的,對於驗證方則是易於驗證的。它與驗證碼不一樣,驗證碼的設計出發點是易於被人類解決而不易被計算機解決。
下圖表示的是工做量證實的流程:

block鏈分支

某一節點若收到多個針對同一前續Block的後續臨時Block,則該節點會在本地Block鏈上創建分支,多個臨時Block對應多個分支。從block hash算法咱們知道,合理的block並非惟一的,同一高度存在多個block的可能性。那麼,當同一個高度出現多個時,主鏈即出現分叉(Fork)。遇到分叉時,網絡會根據下列原則選舉出Best Chain。

不一樣高度的分支,老是接受最高(即最長)的那條分支相同高度的,接受難度最大的高度相同且難度一致的,接受時間最先的若全部均相同,則按照從網絡接受的順序等待Block Chain高度增一,則從新選擇Best Chain。

51%攻擊

  • 將手中的BTC充值各大交易所,而後賣掉,提現;或者也能夠直接賣給某人或某一羣人;
  • 運用手中的算力,從本身對外付款交易以前的區塊開始,忽略本身全部對外的付款交易,從新構造後面的區塊,利用算力優點與全網賽跑,當最終建立的區塊長度超過原主分支區塊,成爲新的主分支,至此,攻擊完成;

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

  • 問題1:什麼是去中心化
  • 問題1解決方案:老師在課上提到比特幣之因此價格高昂,是由於其不受到任何組織、國家或人的控制,其支付系統是去中心化的。老師在課上介紹比特幣是一種虛擬貨幣,一樣的咱們生活中還有許多虛擬貨幣,好比Q幣,但不一樣之處就在於Q幣不是去中心化的虛擬貨幣,受騰訊控制。

去中心化(英語:decentralization)是互聯網發展過程當中造成的社會關係形態和內容產生形態,是相對於「中心化」而言的新型網絡內容生產過程。
相對於早期的互聯網(Web 1.0)時代,Web 2.0內容再也不是由專業網站或特定人羣所產生,而是由權級平等的全體網民共同參與、共同創造的結果。任何人均可以在網絡上表達本身的觀點或創造原創的內容,共同生產信息。

隨着網絡服務形態的多元化,去中心化網絡模型愈來愈清晰,也愈來愈成爲可能。Web 2.0興起後,Wikipedia、Flickr、Blogger等網絡服務商所提供的服務都是去中心化的,任何參與者都可提交內容,網民共同進行內容協同創做或貢獻。

【注意】去中心化,不是不要中心,而是由節點來自由選擇中心、自由決定中心。簡單地說,中心化的意思,是中心決定節點。節點必須依賴中心,節點離開了中心就沒法生存。在去中心化系統中,任何人都是一個節點,任何人也均可以成爲一箇中心。任何中心都不是永久的,而是階段性的,任何中心對節點都不具備強制性。

  • 問題2:什麼是區塊呢?
  • 問題2解決方案:老師在課堂上由比特幣的交易方式向咱們介紹了區塊鏈,構成區塊鏈的區塊是什麼結構的呢?其實區塊鏈概念的提出就是在中本聰的《比特幣白皮書》

上圖爲一個「區塊」,其包含了區塊信息和交易信息

  • 區塊信息
    • 本區塊摘要值
    • 上一塊摘要值
    • 本區塊填充數
  • 交易信息

  • 問題3:什麼是ICO衆籌?

ICO (inital Coin Offering)的縮寫,譯爲首次幣發行,院子股票市場的首次公開發行IPO概念,是區塊鏈首次發行代幣,募集比特幣、以太坊等通用數字貨幣的行爲。

ICO是一種區塊鏈行業術語,是一種爲加密數字貨幣/區塊鏈項目籌措資金的經常使用方式,早期參與者能夠從中得到初始產生的加密數字貨幣做爲回報。因爲代幣具備市場價值,能夠兌換成法幣,從而支持項目的開發成本。ICO所發行的代幣,能夠基於不一樣的區塊鏈。常見的是基於以太坊(ETH)和比特股(BTS)區塊鏈發行,由區塊鏈提供記帳服務和價值共識,實現全球發行和流通。

發展歷史:

  • 2013年7月:Mastercoin(現改名萬事達幣OMNI)是最先進行ICO的區塊鏈的項目之一,曾在Bitcointalk論壇上衆籌成功籌資5000 BTC。Mastercoin是創建在比特幣協議之上的二代幣,旨在幫助用戶建立和交易加密貨幣以及其餘類型的智能合同。
  • 2013年12月:NXT(將來幣)是第一個徹底POS區塊鏈,曾籌資21BTC(至關於當時6000美圓),它的市值一度高達1億美圓,對投資者來講無疑是最成功的ICO項目之一。
  • 2013年至2014年間:出現過許多瘋狂的區塊鏈項目成功的啓動了ICO,它們的代幣價格都出現過瘋漲,不幸的是這些ICO項目最後都死在炒做過程當中或者直接成爲騙局。然而,在這段時間,也有十分紅功的ICO項目,例如Ethereum。
  • 2014年7月:Ethereum(以太坊ETH)國內外人氣高,是迄今爲止最大的一次ICO之一,籌措資金超過1800萬美圓,同時也是除比特幣之外市值最高的加密數字貨幣。
  • 2015年3月:Factom(公正通)經過Koinify平臺ICO,利用比特幣的區塊鏈技術來革新商業社會和政府部門的數據管理和數據記錄方式。
  • 2016年3月:Lisk的去中心化應用(DAPPs)是使用Javascript語言進行編程,這是目前全球最簡單也最流行的編程語言。Lisk這次總共籌集到14,080BTC和超過8,000萬XCR,衆籌所得金額在區塊鏈項目ICO中排名第二位,僅次於以太坊。
  • 2016年5月:The DAO是ICO史上最大的衆籌項目,融資額高達1.6億美圓。DAO全稱是Decentralized Autonomous Organization,即「去中心化的自治組織」,可理解爲徹底由計算機代碼控制運做的相似公司的實體,在人類歷史上仍是首次。可是做爲萬衆矚目的ICO項目,最終因受到黑客攻擊,再到爭論中軟硬分叉,最後以解散退回以太幣而了結。
  • 2016年9月:FirstBlood(第一滴血)將電競競賽服務跟區塊鏈結合,使用了智能合約來解決獎勵結構問題,衆籌一開始即籌資600萬美圓,全球總共籌到465,312.999ETH。

個人理解來看,ICO衆籌就是發行一種新的加密貨幣,能夠利用以太坊的網絡進行轉帳,錢包地址可以使用以太坊的地址,錢包祕鑰也能夠是以太坊的錢包祕鑰,區塊鏈使用以太坊的區塊鏈。我看了一篇介紹如何發佈一個所謂「加密貨幣」進行ICO衆籌的文章,見最後參考資料的第一篇。

  • 問題4:區塊鏈均可以應用於哪些場景?

區塊鏈是伴隨着比特幣而產生的新概念,可是區塊鏈的概念範圍十分寬廣,不會僅僅侷限於比特幣的交易。下面是我找到的區塊鏈能夠應用的場景

  • 藝術行業
    • 藝術家們能夠在使用區塊鏈技術來聲明全部權,發行可編號,限量版的做品,能夠針對任何類型藝術品的數字形式。它甚至還包括了一個交易市場,藝術家們能夠經過他們的網站進行買賣,而無需任何中介服務。
  • 開發行業
    • Colu是首個容許其它企業發行數字資產的企業,他們能夠將各類資產來「代幣化」讓許多人印象深入。儘管免費的比特幣錢包Counerparty也容許發行簡單的代幣,而且在其餘錢包持有者之間進行交易,Colu的代幣能夠設置有各類狀態和類型,可以脫離或者從新回到這個系統,而且當在區塊鏈上存儲數據過大的時候可以將數據存儲在BitTorrent的網絡上。
  • 物聯網
    • 隨着物聯網設備的增多,Edge計算需求的加強,大量設備之間須要經過分佈式自組織的管理模式,而且對容錯性要求很高。區塊鏈自身分佈式和抗攻擊的特色能夠很好地試用到這一場景中。

還有許多行業,好比保險行業、金融行業、房地產行業、開發行業等等。

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

張老師上課生動有趣地爲咱們從比特幣的運做方式介紹了區塊鏈的相關技術,也爲咱們打開了另外一道財富之門,然而,我可能並不會利用比特幣發財,感受比特幣掙錢是一個須要謀劃與策略,還須要很好的電腦配置(不止一臺很好的電腦配置。。。)因此,我最感興趣的仍是區塊鏈技術,利用全新的分佈式計算方法,區塊鏈的去中心化、共識機制等都是我歷來沒有了解過的全新領域,以爲很神奇,可以擺脫控制,由你們共同操做,就像比特幣不受任何組織或國家的控制,經過其自身機制,吸引了成千上萬的「曠工」,共同維護這個系統。區塊鏈也不只僅侷限於比特幣或是以太坊,區塊鏈所能發揮做用的領域遠遠不止這些,咱們在學習理解區塊鏈技術後,可以將區塊鏈技術應用於更多領域。

4.區塊鏈最新研究現狀

REM: Resource-Efficient Mining for Blockchains

  • 會議名稱: 26th USENIX Security Symposium August 16–18, 2017 • Vancouver, BC, Canada
  • 做者:Fan Zhang、Ittay Eyal、Robert Escriva、Ari Juels、Robbert van Renesse
  • 論文題目:REM:對區塊鏈的節約型挖掘

本文介紹了一種新型的基於可信任硬件的區塊鏈挖掘框架:節約型挖掘(REM)

大多數區塊鏈中所使用的工做量證實(proof-of-work, PoW)很容易就會被認爲是能源浪費證實。除了選擇鏈中的下一個區塊以外,全部的散列並無任何用處。綜合的能源浪費實際上至關驚人:

你們一致認爲,PoW毫無用處,只會產生巨大的金錢和環境成本。今天,比特幣網絡使用的電力比核反應堆生產的還要多,預計到2020年,它的電力消耗將遇上整個丹麥所消耗的。

所以,專家們研究了其餘的共識方案,包括基於BFT的和權益證實( Proof of Stake),但這些「要麼限制了共識分享,要麼有明顯的安全限制」。在這篇文章中,做者提供了另一種方法。咱們將再也不使用「工做量證實」,而使用「有用工做量證實」(PoUW)。

在PoUW系統中,CPU在承擔原來的工做以外,還能夠同時承擔區塊鏈的工做。在PoUW方案下工做的CPU開銷是原來運行開銷的5-15%左右。

REM(Resource-Efficient Mining,節約型挖掘)的核心依賴於英特爾的SGX(Software Guard Extensions,軟件防禦擴展指令)技術,但正如咱們將看到的,須要多個組件協做工做才能使總體方案發揮做用。

圖中有區塊鏈代理(Agent)、REM礦工(Miner),以及一個或多個有用的工做客戶端(Useful Work client)。代理用於收集事務並生成區塊模板,該模板是在缺乏PoUW的狀況下的候選區塊。礦工以PoUW任務的形式獲取區塊模板,並從一個有用的工做客戶端中獲取有用的工做負載。

PoUW包括兩個部分:挖掘成功時候的有用工做程序認證,以及合法檢查員的認證。

實驗顯示對示例基準測試的性能影響最小(5-15%)。

Thunderella: Blockchains with Optimistic Instant Confirmation

  • 會議名稱: Advances in Cryptology – EUROCRYPT 2018
  • 做者:Rafael Pass Elaine Shi
  • 論文題目:Thunderella: Blockchains with Optimistic Instant Confirmation

這篇論文中,做者介紹了一個全新的算法叫作「Thunderella」。與通常狀態機的共識原理不一樣(狀態機至關於一個共識機制的抽象,對分佈式網絡中大量節點的請求進行確認),Thunderella使得狀態機能夠在實現快速異步處理的同時,在異常時還能夠啓動回滾機制。如此一來,狀態機的相應速度與同步協議無異,在不出現「拜占庭將軍問題」(及大多數人都是誠實的)的狀況下,能夠作到對交易的瞬間響應。

在分佈式系統中有一種叫作狀態機複製的技術,在這項技術中,每一組服務器同步一個增加而且線性的日誌,而這必須知足兩點屬性:

  • 一致性,日誌信息必須一致。
  • 活躍性,當客戶端提交一個交易時能夠快速的包含到日誌中。在這文章中,將把狀態機複製簡稱爲共識。

基於區塊鏈中存在的大量不可信節點,對於大規模設置的兩大協議

  • 傳統協議PBRT和Byzantine-Paxos等,它們在正常狀況下確認事務會很快;但這些協議是出了名的複雜,使得實現測試、從新配置和維護相對困難。
  • 區塊鏈式的協議,在概念上簡單而且容忍少數腐敗節點,確認事務的實際緩慢,必須將預期的塊間隔設置的足夠大,以便協議保安全性。

Thunderella:

  1. 有一個指定的實體:領導者或者叫「加速器」。
  2. 交易須要發送給領導者,領導在交易上簽字(增長序列號,能夠理解成一個包含不少交易的區塊),並將簽署的交易發送給「委員會」。
  3. 委員會成員「確認」全部領導者已簽署的交易,每一個序列號最多隻有一個交易(即誠實的委員會成員不會對相同序號不一樣交易進行確認)。
  4. 若是一個交易已收到超過3/4的委員會簽名 將此類交易稱爲公證交易。 參與者能夠直接輸出他們最長的連續序列(就其序列號而言)公證的交易 - 全部這些交易都獲得確認。

P2P Mixing and Unlinkable Bitcoin Transactions

  • 會議名稱: NDSS ’17, 26 February - 1 March 2017, San Diego, CA, USA
  • 做者:Tim Ruffing、Pedro Moreno-Sanchez、Aniket Kate
  • 論文題目:P2P Mixing and Unlinkable Bitcoin Transactions

從DC-nets開始,提出了幾種對等匿名通訊協議,儘管這些協議具備強大的匿名保證,但幾乎沒有進行過實踐的檢驗。所以大多數協議沒法同時解決時隙衝突和惡意對等方中斷的關鍵問題,而其他協議沒法處理帶有的惡意對等方通信輪次。做者將P2P匿名通訊協議概念化爲P2P混合,提出一種新穎的P2P混合協議DiceMix,在最佳狀況下僅須要四次通訊輪次,在最壞狀況下須要4 + 2f輪次與惡意對等。因爲每一個單獨的惡意對等體均可以經過簡單地省略他的消息來強制重啓P2P混合協議,咱們發現DiceMix具備O(f)輪的最壞狀況複雜度,是最佳的P2P混合解決方案。

在應用程序方面,使用DiceMix來提升比特幣等加密貨幣的匿名性。經過公開可用的分佈式帳本(或區塊鏈)進行的假名交易的公開可驗證性使得這些系統極易受到各類可連接性和去匿名攻擊的攻擊。同時使用DiceMix來定義CoinShuffle++,這是一種硬幣混合協議,容許假名對等方執行不可連接的交易。方式與當前的比特幣系統徹底兼容。下圖是DiceMix執行的示例。

最後對P2P混合協議進行了去匿名攻擊,以保證在存在破壞性對等體的狀況下終止。DiceMix經過要求新的輸入消息(例如以前從未使用過的加密密鑰)來抵抗這種攻擊。

上圖是P2P混合協議遭到去匿名攻擊,而DiceMix躲避攻擊的方式是:

爲了不消息集的交集,DiceMix在每次運行中繪製新的消息。 此外,每當某個誠實的對等體p排除沒法訪問的誠實對等體p0(並犧牲p0的匿名性)時,正確的確認屬性將確保當前運行不會成功終止對等體p0,由於p0和p將具備不一樣的視圖。 當前未設置的同伴的P組。 所以,當前運行不須要匿名,而且能夠平等地處理惡意和脫機對等。

【最佳論文】 Simple Proofs of Sequential Work

  • 會議名稱: Advances in Cryptology – EUROCRYPT 2018
  • 做者:Bram Cohen and Krzysztof Pietrzak
  • 論文題目:Simple Proofs of Sequential Work 簡單的連續工做證實

試圖經過「空間證實」(Proof of Space)來保證比特幣及其餘加密貨幣的安全。「空間證實」是Bram Cohen以前提出的一種取代PoW的工做證實方式。

工做量證實(Proof Of Work,簡稱POW)
簡單理解就是一份證實,用來確認你作過必定量的工做。工做量證實系統主要特徵是客戶端須要作必定難度的工做得出一個結果,驗證方卻很容易經過結果來檢查出客戶端是否是作了相應的工做。這種方案的一個核心特徵是不對稱性:工做對於請求方是適中的,對於驗證方則是易於驗證的。

空間證實(proof-of-space)」
依賴於磁盤空間而不是計算力做爲挖礦的主要資源,建立了一種聲稱可以比PoW更加生態友好且經濟的替代選擇。這份標題爲《以空間證實的應用超越赫爾曼的時間記憶折中》概述了經過使用空間證實(proof-of-space)創建一種對能源需求更少的挖礦流程——比特幣的能源集約型挖礦模式一直遭受不少人的批評,被不少人認爲是一種資源浪費。因爲能源要求的下降,以及對現有硬件的依賴,這種方式旨在是任何擁有一臺計算機的人都可以進行挖礦。在空間證實體系下,礦工能夠將未使用的磁盤空間分配到網絡中,而成功挖到區塊的機率將與礦工分配的磁盤空間與網絡的總能力成比例。

Publicly verifiable proofs of sequential work---公開可驗證的公做證實

隨機預言機(random oracle,簡稱RO)。在密碼學裏面,隨機預言是一個預言(簡單說像是理論的黑箱),對任何輸入都回傳一個真正均勻隨機的輸出(請參考離散型均勻分佈),不過對相同的輸入,該預言每次都會回傳如出一轍的輸出。由於預言機實際上起到的是一個黑匣子的做用,中間是存在一個固定的算法的,這個算法至關複雜且是保密的,所以相同的輸入值在通過了這個算法的運算以後輸出的是相同的輸出值,就像數學上一個肯定的函數,相同的數值代入運算幾回都會獲得一樣的結果同樣。預言機存在的目的是爲了讓你沒法知道本身的輸入能獲得什麼樣的結果,若是你給出兩個輸入,預言機同時給定兩個輸出的話,你不會知道這兩個輸出分別對應的是哪一個輸入。

一個Merkle DAG,一個無迴路有向圖,對象之間的links都是hash加密嵌入在源目標中。這是Git數據結構的一種推廣。

  1. 內容可尋址:全部內容都是被多重hash校驗和來惟一識別的,包括links。
  2. 防止篡改:全部的內容都用它的校驗和來驗證。若是數據被篡改或損壞,會檢測到。
  3. 重複數據刪除:全部的對象都擁有相同的內容並只存儲一次。這對於索引對象很是有用,

SMARTPOOL: Practical Decentralized Pooled Mining

  • 會議名稱: 26th USENIX Security Symposium August 16–18, 2017 • Vancouver, BC, Canada
  • 做者:Loi Luu、Yaron Velner、Jason Teutsch、Prateek Saxena
  • 論文題目:Practical Decentralized Pooled Mining

本論文講述了一種SMARTPOOL,一個分散的挖掘池的新協議設計。該協議展現瞭如何利用智能合同,自治的區塊鏈程序,來分散加密貨幣的挖掘。SMARTPOOL將交易選擇控制權返還給礦商,同時提供低價格的收購。SMARTPOOL的規模比集中的礦池要低,並被設計成規模擴大到危言聳聽的礦工。而且在Ethereum和Ethereum的經典網絡上實現了一個健壯的SMARTPOOL實現。

文章提出了POW所面臨的的困難,在本文中,將重點放在有關採礦池的屬性列表中。 像比特幣和以太坊這樣的加密貨幣獎勵網絡參與者(或礦工)新的加密硬幣,用於解決計算難度大的難題(或工做證實謎題)。

解決方案:

文章針對分散式集中採礦的解決方案利用以太坊智能合約,這些合同是在區塊鏈上運行的分散式自主代理。非合約賬戶在以太網中具備地址和餘額,以太幣是以太坊的本地貨幣。此外,智能合約還具備代碼和私有持久存儲(即變量和值之間的映射)。智能合約代碼相似於能夠操縱存儲變量的普通程序。爲了在地址addr處調用合同(即執行其代碼),用戶向addr發送具備適當有效載荷的事務,即支付執行(在Ether中)和/或用於調用的輸入數據。只要大多數以太坊礦工忠實地遵循以太坊協議,合同代碼就會在區塊鏈上正確執行。

在較高的層面上,SMARTPOOL用智能合約取代了採礦池運營商。智能合約經過存儲礦工提交的全部股票,充當游泳池的無信任簿記員。提交新股份時,合同將驗證共享的有效性,並檢查否
之前的共享記錄存在,而後更新相應的礦工記錄。咱們容許礦工在本地生成池的塊模板(在3.3節中詳細討論)。若是礦工找到一個有效塊的共享,它會將該塊廣播到加密貨幣網絡,獎勵將當即記入SMARTPOOL。而後,SMARTPOOL公平地向池中的全部礦工發放區塊獎勵。

總結

區塊鏈這幾年逐漸走入研究人員的視野,區塊鏈這幾年逐漸被應用到多種不一樣的領域,人們的研究方向仍是集中在解決區塊鏈的工做量證實以及相關算法的改進中,但願可以獲得更加高效地算法解決區塊鏈現存的安全等問題。

參考資料

相關文章
相關標籤/搜索