风投网

 找回密码
 立即注册
查看: 950|回复: 0

【虚拟币投资】比特币是怎样生成的?

[复制链接]
发表于 2018-2-3 17:41:05 | 显示全部楼层 |阅读模式
一:block的版本 version二:上一个block的hash值: prev_hash三:需要写入的交易记录的hash树的值: merkle_root四:更新时间: ntime五:当前难度: nbits挖矿的过程就是找到x使得SHA256(SHA256(version + prev_hash + merkle_root + ntime + nbits + x )) < TARGET
上式的x的范围是0~2^32, TARGET可以根据当前难度求出的。除了x之外,你还可以尝试改动merkle_root和ntime。由于hash的特性,找这样一个x只能暴力搜索。
一旦你找到了x,你就可以广播一个新的block,其他客户端会验证你的block是否合法。如果你的block被接受,由于每个block中的第一笔交易必须是将新产生25个比特币发送到某个地址,当然你会把这个地址设为你所拥有的地址来得到这25个比特币。
---------------------------------------------------------------
比特币从开始到现在的每一笔交易记录都保存在网络上,整个比特币网络维护的一个巨大的交易记录文件(现在大约12G)。 这个文件的更新周期平均是10分钟,新加入的交易记录叫做一个block,而这个硕大的文件由一串block组成,叫做block chain.
为什么是25个比特币?这是规定。最初是50个比特币,每产生剩下比特币的一半,这个所得就会减半,这样最终能产生的比特币总量趋近于2100万。如果你现在仍然声称挖到了50个比特币,这是不会被其他客户端接受的,这个block就算白挖了。
怎么保证更新周期平均是10分钟?TARGET越小,解出x的难度就越大,每产生2016个block(约14天),网络会根据这段时间产生新block的平均间隔调整之后的TARGET。
是不是计算速度最快的人总是先解出来?不是。你总是想把挖矿所得据为己有,所以每个人在计算时,发送挖矿所得的地址是不一样的,这样merkle_root就不同,也就是说每个人是从不同的初始状态开始求解的。
同时解出来怎么办?block chain会出现分叉,部分客户端接受了A,部分接受了B,直到某个分支变得更长,所有人就会选择这个更长的分支。如果你挖出来的不幸没有被选中,你的挖矿所得就无效了。
既然选更长的分支,那我用很低的难度去求解怎么办?客户端在众多分支中找到符合当前难度且最长的。
这些计算浪费了吗?如果你要把一笔钱花两次,你需要这么做。挖到一个新的block,但是藏着不广播,并继续挖矿。找到商家A,支付比特币,让网络上的其他人挖到block并写入这笔交易记录。找到商家B,支付比特币,写入自己挖的block。如果你能抢先挖到两个block并广播出去,所有人会以你这个更长的分支为当前的block chain,商家A收到的比特币就不被承认了。这样攻击成功的概率取决于你计算hash的速度。整个网络的计算力足够高的话,这样的攻击或者成功率极低,或者成本极大。


风投网是中国最自由最权威最客观的网贷第三方论坛

风投网论坛提供p2p理财交流、p2p贷款交流、P2P投资返利投资返利P2P理财返利理财返利P2P撸羊毛P2P薅羊毛P2P网贷返利平台风投,网贷返利平台,p2p理财,p2p返利平台,p2p返利,投资返利,理财返利平台,投资返利平台,撸羊毛,薅羊毛,理财返利,公益捐款,理财超市,投资导购,p2p导购,网贷返利网贷投资理财信息。为投资理财用户提供贴心的理财推荐和返利加息服务,让用户学会钱生钱,致力于为大家提供最舒适的网贷投资理财交流,找p2p理财论坛、p2p贷款交流就到风投网网贷论坛
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|风投网|网贷第三方论坛|网贷门户|P2P返利|贷款超市|网贷维权|平台曝光|网贷测评|风投网 ( 沪ICP备16041620号-1 )

GMT+8, 2024-4-18 21:56 , Processed in 0.156629 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表