区块链研究实验室-区块链链下数据存储解决方案

随着这种区块链越来越受欢迎,越来越多的信息被存储在链中,以至于其性能受到阻碍。这就是链下存储的用武之地。

关于链存储的问题:

一旦区块链变得流行并且网络内的连接越来越多,数据传输的增加就变得不可避免。当存储在链上的数据相对较小并且请求相对较低时,网络能够轻松地处理事务(以及存储发送者细节的一些开销空间)。一旦大量数据被抛入混合中,并且请求和事务量增加,问题就开始发生。每个节点最终都必须存储大量信息,网络的带宽导致传输变得迟缓,以及相关的账单变得边缘荒谬。即使他们不想访问数据,每个节点也必须存储数据。这种存储方法的可行性很快变得不切实际,提出问题......有更好的选择吗?

解决方案:

我们希望能够利用区块链分散的数据公证,而不会堵塞每个节点HD并花费昂贵的费用来支付带宽。与链共享的数据可以存储在“离线”的位置,只有在需要时才能访问。虽然这个想法非常简单,但它的应用却稍微复杂一些。以下是维护区块链公证方面所需的其他细节:

  1. 数据通过“哈希函数”传递,将源(假设无限量的比特)转换为精确256位(哈希)的字符串。这些位由大约80位数字表示,并且对于数据源是完全唯一的。如果源数据完全相同并再次通过散列函数,则它将生成完全相同的散列。如果它被改变了,那么两个哈希将完全不同。可以比较这两个结果以验证源数据是否被篡改,从而消除了欺诈行为。这些散列函数只能以一种方式工作,这意味着从散列中获取原始源数据在计算上是不可行的。
     

  2. 然后将散列存储在网络中的每个节点上而不是原始数据上,占用的空间比以前少得多。每个节点都可以通过将数据放入散列函数并将结果与网络中提供给它们的散列进行比较来验证数据。

  3. 当用户希望下载数据时,他/她可以从网络提供的散列中找到数据源。一旦通过散列(时间戳等)提供的信息找到用户/数据库,他们可以假设地建立“对等”网络,就像您之前使用的服务(如Napster和BitTorrent)一样。一些数据存在这种传输的服务,例如IPFS,但需要另一个程序才能与区块链一起运行。

  4. 一旦数据被传输,双方和所请求的系统上的任何其他节点都可以验证该数据的真实性,提供区块链技术的公证,而不需要花费不必要的时间,金钱和存储空间。

哈希函数的示例:

下面是几个散列函数的例子。第一个是从数据创建32位散列的Javascript代码片段,第二个是描述“C”中典型的256位区块链散列算法的代码。目前最流行的哈希算法称为SHA-256。您可以在此处查看此功能的工作版本。

本文转载公众号:区块链研究实验室

猜你喜欢

转载自blog.csdn.net/willam1/article/details/86700080