从零开始学基于以太坊的区块链应用开发系列08

在上一课的内容中,我们简单了解了关于区块链的一些核心概念,包括SHA256,block(区块)和blockchain(区块链)。

在这一课的内容中,我们要继续了解关于区块链网络的知识。

五.分布式区块链

首先打开Chrome浏览器,输入以下网址:https://anders.com/blockchain/blockchain.html

在这里可以看到Distributed Blockchain(分布式区块链)的页面,里面列出了Peer A,Peer B和Peer C三个区块链,其内容是完全相同的。

当然,这同样是个简化的演示版,因为在实际的区块链网络中,Peer的数量是很多的。

好了,虽然麻烦点,但Peer A中的区块链在更改了某个区块的内容之后,经过Mine运算,还是重新得到了验证。

不过这时候注意看Peer B和Peer C中Block3,4,5的Hash值,会发现跟Peer A里面的hash值已经完全不同了。

通过这种方式,我们可以很容易发现区块链网络中的数据是否被篡改。

实际上,我们只需要检查最后一个block区块的Hash值跟其它用户同一区块处的Hash值是否相同即可。

六.Tokens(代币)

在区块链实际的应用中,我们不会在Data区填充无穷无尽的信息,因为这样显得太随意。

更多时候我们传递的是交易相关的信息,这个时候就需要用到Tokens(代币)了。

想要了解Tokens的作用,还是用实际的示例来说明。

在Chrome浏览器中打开以下网址:

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

此时你会看到类似下面的界面:

跟刚才Distributed blockchains页面相比,Tokens页面中的Data区被替代成了Tx(交易信息,transaction)。

同样的,如果我们更改任何一个节点上的任何一个区块的内容,都会导致验证失效。而即便使用Mine的方式来重新进行验证,也会导致Hash值跟其它节点上的同一区块内容不一致。

通过这种方式,就会保证交易记录的不可篡改性。

为什么很多人都把区块链技术简称为去中心化的账本系统,相信看到这里你已经大概明白它的意思了。

相比中心化的账本系统(银行系统),去中心化的账本系统可以极大提升交易信息的安全性。同时因为所有的交易信息在区块链上的所有节点上都有备份,就不会出现中心节点崩溃导致整个系统崩溃的情况。

当然,到这里我们也足以认识到区块链技术不仅仅可以用在金融系统领域,对几乎所有重视数据安全和可追溯性的领域都可以有极大的应用空间。

好了,回到刚才的Tokens原理。

需要注意的是,我们在区块中记录的仅仅是交易信息,比如Darcy向Bingle支付了25美元(或者比特币)。那么问题来了,Darcy究竟有没有25美元(或者BTC)呢?

所以我们所设计的区块链要进一步升级。

七.Coinbase(基于交易所的交易)

在Chrome浏览器中输入以下网址:https://anders.com/blockchain/coinbase.html

会看到类似下面的界面:

可以看到,在之前区块链设计的基础之上,我们添加了一个Coinbase信息。

在第一个区块(创始区块)中,我们向Anders提供了100美元。

这样后面的所有交易就有了存在的基础了~

比如在Peer A的Block5中,我们看到Jackson向Alexa支付了2美元。那么Jackson现在是否有2美元呢?我们只需要向之前的区块进行追溯,就会发现Jackson的一系列相关交易,从而判断得出结论,Jackson现在的确有至少2美元,可以完成这项交易。

好了,到这里为止,我们已经设计完成了一个具备基本交易功能的区块链网络。

当然,这个区块链网络只是一个通用型的基础区块链结构。

在下一课的内容中,我们将跟大家分享基于Ethereum的区块链组成。

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

扫码关注云+社区

领取腾讯云代金券