DxBox:基于区块链的Web应用程序,用于安全数据存储
本文简要讨论了现代云存储中存在的问题,以及基于区块链的存储应用程序如何成为潜在的解决方案。 更具体地说,本文还将讨论由DxChain Network开发的名为DxBox的应用程序,并介绍其体系结构设计和经济模型。 介绍 随着科学技术的爆炸性发展,提出了将区块链作为解决云存储等现有系统问题的高级概念和解决方案。 顾名思义,云存储是一种数据存储系统,可与利用虚拟化技术的分布式数据中心一起使用。 近年来,由于其便利性和效率,云存储在个人和企业组织中受到了广泛的关注:用户可以随时随地访问Internet来访问他们存储在云中的数据。 但是,当前的云存储仍然存在弱点,例如数据安全性和数据隐私性。 当用户将数据上传到云时,它将首先到达主控制数据服务器,该服务器充当系统的大脑。 然后,数据将被传输到各个数据中心,并且将制作多个数据副本,以防一个副本被破坏。 数据上传后,其安全性将完全取决于数据中心的安全性。 如果数据中心由于自然灾害或人为错误而损坏,则数据可能会被完全擦除。 Google曾经遇到此问题。 2015年,其位于比利时的数据中心遭到四次雷击,造成永久性数据丢失。 除了有关数据安全性的担忧之外,现代云存储系统还存在其他问题,即集中化和缺乏数据加密。 大多数云存储服务仅在传输过程中使用SSL / TLS加密机制提供数据加密,这很容易受到攻击。 另外,由于集中化,服务器管理员还可以直接访问存储在服务器上的数据。 即使大多数公司在保护用户隐私方面都有严格的政策,但只要涉及到人类,就存在数据泄露的风险。 为了解决上述问题,我们设计并实现了基于区块链的存储应用程序DxBox。 架构设计 DxBox是一个基于DxChain Testnet v0.3.6的演示应用程序。 它用作界面,简化了用户上载和下载文件的过程。 该应用程序使用客户端提供程序模型进行数据传输,其中客户端是使用DX令牌(DxChain加密货币)进行文件存储,文件上传和文件下载的节点。 另一方面,提供程序是为存储服务提供磁盘空间以使客户获得利润的节点。 要成为提供者,节点必须发布公告,该公告将添加到区块链中。 这些就是幕后发生的事情。 在用户可以上传文件之前,客户端必须找到合格的提供者并与他们签订合同。 查找合格提供者的过程发生在客户端节点共识过程中。 在客户的共识过程中,块将被顺序同步。 如果客户在包含提供者信息的区块中观察到一笔交易,则该信息将被记录到客户的数据库中。 同时,客户端将不断循环访问数据库中的所有记录,并与提供者联系以获取其设置,例如合同价格,存储价格,上传和下载价格。 所有提供程序的设置都已为DxBox应用程序预先配置。 此后,客户端节点将自动选择一些最受好评的候选人,并开始与每个候选人订立合同。 例如,DxBox从128个可用提供者中选择10个候选者。 每个合同都保留存储记录,包括数据大小,到期块高度等。一旦成功形成合同,客户端就可以上传和下载文件。 如上面的图1所示,一旦用户上传了文件,该文件将被分为多个块。 每个块将使用客户端生成的密钥进一步加密,然后使用擦除编码机制分为碎片。 擦除编码是一种数据保护算法,该算法使用冗余数据碎片扩展和编码原始数据,以确保存储系统的可靠性。 如果提供程序脱机或某些数据分片损坏,则仅需要全部数据分片中的一部分即可恢复整个文件。 数据分片和奇偶校验分片都已预先配置,其中前一个代表恢复块所需的分片数量,而后一个代表冗余分片的数量。 对于DxBox应用程序,数据和奇偶校验分片都配置为5,这意味着每个块将被拆分为10个分片,并且只需要其中一半即可恢复该块。 可以划分文件的块数取决于文件大小,数据分片和分片大小,默认情况下为4 MB。 它们之间的关系可以用以下等式表示: 例如,要使用DxBox上载10MB的文件,该文件将分为三个块。 最后,一旦将大块中的每个分片成功上传到不同的提供程序,文件上传过程就完成了。 在文件上传过程中,块加密和擦除编码算法的使用增强了存储系统的可靠性和安全性。 由于每个提供者只有一部分文件,因此单个提供者不可能透露原始文件的全部内容。 即使在最坏的情况下,攻击者也设法获得了所有需要的数据分片,并能够将它们转换为大块。 这些块仍由客户端的秘密密钥加密。 与文件上传相比,文件下载是一个完全相反的过程。 […]