比特币
区块链不是比特币,比特币是用着区块链技术的网络钱币。 区块链可以用在不同的用途。比特币只是其中一项
1、私有变公开
2、不记录余额,只记纪录。
3、取名比特币
为了隐私安全考虑,我们都不用真实姓名交易。
给每人随机生成一个数,这个数介于0到2的256次方之间。
再用一种固定算法:BASE58算法,把这个数字变成字符串,这个字符串就叫做私钥。
(私钥是你拥有比特币的唯一证明,相当于你们的密码)
有了密码,就要有账户。
在私钥的基础上,再通过算法(椭圆曲线ECPOINT),算出一个公钥。
在公钥的基础上,通过算法算出一个相对较短的字符串,叫做地址。
如果你想收钱,你只要告诉别人,你的地址就可以。如果你想付钱,你需要告诉别人你的公钥和地址。这时,公钥用于校验这个地址是不是你的。
这样就解决了交易安全和公开的问题了。
为了限制通货膨胀,我们使用一个机制来限制他的发行速度和数量。
(1)找一些人来负责整理账本,大家同时进行,谁先完成,我们就奖励他50个比特币。并且只通过这一种方式来发行比特币。也就是比特币的唯一来源。
(2)但想获得奖励,没这么简单,需要他们找到一串特定的数字,我们叫哈希值。
版本号version,
上页哈希prev_hash
交易地址merkle_root
更新时间nTime
当前难度nBits
随机数nNonce
是将以上的数据 + 随机数X 进行sha256函数运算
SHA256 :
SHA : Secure Hash Algorithm 安全哈希算法
SHA256(SHA256(version + prev_hash + merkle_root + nTime + nBits + nNonce)) < TARGET
Sha256函数可以将任意字符串通过加密,得出一个64位的16进制数。
只要参数稍作改动,结果就会面目全非。但只要参数相同,计算多少次结果都是一致的。运算结果不可逆。
大家可以通过改变随机数X值来获取sha256函数结果。 X也可以是0~2的32次方之间的数。
如果结果小于我们给定的目标值TARGET,我们就算他成功。
就是sha256函数得出的64位16进制数字的前若干位数均为0(目前需要前18位均为0才算成功)
我们就奖励他50个比特币,再加上你们转账的手续费。
这里的每一页纸就叫做一个区块。整理账本的过程,我们叫做打包区块(俗称:挖矿)。
每一页连起来的账本就叫做区块链。
为了控制发行数量,我们规定将每十分钟内产生的交易纪录写到一个区块上。然后让矿工们打包。最开始每打包一个区块奖励50比特币。
之后每经历21万个区块(约4年时间)奖励就减半(变成25比特币)。直到2140年左右,奖励不足时,大约一共发放2100万比特币,之后不再发放。
那时矿工的奖励来源将是每笔交易的手续费。
由于奖励的原因,村里很多人加入了整理账本的队伍。
某个矿工算出X之后,迅速将消息向全村广播。这时其他人开始校对他的答案是否正确。如果超过6个人确认,该页账本上的所有交易就生效拉。
这时矿工们便会迅速开始计算下一页纸的X值。

浙公网安备 33010602011771号