引言
随着以太坊上的区块链持续受到关注,适用企业级应用的区块链变得越来越迫需。人们发现基于以太坊的全部潜力,以及应用基于以太坊的平台作为永久存储方案,只是时间问题。因此,我们需要找到一种基于以太坊的区块链标准来开发最佳永久存储的方案。
目前还没有基于以太坊的永久存储区块链标准。这限制了开发的宽度和基于以太坊的区块链功能的广度。尽管已经对基于以太坊的区块链的某些功能做了标准化开发,但这些标准并不符合企业级应用程序所需的永久存储性能。
ERC-20和ERC-721标准
以太坊上已经有一些标准,这些标准仅仅限于一类的价值转移应用。例如,诸如ERC-20和ERC-721之类的代币标准有助于在以太坊区块链创建新的代币。在这种标准下,以太坊的开发几乎仅限于创建基于代币的应用程序。代币管理只处理一种类型数据:以太坊地址的特定未签名整数。因此,代币可以视为一种存储以太坊地址上未签名整数的智能合约。每个ERC-20和ERC-721代币都有效地定义了由其开发人员定义的特定值。我们可以学习ERC-20和ERC-721标准,提出一个更高级的标准设计,这种标准能够描述和管理分配给以太坊地址的任何类型数据。
设计一个能够描述和管理任何类型数据的智能合约,需要开发能够定义数据和数据结构的智能合约。ERC-20和ERC-721标准是使用最广泛的两个规范,仅适用于一组功能:代币和基于coin的应用。如果要在基于以太坊的区块链上开发数据驱动的应用程序,我们需要开发更复杂的智能合约。
永久存储原则
幸运的是,永久存储的原则早在20世纪70年代就已经建立了。尽管基于以太坊的区块链架构与其他数据源之间存在许多差异,但我们仍然可以应用这些公认的原则,使基于以太坊的区块链成为能够处理任何企业级应用的永久存储方案。我们只需要将这些原则应用于基于以太坊的协议中的去中心化应用程序。为此,我们需要定义智能合约如何分别管理数据和模式。
永久存储技术的历史
回顾信息系统的历史,就能得出经过实践的数据管理和设计原则。这些过去的存储技术在今天仍然具有很强的借鉴性,将可能作为本研究的主干。实现永久存储,我们必须先回顾过去的技术开发,将其作为指南,思考出基于以太坊的区块链永久存储方案。
在20世纪60年代,为了适应不断增长的业务需求,发明了关系数据库。数据库技术的大量应用促生了数字时代,公司开始将现有的业务操作和业务模型转换为数字格式。1970年,E.F数据库管理关系模型的发明者F Codd提出了数据库规范化流程,通过消除数据冗余,提高数据完整性,有效防止数据异常。即使在今天,数据库规范化仍然是数据库设计的最佳实践。50多年来,关系数据库及其完善的数据建模实践一直是数字时代转型的主要动力。
20世纪90年代末,在定义SGML的继承者XML(可扩展标记语言)方面达成了共识,后者可以更好地适应互联网。XML的主要作用是作为互联网中不同服务器客户端通信的数据传输媒介。随着XML的广泛使用,人们创建了服务于不同应用场景的标准,如HTML、SVG、SOAP等。2001年,提出了定义和验证XML数据模型结构的XML模式。XML模式使开发人员能够指定自己的XML数据模型,并快速验证数据模型的正确性。开发人员还进行了各种研究,从而将规范化的数据库成熟实践应用于XML。随着XML的发展需要注意的一件事是,与关系数据库一样,XML遵守可靠的数据建模原则,以及数据与模式分离。
2008年全球金融危机,中本聪发表了一篇题为《比特币:一个点对点电子现金系统》的论文。论文将蓝图设定在如今被称为区块链的位置,一种不可变的分布式账本,能够充当一个安全的点对点交易平台。使得完全分布式的数据源可以被看作是真实的单一来源,从而消除了第三方验证,并减少了交易时间。这一发现不仅引发了金融革命,也引发了世界其他地区的革命,因为这意味着人们不再需要依赖几家中介机构来验证交易。有了比特币,货币互联网诞生了,通过互联网实现了一种高度匿名、快速的新式金融交易。过去的几年,区块链被认为是web 3.0的催化剂和主要驱动力。
2015年2月,星际文件系统(IPFS)发布。由协议实验室的Juan Benet发明的IPFS允许用户在点对点网络上共享和托管数据。IPFS使用内容寻址和哈希来惟一地标识每个文件的内容。如果文件的内容更新或更改,则会有新哈希关联到这个文件。
2015年7月,区块链生态系统的重要新成员以太坊正式上线。以太坊是Vitalik Buterin的创意,它支持智能合约,赋予区块链技术“无限”的功能。区块链技术被认为正在成为新的互联网。用户现在可以用一种称为“Solidity”的图灵完整编程语言来编写功能。借助区块链技术的力量和以太坊的可扩展性,任何形式的人类交易现在都可以实现数字化,无需中间人。到目前为止,以太坊是区块链的第一个应用平台,是区块链生态系统中的一个重大升级——也就是区块链2.0。
2015年11月,Fabian Vogenstellar提出了ERC-20代币规范。该规范定义了6个基本功能,可以帮助在以太坊网络中创建新的代币。这意味着人人都可以访问以太坊网络,创造自己的代币。这就建立了“无限”以太坊平台成为头号代币应用平台。各种各样的公司通过遵循ERC-20代币标准轻松地推出了自己的私募ICO。目前,以太坊生态系统的ERC-20代币标准似乎很有可能成功且高效地将区块链功能从单一加密货币平台扩展到多代币平台。然而,以太坊的设计不仅仅是一个多代币应用平台,它还是一个图灵完整且可信的分布式计算平台,能够将任何人类交易完全数字化,无需一种中心化机构。
2017年7月,IBM发布了名为Hyperledger的区块链技术。这种区块链技术支持可扩展的数据模型,主要服务于那些想要升级自己的业务,将其放到区块链上的公司。Hyperledger旨在将不断演变的商业网络数字化,它使用了一种可升级的商业网络应用程序,用户可以很容易地改变其永久存储层和商业层。Hyperledger和以太坊之间有很多不同之处,但是Hyperledger和以太坊最根本的区别是其许可架构,Hyperledger为不同的实体设置分离的数据和业务逻辑的访问控制。
2017年10月,JP摩根发布了基于以太坊的区块链Quorum,启用一个带有许可架构版的以太坊。私人公司现在可以开发自己的基于以太坊的私有网络,并将自己系统转换为基于以太坊的区块链。此外,通过零知识证明保护数据隐私,允许在网络中生成完全匿名的交易。如今,企业能够创建他们自己的许可生态系统,以适应任何商业数字化的到来。
在2020年2月,Enigma 主网启动。Enigma是一种基于以太坊的区块链,它在加密数据上执行计算。它诞生于Guy Zyskind在麻省理工学院的论文,旨在将数据隐私引入公链。有了这个,用户现在可以拥有一个保护隐私的平台,它可以通过一个enclave(头等仓:指定位址空间)对数据进行加密和安全处理。
这些技术彻底改变了信息时代的商业运作方式。有一些原则我们需要注意,这些原则在推动信息时代发展到今天的过程中发挥了重要作用。我们可以借鉴1970年的经验,当时非常重视通过标准化过程来高效地组织数据。我们可以尝试将数据从这个模式中分离出来,以一种松散耦合的方式管理数据库更改。我们可以借鉴ERC-20代币标准,在管理智能合约的功能方面拥有一套通用的接口,可以应用于任何类型的数据模型和数据模式。目前还没有将基于以太坊的区块链作为永久存储解决方案的标准设计,如果需要通过基于以太坊的块链创建复杂的永久存储,我们必须首先考虑这些原则。
目标
我们可以在基于以太坊的区块链之上设计永久层。特别是:
1.设计能够强制数据规范化的合约。
2.设计数据层合约,将数据和模式分离。
3.为每个数据层合约设计通用接口。
4.设计的合约是可扩展和可升级的,通过使数据层模块化,将每次升级的成本降至最低。