CCP:比特币区块安全冲突检测协议


一、概述

比特币系统设计的基本理念是:容易验证但是难以创造。但由于系统的分布特性以及共识机制,会产生:双花问题,51%算力攻击等问题。提出了一种新颖的机制,叫做Conflicts Check Protocol(CCP),冲突检测协议来最小化攻击的几率,冲突检查协议(CCP)旨在防止对比特币系统的潜在攻击。

基于观察和发现许多攻击可能产生的常见症状(即有多个交易共享相同的输入),CCP通过提出一种新颖的仲裁机制来改进当前的比特币系统,该机制能够确定批准或放弃涉及冲突的某些交易。 这项工作从一个新的角度来审视比特币的安全问题,这可能会扩展到更大范围的攻击分析和预防。

二、多种攻击产生的冲突特征

像双花问题一样,冲突产生与节点想要交易包含相同的比特币(地址)到不同的接收方。在P2P网络中,节点通过洪泛算法接受并支持它收到的第一个包含特定地址的交易,而简单的抛弃掉随后到来的相同地址的交易,由于P2P网络存在延时等问题,这样做是非常不合理的。它并没有一种机制使它报告和处理第二次收到相同输入的交易。


CCP:比特币区块安全冲突检测协议_第1张图片
图一,冲突示例(交易1与交易2拥有共同输入)

区块链可以解决一些包含这种特征(冲突)的攻击,但也时常无能为力,例如:分叉攻击不能完全解决。CCP可以检测到这些冲突特征并来解决这些攻击。

三、CCP-冲突检测协议

CCP建立在比特币系统之上,它在以下几个方面对系统进行了修改:

1.节点和交易之间的相互作用

在比特币系统中,节点对一个交易要么支持要么拒绝; CCP中有两种支持状态,即暂时批准和最终批准。 一个节点可以暂时批准一个。事后,如果检测到冲突,节点会将观察到的冲突报告给仲裁员,仲裁机制将与连接的节点进行通信,并帮助节点决定是继续暂时批准交易还是暂时拒绝交易。

2.时间划分

在CCP中,概念上时域被等分为多个区间,并且每个时间间隔中都有一个动作点,所有节点只  能在这些点上采取行动,因此在每个动作点,整个网络的节点进行更新( 例如暂时批准交易,  提出仲裁或在最后的行动点从其他连接节点接收仲裁结果并更改自己的仲裁)。 例如,当一个节点检测到某个输入的事务冲突时,它会触发仲裁机制,当仲裁结果返回时,它可能暂时批准输入中的后续事务,或暂时批准或者决定放弃所有投入的交易。 重要的是,在任何时候,节点都不可能为特定输入暂时批准多个事务。

3.仲裁员和相应的仲裁机制被部署来解决冲突

如图2所示,节点1意识到它收到的交易1和交易2都包含相同的输入1并因此引发了冲突。

CCP:比特币区块安全冲突检测协议_第2张图片
图2,仲裁机制示例

所有具有输入1的交易(即交易1和交易2)被仲裁者视为交易冲突。仲裁员使用几轮投票来确定是否有交易可以在此输入中被批准,或者所有交易都需要放弃。每一轮仲裁只有两种可能的结果:或者一个交易变成了统治中的交易(参见图2中的例子,即交易1被判断为赢得其他交易),然后该节点暂时批准该交易,或者没有统治者并因此放弃冲突中的所有交易。当启动交易1的仲裁机制时,节点1暂时批准它首先接收到的包含交易1的事务。在上述每个动作点,仲裁器都与所涉及的连接节点进行通信(如图2所示,节点2和节点3),并确定仲裁结果。在几轮之后,在每个交易处,每个节点具有足够大的可能性以与每个其 他节点具有相同的仲裁(统治或放弃),然后暂定批准(暂时放弃)成为最终批准(最终放弃),不能再改变。只有当节点最终批准在该事务中包含的每个交易处的事务时,节点才最终批准该事务;该节点将最终拒绝任何其他最终仲裁结果中的交易。

4.仲裁投票过程中只考虑固定数量的连接节点(比如H)

虽然经典比特币系统中的节点可以连接8-128个节点,但我们的实验表明,H的选择不适用对我们的结论有重大影响。 一旦H由系统确定,它将被用于所有的仲裁过程。

你可能感兴趣的:(CCP:比特币区块安全冲突检测协议)