今天,区块链已经成为一个热词。在一系列新兴的分布式账本技术中,区块链已成为世界上最丰富、发展最快的分布式网络,如比特币、以太坊等,都是可用于交易和资产交换的可信媒介。自2009年推出比特币以来,区块链技术在其价值、可行性、受欢迎程度等方面经历了许多起伏。然而,在2020年,区块链的可行性已通过各种突破性的用例和技术得到证明。追溯几千年的发展,账本已经成为贸易的中心,账本作为各种资产记录的存储载体,比如记录商品、货币、财产的交换。作为这一概念的延伸,分布式账本本质上是资产存储载体,可以在多个站点、地理区域或机构之间共享。网络中的所有参与者都拥有相同的副本,分类帐的任何更改都会反映给每个人。分布式账本也已经存在了几千年,第一个实现是罗马帝国使用的银行系统,它允许人们参与其所在地区的交易。从1990年代开始,这些想法进一步扩展到数字领域。1991年,一家冰淇淋工厂提出了使用共享分类账的许多分散但相互关联的副本的概念。Stornetta与Haberto合作开发了一种加密安全档案,可以在不泄露其内容的情况下验证记录。这种机制使数字分布式分类账的协作创建远远超出了基于纸质的分类账。这项早期工作导致了分布式账本技术(DLT)的概念,定义为在没有中央管理员或集中式数据存储技术的情况下跨多个站点、国家或机构复制、共享和同步数据的共识。其中,分布式账本技术(DLT)各部分定义如下:分布式:分布式体现了其去中心化而非中心化的特点;分类帐:分类帐代表记录的数据库;技术:该技术定义了同步数据的协议,使得数据库可以以去中心化的方式运行,而不需要中央机构来管理它。文中提到,DLT和区块链经常被当作同义词使用,但实际上,区块链是一种特殊类型的DLT,它包含自己的一套规则和功能,包括将交易组织成区块链。区块链定义了一种具体的DLT实现方式,通常具有更广泛的范围和灵活的结构。与DLT一样,区块链是一种分布式账本,无需中央交易中心即可永久存储不可变且不可否认的交易记录。区块链中的算法将若干笔交易组合在一起,一个一个地形成区块,并将每个区块添加到现有的区块序列中,形成一条链,顾名思义。与传统的数据库架构相反,区块链需要参与者之间达成共识,新信息被收集到块中并使用散列加密签名链接到先前的块。此过程可确保可验证性,因为如果不更改散列值就无法对信息执行任何操作,并且每个散列值构成该信息的一部分,被视为唯一代表数据内容的数字指纹。网络上的每个节点都维护分类帐的共享副本,并且要进行同步,需要点对点网络以及共识算法以确保在节点之间添加和复制块。有一种称为工作证明(PoW)的共识算法,其中称为矿工的特殊节点参与该过程,该证明过程称为挖矿。在PoW中,矿工通过解决复杂的数学难题相互竞争,第一个解决难题的人就是获胜的矿工。获胜的矿工验证新交易,将其记录在区块链上,并获得数字代币奖励。但是,交易记录过程一般都很慢,通常需要几秒钟才能添加一个块,而比特币使用的是PoW机制。虽然区块链最著名的是比特币背后的技术,但现在有数百种不同的区块链提供加密货币以外的各种功能。此外,PoW是为开放的公共网络设计的,因此一般不适合大多数企业应用。特别是在国防部的情况下,网络是私有和安全的,允许使用不需要使用加密货币或令牌的PoW以外的更有效的共识算法。例如,在流行的Quorum企业区块链中使用权威证明、拜占庭容错或基于Raft的共识,每秒可实现数千笔交易。公立还是私立?区块链可以是公共的(public)或私有的(private)。顾名思义,公链不需要权限访问,因此网络是完全公开的,就像比特币一样。公共区块链往往比私有区块链更加去中心化并且运行速度更慢。今天的大多数区块链都是私有的,需要访问权限才能参与,通常关注两个主要方面:谁可以加入网络?谁有权访问哪些交易?通常,私有链的所有者可以定义谁可以参与网络,定义谁可以访问网络上的内容。有关私有链的信息通常仅由其批准的成员验证。对于私有链,有许多不同的方法来定义谁可以访问什么。在更高的层次上,可以使用现有的认证和授权机制来确定谁可以访问网络以及每个用户可以访问网络上的内容。但是,网络本身可以定义更细的粒度。例如,Quorum在节点级别和事务级别定义权限。它使用网络权限来定义哪些节点可以连接到给定节点,以及给定节点可以连接到哪些节点,这确保只有列出的节点才能成为网络的一部分。其次,Quorum所称的EnclaveEncryption以仅对网络的一部分私有的方式对有效负载/交易进行加密。钱包和加密签名大多数区块链都使用钱包的概念,最初以这种方式命名是因为它存储了一个特殊的密钥,可以访问加密货币。然而,现在甚至在不使用加密货币的网络上也使用钱包,并且包含加密凭证,这些凭证可以识别网络上的用户/钱包并允许用户签署交易,从而使每笔交易都可以识别。可以使用非对称密钥系统生成一个简单的钱包。这些系统有两个密钥:一个可以共享的公钥和一个保密的私钥。对于区块链,它们构成了使用这两个密钥和派生密钥(即地址)的钱包的基础。包含:私钥:不能公开的密钥;公钥:可以公开的密钥;网络上的地址:通常使用公钥的哈希码生成。由于哈希码是一种单向函数,因此无法从该地址推导出公钥。区块链中的每笔交易都有一个所有者,可以通过使用钱包中的私钥和交易内容创建的数字签名来识别所有者。从技术上讲,数字签名是用用户的私钥对交易内容的哈希码进行加密。这提供了一种机制,用于识别交易的创建者和验证交易的内容没有改变。事实上,在区块链中,这种哈希码验证会执行两次,一次是每个交易,一次是每个区块。将大数据存储在区块链上?如上所述,将数据存储在区块链上可确保其完整性和不可否认性。但是如果数据很大呢?大数据将使区块链迅速膨胀,使其成本高昂且效率低下。这个问题的解决方案是使用所谓的链下数据。链下数据允许在链上存储数据的指纹或哈希码,并将数据存储在外部存储介质中。散列码是一种加密机制,可为任何大小的文件生成固定大小的指纹。所以通过这种方式,几乎可以保证没有两个文件会生成相同的指纹,这意味着哈希码唯一地代表了文件的内容。所以如果我们将一个文件的哈希码存储在区块链上,然后将该文件存储在另一个存储介质中,我们可以确保两件事:文件的内容自存储以来不会被改变:因为如果它被改变了,哈希码将与外部存储的文件不匹配;识别存储外部文件的用户:因为每笔交易都是由用户使用他们的钱包签名的。链下是跟踪区块链上的外部文件或数据集的绝佳策略,因为它最大限度地减少了链上存储,同时为外部数据提供了不可否认的审计跟踪。这意味着区块链可以与现有数据和系统无缝使用,极大地保证了数据的完整性和可追溯性,并且能够跨不同的数据系统和应用程序聚合多个数据副本。就在几年前,我们放弃Web2.0(即Google和Facebook等“大型科技”公司)的想法还不切实际。但是分布式共识协议的出现使得点对点交易取代了依赖中央机构来存储或传输数据。比特币和以太坊证明了这一概念,并为未来的发展提供了巨大的可能性。注:本文翻译自《POTENTIAL USES OF BLOCKCHAIN BY THE U.S.DEPARTMENTOF DEFENSE》
