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

《这就是区块链》之区块链基础5——去中心化的意义

在上一篇中,花了比较大的篇幅来阐述去中心化的概念。其实对于有计算机基础的朋友来讲,去中心化或者P2P网络并不是新颖的观点。但是,我还是希望本系列文章可以从基础展开,让所有的朋友都可以理解区块链的意义所在。

今天我们来谈谈去中心化到底在区块链中有什么样的作用和意义,为什么每个人都说区块链最牛逼的地方就是去中心化(这里我保留意见)。我先直接概括一下区块链中去中心化的意义:去中心化通过各个节点的运行保证了区块链的稳定,从而避免数据丢失、篡改、恶意支付等问题。

我们先想象这样两个应用场景:

1.比特币式:资产转移完全匿名,不需要中央机构控制,每一笔交易都可以追根溯源。(追根溯源是指可以每笔交易的地址,匿名是指通过比特币地址找不到对应的人。)

2.进口奶粉式:每一罐奶粉都被打上生产和运输的标签,无法被伪造和篡改。

其实,目前很多做区块链的企业,或多或少都是受到了这两种应用场景的启发。要实现这两种场景,必须要解决以下几个问题:

1.如何让所有节点同步数据?

2.如何避免恶意节点的行为?

3.如何保证区块链的稳定持续运行?

下面我们一个个来看:

1.如何让所有节点同步数据?

既然要实现去中心化,那么必然会存在有多个并行节点,如何让所有的节点同步数据看起来是一个大问题。

还是以比特币为例,如果松子向小明支付了1个比特币,在区块链内部会做如下这些操作:

松子向区块链中的所有节点发送广播(我向小明支付了1个比特币),其他节点收到广播信息,把数据写入区块。

细想一下,这里会出现的问题,如果节点的网络不好收不到交易数据或者说收到的交易数据顺序不对怎么办?如果这个节点是个恶意节点,他不想写入正确的数据又怎么办?

在去中心化作用下,区块链需要进行数据同步,有一种方法是,每隔十分钟就会向系统中所有的节点搜寻正确的区块,如果有个区块的有超过50%的节点认可,那么他便可以作为下一个区块被写入到区块链中并同步所有节点。这样,所有节点的数据便是一致的,这就解决了数据同步的问题。

注:比特币不是和其他区块做比对,而是通过POW工作量证明选择打包的节点直接生成区块后广播出去。

51%攻击:如果系统中恶意节点的数目已经超过51%,那么其便可以控制区块的产生和延长方向,但是有一点需要明确,即使恶意节点的数据足够多,由于加密系统的限制,恶意节点依然无法伪造交易,恶意节点提出的区块也无法被正常节点所接受。这就会导致区块链分叉的发生。除了51%攻击,数字货币被盗也会导致分叉,比如以太坊(ETH)在2017年被攻击,大部分节点支持回滚数据,而不支持回滚的节点在原区块链继续挖矿,便出现了以太经典(ETC)。

2.如何避免恶意节点的行为?

在上面同步数据的部分,其实我们已经谈到了恶意节点的不配合行为,除了不接受新的交易数据,恶意节点还可能伪造交易数据。

伪造交易数据有两种方式:直接伪造和双重支付,直接伪造就是恶意节点直接伪造一条交易数据并广播出去,但是上面其实已经提到过,由于加密系统签名的作用,恶意节点其实无法伪造别人的交易数据。我们来看看双重支付。

双重支付简单说就是松子已经将自己1个比特币支付给了小明,但是他依然用这个币去支付其他的东西。我们不从道德层面去评价松子的为人,因为实际的确会有很多人有这样的想法。回到这个问题,松子已经将比特币支付给了小明,那么区块中的所有节点都收到了这条消息,并且由于有签名限制,节点知道松子的这个比特币来源并且知道松子只有一个比特币,在实际处理的时候,他们会把先收到的消息写入区块中而忽略后一个消息,如果有节点网络不好等原因,由于数据会同步,此节点依然会得到正确的区块。

3.如何保证区块链的稳定持续运行?

前面谈到了去中心化环境下区块链的同步数据和防止恶意节点捣乱,那么如何去保证节点对数据的打包(形成区块)效率呢,或者说如何保证所有节点听从指挥呢?

在说打包问题之前,我们需要引入区块链的分类:

私有链:由公司和个人等中心机构运行的区块链,一般用于公司内部使用。

联盟链:由联盟内部指定多个节点共同维护的区块链,一般用于同性质企业的数据共享。

公有链:没有中心机构干预的公开区块链,参与节点不受限制,一般用于加密货币,以后会有更大的延伸。

如何保证区块链的稳定运行,在私有链和联盟链中都不需要过多考虑,因为这两种区块链都可以内部驱动,由中心的机构进行维护。所以我们主要说公有链的运行,公有链一般使用奖励机制,也就是说,参与打包的节点会在打包成功之后得到一定的奖励,但是我们知道,打包对于节点来说其实是个很快并且没有难度的事情,那么如何选取哪个节点来打包呢,打包的时间,区块的大小又如何控制呢,这些就需要POW,POS等共识算法了。

今天,我们对区块链做一个简单的回顾,回到我们开篇提到的问题--什么是区块链?(具有匿名性、去中心化、共识保证的分布式数据存储系统),截止目前,我们已经在技术层面解释了匿名性和去中心化这两个很关键的点,我相信您对区块链的了解也更加深入了。但是,我需要强调的是,加密和去中心化不是区块链的首创,区块链只是应用罢了。我们在接下来的文章中会陆续谈到区块链的核心价值以及争论焦点,比如共识机制和运行机制等。

《这就是区块链》学习群

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券