雅乐网

计算机技术、学习成长

计算机 » 认识区块链(3)—— 比特币中的区块链

认识区块链(3)—— 比特币中的区块链

2008年,一个名叫中本聪的人在一个论坛上发表了一篇论文《比特币:一种点对点的加密电子货币》,这是第一个解决了点对点网络中双重支付问题的电子货币,也标志着区块链技术的诞生。

比特币是区块链技术1.0(电子货币)的典型代表。区块链就是一个个区块连接起来,组成一条链。每个区块里保存了一些交易信息,整个链上的所有区块里就包含了比特币诞生以来的所有交易。

每一个区块分为两部分:区块头(header)和区块体(body). 区块头存放该区块的基本信息,区块体存放交易信息。

区块头

你可能听说过,区块链的一大特点是防止篡改。这是通过哈希指针实现的。每个区块头有一个变量,它保存了上一个区块的Hash,这里用的哈希算法是SHA-256.

在第一讲中我们讲了哈希函数的特点。一个区块只要有1个二进制发生变化,它的hash就会完全不同。这样,对一个区块的篡改会导致后面区块记录的哈希值不合法,也就不会被承认。

区块头里一共有6个变量:Version记录当前软件版本,Previous block header hash记录上一个区块的哈希值,Merkle root hash记录的是区块体的哈希值,Time是时间,nBits是挖矿难度,nonce是一个随机数,用来挖矿。

有了上一个区块哈希值和本区块体哈希值,可以保证整条链的内容不被篡改。

区块体保存了该区块包含的交易信息,包含一条特殊的CoinBase交易和其他普通交易。CoinBase也是挖矿奖励,它产生一些货币给打包这个区块的人。

这些交易被组织成一颗Merkle tree:

下图来自网易云课堂上肖臻老师的《区块链技术与应用》肖臻肖臻

Merkle tree像一颗二叉树,只不过所有交易构成了树的叶子结点,然后两两计算Hash, 再往上两个Hash计算一个hash,这样一直到根节点就得到了merkle root hash,记录在区块头中。

Merkle的特点是可以log(n)的时间内验证一个交易,而且验证时不需要使用所有交易,只需要验证从交易叶子结点到根节点这个路径上的hash就可以。

比特币中的交易长什么样子呢?比特币中的一条交易分为输入脚本和输出脚本,输入脚本包含你这次交易花的比特币是来自哪儿,输出脚本在新的地址上产生比特币。

下图来自网易云课堂上肖臻老师的《区块链技术与应用》

比特币中的结点收到交易信息后,把输入脚本和输出脚本组合起来执行,执行成功就说明这个交易有效。

好了,今天的分享就到这里啦。下次,小乐会跟大家讲一下比特币中的挖矿。

如果文章对你有帮助,欢迎点赞或打赏(金额不限)。你的打赏将全部用于支付网站服务器费用和提高网站文章质量,谢谢支持。

版权声明:

本文由 原创,商业转载请联系作者获得授权。
非商业转载请注明作者 雅乐网 ,并附带本文链接:
http://www.yalewoo.com/blockchain_3_block-html.html

上一篇:

下一篇:

我要评论

验证码*: 2 + 1 =