减轻链攻击

阅读:921发布:2020-08-29

专利汇可以提供减轻链攻击专利检索,专利查询,专利分析的服务。并且减轻 区 块 链 攻击。一种用于检测相对于区块链数据结构发生的恶意事件的计算机实现的方法,该方法包括:定义交易创建简档,可根据该简档生成交易并提交至区块链;将交易提交给区块链,该交易导致在区块链中生成简档生成器数据结构,该简档生成器数据结构包括用于根据交易创建简档生成要提交给区块链的简档交易的可执行代码;监视区块链以识别简档交易;以及将识别的简档交易与交易创建简档进行比较,以检测与交易创建简档的偏差,这样的检测对应于相对于区块链发生的恶意事件。,下面是减轻链攻击专利的具体信息内容。

1.一种检测针对链数据结构发生的恶意事件的计算机实现的方法,该方法包括以下步骤:
定义交易创建简档,能够根据所述交易创建简档生成交易并提交至所述区块链;
将交易提交给所述区块链,该交易导致在所述区块链中生成简档生成器数据结构,所述简档生成器数据结构包括用于根据所述交易创建简档生成要提交给所述区块链的简档交易的可执行代码;
监视所述区块链以识别简档交易;以及
将所识别的简档交易与所述交易创建简档进行比较,以检测与所述交易创建简档的偏差,所述检测对应于针对所述区块链发生的恶意事件。
2.根据权利要求1所述的方法,其中,所述简档交易包括所述简档生成器数据结构的地址,并且其中,监视所述区块链包括监视包括所述简档生成器数据结构的地址的交易。
3.根据前述权利要求中任一项所述的方法,该方法还包括:重复地生成指向所述简档生成器数据结构并提交至所述区块链的交易,以便触发所述简档生成器数据结构的所述可执行代码的执行。
4.根据前述权利要求中任一项所述的方法,其中,提交至所述区块链的交易被挖矿软件组件处理,以验证所述交易并将所述交易提交至区块以添加至所述区块链。
5.根据前述权利要求中任一项所述的方法,该方法还包括:响应于检测到与所述交易创建简档的偏差,生成通知信号以发送至操作所述区块链的一个或更多个实体以标记所述恶意事件。
6.根据前述权利要求中任一项所述的方法,该方法还包括:响应于检测到与所述交易创建简档的偏差,停止操作所述区块链。
7.一种检测针对区块链数据结构发生的恶意事件的计算机系统,该计算机系统包括处理器和数据存储器,其中,所述处理器适于执行以下步骤:
定义交易创建简档,能够根据所述交易创建简档生成交易并提交至所述区块链;
将交易提交至所述区块链,该交易导致在所述区块链中生成简档生成器数据结构,所述简档生成器数据结构包括用于根据所述交易创建简档生成要提交至所述区块链的简档交易的可执行代码;
监视所述区块链以识别简档交易;以及
将所识别的简档交易与所述交易创建简档进行比较以检测与所述交易创建简档的偏差,所述检测对应于针对所述区块链发生的恶意事件。
8.权利要求7所述的计算机系统,其中,所述简档交易包括所述简档生成器数据结构的地址,并且其中,监视所述区块链包括监视包括所述简档生成器数据结构的地址的交易。
9.权利要求7或8所述的计算机系统,其中,所述处理器还适于执行以下步骤:重复地生成指向所述简档生成器数据结构并提交至所述区块链的交易,以触发所述简档生成器数据结构的所述可执行代码的执行。
10.权利要求7至9中任一项所述的计算机系统,其中,提交至所述区块链的交易由挖矿机软件组件处理,以验证所述交易并将所述交易提交至区块以添加至所述区块链。
11.权利要求7至10中任一项所述的计算机系统,其中,所述处理器还适于执行如下步骤:响应于检测到与所述交易创建简档的偏差,生成通知信号以发送至操作所述区块链的一个或更多个实体以标记所述恶意事件。
12.权利要求7至11中任一项所述的计算机系统,其中,所述处理器还适于执行如下步骤:响应于检测到与所述交易创建简档的偏差,停止操作所述区块链。
13.一种包括计算机程序代码的计算机程序单元,当载入计算机系统并在所述计算机系统上执行时,所述计算机程序代码使得计算机执行如权利要求1至6中任一项所述的方法的步骤。

说明书全文

减轻链攻击

技术领域

[0001] 本发明涉及区块链(blockchain)数据结构安全。具体地,本发明涉及检测并减轻区块链攻击。

背景技术

[0002] 区块链数据库或数据结构是可能为分布式的并且通信地连接至网络的序贯交易处理数据库(sequential transactional database)。序贯交易数据库在加密货币领域是公知的并且被记录在例如“Mastering  Bitcoin.Unlocking  Digital Crypto-Currencies)”(Andreas M.Antonopoulos,O’Reilly Media,2014年4月)中。为了方便起见,在本文中将这样的数据库称为区块链,尽管拥有序贯交易数据库的特性的其它合适的数据库、数据结构或机制可以被相似地对待。区块链提供由称为挖矿机(miner)网络的结点网络访问的区块数据结构的分布式链。该区块链中的每个区块都包括一个或更多个交易数据结构。在诸如比特币区块链的某些区块链中,区块链包括针对区块中包括的交易的Merkle哈希树或摘要值以达到该区块的哈希值,它自身与在前一区块的哈希值合并以生成区块的链(区块链)。新的交易块通过挖矿机软件硬件固件或挖矿机网络中的组合组件添加至区块链。挖矿机通信地连接至交易源并访问或复制区块链。挖矿机承担交易的实质内容(诸如其中包括的标准和/或可执行代码)的验证并且当满足挑战时将新的交易块添加至区块链,通常这种挑战涉及未来的新块和区块链中的在前块的合并哈希或摘要以及某些挑战标准。因此,挖矿机网络中的挖矿机可能每个都生成用于添加至区块链的未来新块。当挖矿机满足或解决了挑战并且验证了未来新块中的交易时,这样的新块被添加至区块链。因此该区块链提供了可靠地验证诸如构成或代表消耗资源的可能性的实体的分布式机制。

发明内容

[0003] 虽然区块链的详细操作以及挖矿机网络中的挖矿机的功能超出了本说明书的范围,但是区块链和挖矿机网络操作的方式旨在确保以在区块链内不变的方式仅将有效的交易添加至区块链的区块内。错误或恶意添加的交易不应被网络中的其它挖矿机验证并且不应当存留在区块链中。区块链的这一属性被区块链的应用和诸如加密货币系统的挖矿机网络利用,其中,货币量可在不可抵赖的情况下以可靠、可审计、可验证的方式花费。例如,采用区块链以提供加密货币的值仅被花费一次并且两次花费(即花费相同的加密货币两次)不会发生的确定性。
[0004] 尽管存在区块链系统的上述架构,恶意攻击展示了对于区块链安全性和可靠性的威胁。一个这样的恶意攻击涉及单个实体(或者在共同控制下的多个实体)取得或似乎取得足够计算资源以构成多于与区块链一起工作的所有挖矿资源的半数。此攻击的机制被如下记录在en.bitcoin.it/wiki/Majority_attack中(知识共享署名许可协议3.0):
[0005] “主攻击(通常标记为51%攻击或>50%攻击)”是一种网络上的攻击。此攻击即使在商人等待某些确认时也有机会工作,但是需要极高的相对哈希率。攻击者向商人/网络提交支付该商人的交易,同时私密地挖掘其中包括两次花费的交易的区块链分叉。在等待n个确认后,该商人发送产品。如果攻击者这时恰好发现n个以上区块,他释放他的分叉并取回他的货币;否则,他能怀着能够赶上网络的希望图继续延长他的分叉。如果他一直没能这样做,该攻击失败并且对该商人的支付将通过。完成挖矿的工作也将浪费掉,因为任何新的比特币会被最长的链覆写。成功的概览是攻击者的哈希率(作为总网络哈希率的一部分)与商人等待的确认数量的函数。例如,如果攻击者控制着网络哈希率的10%而商人等待6个确认,则成功的可能性近似为0.1%。如果攻击者控制着网络哈希率的一半以上,则这具有100%的可能性成功。由于攻击者能够快于网络的其它部分生成区块,因此他能够简单地坚持他的私有分叉直到它变得长于由可靠网络建立的分支,无论存在多少缺点。即使再多的确认也不能阻止这一攻击。”
[0006] 其它攻击也对区块链及其用户造成威胁,其它攻击包括:女巫攻击,其中,一实体试图使用客户集中控制的或匿名的挖矿机来填充挖矿机网络;以及多种服务拒绝攻击,诸如发送过多数据至挖矿机以淹没该挖矿机,使得它不能处理正常的区块链交易
[0007] 因此,提供一种检测和减轻对于区块链环境的威胁的机制将是有利的。
[0008] 因此,在第一方面,本发明提供一种用于检测相对于区块链数据结构发生的恶意事件的计算机实现的方法,该方法包括:定义交易创建简档,可以根据所述交易创建简档生成交易并提交至所述区块链;将交易提交给所述区块链,所述交易导致在区块链中生成简档生成器数据结构,所述简档生成器数据结构包括可执行代码以根据所述交易创建简档生成要提交给所述区块链的简档交易;监视所述区块链以识别简档交易;以及将识别的简档交易与所述交易创建简档进行比较以检测与所述交易创建简档的偏差,该检测对应于相对于所述区块链发生的恶意事件。
[0009] 优选地,所述简档交易包括简档生成器数据结构的地址,并且其中,监视所述区块链包括监视包括所述简档生成器数据结构的地址的交易。
[0010] 优选地,该方法还包括重复地生成指向所述简档生成器数据结构并提交至所述区块链的交易,以触发所述简档生成器数据结构的可执行代码的执行。
[0011] 优选地,提交至所述区块链的交易由挖矿机软件组件处理以验证所述交易并提交所述交易至区块以添加至所述区块链。
[0012] 优选地,该方法还包括,响应于检测到与所述交易创建简档的偏差,生成一个通知信号以发送至操作所述区块链的一个或更多个实体以标记该恶意事件。
[0013] 优选地,该方法还包括,响应于检测到与所述交易创建简档的偏差,停止操作所述区块链。
[0014] 因此,在第二方面,本发明提供一种用于检测相对于区块链数据结构发生的恶意事件的计算机系统,该计算机系统包括处理器和数据存储器,其中,所述处理器适于执行以下步骤:定义交易创建简档,能够根据所述交易创建简档生成交易并提交至所述区块链;将交易提交至所述区块链,所述交易导致在所述区块链中生成简档生成器数据结构,所述简档生成器数据结构包括可执行代码以根据所述交易创建简档生成要提交至所述区块链的简档交易;监视所述区块链以识别简档交易;以及将识别出的简档交易与所述交易创建简档进行比较以检测与所述交易创建简档的偏差,该检测对应于相对于所述区块链发生的恶意事件。
[0015] 因此,在第三方面,本发明提供一种包括计算机程序代码的计算机程序元件,当所述计算机程序代码被载入计算机系统并在其上执行时,使得计算机执行如上文所述的方法的步骤。附图说明
[0016] 现在将参考附图仅通过示例的方式描述本发明的优选实施方式,在附图中:
[0017] 图1是适于本发明的实施方式的操作的计算机系统的框图
[0018] 图2是根据本发明的实施方式的用于检测区块链攻击的示例计算机系统布置的组件图;
[0019] 图3是根据本发明的实施方式的例示在检测与区块链有关的恶意事件中图2的组件之间的相互作用的示例流程图;并且
[0020] 图4是根据本发明的实施方式的检测与区块链有关地发生的恶意事件的方法的示例流程图。

具体实施方式

[0021] 图1是适于本发明的实施方式中的组件的操作的计算机系统的框图。中央处理单元(CPU)102通过数据总线108通信地连接至存储器104和输入/输出(I/O)接口106。存储器104可为任意的读/写存储设备,诸如随机存取存储器(RAM)或非易失性存储设备。非易失性存储设备的示例包括磁盘或磁带存储设备。I/O接口106是用于针对设备的数据的输入或输出或者数据的输入和输出两者的接口。可连接至I/O接口106的I/O设备的示例包括键盘鼠标、显示器(诸如监视器)和网络连接。
[0022] 图2是根据本发明的实施方式的用于检测区块链攻击的示例计算机系统布置的组件图。网络200被提供为有线或无线物理或虚拟通信介质以可通信地连接计算组件,诸如计算机系统、数据存储系统、物理或虚拟化的组件(诸如软件堆栈)等。网络200被描述为单个连续实体,但是将理解,网络200能够具有任意的通信网络拓扑和/或布置。在某些实施方式中,网络200是一系列通信地连接的网络,或者是在潜在的大量基础物理网络之上工作的网络或子网络的逻辑布置。在某些实施方式中,网络200是因特网。
[0023] 提供了与网络通信的区块链数据库206(在下文中为区块链)作为可以是分布式的并且通信地连接至网络200的序贯交易数据库。区块链206实质上如上文所述。挖矿机组件204(软件、硬件、固件或组合组件)访问区块链206,挖矿机组件204适于访问提交至区块链
206的交易以验证所述交易并生成新的已验证交易的块以添加至区块链206。挖矿机204被要求展示“工作证明”,诸如通过评价哈希过程以获得如从例如比特币加密货币区块链可知的特定输出。图2的布置还包括为适于检测将在下文关于图3详细描述的相对于区块链206发生的恶意事件的网络连接的软件、硬件、固件或组合组件的安全组件202。例如,该安全组件是物理或虚拟的计算机系统或在通过网络200与区块链206通信地连接的计算机系统上执行的应用或服务。
[0024] 总之,在使用中,安全组件202生成被称为简档生成器(profiler)数据结构(下文中为简档生成器)的新的数据结构以存储在区块链206中。所述简档生成器包括在简档生成器被挖矿机204确认时执行的可执行逻辑。简档生成器逻辑包括用于生成被存储在区块链中的新的交易(称为简档交易(profile transaction))的代码。特别地,简档交易是由简档生成器根据编码在简档生成器逻辑中的交易创建简档中指定的一个或更多个规则生成的。交易创建简档由安全组件202定义并确定简档交易将何时由简档生成器生成。因此,当简档生成器被挖矿机认证时,简档生成器的逻辑确定是否应基于交易创建简档生成简档交易。
例如,简单的交易创建简档可要求在每个固定时间间隔(诸如每小时或更加频繁)之后生成简档交易。可预期更复杂的交易创建简档,诸如基于区块链自身或其它实体或标准的状态、大小、成分或其它特征的简档。
[0025] 因此,在本发明的实施方式中,鉴于交易创建简档,简档交易的生成变得可预测。用于触发简档生成器的执行以实现交易创建简档的精确机制是可变的。例如,简档生成器可被周期性地生成针对简档生成器的交易的安全组件202例行触发以使得挖矿机204验证简档生成器并执行简档生成器逻辑。另选地,简档生成器可自执行(诸如通过生成用于其自身的交易),使得它总是响应于每个这种生成的交易而执行。例如,初始执行时,简档生成器确定是否应生成简档交易。如果不应生成简档交易,则生成指向简档生成器的良性交易(即,不是简档交易)以保证挖矿机204将简档生成器进一步执行。当然,如果应当生成简档交易,则生成同样可指向简档生成器的简档交易并且它同样保证挖矿机204将简档生成器进一步执行。
[0026] 安全组件202监视区块链以确保简档交易的生成符合交易创建简档。符合交易生成简档的简档交易的生成表示挖矿机204对简档生成器的如实验证和执行。然而,在简档交易并不如预期那样出现在区块链206中的情况下,则识别出不符合并且检测出相对于区块链206出现的恶意事件。这一出现产生于不正确验证和执行存储在区块链206中的简档生成器(以及可能的其它交易和数据结构)的挖矿机204。确实,一个或非常少的期望的简档交易的缺失足以证实发生了与区块链206相关的恶意事件的警报。因此,可识别恶意或错误操作的挖矿机204的存在,并且可采取减轻或补救措施。这种措施可包括:生成警告;将与交易创建简档的不符合发送操作区块链206的其它实体,诸如依赖于区块链206的其它计算机系统;终止对区块链206的访问;保护记录在区块链206中并依赖于区块链206的资产;以及针对进一步的异常、错误和/或恶意出现,检查发生在区块链中的交易。
[0027] 在优选实施方式中,提供多个安全组件202,每个安全组件都与操作区块链206的计算组件相关联,诸如采用区块链206的应用软件。这种软件可为全异的、不相关的并且与可能不同的组织和/或用户相关联,并且安全组件202可被提供为适于与这种软件工作的插件、库或其它资源。每个这种安全组件202可定义它自己的交易创建简档并创建它自己的特定简档生成器以生成简档生成器特定简档交易。在这样的实施方式中,可通过网络200或多个安全组件202之间的另一通信手段进行通信以共享与简档交易的符合相关的信息。这样,特别是如果恶意或错误挖矿机204的数量增加,由安全组件202的任何子集进行的检测可由其它安全组件202来证实。
[0028] 图3是例示根据本发明的实施方式的在检测与区块链206有关的恶意事件中图2的组件间的相互作用的示例流程图。在步骤310,安全组件202初始地定义交易创建简档。该交易创建简档是简档交易何时被生成并提交至区块链206的定义并且该交易创建简档因此确定时间点。所述时间点可基于可由执行简档生成器逻辑的挖矿机访问的任何适当的属性或特性来确定。例如,所述简档可基于时间间隔。另选地,可使用区块链206的状态,诸如区块链206的大小或年龄、区块链206中的区块的数量或者区块链206的任意其它特性。所述简档可依据一个或更多个规则定义,当规则被满足时,导致简档交易的生成。这种规则可简单或复杂并且甚至是随机的。例如,交易创建简档可这样定义:只要与区块链206的大小相对应的值在十六进制下以‘ABC’结束,就生成简档交易。
[0029] 接下来,在步骤312,安全组件生成新的交易以提交至区块链206。新的交易是“生成简档生成器”交易,诸如用于生成新的区块链数据结构的交易,如本领域技术人员所公知的。生成简档生成器交易包括用于包含在简档生成器数据结构中的可执行逻辑的定义,使得当由挖矿机204验证时,该简档生成器数据结构被生成并存储在与可执行逻辑一起完成的区块链206中。简档生成器的可执行逻辑包括与交易创建简档相对应的一个或更多个规则的实现和用于在由这种逻辑引起时生成简档交易的逻辑。在某些实施方式中,简档生成器逻辑还可包括用于生成良性的(非简档)交易以实现简档生成器的重复的自执行以确保连续检查交易创建简档的逻辑。在步骤314,由挖矿机204验证用于生成简档生成器的交易,并且在步骤316,简档生成器被存储至区块链206。
[0030] 随后,安全组件202分成两个执行线程。在本发明的一个实施方式中,第一线程318提供对简档生成器的正常调用。将领会到,可采用调用简档生成器的其它机制,诸如如上文所述的自执行,在那种情况下可能不需要第一线程318的逻辑。在第一线程318中,安全组件202进行迭代,其中,简档生成器初始为区块链206生成交易,对该交易的验证触发简档生成器326的执行(发送至简档生成器的一个正常“记号”)。接下来,所述迭代在重复触发步骤
322之前等待324定义的时间段。响应于触发步骤322,简档生成器执行326测试,是否应当在步骤328创建简档交易。该测试基于简档生成器逻辑中的交易创建简档的编码。如果该逻辑确定应当生成简档交易,则处理在步骤330生成简档交易以存储在区块链206中。例示了三个示例性简档交易332a、332b和332c,每个简档交易都依据交易创建简档在特定时间点生成并存储在区块链206中。
[0031] 安全组件202还进行处理的第二线程334,其中,安全组件202初始地监视336区块链206以确定简档交易是否按照交易创建简档生成。监视区块链206可涉及读取区块链206,诸如区块链206的最近的一个或更多个区块。在步骤338,该方法确定符合交易创建简档的简档交易是否存在于区块链206上,并且如果所述交易是符合的,则该方法循环以继续在步骤336进行监视。如果检测到不符合,则该方法在步骤340识别恶意或错误事件,并且可采取前面所述的减轻或补救措施。
[0032] 尽管将安全组件202描述为多线程组件,但将领会到可提供多个组件以进行线程334和318的每一个的操作。
[0033] 图4是根据本发明的实施方式的检测与区块链206有关地发生的恶意事件的方法的示例性流程图。最初,在步骤402,该方法定义交易创建简档。在步骤404,该方法向区块链206提交“简档生成器生成”交易,当该交易被验证时,导致生成被存储在区块链206中的简档生成器数据结构。在步骤406,该方法监视区块链206,并且在步骤408,该方法确定存储在区块链206中的简档交易是否符合交易创建简档。当确定符合时,该方法迭代至步骤406。当确定不符合时,该方法在步骤410推断检测出与区块链206有关的恶意或错误的出现。可选地,该方法在步骤412采用前面所述的补救或减轻措施。
[0034] 适于实现本发明的实施方式的一种基于区块链的环境是以太坊(Ethereum)环境。论文“Ethereum:A secure Decentralised Generalised Transaction Ledger”(Wood,Ethereum,2014)(下文称为以太坊)使用区块链作为去中心的值转移系统提供了基于广义交易的状态机的正式定义。
[0035] 在以太坊实施方式中,简档生成器被实现为具有用于检查交易创建简档并生成简档交易的关联逻辑的以太坊账户。因此,简档生成器构成以太坊合同(或智能合同)。在以太坊实施方式的使用中,可如前面所述地触发简档生成器合同以测试是否应当生成简档交易。简档交易在适当的点被生成为以太坊消息交易。
[0036] 在所描述的本发明的实施方式的范围内,本发明的实施方式可至少部分地使用软件控制的可编程处理设备来实现,诸如微处理器数字信号处理器或其它处理设备、数据处理装置或系统,应当理解,作为本发明的一个方面,可设想一种用于配置可编程设备、装置或系统以实现前面描述的方法的计算机程序。该计算机程序可被实现为源代码或经受编译以在处理设备、装置或系统上实现,或者例如可具体实现为目标代码。
[0037] 适当地,该计算机程序被存储在机器或设备可读形式的载体介质上,例如存储在固态存储器、磁存储器(诸如磁盘或磁带)、光或磁-光可读存储器(诸如压缩光盘或数字多用光盘)等中,并且处理设备使用程序或程序的一部分以配置以操作。计算机程序可能从远程源提供,该远程源具体实现为诸如电信号、无线频率载波或光载波的通信介质。这种承载介质也设想为本发明的方面。
[0038] 本领域技术人员将理解,虽然已经与上文描述的示例实施方式相关地描述了本发明,但是本发明并不限于此,并且存在落入本发明范围的很多可能的变化和修改
[0039] 本发明的范围包括本文公开的任何新特征或特征的组合。申请人在此指出,在本申请或从本申请衍生的任意这种进一步的申请的申请过程中可由这种特征或特征的组合制定新的权利要求。特别地,参考所附的权利要求,来自从属权利要求的特征可与独立权利要求的那些特征组合,并且来自各个独立权利要求的特征可以任意适当的方式组合,而不是仅以权利要求中所枚举的特定组合。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈