导航:首页 > 比特币区 > 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算法比特币相关的资料

热点内容
AE移动端以太坊 浏览:666
虚拟货币欧洲年轻人 浏览:709
区块链200万程序员 浏览:638
电脑24小时开机挖矿 浏览:608
云矿机带充值源码下载 浏览:677
99pool矿池图片 浏览:615
比特币合约的钱谁赔的 浏览:871
提现aug矿机是什么 浏览:262
以太坊2018年9月6 浏览:636
以太坊dapp浏览器 浏览:745
怎样清理熊猫矿机 浏览:858
央行数字货币对纪念币的影响 浏览:1000
已经落实的区块链应用 浏览:133
魔兽挖矿声音 浏览:738
迷你世界去对面挖矿百度 浏览:718
比特币1月15号价格行情 浏览:193
区块链猫有公母吗 浏览:518
区块链价格为什么会上涨 浏览:609
区块链创业公司有多少 浏览:75
为什么挖矿都喜欢用amd显卡 浏览:199