[爆卦]sha256演算法是什麼?優點缺點精華區懶人包

雖然這篇sha256演算法鄉民發文沒有被收入到精華區:在sha256演算法這個話題中,我們另外找到其它相關的精選爆讚文章

在 sha256演算法產品中有6篇Facebook貼文,粉絲數超過4,283的網紅哪裡好吃哪裡去:神秘的水原誠,也在其Facebook貼文中提到, 通常如果我們選擇使用nicehash挖礦, 會使用官方提供的挖礦軟體nicehash miner, NHOS或是quick miner! 不過很多時候, 我們會想要用其他的linux系統或是一些第三方軟體接入nicehash的礦池 這樣才能夠將算力轉換為BTC領取出來 甚至藉由這樣的方式, 讓你可以...

  • sha256演算法 在 哪裡好吃哪裡去:神秘的水原誠 Facebook 的精選貼文

    2021-07-06 15:37:38
    有 0 人按讚

    通常如果我們選擇使用nicehash挖礦, 會使用官方提供的挖礦軟體nicehash miner, NHOS或是quick miner! 不過很多時候, 我們會想要用其他的linux系統或是一些第三方軟體接入nicehash的礦池 這樣才能夠將算力轉換為BTC領取出來 甚至藉由這樣的方式, 讓你可以藉由nicehash的APP或是網站來得知礦機的即時狀態與整合應用 為了達到這樣的目的 我們可以利用Nicehash網站上提供的Stratum生成器(stratum-generator)來達成目的 直接連到網址就可以得到需求的資訊 左側可以選擇需求的演算法, 右邊則選擇離你最近的礦池, 像是台灣我會比較建議選擇美西吧 藉以達到算不同幣的效果與較佳的連線狀態... 像是SHA256挖BTC, SCRYPT挖LTC, DAGGERHASHIMOTO是用來挖ETH, RANDOMXMONERO挖XMR, AUTOLYKOS挖ERG等等 就選擇自己需要的吧... 這裡以門羅幣(XMR)連到美西為例 我們可以產出這樣的礦池連結 stratum+tcp://randomxmonero.usa-west.nicehash.com:3380 而使用的錢包網址則是要使用Nicehash礦機頁面的BTC錢包地址: 3HBJaAXYzXvTBPiM9WVHUSUMUBzkLntHXs 接著我們到使用的挖礦軟體或是系統中做設定 演示的這台電腦沒有獨立顯示卡, 所以使用XMrig搭配CPU挖礦 接著我們可以建立這樣的一個執行連結批次檔或是直接把整串設定拿去執行 xmrig.exe -o stratum+tcp://randomxmonero.usa-west.nicehash.com:3380 -a rx -k -u 3HBJaAXYzXvTBPiM9WVHUSUMUBzkLntHXs.dell5310 其中worker name可以自定義, 其他的則是要注意不要寫錯 為了方便日後執行我會把它寫成BAT批次檔案 執行效果 如果覺得延遲太高可以改成其他礦池 nicehash的管理介面則是會顯示這樣 後面還會標註UNMANAGED 然後一樣可以設定狀況通知 點進去則是可以看演算法的歷史數據 這樣就可以掌控基本運作狀況囉! 不過當然由於這不是nicehash官方軟體 基本就不會有切換演算法得到最佳收益的問題了 但至少一樣可以4小時出一次金, 還能直接領BTC, 就看取捨吧!

    https://mshw.info/mshw/?p=27398

  • sha256演算法 在 Taipei Ethereum Meetup Facebook 的最讚貼文

    2021-06-21 17:57:07
    有 0 人按讚

    📜 [專欄新文章] Merkle Tree in JavaScript

    ✍️ Johnson

    📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium

    這篇文章會說明 Merkle Tree 的運作原理,以及解釋 Merkle Proofs 的用意,並以 JavaScript / TypeScript 簡單實作出來。

    本文為 Tornado Cash 研究系列的 Part 1,本系列以 tornado-core 為教材,學習開發 ZKP 的應用,另兩篇為:

    Part 2:ZKP 與智能合約的開發入門

    Part 3:Tornado Cash 實例解析

    Special thanks to C.C. Liang for review and enlightenment.

    本文中實作的 Merkle Tree 是以 TypeScript 重寫的版本,原始版本為 tornado-core 以 JavaScript 實作而成,基本上大同小異。

    Merkle Tree 的原理

    在理解 Merkle Tree 之前,最基本的先備知識是 hash function,利用 hash 我們可以對資料進行雜湊,而雜湊後的值是不可逆的,假設我們要對 x 值做雜湊,就以 H(x) 來表示,更多內容可參考:

    一次搞懂密碼學中的三兄弟 — Encode、Encrypt 跟 Hash

    SHA256 Online

    而所謂的 Merkle Tree 就是利用特定的 hash function,將一大批資料兩兩進行雜湊,最後產生一個最頂層的雜湊值 root。

    當有一筆資料假設是const leaves = [A, B, C, D],我們就用function Hash(left, right),開始製作這顆樹,產生H(H(A) + H(B))與H(H(C) + H(D)),再將這兩個值再做一次 Hash 變成 H(H(H(A) + H(B)) + H(H(C) + H(D))),就會得到這批資料的唯一值,也就是 root。

    本文中使用的命名如下:

    root:Merkle Tree 最頂端的值,特色是只要底下的資料一有變動,root 值就會改變。

    leaf:指單一個資料,如 H(A)。

    levels:指樹的高度 (height),以上述 4 個資料的假設,製作出來的 levels 是 2,levels 通常會作為遞迴的次數。

    leaves:指 Merkle Tree 上的所有資料,如上述例子中的 H(A), H(B), H(C), H(D)。leaves 的數量會決定樹的 levels,公式是 leaves.length == 2**levels,這段建議先想清楚!

    node:指的是非 leaves 也非 root 的節點,或稱作 branch,如上述例子中的H(H(A) + H(B)) 和 H(H(C) + H(D))。

    index:指某個 leaf 所在的位置,leaf = leaves[index],index 如果是偶數,leaf 一定在左邊,如果是奇數 leaf 一定在右邊。

    Merkle Proofs

    Merkle Proofs 的重點就是要證明資料有沒有在樹上。

    如何證明?就是提供要證明的 leaf 以及其相對應的路徑 (path) ,經過計算後一旦能夠產生所需要的 root,就能證明這個 leaf 在這顆樹上。

    因此這類要判斷資料有無在樹上的證明,類似的說法有:proving inclusion, proving existence, or proving membership。

    這個 proof 的特點在於,我們只提供 leaf 和 path 就可以算出 root,而不需要提供所有的資料 (leaves) 去重新計算整顆 Merkle Tree。這讓我們在驗證資料有沒有在樹上時,不需要花費大量的計算時間,更棒的是,這讓我們只需要儲存 root 就好,而不需要儲存所有的資料。

    在區塊鏈上,儲存資料的成本通常很高,也因此 Merkle Tree 的設計往往成為擴容上的重點。

    我們知道 n 層的 Merkle Tree 可以存放 2**n 個葉子,以 Tornado Cash 的設計來說,他們設定 Merkle Tree 有 20 層,也就是一顆樹上會有 2**20 = 1048576 個葉子,而我們用一個 root 就代表了這 1048576 筆資料。

    接續上段的例子,這顆 20 層的 Merkle Tree 所產生的 Proof ,其路徑 (path) 要從最底下的葉子 hash 幾次才能到達頂端的 root 呢?答案就是跟一棵樹的 levels 一樣,我們要驗證 Proof 所要遞迴的次數就會是 20 次。

    在實作之前,我們先來看 MerkleTree 在 client 端是怎麼調用的,這有助於我們理解 Merkle Proofs 在做什麼。

    基本上一個 proof 的場景會有兩個人:prover 與 verifier。

    在給定一筆 leaves 的樹,必定產生一特定 root。prover 標示他的 leaf 在樹上的 index 等於 2,也就是 leaves[2] == 30,以此來產生一個 proof,這個 proof 的內容大致上會是這個樣子:

    對 verifier 來說,他要驗證這個 proof,就是用裡面的 leaf 去一個一個與 pathElements 的值做 hash,上述就是 H('30', 40) 後得出 node,再 hash 一次 H('19786...', node) 於是就能得出這棵樹的 root。

    重點來了,這麼做有什麼意義?它的巧思在於對 verifier 來說,他只需要儲存一個 root,由 prover 提交證明給他,經過計算後產生的 root 如果跟 verifier 儲存的 root 一樣,那就證明了 prover 所提供的資料確實存在於這個樹上。

    而 verifier 若不透過 proof ,要驗證某個 leaf 是否存在於樹上,也可以把 leaves = [10, 20 ,leaf ,40]整筆資料拿去做 MerkleTree 的演算法跑一趟也能產生特定的 root。

    但由 prover 先行計算後所提交的 proof,讓 verifier 不必儲存整批資料,也省去了大量的計算時間,即可做出某資料有無在 Merkle Tree 上的判斷。

    Sparse Merkle Tree

    上述能夠證明資料有無在樹上的 Merkle Proofs 是屬於標準的 Merkle Tree 的功能。但接下來我們要實作的是稍微不一樣的樹,叫做 Sparse Merkle Tree。

    Sparse Merkle Tree 的特色在於除了 proving inclusion 之外,還可以 proving non-inclusion。也就是能夠證明某筆資料不在某個 index,例如 H(A) 不在 index 2 ,這是一般 Merkle Tree 沒辦法做到的。

    而要做到 non-membership 的功能其實也不難,就是我們要在沒有資料的葉子裡補上 zero value,或是說 null 值。更多內容請參考:What’s a Sparse Merkle Tree。

    實作細節

    本節將完整的程式碼分成三個片段來解釋。

    首先,這裡使用的 Hash Function 是 MiMC,主要是為了之後在 ZKP 專案上的效率考量,你可以替換成其他較常見的 hash function 例如 node.js 內建 crypto 的 sha256:

    crypto.createHash("sha256").update(data.toString()).digest("hex");

    這裡定義簡單的 Merkle Tree 介面有 root, proof, and insert。

    首先我們必須先給定這顆樹的 levels,也就是樹的高度先決定好,樹所能容納的資料量也因此固定為 2**levels 筆資料,至於要不要有 defaultLeaves 則看創建 Merkle Tree 的 client 自行決定,如果有 defaultLeaves 的話,constructor 就會跑下方一大段計算,對 default 資料開始作 hash 去建立 Merkle Tree。

    如果沒有 defaultLeaves,我們的樹也不會是空白的,因為這是顆 Sparse Merkle Tree,這裡使用 zeroValue 作為沒有填上資料的值,zeros 陣列會儲存不同 level 所應該使用的 zero value。假設我們已經填上第 0 筆與第 1 筆資料,要填上第 2 筆資料時,第 2 筆資料就要跟 zeros[0] 做 hash,第 2 筆放左邊, zero value 放右邊。

    我們將所有的點不論是 leaf, node, root 都用標籤 (index) 標示,並以 key-value 的形式儲存在 storage 裡面。例如第 0 筆資料會是 0–0,第 1 筆會是 0–1,這兩個 hash 後的節點 (node) 會是 1–0。假設 levels 是 2,1–0 節點就要跟 1–1 節點做 hash,即可產出 root (2–0)。

    後半部份的重點在於 proof,先把 proof 和 traverse 看懂,基本上就算是打通任督二脈了,之後有興趣再看 insert 和 update。

    sibling 是指要和 current 一起 hashLeftRight 的值…也就是相鄰在兩旁的 leaf (or node)。

    到這裡程式碼的部分就結束了。

    最後,讓我們回到一開始 client 調用 merkleTree 的例子:

    以及 proof 的內容:

    前面略過了 proof 裡頭的 pathIndices,pathIndices 告訴你的是當前的 leaf (or node) 是要放在左邊,還是放在右邊,大概是這個樣子:

    if (indices == 0) hash(A, B);if (indices == 1) hash(B, A);

    有興趣的讀者可以實作 verify function 看看就會知道了!

    原始碼

    TypeScript from gist

    JavaScript from tornado-core

    參考

    Merkle Proofs Explained

    What’s a Sparse Merkle Tree?

    延伸:Verkle Tree

    Merkle Tree in JavaScript was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.

    👏 歡迎轉載分享鼓掌

  • sha256演算法 在 李開復 Kai-Fu Lee Facebook 的最佳解答

    2018-09-27 11:32:48
    有 158 人按讚


    比特大陸首輪機構投資人,創新工場首度披露投資邏輯

    比特大陸此次赴港上市,將有望成為今年或明年港股最受矚目,集資額最大的高科技芯片股IPO,及暨小米,美團之後的香港第三家同股不同權公司。

    文章轉自創新工場公眾號。

    ………………………………

    創新工場系公司比特大陸(Bitmain)昨天正式遞交招股書,啟動香港聯交所主機板上市的計畫。創新工場2017年8月投資比特大陸,是比特大陸的A輪首輪外部機構投資人。創新工場董事長兼CEO李開復也首次公開了比特大陸的投資邏輯。

    比特大陸第一輪機構投資人

    比特大陸是一家成立於2013年的無晶圓廠晶片設計公司、加密貨幣礦機公司。李開復表示,創新工場作為一家Tech VC,擅長把握技術趨勢,在風口形成之前就在中早期提前進場。創新工場是在幾年前佈局人工智慧加速晶片賽道時,發現了比特大陸,2017年8月,創新工場完成對比特大陸的A輪投資,成為比特大陸的第一輪機構投資人。

    在李開復看來,高效能的專用人工智慧晶片在人工智慧勢不可擋的時代背景中,其作為核心基礎設施的價值和意義無可限量。在這個領域也湧現了不少新興的創業公司,但創新工場更看好比特大陸團隊的技術能力,尤其在中國現階段特別需要的半導體設計和批量生產能力。

    其次,比特大陸做的是計算量最大的晶片,而且又是量產,這兩點都達到的中國公司很少。更重要的是,比特大陸團隊有很強的市場嗅覺。在區塊鏈領域應用爆發的時候,找到了一個平臺的機會。同時,這個技術也能夠用到AI領域,而且已經可以看到很不錯的第一批AI晶片產品。

    創新工場執行董事王嘉平也透露了更多細節,作為一名資深區塊鏈技術專家,當他分析這家公司的業務狀況時發現,支撐10億美元估值的核心業務是比特幣礦機的設計和銷售,這使得比特大陸的現狀以及發展的前景變得尤為清晰。比特大陸以極致性能-功耗比的SHA256專用計算晶片為支點,佔據了全球比特幣礦機近70%的市場份額。

    “這是一家在高速增長的市場中佔據主導地位的公司,是一個絕佳的投資標的。”王嘉平稱。

    投資源於AI晶片佈局,區塊鏈佈局是另一落腳點

    比特大陸發展到今日,礦機業務只是公司的起點。公司同時在人工智慧領域和區塊鏈技術領域佈局,依賴其高效能ASIC的核心研發能力同時為世界的兩條發展主線提供算力支援。

    這也是創新工場投資比特大陸的另一個落腳點,王嘉平進一步補充。區塊鏈作為時代技術進步的另一條主線,助力了很多新應用和新業務的湧現。但區塊鏈技術由於其天生的親金融屬性,其業務和應用為從技術信仰者到金融投機者的推波助瀾,極速發展。這些業務和應用發展的速度甚至遠遠超越了區塊鏈技術本身的發展,這導致了整個市場的波動被極度放大和加速。比特大陸同樣也曾經歷了市場極度波動的歷練,管理團隊具備相當的風險駕馭能力。讓我們相信只要這是一個正確的方向,那麼比特大陸終能堅持到終點。



    參考互聯網的發展,從1960年代的封包交換開始,到TCP/IP協議的成型,到路由式通訊協定的成熟,到骨幹絡的全球架設,到WWW建站的普及,到2000年.COM泡沫的破裂,到搜尋引擎的崛起,線上廣告盈利模式的確立,電商、社交等線上應用蓬勃發展,歷經了整整半個世紀。期間歷經了,基礎設施,實體映射,核心業務和商業模式四大階段直至今日的百花齊放。區塊鏈技術作為未來的另一個平臺,現在還尚處基礎設施階段,並開始映射現實世界的實體。雖然區塊鏈技術未必重演互聯網同樣的故事,但區塊鏈技術已經展現了其獨一無二的能力,是現有技術和平臺無法企及的。

    區塊鏈技術的基礎設施較之互聯網時代要複雜和豐富很多,它不僅僅傳遞資訊,更需要公允地理解資訊和執行資訊中的邏輯,更挑戰的是這一切是在一個開放、全球分佈且沒有集中安全控制設定中完成。

    “資料海嘯”正在以指數速度增長

    比特大陸董事長兼Co-CEO詹克團在2018年9月19日創新工場的投資人閉門年會上的演講中也提到,“資料海嘯”正在以指數級增長的速度產生,到2025年資料體量還會增長5倍,人工智慧對運算量需求巨大,半導體行業充滿機會。

    在這樣的一個巨大的市場機會面前,半導體公司、積體電路企業迎來了一個千載難逢的機會。目前Intel、微軟等公司提供的計算的晶片,都已經不能夠滿足今天深度學習對於計算的需求。今天主流的晶片大概的性能都在1瓦1T到1瓦5T之間。根據矽谷的統計,到2025年晶片的性能要達到20T,才能滿足深度學習計算的需求,這差不多還有20倍的提升空間。

    深度學習的計算從CPU進入到GPU,再進入到今天的ASICs之後,還要再進入一個定制化的ASICs,進一步的再有10倍的性能提升,才能夠勉強在未來的5年之內滿足地球上基於前面大資料和AI出現的巨大的計算的機會。

    有望成為港股最矚目的科技晶片股

    比特大陸在招股書表示,此次集資所得將部分用於高科技AI晶片及AI應用的研發及擴大生產。

    今年9月21日,比特大陸剛剛宣佈推出自主研發的全新7nm晶片,可用於挖掘比特幣(BTC)、比特幣現金(BCH)加密數位貨幣。這款由比特大陸打造的7nm晶片,宣稱單顆晶片集成達10億個電晶體,在演算法上也進行了優化。晶片採用獨有電路結構和低功耗技術,能效比將低至42J/T。

    該晶片採用Exposed Die封裝方案,擁有更好的散熱性能。摒棄傳統的Over Molding塑封方式,留出晶圓背面,直接與散熱介面材料和散熱器接觸做散熱。因此,傳熱效率會比傳統方式更優化。7nm晶片是區塊鏈和加密數位貨幣行業的研發突破,旨在為客戶提供更高效的挖礦設備。

    目前,比特大陸的7nm晶片即將量產,並將應用於下一代螞蟻礦機。

    比特大陸2018年上半年期內盈利為7.42億美元,比特大陸2017年全年及2018年上半年經調整淨利潤均高達9.5億美元。

    比特大陸此次赴港上市,將有望成為今年或明年港股最受矚目、集資額最大的高科技晶片股IPO,及暨小米、美團之後的香港第三家同股不同權公司。比特大陸稱此次集資所得將部分用於高科技AI晶片及AI應用的研發及擴大生產。

你可能也想看看

搜尋相關網站