社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  区块链

区块链计算的四个阶段

Unitimes • 4 年前 • 375 次点击  
点击上方“Unitimes” 可以订阅哦!


unitimes.io

全球视角,独到见解


作者 | TryBlockchain

来源 | 区块链技术博客


传统的商业通常选址于居民区,公共设施健全,法律,安全,以及充满经济活力的地方。类似的,开发者基于共享资源,如良好的用户基础,数据,安全,以及稳定的运行的环境来获得好处。


这其中的核心是可组合性。如果现存的资源可以作为构建块,被整合到更高层的应用中,我们就认为平台是可组合的。可组合性非常重要的,因为它可以让开发者以更少的资源做更多的事情,最终,会带来更快,复合的创新。


区块链天然无需信任的特质打开了可组合性的大门。因为它允许开发者不用担心底层依赖,而在共享的基础设施之上进行开发。区块链既是无权限的(开源),同时又是有状态的(类似API)。


在研究区块链计算的演变时,我将勾勒出四个不同阶段的核心模型,每个阶段都有其各自的架构,并以可组合性来进行分层:


  • 计算器时代 - 特定于某个应用的,组合性有限

  • 大型机时代 - 图灵完备,高可组合性

  • 服务器时代 - 特定于某个应用的,兼容可组合性

  • 云时代 - 图灵完备,可扩展的组合性


接下来会根据上面的分类,一一阐述其各自的优势与劣势。事先需要说明的是,这个领域仍有许多待解决的,开放研究中的问题,我们并不清楚事情将会如何发展。每一个阶段都是值得尝试的实验。


计算器时代


比特币是区块链计算的先驱。它是一个特定问题的全栈式解决方案,即电子黄金。除了简单的支持查看余额及转账外,比特币提供了一个脚本语言,可用来构建更复杂的功能。


有一定数量的项目使用了比特币的脚本语言来构建更高层级的应用。比如,Proof of Existence [1] 使用 OP_RETURN [2] 的数据项创建了一个证明,证明某人在某个给定的时间有某个电子文件。而其它项目,如 Colored Coins [3] 和 Counterparty [4] 则基于比特币的安全网络中创建了自己的代币。但其它一些进一步扩展比特币功能,代币功能的尝试,受限于比特币潜在的脚本语言的限制。


许多人辩解到,去中心化的货币系统最重要的特性是安全,而不是可编程性,由此有限的脚本语言能力是一种特性,而不是一个bug。从这个角度,我们可以更多的把比特币视作一个计算器,而不是一个电脑(这是一个肯定的评价)。它是根据一定目的构建的,在其自身的任务上完成得很好,只是对于渴望提供更多功能及创建新应用的开发者来说,需要向新架构演进。


大型机时代


基于比特币开创的先进理念,以太坊通过包含一个图灵完备的虚拟机,泛化了区块链计算机。使开发者可以透过一个去中心化的机器网络,部署和运行任何程序。


其中,为了确定性,网络中的每个节点都必须执行每个程序的函数。这使得整个网络缓慢且成本高,但以太坊在一个方面是无与伦比的:它的计算是无需信任的。可以期望每个程序能被确定的执行(可验证)和输出,甚至状态都是所有人可见的。以太坊平台为开发者提供了与应用与关的,中立的构建块,用以组合为更高层级的应用。我们看到了下面这一切的发生:


Marble [5] 支持闪贷,实现去中心化交易所间的对冲:“交易者可以从Marble的智能合约银行借款,从一个DEX上购买代币,再在另一个DEX以更高的价钱卖掉代币,还款给智能合约银行,获得其中的对冲收益。所有的上述一切,可以在一个原子交易中完成。”Marble通过以太坊的全局唯一的虚拟机执行不同项目中的一系列功能,并最终得到了一个大家都可以使用的简单功能。


Primotif [6] 是一个金融的衍生品,跟踪指数,就像标准普尔指数一样。它使用 Augur 来跟踪指数价格,使用 dYdX 做空代币来对冲 ETH 的波动,而 dYdX 的底层使用Maker的Dai这种稳定币。


通过组合而产生的网络效应(Network effects)不是一个新出现的现象。下面是 Biz Stone,Twitter 的创始人,在2007年关于他们的API的可组合性的说明:


“API是最重要的,或者无可争议的,是我们做Twitter时最最重要的一件事。它允许我们,首先,让服务非常简单,而简单的API能让开发者基于我们为基础设施进行开发,并随之带来更好的创意,构建了类似 Twitterrific,这样一种美妙优雅的使用的 Twitter 的方式,一种我们在如此小的团队的情况下,所不要能达到的。API 非常容易达到比网站大10倍的流量,这些对我们来说真的非常重要。”


遗憾的是,组合性并没有持续的出现在Web2.0的场景中。其中一个问题是我们没有办法通过API传输价值,而且没有有效且公平的方式来管理平台规则,比如,广告展示。这导致了平台与开发者之间的激励错位,最终回到数据的中心化上,从而也丧失了第三方所带来的创新。


我的合作伙伴Chris已经写了一篇关于加密代币可以如何可持续的,构建开放的网络更好的引导激励的文章[7]


这就是区块链的大型机时代。存在着由于组合所带来的无可争议的早期的网络效应-安全性,用户基础,数据,运行环境-但随着更多的应用,开始达到大型机的资源限制,最终让边际效应递减。反过来,增加了每个用户和开发人员的成本。通过下图大家可以看一下:

由于资源限制,每个用户的成本逐渐提升,并最终超过组合(共享资源和开发者的网络效应)所带来的好处。


服务器时代


为了寻求可扩展性,一些开发者越过了可组合性和共享所带来的网络效应,而是回归到特定应用的架构。Polkadot 和 Cosmos 的项目愿景是这些尝试中的一部分,异构链-每一个都需进行个性化的调整来接入网络从而代表其自身。Polkadot 的 Substrate [8] 和 Cosmos 的 SDK [9] 都是模块化的区块链构建包来创建你自己的全栈“xx链”。


基于一个底层包来全栈开发一个应用的工作量,比基于现有的网络资源开发大得多。对于开发者来说,这意味着从状态机到应用接口都需要开发,搭建一个在这个网络上的最小安全(Minimun viable Security)网络 [10],从而实现与网络中的其它人互操作。


从历史上来说,全栈的策略已经证明在推动未来并将早期技术推向市场方面取得了成功。Wang Technologies [11] 在PC应用来临前的早期,提供了集成软硬件的文字处理解决方案。此后,AOL捆绑了ISP,一个内容分发系统,邮件以及即时消息-在网络建设的早期提供了良好的用户体验。RIM则将移动设备,操作系统和早期应用程序(如BBM和推送电子邮件)捆绑在一起,以促进智能手机的采用。


全栈平台,推动未来


在网络时代的早期,每个网站都有一个自建的服务器。为了保证端到端的体验,开发者也需要掌控基础设施。在区块链的下一阶段,也许会类似。这就是我所称为的服务器时代。


服务器时代的区块链牺牲组合性来换取控制。控制体现在两个方面:对终端的用户体验的控制,以及更多的对网络资源成本的精细化控制。服务器时代架构的一个前提假设是,网络资源,比如实现安全,存储,及计算是受限的。也就是说,随着应用被更多人采用,网络可以扩容。这与大型机时代形成对比,其资源成本随着网络中其它流量的变化而变化(译者注:比如加密猫让以太坊网络崩溃)。理论上来说,全栈的服务器时代架构可以减轻大型机 时代的风险。


服务器时代区块链与其前辈不同的是,它仍然是区块链。前面所提到的 Wang,AOL 以及 RIM 都是封闭的平台,服务器时代的区块链可验证,公开的数据结构,可对激励编程。这些特质允许它们可以组合进 hub(这正是Cosmos和Polkadot正在做的)。一个区块链可以是另一个区块链的轻客户端,开发者可以构建一个原子交换(Atomic swap)或者扩展其功能。


这意味着,即使是服务器时代的区块链仍旧是可组合的,但与大型机时代不同,是从一个完全不同的层面。这些区块链计算机需要一种全新的交互标准协议,以允许跨应用的相互组合,没法采用大型机 时代由于大家都在同一个虚拟机上,所实现的方式。这些交互接口正是当前研究中和标准化的内容,无疑在组合性方面,会增加开发的复杂性。但除了这个缺点外,捆绑的好处可能会成为新一波区块链架构的催化剂,我认为在最近,我们会看到更多的项目开始讨论这种全栈的方式。


云时代


云时代意味着采用一种可扩展的,通用的无需信任的计算(trustless computation)的基础层。这是理想的未来,可组合性仅受限于创造性,没有扩容与交互的复杂性,创意间可以组合而不会带来边际收益的下降。


如何实现这一切正在研究中。服务器时代架构的支持者认为,通过将异构区块链的链内通信抽象并标准化,最终能达到云时代的体验。其它的,比如以太坊2.0(Serenity)和 Dfinity 正在对同质的,图灵完备的链融合为支持分片的版本。你可以把它想像为许多的大型机,它们共享安全,但在许多同质的虚拟机上分离状态和计算。还有一些其它的正在研究全新的架构,以将计算移到链下进行。


基于这个领域的研究者的数量,以及解决方案所获得的潜在奖励,如果“云时代”区块链计算在所谓的“服务器时代”的尾巴上炙手可热,我也不会感到惊讶。我们已经部好线缆和数据中心-云时代区块链计算更多的是软件层面的创新。当我们实现时,很明显,无需信任的组合将会成为开发者的超级力量,一旦开发者可以通过简单的工作来达成更大的事时,我们将会受益于更容易的合作,创造性,以及互联网上的选择性。


参考链接:

[1]https://en.wikipedia.org/wiki/Proof_of_Existence

[2]https://en.bitcoin.it/wiki/OP_RETURN

[3]https://en.bitcoin.it/wiki/Colored_Coins

[4]https://counterparty.io/

[5]https://marble.org/

[6]https://devpost.com/software/primotif

[7]https://medium.com/@cdixon/crypto-tokens-a-breakthrough-in-open-network-design-e600975be2ef

[8]https://www.parity.io/what-is-substrate/

[9]https://github.com/cosmos/cosmos-sdk

[10]https://twitter.com/jessewldn/status/1068705558415503362

[11]https://en.wikipedia.org/wiki/Wang_Laboratories



【文章版权归原作者所有,其内容与观点不代表Unitimes立 场。转载文章仅为传播更有价值的信息,合作或授权联系请发邮件至 editor@unitimes.media或添加微信unitimes2017】

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/33237
 
375 次点击