将数据存储在大型集中式数据中心会带来性能、可用性和可伸缩性以及高资本或运营成本问题。集中的数据也会招致复杂的网络攻击。由于这些原因,公司正在寻找分散数据存储的方法。区块链存储是一种方法。
区块链存储仍然是一项相对年轻的技术,但它的受欢迎程度正在提高。为了提高数据存储的安全性和可靠性,潜在的企业用例已经开始出现。了解这项技术是如何工作的,是确定该技术是否适合您的组织的第一步。
区块链存储是如何工作的
区块链是一种分布式分类账技术,用于记录两个或多个参与方之间的交易。直到最近,这项技术还主要用于支持比特币等加密货币,但现在它在其他领域也取得了进展。
区块链分类账作为一个分散的数据库,用于维护每个交易的详细信息。这些交易按时间顺序加到分类账上,并以一组数据块的形式存储。每个块引用前面的块以形成一个相互连接的链。
由于区块链的分布式特性,它被吹捧为P2P、分散存储的天然选择。
分类账分布在多个节点上,每个节点维护一个完整的副本。区块链自动同步并验证所有节点上的事务。该分类账对所有参与成员都是透明的,并可由所有成员核查,从而消除了对中央权力机构或第三方核查服务的需要。由于它的分布式特性,区块链被吹捧为一种适合点对点(P2P)的分散存储。在这个场景中,区块链提供了创建地理上分散存储资源的逻辑存储池所需的结构,这些存储池充当区块链节点。
下图概述了区块链存储的工作原理
基于区块链的存储系统为存储准备数据,然后将其分布在分散的基础设施上,这个过程可以分为以下六个步骤:
1. 创建数据分片。存储系统将数据分成更小的段,这个过程称为分片。分片涉及到将数据分解为可管理的块,这些块可以分布在多个节点上。分片的确切方法取决于数据类型和进行分片的应用程序。关系数据库的分片不同于NoSQL数据库的分片或文件共享上的文件分片。
2. 每个分片都进行加密。然后,存储系统对本地系统上的每个数据分片进行加密。内容所有者完全控制这个过程。我们的目标是确保除了内容所有者之外,没有人能够查看或访问分片中的数据,无论数据位于何处,以及该数据是处于静止状态还是处于运动状态。
3. 为每个分片生成一个哈希值。区块链存储系统根据分片的数据或加密密钥生成一个唯一的哈希值——一个加密的固定长度输出字符串。哈希值被添加到分类账和分片元数据中,以将事务链接到存储的分片。生成哈希值的确切方法因系统而异。
4. 复制每个分片。存储系统复制每个分那篇,这样就有足够的冗余副本来确保可用性和性能,并防止发生性能下降和数据丢失的情况。内容所有者选择为每个分片创建多少个副本,以及这些分片位于何处。作为这个过程的一部分,内容所有者应该为要维护的最小副本数量设置一个阈值,以确保不会丢失数据。
5. 分发复制的分片。P2P网络将复制的分片分布到分散地理上的存储节点,可以是区域的,也可以是全局的。多个组织或个人拥有存储节点,他们租用额外的存储空间,以换取某种补偿——加密货币。没有一个实体会拥有所有存储资源或控制存储基础设施。只有内容所有者才能完全访问其所有数据,无论这些节点位于何处。
6. 把交易记录到分类账上。存储系统记录区块链分类账中的所有事务,并跨所有节点同步该信息。分类账存储与交易相关的详细信息,如分片位置、分片哈希值和租赁成本。因为分类账是基于区块链技术的,所以它是透明的、可验证的、可追踪的、防篡改的。
虽然步骤6是最后列出的,但是区块链集成是一个正在进行的过程,具体的方法取决于存储系统。例如,当存储过程第一次开始时,它可能首先在区块链分类账中记录事务。然后,当事务变得可用时,它将使用信息(如唯一哈希值或特定于节点的详细信息)更新事务。然后,在参与节点验证事务之后,系统在分类账中将该事务标记为final,并锁定它以防止更改。
这里描述的六个步骤是作为一种概念化的区块链存储过程方法。确切的方法将取决于特定存储系统在给定用例中的实现方式,以及如何管理该数据存储。