比特币

区块链不是比特币,比特币是用着区块链技术的网络钱币。 区块链可以用在不同的用途。比特币只是其中一项

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值。

posted @ 2018-03-19 10:54  晕菜一员  阅读(198)  评论(0)    收藏  举报