昨天分享了共识机制后,
有伙伴在后台说:
......
可不可以多写点基础类的文章,
想着最近在看《图说区块链》,
索性就把读书笔记搬上来分享给大家,
想要电子书的童鞋可以
写之前引一段《图说区块链》的序:
这个时代变化太快!互联网金融刚刚热了几年,金融科技(FinTech)便取而代之。比特币的矿工和炒家们刚刚结伙成帮,区块链(Blockchain)便登堂入室形成“链圈”。一波波新概念让我们眼花缭乱,在不断鼓噪的创新颠覆中,莫名的焦虑感笼罩着所有人。极客们彼此创造深奥晦涩的词汇来建立行业壁垒,把自己弄得云里雾里,失去了与正常人沟通的能力。普通大众则马不停蹄地参加各种论坛沙龙,如饥似渴地汲取新知,唯恐坠入智能时代的底层。
我就是这样一个焦虑症患者,一直关注比特币挖矿、极客的算法逻辑和区块链先知们的布道,不时沉浸在瞬间的快乐和间歇性沮丧之中。面对所有变化——金融的、艺术的、科技的、社会的,我们都会坚定地向往和跟随这些创新,即便大多数会走向失败,过程却是充满着大大小小的快活之处。区块链也会是这样的。
还记得我第一次接触区块链时,
可以说是,啥都不知道,
每天都有无数的问题去问别人,
什么是挖矿、
什么是双花、
什么是区块高度、
什么是哈希算法
......
我感觉我随时会被同事踢出去
幸好...
我跑的比较快
扯完闲,接下来我们讲讲什么是区块
区块作为区块链的基本结构单元,由包含元数据的区块头和包含交易数据的区块主体构成。在区块链中,真正存储有效信息的是区块,而在比特币中,真正有价值的信息就是交易(transaction)。
实际上,交易信息是所有加密货币的价值所在。除此以外,区块还包含了一些技术实现的相关信息,比如版本,当前时间戳和前一个区块的哈希。
不过,我们要实现的是一个简化版的区块链,而不是一个像比特币技术规范所描述那样成熟完备的区块链。所以在我们目前的实现中,区块仅包含了部分关键信息,它的数据结构如下:
我们这里的 Timestamp,PrevBlockHash, Hash,在比特币技术规范中属于区块头(block header),区块头就是一个单独的数据结构。
打个比喻,你的公司现在要一起记账,启用一个账本,这个账本是由无数个小账本组成的,这几个小账本就是区块,区块头就是账本的第一页,记录上一个账本的创建时间,地点,所有交易信息以及本账本的信息概要,外加一把小锁。所以区块与区块之间的“链接”其实就是靠区块头来实现的。
而我们的 Data, 在比特币中对应的是交易,是另一个单独的数据结构。在简化版区块中,还有一个 Hash 字段,它是区块链一个非常重要的部分,正是由于它,才保证了区块链的安全。
具体关于哈希的解释,我们将在下期分享给大家,今天呢....
领取专属 10元无门槛券
私享最新 技术干货