树图区块链相关说明

背景

最近在寻求提升区块链交易TPS的方案,注意到目前有采用DAG结构来实现出块并发的方案来实现提高交易TPS。这里发现Conflux项目的树图区块链采用的就是DAG结构,在这里把方案的出发点,解决之道进行相关阐述。

相关阐述

为何全序?

所谓交易全序指的是交易在所有节点上的顺序是确定的、一致的。例如A有10个币,转给B 7个币,转给C 5个币,这两个交易如果顺序不确定则得到的结果也是不确定的,这个在比特币上是不允许的。

比特币中几种安全攻击

双花问题

假设A要同时给B和C同样的交易,也就是同一个币花费两次,称为双花问题。共有三种可能实现双花:
第一种可能,让A去验证同时带有两个相同交易的一个block。假设A拥有百分之一的计算能力,那么A有可能幸运的验证出这个block。但是,这个双重花费将会马上被其他节点发现验证并且拒绝,尽管A解决了工作证明的难题,但是区块无法上链确认。

第二种可能性,A试图分别公布两个交易。A可能给一部分挖矿者公布一个交易,给另一部分挖矿者公布另一个交易,A希望让两个交易都得到验证。这种情况下,因为交易是全序的,一个交易完成后,另一个交易会被其他节点验证拒绝,网络最终只会确认其中一个交易。所以这个也不是问题。

第三种可能,A = B,也就是说A试图将一个币给C,同时A又将那个币给A自己,因为A自己可以有多个账户。这种情况下,A的策略是等到C接受了这个比特币,也就是在交易在最长的blockchain中被确认6次之后。A再试图去解决另外一个拥有A发给自己的交易的那个block分支。但是,这个时候A已经比最长的blockchain晚了6步。A很难跟得上最长的分支。其它的正常挖矿节点不会帮助A,因为它们都需要在最长的分支上工作才能得到奖赏。除非A在解决工作证明的时候能够比网络上其它节点结合起来还快(也就是说A有多于整个网络50%的计算能力)。当然,A可能会偶然幸运,在百分之一的算力的情况下能解出一个block,但是同时赶上6个块的话相当于1/100^6 。这种情况概率可以说是几乎为0。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值