认识区块链
我们一般意识形态中的链是铁链,由铁铸成,一环扣一环。区块链也可以这么理解,只不过它不是由铁铸成,而是由拥有一定数据结构的块连接而成,呈链状接结构,这种结构就是链表。
区块抽象到计算机语言中就是一个对象、一个结构体、一个类,同样类中也可以定义属性、变量和方法,但区块里包括的内容可以自己来定义。比如,以太坊公链的区块结构,它有变量,我们就可以自己进行定义。以下是我们设置一个区块包括变量的例子。
type Block struct { Number string // 区块号 PreHash string // 前一个区块的哈希值 Hash string // 自身的哈希值 Value string // 携带的数据 Create int64 // 创建的时间戳}
上述的 type Block struct 表示定义一个区块,其中定义了变量Number、PreHash、Hash、Value、Create。
当链表中的每个数据个体是上述区块的时候就构成了一条区块链。区块是区块链每一环的实体。这是一种最简单的区块链。如图1-1所示,其中箭头的方向代表的是子块关联父块,也可以将箭头反过来,表示父块连接子块。
由于链中的区块包含数据,例如上面的Value变量,因此我们能够在这个区块被打包到链中的时候向Value填充值,此后我们通过访问这个区块内部的数据可对它打包的数据进行读取,然后输出,展示给用户。
在上面的例子中,我们用来存储打包到区块中的数据变量只有一个Value,那么请想象一下,如果把Value换成一个数组或者更多变量,这个区块就会变得更复杂,它的功能也会跟着变得更多。
此外,链中的区块被规定是唯一的,即相同区块号的区块不能以同一个身份(以太坊中允许有区块号一样的不同含义块)在同一条链中出现两次,如果出现了,那么链会将其纠正过来。
下面是网上对区块链的定义解释:
”区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。“
这个概念其实是一个广义的解释,笔者更趋向于把这个解释理解为区块链节点程序,而不是区块链,因为一个区块链的节点服务就包含了这个概念中的各个模块,实际上还有很多其他的模块。
一般来说,区块链公链包含但不限于下面的技术模块:
数据加密签名技术模块。共识机制技术模块。分布式数据存储技术模块。点对点通信传输技术模块。智能合约技术模块。应用程序接口技术模块。当我们把这些模块技术实现的代码整合到一个程序中时,它便是一个区块链应用,例如某一条公链。
那么是不是区块链应用一定要全部实现这些技术模块呢?不是的,你可以开发自己的区块链公链,哪怕是超级简单的雏形,只要是链状的区块存储应用,就可以称为区块链。请记住,任何一个复杂的区块链应用,例如知名的公链,都是在简单的模型上进行技术的添砖加瓦打造出来的。此外,区块链的各个技术模块所包含的知识点也是非常丰富的,可以说每一个知识点都属于一个领域。
2 链的分类区块链的链分类通常有3类,即公有链、私有链和联盟链。这3类链的主要区别是:
公有链的维护节点比较多,节点网络对所有人开放,任何人都可以进行特定的数据访问。私有链是面向个人或某个组织的。联盟链是多个组织团体的节点联合在一起维护的,对组织开放。目前被广泛接受、认可、有价值的”代币“(Token)几乎都是基于公有链的。
不同种类的公有链之间要实现相互通信,比如比特币公链和以太坊公链进行BTC兑换ETH的交易,需要借助技术手段来实现,例如跨链通信技术。
3 区块链能做什么从区块链普通的去中心化的特点来看,在节点网络中,如果某条公链的合法节点数目达到一定的数量级,那么我们可以认为当前公链的去中心化程序接近100%,这意味着链上的数据不会再被篡改了,于是我们所传递到链上被保存在区块中的数据会一直存在下去,真实而永久。
基于这个特点,我们可以将区块链应用到数据的溯源存储方面。除此之外,还可以根据区块链具体提供的功能进行各种应用。例如,以太坊公链,它是区块链,而且提供了智能合约这类具备图灵完备的功能模块,我们可以基于它来开发智能合约去中心化应用DApp,其中最为普遍的便是ERC20智能合约所对应的”代币“。
- 免责声明
- 世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
- 风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
- 世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。