• <option id="cacee"><noscript id="cacee"></noscript></option>
  • <table id="cacee"><noscript id="cacee"></noscript></table>
  • <td id="cacee"></td>
  • <option id="cacee"></option>
  • <table id="cacee"></table>
  • <option id="cacee"><option id="cacee"></option></option>
  • <table id="cacee"><source id="cacee"></source></table><td id="cacee"><rt id="cacee"></rt></td>
    <option id="cacee"><option id="cacee"></option></option>
     找回密碼
     立即注冊

    掃一掃,登錄網站

    首頁 百科 查看內容
    • 6073
    • 0
    • 分享到

    反ASIC挖礦

    2019-7-7 12:22

    來源: MAI創智公鏈 作者: 張翼 梁華 洪孝林

    現在最受歡迎的剛性內存解謎叫作Scrypt,被第二大加密數字貨幣萊特幣以及其他加密數字貨幣所用


    Scrypt是一個剛性內存的哈希函數,最早是為了加密密碼而不容易被暴力破解(比如,反復試錯破解),所以挖礦解謎與比特幣用的“不完全哈希函數原像解謎”是一樣的,只不過用Scrypt取代了SHA-256。

    Scrypt在比特幣被發明出來之前就已經存在,而且它是用來加密個人密碼,這一點讓我們對它的安全性有一定信心。密碼的哈希函數化其實與反ASIC有著相似的目的。出于安全性考慮,我們期待,一個有著定制化設備的攻擊者不能夠比使用一般電腦或者服務器的用戶更快地計算密碼的函數值【4】。

    Scrypt基本上有兩個步驟:第一個步驟是在用隨機數據填充隨機存取存儲器(Random Acess Memory,簡稱RAM)里面的緩存空間;第二個步驟是從這塊內存區域里虛擬隨機地讀取(或者更新)數據,同時要求整個緩存都存儲在RAM里面【5】。

    在時間和內存之間的權衡。如果沒有一個較大的內存緩存,計算Scrypt會變得很慢,但是用較少的內存來增加相對較少的計算還是有可能的。假設我們使用一個大小約N/2的緩存(而不是N的大小),現在,我們只在j是偶數的情況儲存V【j】的值,丟掉那些j是奇數的值。而在第二次循環里,一半的情況下j為奇數的值將會被選到,但這種情況還是很容易被計算的。我們只需要簡單地計算SHA-256(V【j-1】),因為V【j-1】在我們的緩存里。在一半的時間內會產生這種情況,所以它增加了N/2個額外的SHA-256計算。

    因此,對內存要求量的減半只會增加1/4的SHA-256計算量(從2N到5N/2)。總體來說,我們可儲存緩存區域V里的每個k排數據,即使用N/k的內存和計算(k+3)N/2次的SHA-256迭代計算。在這個限制下,如果我們設定k=N,我們就回到先前運算時間為O(N的平方)的計算。這些數字不一定非常準確地適用于Scrypt算法本身,但是漸進預測的方式確實是適用的。

    除此之外,還有其他的設計可以弱化用時間來換取內存地能力。舉例來說,如果一個緩存持續地在第二次循環中被更新,它可以讓時間與內存之間的互換不是那么有效,因為這些更新必須被儲存在內存中。

    版權申明:本內容來自于互聯網,屬第三方匯集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯系QQ:3341927519進行反饋。
    相關新聞
    發表評論

    請先 注冊/登錄 后參與評論

      回頂部
    • <option id="cacee"><noscript id="cacee"></noscript></option>
    • <table id="cacee"><noscript id="cacee"></noscript></table>
    • <td id="cacee"></td>
    • <option id="cacee"></option>
    • <table id="cacee"></table>
    • <option id="cacee"><option id="cacee"></option></option>
    • <table id="cacee"><source id="cacee"></source></table><td id="cacee"><rt id="cacee"></rt></td>
      <option id="cacee"><option id="cacee"></option></option>
      妖精视频