Endolith:一个基于区块链的框架,用于增强云存储中的数据保留

在这里插入图片描述
【摘要】比特币和以太坊(Ethereum)等抽象区块链在过去几年得到了大量采用,并显示出在不依赖第三方的情况下设计应用程序的承诺。在本文中,我们提出了Endolith,一个使用基于智能合约的区块链,在不依赖第三方的情况下,验证文件完整性和跟踪文件历史的审计框架。带注释的文件被持续监控,有关更改(包括文件哈希)的元数据被存储在区块链上以防篡改。基于此,Endolith可以证明一个存储在很久以前的文件并没有在未经授权的情况下被更改,或者,如果更改了,可以跟踪更改时间、更改者。Endolith实现基于Ethereum和Hadoop分布式文件系统(HDFS)。我们对一个公共区块链网络的评估表明,Endolith对于不经常修改但经常访问的文件是有效的,这些文件是数据存档的共同特征。

I.导言

数据量正在以越来越快的速度增长。除了大量的新数据之外,许多已经存在的数据需要在很长一段时间内安全可靠地存储。对长期存储解决方案需求不断增长的原因是数字化的兴起,以及在特定时间段内保留数据的组织政策、政府法律和法规不断增多的趋势。例如,有些公司需要根据其经营所在国的不同,将税务信息、合同和商业报告保存长达十年。另一个例子涉及研究数据和结果,这些数据和结果应长期公开。这些策略不仅导致需要归档的数据量增加。此外,确保数据的完整性、有效性和出处成为一项重要的任务,但也是一项具有挑战性的任务[2]。例如,证明一个存储在很久以前的文件在未经授权的情况下没有被更改,或者如果它确实跟踪了文件何时被谁更改。
大多数组织的数据存储在由分布式文件系统、存储区域网络或云对象存储组成的专用存储基础设施上。此外,自动存储分层[3][4]通常用于提高存储容量和性能,但也用于满足政府或行业法规的长期要求。因此,很少被访问的数据被自动移动到一个单独的存储层或系统中,该存储层或系统设计用于长期存档目的。一些存档存储系统(如Amazon Glacier[5])遵循一次写入、多次读取(WORM)模式,该模式将所有存档数据视为只读,以防止修改。而其他数据归档系统,像谷歌CaldLin(6)和HDFS存档存储(7),更灵活,并允许修改。即使这些系统提供了高容错性,在最坏的情况下,数据以及汇总对该数据的操作的审核数据也可能被意外或恶意地修改或删除,而无需通知[8]。
区块链技术及其各自的对等网络近年来引起了广泛关注。著名的例子包括比特币[9]和以太坊[10]。区块链,也称为分布式账本,是使用加密技术链接和保护的数据交易的防篡改附加列表。此外,它还包括一个点对点网络,该网络共同保持分类账的最新状态,共同验证交易并生成存储这些交易的新块。区块链技术提供了交易不被更改的高度信任,因为任何参与者都可以检查分类账,但没有人控制它。因此,区块链可以在参与者之间建立信任,而无需中心第三方。此外,一些区块链(如以太坊)允许在区块链上执行程序,也称为智能合约[11],而不存在任何停机、审查、欺诈或第三方干扰的可能性。
本文介绍了Endolith,一种支持存储系统中文件完整性、寿命和历史跟踪的审计框架。Endolith将区块链技术集成到存储基础架构中,使这些功能在不需要中央机构的情况下可靠地运行。它允许监控带注释的文件,并在区块链上存储有关文件更改防篡改的必要元数据。特别是,一旦集成到现有存储系统中,它就在创建和修改过程中连续地散列所选文件。由此产生的散列、修改时间和用户将被持久地存储在区块链上。Endolith基于智能合约区块链。部署的智能合约使用元数据进行验证和历史跟踪功能。此外,Endolith的智能合约提供了无可争议地证明文件是否存在于给定时间的功能。必须指出,Endolith不在区块链上存储任何文件内容。
Endolith的实现和评估基于Ethereum,一个基于智能合约的区块链和Hadoop分布式文件系统(HDFS)[12]。但是,由于通过引入的存储API实现了分离,因此可以将其他存储系统和自动分层解决方案集成到Endolith。我们评估了在Ethereum之上的Endolith官方的测试网络和一个10节点的HDFS集群。根据用户的额外响应时间,创建和修改文件的开销为42.5秒。而大部分时间都花在写和确认区块链上的交易上。验证文件的开销在0.54到1.20秒之间,因为这些功能可以在本地执行,而无需编写任何事务。由于Endolith文件创建和修改的高开销,我们引入了一个事务管理器,它允许继续使用HDFS,即使事务尚未由区块链网络写入和确认。然而,Endolith关注的是数据,而数据修改的频率较低,因为在区块链上存储数据需要节俭地完成,因为它的成本很高。
贡献。本文的贡献是:
•一种支持文件完整性、使用寿命、保留期和历史记录跟踪的方法。
•实现我们的方法,我们称之为Endolithm,它与以太坊和HDFS集成。
•对以太坊测试网络区块链的评估,显示了Endolith的开销。
大纲。论文的其余部分结构如下。第二节介绍了研究背景。第三节介绍了系统设计。第四节介绍了利用内生质的工作流程。第五节介绍了我们的实现。第六节是我们的评价。第七节介绍了相关工作。第八节是本文的结论。

II.背景

本节介绍了区块链技术和基于智能合约的区块链的背景。
A、 区块链技术区块链,也称为共享账本,是一个记录的附加列表,使用加密技术链接和保护记录。著名的区块链实现包括比特币[9]和以太坊[10]。对区块链的写入称为事务,其中多个事务被分组并永久存储在单个块中。这些区块按时间顺序和线性连接形成区块链,类似于链表。区块链中的每个区块都由区块头的散列唯一标识。块头包括块中存储的所有事务哈希的Merkle树[13]根。此外,每个块将前一个块头的散列存储为引用。因此,链接到前一个块的散列序列创建了一个链,一直返回到有史以来创建的第一个块。图1说明了区块链的结构。
图1:简单区块链的数据结构
图1:简单区块链的数据结构
区块链由私有或公共对等网络管理,该网络共同验证并生成新区块。因此,区块链网络由多个节点组成,每个节点都有区块链的本地副本。一些节点参与一个领导选举过程(即工作证明),该过程确定哪个节点获得将下一个块附加到链的权限。这些节点正积极竞争成为下一轮的领头羊,称之为旷工。
在每轮领导人选举开始时,所有矿工都开始研究一个新的计算问题(例如产生散列),这个问题取决于三个数据:新的交易块、区块链上的最后一个块和一个随机数。这统称为当前块的块头。每次矿工用一个新的随机数对块头执行散列函数时,他们都会得到一个新的结果。为了赢得选举,矿工必须找到一个以一定数量的零开头的散列。需要多少个零是一个移位参数,由网络上连接了多少矿工和多少计算能力决定。解决此问题的第一个miner获得了使用尚未包含在任何块中的挂起事务编写新块的权限。参加和赢得选举的动机是一种金钱奖励。赢家可以发行一定数量的开采货币,他们可以收取所有交易费用。为了优先处理他们的事务,用户可以提出支付更高的费用。因此,区块链形成了一个系统,可以在不需要任何中央机构的情况下实现分散共识。
B、 基于智能合约的区块链智能合约是为验证、或执行合约的协商或履行而制作的计算机程序。它们由区块链的共识机制自动强制执行,而不依赖可信的权威机构。区块链共识协议的目标是确保智能合约的正确执行。以太坊是一个著名的基于智能合约的区块链。它的底层以太坊虚拟机(EVM)有一个全球状态的概念,包括帐户、余额和存储。每个事务都必须确保从事务之前的规范状态有效转换到EVM所处的新状态。因此,处理事务并将其写入挖掘块的顺序至关重要。所有EVM转换都由网络的每个参与者执行,并在区块链上存储新状态。智能合约继承了去中心化、零停机时间和针对审查或欺诈的安全性的区块链属性。智能合约是用Solidity编写的,Solidity是一种图灵完整的字节码语言,它编译成一个特殊的汇编代码,可以由EVM解释。因此,合约是一组函数,每个函数由一系列字节码指令定义。

III. Endolith的设计

Endolith是一个框架,用于支持数据保存和归档,以及在现有存储基础设施中的文件验证和历史跟踪。因此,它监视由用户注释的文件,或指示是否和何时可以注释数据的可编程规则和策略—类似于自动存储分层中已知的将数据从性能移动到容量存储的策略。然后,所选择的注释文件元数据通过智能合约写入底层区块链。Endolith自动在区块链上生成和部署这些智能合约,提供审核功能和对存储在区块链上的元数据的安全访问。该功能包括存在性证明、文件验证和历史跟踪。必须强调的是,Endolith最适合只进行很少修改的文件。这是因为在区块链上挖掘和确认包括元数据或智能合约创建的交易之前,需要一定的时间。
在这里插入图片描述
图2:Endolith及其组件概述

图2给出了Endolith的概述,并展示了它是如何与现有系统集成的。本节的其余部分将更详细地描述Endolith的组件。
存储用户。用户将其文件存储在存储基础结构上。文件可以由要使用Endolith跟踪的用户或存储提供程序进行注释。例如,它必须可靠地存储很长一段时间。这些带注释的数据上的操作(如文件创建、更改、移动和删除)将被监视并发送到Endolith,包括附加的文件元数据(如文件哈希、用户名和修改时间)。然后,所有这些数据都通过区块链上特定于Endolith的智能合约进行存储,但只有拥有明确权限的用户才能读取和访问。与公钥加密类似,只有在文件跟踪智能合约中定义了公钥的用户才能使用其私钥访问数据。无法访问智能合约的用户只能在区块链网络上的交易中看到存储在智能合约中的数据以及以原始二进制数据形式存储的代码。
存储提供程序。提供商运行存储基础结构以向其用户提供存储。通过集成Endolith,提供商可以提供可信的长期存储服务。这是因为文件的当前状态和以前的状态及其元数据(关于谁更改了文件以及何时更改了文件)存储在底层区块链上。基于区块链的防篡改和可追踪特性,提供商可以向其用户保证,存储在很久以前的文件未经授权更改,或跟踪更改文件的人和时间。此外,提供者可以使用数据来检测入侵或异常行为。
文件系统API。文件系统API提供了向Endolith添加有关文件创建、更改和删除的信息的方法。此外,它还可以用于将信息从内胚层添加到现有文件中。例如,将智能合约地址作为元数据添加到其对应的文件中,这样可以更容易地在两者之间进行关联。存储提供程序还可以使用文件系统API,通过使用侦听文件操作的钩子自动监视其存储系统,然后自动使用API将收集的数据转发给Endolith。与自动分层存储类似,在自动分层存储中,根据访问时间将冷数据移动到单独的长期存储层,当文件移动到长期存储层时,可以使用Endolith自动进行注释和跟踪。
区块链网关。网关提供对区块链网络的访问,区块链网络可以是私有的,也可以是公共的。网关参与区块链网络,因此具有区块链的本地副本。但是,它与挖掘网络分离,因此不充当执行工作证明算法的挖掘器。这样做的原因是为了节省Endolith主要任务的计算资源。首先,将合约创建和执行交易发送到区块链网络,在那里进行挖掘和执行。其次,一些智能合约功能直接在网关上执行,因为它们不会修改区块链的全局状态。这些功能在区块链的本地副本上运行,并返回快速结果。
事务管理器。事务管理器自动在区块链网络上生成和部署智能合约。因此,它为每个应被跟踪的选定文件部署一个特定的智能合约。此外,它还将文件系统API提供的数据(如文件更改)转换为智能合约可执行格式。另一方面,它将事务接收转换为支持文件系统API的文件格式。此外,如果需要,它还可以缓冲事务。这是因为交易在区块链上可用之前需要时间。我们不会等到交易可用并得到验证,而是收集状态并定期检查交易是否成功写入区块链。如果交易被区块链拒绝,则再次提交该交易。影响相同文件的后续事务在FIFO队列中排队,并在祖先成功写入区块链后提交。
文件跟踪合约。我们设计了一个Track Change合约模板,Endolith自动为每个新的带注释的文件部署一个实例。智能合约实例负责跟踪一个文件的所有更改。第五节详细介绍了合约的设置及其属性和功能。由于存档大量文件的可扩展性要求,在一个包含所有数据的全局智能合约中存储所有元数据是不可行的。这是因为为该合约编制索引需要很多时间,而且合约的大小也有限制。当一个新的文件被存档并部署了相关的智能合约后,它的智能合约地址被存储到文件元数据中,以在区块链上找到相应的文件。还可以将其存储在专用智能合约、文件或数据库中。
审计。审计为文件存在性证明和文件历史跟踪提供了功能。这些函数嵌入到智能合约中,并在运行Endolith的节点上本地执行。所有审计功能都在区块链的最新副本上执行,不会更改合约状态,因此无需在区块链上编写交易即可执行。

IV. ENDOLITH的工作流

本节详细介绍Endolith用于文件跟踪、验证和历史记录跟踪的工作流。
A、 使用Endolith进行文件跟踪本节介绍使用Endolith监视文件的工作流。工作流如图3所示,由以下步骤组成:
在这里插入图片描述
图3:Endolith进行注释和监视的工作流程。

1) 用户为文件添加注释以进行长期文件跟踪。
2) 根据Endolith的文件跟踪模板自动生成该文件的专用智能合约。
3) 生成的文件跟踪合约提交给区块链。
4) 成功部署到区块链上后,将返回唯一的智能合约地址。此合约地址作为元数据附加到存储系统中的文件,以便在智能合约和文件之间建立连接。
5) 使用加密单向哈希函数计算文件哈希。另外,从存储系统中收集用户名和修改时间。必须强调的是,散列不是在区块链上的智能合约内完成的。由于需要发送到区块链网络并在其上进行处理的文件数据,这对于大型文件来说是昂贵的,甚至是不可能的。
6) 所有数据都被解析为相应的文件协定,该协定通过作为元数据附加到文件中的协定地址来标识。
7) Endolith收到确认交易已成功写入区块链的收据。
8)之后,一旦事务成功写入BoSLink,则通知用户,如果存在附加的针对该注释文件的排队事务,则将其提交给区块链。

当文件被注释时,步骤1到4只执行一次。每次文件更改时,都会重复步骤5到8。为了减少交易在区块链上可用之前的等待时间,后续交易在交易管理器中排队,这在第V-B节中有更详细的描述。

B、 使用Endolith验证文件
本节描述使用Endolith验证跟踪文件的工作流。工作流如图4所示。
在这里插入图片描述

图4:使用Endolith验证文件的工作流

1) 用户从文件系统请求文件。
2) 相应的文件跟踪合约是基于附加的元数据智能合约地址加载的。
3) Endolith从加载的文件跟踪协定中请求最后一个已知的哈希值。
4) 智能合约验证功能由Endolith在区块链的最新副本上本地执行,以获取存储在区块链上该请求文件的最后一个已知哈希。
5) 计算存储系统中存储的文件版本的哈希。
6) 将当前生成的哈希值和智能合约中存储的最后一个值进行比较。如果两个值都匹配,则假定文件是相同的,因为意外哈希冲突的概率非常小,这意味着文件将哈希到正确的值。
7) 用户加载已验证的文件。

此外,Endolith允许其用户根据区块链网络上存储的基本事实验证文件的本地副本,而无需接触远程文件。此外,他或她可以验证,如果本地版本在任何时候存在。这种基于散列的文件验证的另一个优点是它具有良好的性能,而不需要比较每一位的位,并且可以比较文件,而不会使其内容对任何人可见。此外,与文件大小相比,散列大小相对较小,因此适合存储在区块链上。

C、 Endolith历史追踪
通过使用专用智能合约将包含存储系统维护的附加文件属性(如所有者、时间戳和URI)的文件散列存储在区块链上,可以保证并准确地确定文件在任何时刻的更改时间和方式。如果修改了已存储的文件,则更新的文件属性(包括新文件哈希)将附加到智能合约,并存储在区块链网络中。一旦事务被挖掘和确认,我们无可争议地证明存储中的文件记录存在并安全地跟踪谁和何时更改文件,因为无法修改或删除区块链上的事务。此外,所有这些功能都可以在没有任何第三方干扰的情况下完成。

V.实施

本节描述了使用以太坊作为基于智能合约的区块链和HDFS作为存储系统的Endolith实现。首先,对文件跟踪智能合约的实现进行了较为详细的说明。然后讨论了事务缓冲区的实现。
A、 文件跟踪合约
当对文件进行注释以进行长期跟踪和验证时,会自动生成相应的智能合约并将其部署到以太坊区块链网络中。文件跟踪合约包括被跟踪文件的当前和所有过去的文件哈希,包括其修改时间和用户。它自动从通用模板派生,如图5所示。一个文件跟踪合约正好属于一个文件,因此,对于每个注释的文件,在块链上都存在一个文件跟踪合约。必须强调的是,由于文件重命名或移动,文件跟踪合约的文件统一资源标识符(URI)可能会更改。因此,在区块链上成功部署文件跟踪合约后,将唯一的智能合约地址作为元数据属性附加到HDFS中的相应文件。之后,每个文件修改,包括其新文件哈希、修改用户和时间,都使用其相应的智能合约存储在区块链上,智能合约地址作为文件元数据附加在区块链上。我们使用了HDFS内置的分布式文件校验和算法,对于任何大小的文件,它都可以快速返回一个固定长度的MD5校验和,而与块的数量无关。文件跟踪合约的实例由以下属性和函数组成:
•fileURI.。文件的当前URI,可以在文件名、路径或存储系统更改时更改。
•modifications。跟踪文件的当前和所有过去文件哈希的列表,包括其创建时间、用户和文件URI。
•currentHash是一个缓存变量,它存储最后一个已知的哈希以加速验证请求。
•updateFile(FileURI, FileHash)将更新写入智能合约需要文件路径,如果文件已移动,则可以设置新路径,以及新文件哈希。所有必需的字段都将更新,新值将推送到修改列表中。此操作更改合约的全局状态并导致事务。
•validate(FileHash)验证函数验证任何给定的hash是否等于存储在区块链上的当前值,并相应地返回一个布尔值。验证函数调用不会改变EVM的状态,因此不需要发送事务,并且可以在本地执行。
•getEntryAtTime(Time)自合约创建以来,任何时间点的任何哈希值都可以从合约中检索,并用于分析修改历史
在这里插入图片描述
图5:文件跟踪合约属性和功能概述

B、 事务缓冲区
在区块链网络挖掘并确认提交的合约创建或执行事务之前,可能需要几秒钟的时间。因此,Endolith不适合于经常被修改的所谓热数据。但是,我们实现了一个事务缓冲区,它将等待的事务排队。此外,我们收集挂起交易的状态,并定期检查该交易是否成功写入区块链。如果不是,这种情况有时会发生,特别是在公共区块链网络上,交易会重新提交。
我们通过Δct(tx)=(Δbt*c)+Δbt/2来估计交易tx的确认时间ct。设Δbt是区块链网络生成新区块所需的平均区块时间。c是必须确认交易有效且是区块链一部分的后续区块数。Δbt/2假设交易在下一个已开采区块中开采,则交易提交和在区块中开采交易之间的估计取货时间。例如,在以太坊主网上,平均阻塞时间bt为15秒1以太坊白皮书建议等待7个阻塞确认[14]。因此,我们估计事务的响应时间为82.5秒。
Endolith保存所有挂起合约的列表,并定期检查创建是否成功部署。为了允许在等待期间对该文件进行修改,所有后续更改都存储在该文件的专用等待队列中。合约创建交易确认后,合约地址作为元数据接收并存储到文件中,用于将所有更新写入相应的跟踪合约。我们将其实现为一个FIFO队列,当一个事务被成功写入并确认时,下一个事务被提交。在区块链网络中,交易顺序很重要。例如,为了避免重播攻击,在重播攻击中,一个有效的事务被恶意地一遍又一遍地传送到网络上。因此,我们将事务缓冲在内存中,并等待前一个事务得到确认。

VI.评价

本节介绍我们的基准设置和结果。
A、 实验装置
所有实验均使用11节点集群完成。每个节点都配备了一个四核Intel Xeon CPU E31230 V2 3.30GHz、16 GB RAM和三个1 TB磁盘,7200RPM磁盘以RAID-0方式组织。所有节点都通过一个具有千兆以太网连接的交换机连接。每个节点运行Linux、内核版本3.10.0和Java 1.8.0。10个节点使用默认配置运行Hadoop HDFS 2.7.1。一个节点运行Endolith和Geth 版本1.7.1作为以太坊公共测试网络Ropsten的网关。
B、 基准结果
本节描述基准测试结果。首先,测量了用Endolith写入和读取文件的响应时间。之后,报告了使用Endolith的额外费用。我们重复所有实验七次,并获取中位数。
写入响应时间。这个基准衡量了有和没有Endolith的写入的响应时间。因此,我们使用dd(一个用于Unix和类Unix操作系统的命令行实用程序)生成固定文件大小从64mb到8192mb的随机文件。图6报告了不同大小的文件的写入结果。蓝色条表示文件在HDFS中可用之前的响应时间。橙色条表示在收集元数据并由以太坊网络发送和确认事务之前的响应时间。收集元数据以及发送和确认合约事务的平均响应时间为42.5秒。该响应时间与文件大小几乎是相同的,因为部署文件跟踪智能合约的操作码和输入数据与文件大小无关,其大小大致相同。然而,最大值和最小值相差很远,分别为15.590秒和105.843秒。这是因为块时间在testnet上变化很大。收集元数据并发送合约创建平均需要0.7秒。事务确认占用大部分响应时间。Ropsten testnet上的平均块时间在10到15秒之间,我们使用的块确认值是5,这是Geth中的默认值。当文件大小增加时,由Endolith引起的间接费用的比例减少,因为在文件传输上花费了更多的时间。必须强调的是,由于第V-B节中描述的事务缓冲区,Endolith允许用户在这段时间内使用HDFS。但是,由于事务确认之前的响应时间较长,Endolith更适合于很少修改或根本不修改的长期数据。
在这里插入图片描述

图6:将大小不同的文件写入具有和不具有Endolith的HDFS的响应时间
在这里插入图片描述
图7:读取和验证一个大小不同的文件的响应时间

读取并验证响应时间。与编写基准类似,我们生成大小在64MB到8192MB之间的随机文件。图7报告了读取和验证不同大小文件的结果。在使用Endolith读取文件之前,我们对其进行50次修改,以在相应的文件跟踪合约内生成数据。蓝色条表示文件从HDFS复制到本地磁盘之前的响应时间。橙色条表示响应时间,直到本地文件根据以太坊区块链上存储的值进行哈希和验证。开销在0.54到1.20秒之间。红线表示开销百分比,从87.83%到1.62%不等。当文件大小增加时,由于在文件传输上花费了更多的时间,由Endolith引起的开销减少。与写响应时间相比,读取和验证开销较小。这是因为检索文件哈希的智能合约执行可以在本地完成,而无需在区块链网络上写入任何事务。
创建和修改文件的成本这个基准衡量创建和修改单个文件的成本,用gas表示[14]。gas是以太坊中使用的一种特殊单位的名称。它衡量一个动作或一组动作执行的工作量。在以太坊平台上,每一个可以通过交易或合约执行的操作都要花费一定数量的gas,需要更多计算资源的操作要比需要很少计算资源的操作花费更多的gas。我们生成了一个1024 MB的文件,将该文件加载到HDFS,并重复这两个步骤10次,以便在HDFS中重写该文件。当文件被创建,相应的智能合约已部署。第一步需要147060 gas。之后,每一次改造都要花费132060 gas。这是因为在以太坊网络上执行的操作数量完全相同。需要强调的是,以太坊测试网的耗气量可能与主网不同。此外,在公共网络上使用Endolith时,用户应该考虑跟踪哪些文件以及跟踪多少文件,因为在区块链上执行代码会产生成本。

VII.相关工作

本节介绍在存储基础架构中使用区块链技术的相关工作。Ghoshal和Paul[15]提出了一个不需要第三方参与的云数据审计方案。与Endolith类似,他们的方法允许确保和检查基于区块链技术的选定文件的完整性。特别是,他们建议将选定的文件拆分为固定长度的文件块,散列文件块,并基于所有文件块散列为每个文件生成一个Merkle树。然后,Merkle树根、上一个块散列和其他文件元数据作为新块追加到区块链中。为了加快验证过程,他们采用了基于叶数的验证技术。作者报告说,他们的方法只适用于很少更新的文件,因为更改文件会导致相应块的修改,因此,任何后续块都需要重写,这是时间和计算密集型的。相比之下,我们将文件元数据作为事务附加到区块链,并且不会由于透明性原因更改任何块。此外,他们的方法不适用于公共区块链网络,在公共区块链网络中,对已写入和已确认的区块的修改是显著的、意外的。
ProvChain[16]是使用区块链技术的云存储系统的数据源系统。它监视文件上的所有操作并将其发布到区块链。
ProvChain散列数据操作,构成Merkle树,并将根节点锚定到区块链事务中。由此,有可能保证数据来源不受影响。ProvChain在操作级别跟踪文件,包括读取、移动和复制操作,并且不提供基于内容的文件验证功能。
Blockstack[17]提出了一个基于区块链的命名和存储系统。他们展示了他们关于在Namecoin上运行公钥基础设施服务以及如何迁移到比特币的知识。在Blockstack中,用户可以注册数据并与之安全关联。只有特定私钥的所有者才能写入或更新名称-值对。其他系统如Filecoin[18]、Permacoin[19]、Storj[20]和SIA[21]旨在取代云存储。他们不是奖励提供计算资源的矿工,而是奖励提供存储(即存储证明)的矿工。ETH Drive[22]运行IPFS[23],这是一个点对点的分布式文件系统,并使用以太坊作为区块链,提供防篡改的数据来源,以检查数据完整性。

VIII.结论与未来工作

本文介绍了Endolith。Endolith将区块链技术集成到存储基础架构中。它使用智能合约跟踪带注释的文件,并在区块链上存储这些文件的选定元数据。此外,Endolith的智能合约为防篡改文件验证和历史跟踪提供了审计功能。这样,Endolith支持长期存储并确保数据完整性。Endolith专注于存档数据,允许证明存储在很久以前的文件未经授权未被更改,或者跟踪文件何时被谁更改。由于在区块链上写入和确认交易需要时间,因此Endolith对于频繁修改的文件不是一个好的选择。Endolith最适合用于存档或文档存储,在这些存储中,文件很少被修改,创建或修改文件的用户响应时间并不重要。
在未来,我们希望改进用户访问管理,并在区块链上引入文件加密以实现安全的文档传输。此外,我们计划集成HDFS之外的其他系统,以显示Endolith甚至可以跟踪文件系统边界之外的文件。同时,我们希望通过使用附加的评价标准来更系统地评价内生岩。特别是,我们想了解Endolith在一个块时间较短的私有区块链上的表现。以及它如何同时执行多个文件更改。另外,使用私有区块链而不是公共区块链可以独立于价格波动和投机。然而,我们对以太坊TestNETs和HDFS的评价表明,Endolith是一个有效的框架,以改善在现有存储系统中具有可接受的开销的数据保持。

发布了11 篇原创文章 · 获赞 0 · 访问量 579

猜你喜欢

转载自blog.csdn.net/ajc_zh/article/details/104397448