区块链,第一篇。

区块链定义:分布式去中心化的账本,账本就是记录着一笔笔成交的交易记录。而且是不可以逆的(就是成交之后的交易记录不可以做假账)

举个栗子:用户A,根据自己的私钥,登录自己的账号,进行转账操作。

大概原理:发起这步操作的时候,首先会把用户A的地址,转账金额,用户B的地址打包形成一笔交易,放到交易池子。然后再由矿工(矿工当然会收取一些手续费)对交易池里面的每笔交易进行打包。形成块(共享账本的一部分,并且大约10分钟出一个块,并且要通过算力解决一个非常困难的问题这个也叫工作量证明),通过rpc协议进行广播。告诉所有的网络节点,一直到成为整个区块链的一部分时才会被确认有效。区块一个一个连接起来,就形成了区块链。

比特币:

1、比特币的地址:这条曲线的数学公式是: y^2=x^3+2x^2-4x+4 ,先由私钥生成公钥, 再有公钥生成 hash160,最后hash160再进行base58运算得到地址。私钥=>公钥=>钱包地址, 而反向是不可能的。具体推理和计算方式我就不在这里演示了。

2、比特币的工作量证明:

(一)、bitcoin的创始块是固定的以hard code的模式写在源码里面。

(二)、块(block)构成:version(网络节点的版本号)prev_block(创始块没有,计算出来的都有,这个就是链的体现,假如有人改了block的hash,这个块之后的所有hash都要重新计算,这也就是为什么不可逆的体现)mrkl_root(默克尔树)time(时间戳)bits(网络难度)nonce(随机数:就是POW要计算的随机数,要进行2次hash运算)

1、挖矿工作原理:其实就是计算上述的nonce这个随机数。(version prev_block mrkl_root time bits nonce 这些数值都是需要计算才能得到。但是nonce是最难计算的)

2、计算原理:就是把上述的所有字段都以字符串的形式拼接,返回结果result。得到结果之后进行2次hash256运算,达到一个符合bitcoin网络难度的数值.。bitcoin的网络难度通过 bits计算,难度即最后计算的hash的前n位是零。

阅读更多

扫码向博主提问

Block_chain

非学,无以致疑;非问,无以广识
去开通我的Chat快问

没有更多推荐了,返回首页