首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

通过模拟实操来真正了解区块链

之前跟大家科普的区块链基本都是入门级的介绍,能够理解透彻区块链的概念并不容易,要真正弄清楚这些概念,仅仅这本文字科普是不够的,因此,我打算通过实操的方式,将我弄清楚的概念用图文的形式表现出来,供大家参考学习。

区块链模拟

我找到的这个模拟软件网址:

https://anders.com/blockchain/hash.html

作者YouTube讲解视频:https://youtu.be/_160oMzblY8

1. 什么是hash,hash有什么用?

WIKI的定义:A hashfunction is any function that can be used to map data of arbitrarysize to data of fixed size. The values returned by a hash function are called hashvalues, hash codes, digests, or simply hashes.

(hash方程就是能够将任意大小的数据转换为固定大小的数据,这个由hash方程转换过来的值就叫哈希值,哈系数等,即hash)

(hash方程转换示意图)

在网站提供的demo里,点开第一个hash,就可以体验到任意数据转换为hash的过程,添加任意字符hash就会改变。

2.区块演示

打开网站第二个标签block,进入区块演示

bolck:#,即区块序号,区块链由一个个区块链接而成,区块序号就能够决定他们的顺序,#1即可以理解为创始区块。

下面的nonce,data,和hash需要结合起来说,nonce和data结合起来能够影响hash数值,如果创建的区块加入区块链,必须满足特定的hash数据格式,在本次例子,hash数值必须满足前四位全部是0。

(特定hash数据格式)

我们能够决定data数据里到底写什么内容,然后计算出一个匹配的nonce,来满足hash数值的格式要求,这也就是挖矿要做的事情:计算匹配的nonce,使得他与data数据匹配之后产生前四位都是0的hash数值,满足此区块加入区块链的要求。

点击mine(挖矿),计算一个新nonce,使与data数据匹配,产生hash数值合法。

3. 区块链接为区块链

可以看到不同区块的的按序号顺序相连,各个区块合法,并且后一个区块的prev是前一个区块的hash,才能够成功链接为区块链。

改动中间任何一个区块data值,都会导致这条链上所有的区块非法,如果要使其合法,必须重新计算各个nonce,这在一个很长的区块链中是一个几乎不可能完成的任务。

4.分布式

将账本分发到其他节点,这样所有的节点都会逐步接收到最新的区块链账本。根据前几部的原理,对于分发的区块链,只要最后一个区块的hash值是相同的,就能够保证这两个区块链一定相同,这也是简单的对账原理。

5.代币系统

在前四步的基础上,在每个区块的内容中加入记账,比如红圈中的Darcy给Bingle转账25代币。

6.货币基础

第5步有一个非常大的问题,这个账本只记录了比如Darcy给Bingle转账25代币,但是Darcy到底有没有25代币,是不知道的,这样就需要一个货币基础做支撑。

这样整个区块链系统的简单的区块链模拟演示就介绍结束了,通过看他的视频,把玩过他做的演示模型之后,基本能够将基本原理搞明白。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180204G0VWEY00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券