弑君者

V1

2022/09/30阅读:24主题:默认主题

区块链的共识机制

现实中的共识机制

假设随着村子和人口的发展,大村子演变成了十一个小村子并分散在各地,各地的通信只能靠信鸽进行。 大家约定了每年都会举办一个相亲大会,至于谁能举办,每年轮流从两个备选村子,A 村和 B 村中选择一个,然后大家投票,票数多者可以赢得举办权。 由于地图很大,任何一个村子的投票都无法靠一只信鸽传输到每个村子,必须靠一个中继村 子代为传输,这也就意味着有中继村子可以读到其他村子的投票信息。 那么,如何防止下面两个问题的出现呢?

  1. 投票者的“精分”,这里所谓的“精分”是指某个村子的投票行为不一致,发送给第一个村子的投票消息为“投票给 A”,而发送给第二个村子的投票消息却为“投票给 B”。

这个机制应该可以通过比特币的转账交易机制来保证,比如你发送一个第一个村子之后为投票给A,那么如果第二个村子收到你的消息以后,会检查你前面发出的信息是否和目前的信息有冲突,如果有冲突则可以废弃。

有点类似比特币转账的时候,如果A想转账给B 10个比特币,必须说明10个比特币的来源,证明AA有10个比特币,这个也很好理解,也就是必须证明A有10个比特币,才能转给B,A不能凭空把自己没有的比特币转给B

  1. 中继村子作弊,即篡改上一村的投票消息。

如果中继村子想作弊,想纂改上一村子的信息,这种情况同样在比特币中会出现,比如纂改当前区块中的交易信息。

信息肯定不是发送给一个中继村,是同时广播给几个中继村,这样就防止了某个中继村修改信息,比如确定某条信息是否正确,必须51%的中继村投票为正确才是正确的,而不是某个中继村说某条信息不正确就是不正确。

比特币中的共识机制

比特币共识机制之一就是哪个节点具有记账权

比特币中的记账权分配主要是看算力,根据每个节点的算力,如果节点的算力比较强,获取记账的概率就会变大。

获取记账权的过程,就是俗称的挖矿。

挖矿的过程就是类似计算数学题,当然这个计算过程是很困难的,但是只要一旦得到结果,其他人验证就很简单。

比特币通过类似的机制,确定哪些节点具有记账权,通过这个达成共识。

当然没有好处的事情,是没有人干的,所以比特币设置了奖励机制,当某个节点获得记账权以后,就会被奖励一些比特币,比如刚开始的时候,奖励50个比特币。

那么问题就来了,因为我们都知道,比特币的数量是开始的时候,就被设定好了,是2100万个,那么当这些币全部被奖励完以后,还有没有节点来进行打包呢?

比特币这里同时设置了一个奖励机制,就是转账的手续费,后面随着手续费的增加,可以把手续费作为奖励,奖励给打包的节点。

比特币如何解决双花攻击

什么是双花攻击?

因为比特币是啥呢? 不知道我们有没有想过这个问题?

比特币其实就是和我们的游戏积分差不多,其实就是一段代码,既然是一段代码,那么就可以复制粘贴。

比如我有10个比特币,我用10个比特币买了一栋房子,然后我再复制10个比特币,那么是不是又可以再买一套房子?

这个显然是不现实的,所以比特币设计了一种机制。

当A向B转账的时候,必须说明币的来源地址,也就是币是怎么来的,假设A有10个比特币,当A向B转完10个比特币后,如果再想转给C10个比特币,同时也要说明这些B的来源,这个时候,如果第一笔交易确认完了,就会发现A的10个比特币已经被使用了,所以就不合法,如果第一笔交易没有确认,那么就会也发布A转向C 10个比特币,然后就看那笔交易被先确认,先确认的就会被认为是合法的,后面的会被认为是非法的,不会被记录到区块中。

分类:

后端

标签:

区块链

作者介绍

弑君者
V1