新开源工具SimBlock让任何人都可以进行加密货币及区块链研究 | 智能金融

发布日期:2019-07-22 10:00
SimBlock一个新款区块链模拟器,让用户可以调试比特币Litecoin和Dogecoin的参数。



区块链技术将信息记录到数千个节点之间共享的分类帐本中。在技术最纯粹的形式中,这些节点不受任何中央权限的控制,并且一旦写入分类帐本就无法更改信息。由于该技术提供的安全性和自主性(至少在理论上),区块链现在支持许多流行的加密货币,如比特币。 

但正如东京工业大学副教授Kazuyuki Shudo 所指出的那样,“几乎不可能对现实世界的区块链网络进行测试,因为这意味着必须更新所有数千个节点的软件。”

在研究blockchain 小号,Shudo和他的同事寻找一个模拟器来帮助他们进行实验和改进技术。但是现有的模拟器太难用了,缺乏团队想要的功能。此外,这些模拟器显然是为特定研究而创建的,并且在该工作完成后很快就被放弃了,因为该组发现的许多工具不再被更新。 

“我们看到的最新模拟器是在2016年10月开发的,”Shudo说。“它不再被维护了。”

因此,该小组开发了自己的人工智能模拟器。它被称为SimBlock,可在支持Java的任何个人计算机上运行,并使用户能够轻松更改区块链节点的行为。“因此,调查节点行为改变的影响现在已成为一个简单的问题。”Shudo说。

“SimBlock中节点的所有参数都是用Java编写的。”他解释道。“这些源文件与主要的SimBlock Java源代码分开,因此用户只需编辑“节点”源代码即可改变其行为。” 更改可以一次应用于所有节点,也可以应用于单个节点或节点组。 

SimBlock可以模拟比特币,Litecoin和狗狗币的参数。它反映了区块链的网络规模,数据块生成间隔和互联网通信速度,同时考虑了六个地区之间的带宽和延迟:北美、南美、欧洲、澳大利亚、亚太地区和日本。它还允许用户修改模拟通信速度参数以及区块链节点的参数。

为了帮助用户了解网络在不同修改后的行为方式,该小组创建了一个可视化工具,用于显示节点之间的通信以及区块链的长度。这是在世界地图上运行的网络动画模拟。


SimBlock的数据可视化工具显示了当用户更改网络参数时,节点在网络中的行为方式

可视化器读出由SimBlock生成的给定网络的模拟日志,其内容覆盖在世界地图上。然后,可视化工具运行描绘节点行为的动画,这些动画采用颜色编码以显示交易变化。生成新块时,会为块指定新颜色。首先在动画中看到的节点的颜色与节点接收的最后一个块的颜色相同。 当另一个节点收到新块时,该节点将重新着色以匹配新块的颜色。

要将原始网络直接与已更改参数的网络进行比较,用户可以打开两个窗口并同时运行两个模拟。通过比较这些变化,用户可以看到,例如哪个网络对于块传播更有效,以及变化如何影响地图的每个区域中的传播。

SimBlock背后的团队计划增加对其他加密货币的支持,更新该工具的模拟互联网通信速度,并增加对较新通信协议的支持,如Compact Block Relay,它提供了更真实的比特币模拟。 

研究人员还利用SimBlock测试分布式网络的安全性,方法是在工具中对其进行恶意攻击,并测量其成功率。

“虽然我们为自己的研究开发了SimBlock。”Shudo说,“我们决定将其作为开源工具公开发布,以便其他研究人员可以使用它,从而有助于加速区块链研究。”