導航:首頁 > 比特幣區 > sha256演算法比特幣

sha256演算法比特幣

發布時間:2024-06-15 06:39:12

比特幣哈希字元要求前幾位為零

是的。運算是將任意長度的0,變成固定長度的0。所以比特幣哈希字元要求前幾位為零的,任何信息,不管多長演算法「SHA1」,算出的結果是160位,也就是由160個0或1組成;比特幣挖礦用到的是「SHA256」,算出的結果是256位。至於具體怎麼算的,我們繼續秉承最小知識集原則,不去管它。

⑵ 比特幣挖礦是在進行什麼計算嗎

為了證明時間 保證整個網路的安全性
如果沒有這個計算 整個體系是不安全的 所以這些看似沒有意義的計算是為了保證大家的安全

⑶ 什麼是SHA256

SHA 家族
SHA (Secure Hash Algorithm,譯作安全散列演算法) 是美國國家安全局 (NSA) 設計,美國國家標准與技術研究院 (NIST) 發布的一系列密碼散列函數。正式名稱為 SHA 的家族第一個成員發布於 1993年。然而現在的人們給它取了一個非正式的名稱 SHA-0 以避免與它的後繼者混淆。兩年之後, SHA-1,第一個 SHA 的後繼者發布了。 另外還有四種變體,曾經發布以提升輸出的范圍和變更一些細微設計: SHA-224, SHA-256, SHA-384 和 SHA-512 (這些有時候也被稱做 SHA-2)。
SHA-0 和 SHA-1
最初載明的演算法於 1993年發布,稱做安全散列標准 (Secure Hash Standard),FIPS PUB 180。這個版本現在常被稱為 "SHA-0"。它在發布之後很快就被 NSA 撤回,並且以 1995年發布的修訂版本 FIPS PUB 180-1 (通常稱為 "SHA-1") 取代。根據 NSA 的說法,它修正了一個在原始演算法中會降低密碼安全性的錯誤。然而 NSA 並沒有提供任何進一步的解釋或證明該錯誤已被修正。1998年,在一次對 SHA-0 的攻擊中發現這次攻擊並不能適用於 SHA-1 — 我們不知道這是否就是 NSA 所發現的錯誤,但這或許暗示我們這次修正已經提升了安全性。SHA-1 已經被公眾密碼社群做了非常嚴密的檢驗而還沒發現到有不安全的地方,它現在被認為是安全的。
SHA-0 和 SHA-1 會從一個最大 2^64 位元的訊息中產生一串 160 位元的摘要然後以設計 MD4 及 MD5 訊息摘要演算法的 MIT 教授 Ronald L. Rivest 類似的原理為基礎來加密。
SHA-0 的密碼分析
在 CRYPTO 98 上,兩位法國研究者展示了一次對 SHA-0 的攻擊 (Chabaud and Joux, 1998): 散列碰撞可以復雜到 2^61 時被發現;小於 2^80 是理想的相同大小散列函數。
2004年時,Biham 和 Chen 發現了 SHA-0 的近似碰撞 — 兩個訊息可以散列出相同的數值;在這種情況之下,142 和 160 位元是一樣的。他們也發現了 SHA-0 在 80 次之後減少到 62 位元的完整碰撞。
2004年8月12日,Joux, Carribault, Lemuet 和 Jalby 宣布了完整 SHA-0 演算法的散列碰撞。這是歸納 Chabaud 和 Joux 的攻擊所完成的結果。發現這個碰撞要復雜到 2^51, 並且用一台有 256 顆 Itanium2 處理器的超級電腦耗時大約 80,000 CPU 工作時 。
2004年8月17日,在 CRYPTO 2004 的 Rump 會議上,Wang, Feng, Lai, 和 Yu 宣布了攻擊 MD5、SHA-0 和其他散列函數的初步結果。他們對 SHA-0 攻擊復雜到 2^40,這意味著他們攻擊的成果比 Joux 還有其他人所做的更好。該次 Rump 會議的簡短摘要可以在 這里找到,而他們在 sci.crypt 的討論,例如: 這些結果建議計劃使用 SHA-1 作為新的密碼系統的人需要重新考慮。
更長的變種
NIST 發布了三個額外的 SHA 變體,每個都有更長的訊息摘要。以它們的摘要長度 (以位元計算) 加在原名後面來命名:"SHA-256", "SHA-384" 和 "SHA-512"。它們發布於 2001年的 FIPS PUB 180-2 草稿中,隨即通過審查和評論。包含 SHA-1 的 FIPS PUB 180-2,於 2002年以官方標准發布。這些新的散列函數並沒有接受像 SHA-1 一樣的公眾密碼社群做詳細的檢驗,所以它們的密碼安全性還不被大家廣泛的信任。2004年2月,發布了一次 FIPS PUB 180-2 的變更通知,加入了一個額外的變種 "SHA-224",定義了符合雙金鑰 3DES 所需的金鑰長度。
Gilbert 和 Handschuh (2003) 研究了新的變種並且沒有發現弱點。
SHAd
SHAd 函數是一個簡單的相同 SHA 函數的重述:
SHAd-256(m)=SHA-256(SHA-256(m))。它會克服有關延伸長度攻擊的問題。
應用
SHA-1, SHA-224, SHA-256, SHA-384 和 SHA-512 都被需要安全散列演算法的美國聯邦政府所應用,他們也使用其他的密碼演算法和協定來保護敏感的未保密資料。FIPS PUB 180-1 也鼓勵私人或商業組織使用 SHA-1 加密。Fritz-chip 將很可能使用 SHA-1 散列函數來實現個人電腦上的數位版權管理。
首先推動安全散列演算法出版的是已合並的數位簽章標准。
SHA 散列函數已被做為 SHACAL 分組密碼演算法的基礎。
SHA-1 的描述
以下是 SHA-1 演算法的偽代碼:
(Initialize variables:)
a = h0 = 0x67452301
b = h1 = 0xEFCDAB89
c = h2 = 0x98BADCFE
d = h3 = 0x10325476
e = h4 = 0xC3D2E1F0
(Pre-processing:)
paddedmessage = (message) append 1
while length(paddedmessage) mod 512 > 448:
paddedmessage = paddedmessage append 0
paddedmessage = paddedmessage append (length(message) in 64-bit format)
(Process the message in successive 512-bit chunks:)
while 512-bit chunk(s) remain(s):
break the current chunk into sixteen 32-bit words w(i), 0 <= i <= 15
(Extend the sixteen 32-bit words into eighty 32-bit words:)
for i from 16 to 79:
w(i) = (w(i-3) xor w(i-8) xor w(i-14) xor w(i-16)) leftrotate 1
(Main loop:)
for i from 0 to 79:
temp = (a leftrotate 5) + f(b,c,d) + e + k + w(i) (note: all addition is mod 2^32)
where:
(0 <= i <= 19): f(b,c,d) = (b and c) or ((not b) and d), k = 0x5A827999
(20 <= i <= 39): f(b,c,d) = (b xor c xor d), k = 0x6ED9EBA1
(40 <= i <= 59): f(b,c,d) = (b and c) or (b and d) or (c and d), k = 0x8F1BBCDC
(60 <= i <= 79): f(b,c,d) = (b xor c xor d), k = 0xCA62C1D6
e = d
d = c
c = b leftrotate 30
b = a
a = temp
h0 = h0 + a
h1 = h1 + b
h2 = h2 + c
h3 = h3 + d
h4 = h4 + e
digest = hash = h0 append h1 append h2 append h3 append h4
注意:FIPS PUB 180-1 展示的構想,用以下的公式替代可以增進效能:
(0 <= i <= 19): f(b,c,d) = (d xor (b and (c xor d)))
(40 <= i <= 59): f(b,c,d) = (b and c) or (d and (b or c)))

⑷ 比特幣計算

比特幣計算需要以下參數:
1、block的版本 version
2、上一個block的hash值: prev_hash
3、需要寫入的交易記錄的hash樹的值: merkle_root
4、更新時間: ntime
5、當前難度: nbits

挖礦的過程就是找到x使得
SHA256(SHA256(version + prev_hash + merkle_root + ntime + nbits + x )) < TARGET

上式的x的范圍是0~2^32, TARGET可以根據當前難度求出的。除了x之外,還可以嘗試改動merkle_root和ntime。由於hash的特性,找這樣一個x只能暴力搜索。
一旦計算者A找到了x,就可以廣播一個新的block,其他客戶端會驗證計算者A發布的block是否合法。
如果發布的block被接受,由於每個block中的第一筆交易必須是將新產生25個比特幣發送到某個地址,當然計算者A會把這個地址設為計算者A所擁有的地址來得到這25個比特幣。

⑸ 比特幣挖礦到底是在計算什麼

專業的說,是在算哈希值SHA-256。如果不懂計算機的話,簡單地說,就是算一些沒有意義的隨機數,誰的隨機數被比特幣區塊鏈接受了,誰就有錢拿。所以比特幣計算除了賺錢之外,其實並沒有任何實際作用。如果這些算力用來做科學計算,真的可以做很多事情,但是沒辦法,誰讓比特幣賺錢啊

⑹ 鍦ㄦ瘮鐗瑰竵鐨凪erkle鏍戜腑鍑犳′嬌鐢ㄥ埌浜哠HA256綆楁硶

閫氬父鎯呭喌涓嬫槸涓ゆ★紝鎵浠ュ叾鍔犲瘑鍝堝笇綆楁硶涔熷彲浠ュ彨鍋歞ouble-SHA256銆傚湪姣旂壒甯佺綉緇滀腑錛孧erkle鏍戜竴鑸閮芥槸琚鐢ㄦ潵鎬葷粨涓涓鍖哄潡涓鐨勬墍鏈変氦鏄擄紝鑰屼笖榪樺彲浠ョ敓鎴愭暣涓浜ゆ槗闆嗗悎鐨勬暟瀛楁寚綰癸紝鎻愪緵浜嗕竴縐嶆牎楠屽尯鍧楀埌搴曟湁娌℃湁鏌愪氦鏄撶殑楂樻晥閫斿緞銆傜敓鎴愪竴媯靛畬鏁寸殑Merkle鏍戠殑鏃跺欒侀掑綊鍦板逛竴瀵硅妭鐐硅繘琛屽搱甯岋紝騫跺皢鏂扮敓鎴愮殑鍝堝笇鑺傜偣鎻掑叆鍒癕erkle鏍戜腑錛岀洿鍒板彧鍓╀竴涓鍝堝笇鑺傜偣錛岃繖涓涓鑺傜偣灝辨槸Merkle鏍戠殑鏍廣傚綋N涓鏁版嵁鍏冪礌緇忚繃鍔犲瘑鍚庯紝鎻掑叆Merkle鏍戠殑鏃跺欙紝鏈澶氳$畻2*log~2~(N) 嬈″氨鍙浠ユ鏌ュ嚭鏌愭暟鎹鍏冪礌鏈夋病鏈夊湪榪欎釜鏍戜腑錛岃繖鏍蜂竴鏉ュ氨璁╄繖涓鏁版嵁緇撴瀯闈炲父楂樻晥銆
鎴戜滑閫氳繃浠ヤ笂鍏充簬鍦ㄦ瘮鐗瑰竵鐨凪erkle鏍戜腑鍑犳′嬌鐢ㄥ埌浜哠HA256綆楁硶鍐呭逛粙緇嶅悗,鐩鎬俊澶у朵細瀵瑰湪姣旂壒甯佺殑Merkle鏍戜腑鍑犳′嬌鐢ㄥ埌浜哠HA256綆楁硶鏈変竴瀹氱殑浜嗚В,鏇村笇鏈涘彲浠ュ逛綘鏈夋墍甯鍔┿

⑺ 比特幣演算法原理

比特幣演算法主要有兩種,分別是橢圓曲線數字簽名演算法和SHA256哈希演算法。

橢圓曲線數字簽名演算法主要運用在比特幣公鑰和私鑰的生成過程中,該演算法是構成比特幣系統的基石。SHA-256哈希演算法主要是運用在比特幣的工作量證明機制中。

比特幣產生的原理是經過復雜的運演算法產生的特解,挖礦就是尋找特解的過程。不過比特幣的總數量只有2100萬個,而且隨著比特幣不斷被挖掘,越往後產生比特幣的難度會增加,可能獲得比特幣的成本要比比特幣本身的價格高。

比特幣的區塊由區塊頭及該區塊所包含的交易列表組成,區塊頭的大小為80位元組,由4位元組的版本號、32位元組的上一個區塊的散列值、32位元組的 Merkle Root Hash、4位元組的時間戳(當前時間)、4位元組的當前難度值、4位元組的隨機數組成。擁有80位元組固定長度的區塊頭,就是用於比特幣工作量證明的輸入字元串。不停的變更區塊頭中的隨機數即 nonce 的數值,並對每次變更後的的區塊頭做雙重 SHA256運算,將結果值與當前網路的目標值做對比,如果小於目標值,則解題成功,工作量證明完成。

比特幣的本質其實是一堆復雜演算法所生成的一組方程組的特解(該解具有唯一性)。比特幣是世界上第一種分布式的虛擬貨幣,其沒有特定的發行中心,比特幣的網路由所有用戶構成,因為沒有中心的存在能夠保證了數據的安全性。

閱讀全文

與sha256演算法比特幣相關的資料

熱點內容
eth和btc是干什麼的 瀏覽:6
虛擬幣貨幣開 瀏覽:114
華碩比特幣挖礦 瀏覽:915
b85挖礦bios 瀏覽:585
可以挖礦紅包 瀏覽:604
挖以太坊方法 瀏覽:581
以太坊外國認可么 瀏覽:443
銀河礦機測試 瀏覽:633
礦機線路布局 瀏覽:367
有區塊鏈概念基金嗎 瀏覽:901
優寶幣是否數字貨幣 瀏覽:304
早期迅雷下載挖礦 瀏覽:91
數字貨幣整理中心 瀏覽:258
怎麼挖到一個比特幣 瀏覽:830
比特幣最新話題 瀏覽:885
小以太坊幣6 瀏覽:20
以太坊為什麼要升級 瀏覽:384
6800xt以太坊 瀏覽:508
以太坊分叉費用 瀏覽:930
950顯卡挖礦 瀏覽:981