For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
随着互联网的都不发展,消费者对区块链技术和数字虚拟货币的认知程度也在不断的提高。今天,我们就一起来了解一下区块链技术的基础运算方法都有哪些结构构成的。下面我们就一起来了解一下具体情况吧。
构成计算技术的基本元素是存储、处理和通信。大型主机、PC、移动设备和云服务都以各自的方式展现这些元素。各个元素之内还有专门的构件块来分配资源。
本文聚焦于区块链的大框架:介绍区块链中各个计算元素的模块以及各个模块的一些实现案例,偏向概论而非详解。
区块链的组成模块
以下是去中心化技术中各个计算元素的构件块:
存储:代币存储、数据库、文件系统/blob
处理:有状态的业务逻辑、无状态的业务逻辑、高性能计算
通信:数据、价值和状态的连接网络
存储
作为基本计算元素,存储部分包含了以下构件块。
代币存储。代币是价值的存储媒介(例如资产、证券等),价值可以是比特币、航空里程或是数字作品的版权。代币存储系统的主要作用是发放和传输代币(有多种变体),同时防止多重支付之类的事件发生。
比特币和Zcash是两大“纯净”的、只关注代币本身的系统。以太坊则开始将代币用于各种服务,以实现其充当全球计算中心的理想。这些例子中代币被用作运营整个网络架构的内部激励。
还有些代币不是网络用来推动自身运行的内部工具,而是用做更高级别网络的激励,但它们的代币实际上是存储在底层架构中的。一个例子是像Golem这样的ERC20代币,运行在以太坊网络层上。另一个例子是Envoke的IP授权代币,运行在IPDB网络层上。
数据库。数据库专门用来存储结构化的元数据,例如数据表(关系型数据库)、文档存储(例如JSON)、键值存储、时间序列或图数据库。数据库可以使用SQL这样的查询快速检索数据。
传统的分布式(但中心化)数据库如MongoDB和Cassandra通常会存储数百TB甚至PB级的数据,性能可达到每秒百万次写入。
SQL这样的查询语言是很强大的,因为它将实现与规范区分开来,这样就不会绑定在某个具体的应用上。SQL已经作为标准应用了数十年,所以同一个数据库系统可以用在很多不同的行业中。
换言之,要在比特币之外讨论一般性,不一定要拿图灵完备性说事。你只需要一个数据库就够了,这样既简洁又方便扩展。有些时候图灵完备也是很有用的,我们将在“去中心化处理”一节具体讨论。
BigchainDB是去中心化的数据库软件,是专门的文档存储系统。它基于MongoDB(或RethinkDB),继承了后者的查询和扩展逻辑。但它也具备了区块链的特征,诸如去中心化控制、防篡改和代币支持。IPDB是BigchainDB的一个受监管的公开实例。
在区块链领域,也可以说IOTA是一个时间序列数据库。
文件系统/blob数据存储。这些系统以目录和文件的层级结构来存储大文件(电影、音乐、大数据集)。
IPFS和Tahoe-LAFS是去中心化的文件系统,包含去中心化或中心化的blob存储。FileCoin、Storj、Sia和Tieron是去中心化的blob存储系统,古老而出色的BitTorrent也是如此,虽然后者使用的是p2p体系而非代币。以太坊Swarm、Dat、Swarm-JS基本上都支持上述两种方式。
数据市场。这种系统将数据所有者(比如企业)与数据使用者(比如AI创业公司)连接在一起。它们位于数据库与文件系统的上层,但依旧是核心架构,因为数不清的需要数据的应用(例如AI)都依赖这类服务。Ocean就是协议和网络的一个例子,可以基于它创建数据市场。还有一些特定应用的数据市场:EnigmaCatalyst用于加密市场,Datum用于私人数据,DataBrokerDAO则用于物联网数据流。
处理
接下来讨论处理这个基本计算元素。
“智能合约”系统,通常指的是以去中心化形式处理数据的系统[3]。它其实有两个属性完全不同的子集:无状态(组合式)业务逻辑和有状态(顺序式)业务逻辑。无状态和有状态在复杂性、可验证性等方面差异巨大。三种去中心化的处理模块是高性能计算(HPC)。
无状态(组合式)业务逻辑。这是一种任意逻辑,不在内部保留状态。用电子工程术语来说,它可以理解为组合式数字逻辑电路。这一逻辑可以表现为真值表、逻辑示意图、或者带条件语句的代码(if/then、and、or、not等判断的组合)。因为它们没有状态,很容易验证大型无状态智能合约,从而创建大型可验证的安全系统。N个输入和一个输出需要O(2^N)个计算来验证。
跨账本协议(ILP)包含crypto-conditions(CC)协议,以便清楚地标出组合电路。CC很好理解,因为它通过IETF成为了互联网标准,而ILP则在各种中心和去中心化的支付网络(例如超过75家银行使用的瑞波)中广泛应用。CC有很多独立实现的版本,包括JavaScript、Python、Java等。BigchainDB、瑞波等系统也用CC,用以支持组合式业务逻辑/智能合约。
Bitshare和Eos也支持无状态业务逻辑。
因为有状态逻辑是无状态逻辑的超集,支持有状态逻辑的系统也自然支持无状态逻辑(但代价是增加复杂性,可验证性方面也要考虑更多问题)。
BigchainDB、Bitshares、Eos还支持事件。它提供了一种持久的层级,使功能更接近有状态的业务逻辑(感谢IanGrigg指出这一点[2])。
有状态(顺序)业务逻辑。这是一种在内部保留状态的任意逻辑。也就是说,它有记忆,或者说它是一种带有至少一个反馈回路(和一个时钟)的组合逻辑电路。例如,一颗微处理器有一个内部寄存器,根据发送给它的机器码指令进行更新。更一般地说,有状态的业务逻辑是一个图灵机,接受一系列输入并返回一系列输出。有这种(实际近似)表现的系统被称为图灵完备系统[4]。
以太坊是知名的使用有状态业务逻辑/智能合约的区块链系统,其智能合约直接在链上运行。Lisk、RChain、DFINITY、Aeternity、Tezos、Fabric、Sawtooth和很多其它系统也有智能合约。运行“在某处”的代码是个强大的理念,有很多使用场景。这也能部分解释为什么以太坊一飞冲天,为什么它的生态系统如此兴旺,以及为什么会有这么多竞争者在这一领域崛起。
因为顺序逻辑是组合逻辑的超集,这类系统也支持组合逻辑。
正如DAO黑客所示,代码中的小错误可能导致严重后果。芯片产业采用的形式化验证也能在这里发挥作用,以太坊基金会正在这方面做出努力。但它有规模限制:对于组合电路,可能的映射数量多有2^(输入数量)种。对于时序电路,内部状态的上限是2^(内部状态变量的数量),前提是内部的变量都是布尔值。例如,对于一个带有3个输入的组合电路,它有2^3=8种可能的状态供验证。但如果它是一个带有32位寄存器的时序电路,要完整验证就要检查2^32=42亿种状态。这一限制约束了时序电路的复杂程度(如果要保证可信度)。“按结构修正”是另一种验证有状态智能合约的手段,比如Rchain使用的rho微积分。
高性能计算(HPC)。这是一种处理“重负载”计算任务的过程,诸如渲染、机器学习、电路模拟、气象预报、蛋白质折叠等任务都是这种类型。这类计算任务往往花费几个小时、甚至数周时间,运行在整套机器集群上(CPU、GPU甚至TPU)。
这些方法可以让HPC去中心化:
Golem和iEx.ec可以用来组成去中心化的超级计算机及相关的应用框架。
Nyriad可以组成存储处理框架。基本上这个处理过程与中心化的存储是放在一起的(Nyriad也有适合后者的方案)。
TrueBit实现三方计算,并进行后期计算检查(空闲时进行隐式检查,出现问题时进行显式检查)。
有些人只是用VM或Docker容器执行复杂的计算任务,将结果(VM终状态或单纯的计算结果)放到blob存储里,只提供有限的访问权限。然后他们把存储访问授权卖给容器使用者,比如代币读取权限。这种方式需要更多客户端来验证结果,好处在于技术都很成熟。当TrueBit成熟后,这种方法自然会与其融合。
通信
这一节我们会谈到三个也是后一个基本的计算元素,通信。描绘通信框架的方法很多,我会重点介绍网络连接。它有三个层级:数据、价值和状态。
数据。60年代,#诞生了。它的成功催生了一系列类似的网络,诸如NPL和CYCLADES。新的问题随之出现:它们无法互相交流。Cerf和Kahn在70年代发明了TCP/IP来连接这些网络,创建一个网络组成的联网系统,也就是今天我们熟知的Internet。TCP/IP是当今网络连接的事实标准。OSI协议栈曾经是它的竞争对手,但很早就消亡了;然而讽刺的是,OSI的模型被证明是有用的。于是,虽然TCP/IP历史悠久,但它仍然是连接网络数据的去中心化构件。
Tor项目可以被视为TCP/IP的上层,用来保护用户的隐私。然而它有很多中心化的特点,更不要说它获得了国防部的资助,令很多人不满。代币化的类Tor项目正在兴起,可以拭目以待[2]。
价值。TCP/IP只在数据层连接不同网络。你可以复送分包——将一个分包一次发送到很多目的地——也无所谓。但如果要在网络中发送价值时,该怎样连接网络呢?比如比特币到以太坊,乃至SWIFT清算网络到瑞波XRP网络。你需要代币能一次只发送到一个目的地。防止重复发送的一种联网方式是使用汇票,但这种做法往往消耗很多资源。但是,我们可以只保留汇票的核心要素,抛开信任中介,使用密钥托管。爱丽丝可以通过马洛里向鲍勃汇款,款项经过马洛里之手但他不能动用(并且有期限约束,马洛里不能一直占着款子不放)。这就是跨账本协议(ILP)的核心要素。这也是双向挂钩(想想侧链)和状态管道(比如Lightning和Raiden)的理念;但重点完全在于为价值交换连接网络。除了ILP,Cosmos等系统会更复杂一些,以换取更多便利。
状态。除了连接价值网络,我们能否更进一步?想象一个计算机病毒,其带有自己的比特币钱包,可以在网络间跳转;或者以太坊主网中的一个智能合约,可以将其状态转向另一个以太坊网络乃至另一个兼容网络?或者,为什么将AIDAO局限在单一网络中?
于是诞生了Polkadot,用来连接网络的状态。Aeternity也介于价值网络和状态网络之间。
作者:Trent McConaghy
译者:王强
来源:infoq
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。