作者|二十三画生?编辑|郝方舟
出品?|?Odaily星球日报
2020?年是DeFi大爆发的一年,不仅产生了新的造富效应,而且证明了区块链的价值。DeFi应用在经历去泡沫化后继续扬帆起航,在CeFi原本的领地内“攻城拔寨”。从市值上来看,DeFi新龙头们也陆续超越了不少“老主流”。
不过,站在的应用角度,Dapp所属场景目前仍主要围绕交易、借贷、理财等金融业务,公链们也依附在DeFi热点之上,试图复制以太坊生态。反而是像抖音、滴滴、美团等更高频的“传统互联网应用”,由于当前的区块链基础设施难以支撑,而未被搬到链上。
伴随着DFINITY的成熟,一个基于区块链的互联网计算机诞生了。这套兼顾链上治理和传统开发习惯的系统希望能降低开发者的准入门槛,同时放大创业者的业务想象力,并借此撼动传统互联网应用时代,制造出下一巨大的链上创业风口。
就像仅有几百行代码的Uniswap通过以太坊智能合约对CEX发起冲击一样,DFINITY基金会以不到1000?行代码开发了一个抖音类链上应用CanCan,证明了自身的可用性,也吸引来一众优秀开发者前来试水。但在新时代公链们都快马加鞭的2021年,DFINITY的进度能否跟上大部队,也是开发者关心的重点。
考虑到DFINITY是一个异常庞大的区块链计算机工程项目,我们将在下文先带读者从外部鸟瞰一下DFINITY的大体架构,再对比DFINITY与其他公链以及传统互联网的异同,最终,在理解DFINITY的架构和对链上开发体验的革命性改变的基础上,一幅波澜壮阔的未来互联网蓝图将呈现在大家眼前。
在此,Odaily星球日报也要特别感谢多位资深的区块链开发者,SNZ技术总监NEO、DfinityFun社区主理人/OureaGroup联合创始人Punk、HashQuark高级区块链研发工程师Flanker、DFINITY核心开发者Paul,从不同的视角评价DFINITY,提供了宝贵的观点和见解。
从技术架构上理解DFINITY
DFINITY最初的构想始于2015年;团队在2016年十月创立了DFINITY基金会,并在2017年1月建立了网络层,彼时的核心目标还是希望解决以太坊的一些缺陷。伴随技术发展,以及团队获得更多资金支持并吸纳更多人才,DFINITY在之前的基础上重设了愿景,致力于成为互联网计算机。
DFINITY基于区块链计算协议ICP运行,采用了分层结构,主要包含软件容器、子网、节点以及数据中心。它可以看作是由很多个子网组成,在每个特定功能和属性的子网中有多个软件容器,在软件容器中包含了用户上传的代码和状态。DFINITY的最底层是托管专用硬件的独立数据中心,数据中心之上运行节点,节点负责处理子网容器中的数据和状态执行。
DFINITY结构图
我们可以借用生物书中的“生命体构成来”理解DFINITY的架构:数据中心就像支撑生命构成的基础物质元素,节点则像是神经元,这些神经元连接和控制众多器官组织。每一个软件容器则像一个独立的细胞,一组软件容器组合形成的子网就像一群细胞聚集形成的器官,不同的器官具有不同的功能,当众多器官和神经元网络连接就会形成一个完整的个体,实现非常复杂的功能和操作。
EOS创始人BM宣布辞去自己在EOS母公司Block.one的CTO职位。这一当年最被寄予厚望的以太坊竞争者,就这样退居后位,曾经的一票以太坊竞争选手,都也逐渐失去颠覆以太坊的实力。而讲着跨链扩容故事们的新兴公链们则更多像是以太坊的补充者,重复着以太坊生态的建筑风格。
DfinityFun社区主理人、OureaGroup联合创始人Punk在接受星球日报采访时就表示,目前包括以太坊在内的很多公链还是聚焦在TPS等问题上,但如果不解决用户体验与脆弱的中心化连接点这些问题,都谈不上带来很大的变革。但是DFINITY从底层开始就进行了巨大的创新,站在新赛道的角度向世界介绍区块链。
DFINITY基金会创始人兼首席科学家DominicWilliams在「2020FAT价值时代高峰论坛暨颁奖盛典」上曾表示:”互联网计算机是区块链的第三次伟大创新,第一个创新是比特币,它引入了货币的概念,现在正在扮演着数字黄金的角色;第二个创新是以太坊,它引入了智能合约,也推动了去中心化金融DeFi的革命;这第三项重大创新,就是互联网计算机,这是第一台真正的、通用的区块链计算机,它让我们重新去构想,我们构建一切的方式,一种无缝的、无限性能的区块链。”
Dominic的这段话简述了DFINITY三大特性:可以构建各类应用、无缝连接、无限性能。我们也就这三个维度具体展开。
1.DFINITY可以构建各类应用。以太坊主导的区块链生态目前集中在DeFi、加密艺术和游戏等领域,同时这些Dapp在功能实现上还较为基础。目前的公链市场上暂未出现一个可以支撑各类型多功能应用的底层。
DFINITY则“以举例的方式”挑战了这一现状。DFINITY基金会为了证明开发者可在其上构建一切应用,用不到一千行代码开发出一个类似抖音的应用CanCan。不同于DeFi,短视频应用每时每刻都在接收C端用户上传的海量数据,同时也需要随时处理这些数据,让视频流畅播放、用户自由互动。这不失为“用拳头产品证明底层可能性”的好案例。
那假设以太坊实现2.0?的全部功能,也能支持短视频DAPP的顺利运行吗?
SNZ技术总监NEO在接受采访时表示,以太坊2.0功能如果全部实现了,有可能产生一些更复杂应用的。但是以太坊在底层架构上并没有自身的数据存储层,目前区块上只能保存通证转账交易等一系列数据,未来也是很难解决存储类似抖音这样的海量数据。而DFINITY在开发设计时,在底层就设计了原生数据存储功能。这也让DFINITY具有强大的后发优势。
对此,我们追问了以太坊和IPFS结合的可能性。NEO认为,从目前看,IPFS更多是进行静态数据存储,大家对其网络可用性存疑,还不太适合做大量应用型动态数据存储。整体上,以太坊目前更适合作为资产结算层,存储则是更多放在中心化的一些存储上;未来,以太坊也可能本着分散化原则采用更去中心化的存储方案。
此外,Punk认为,相比在以太坊等公链上开发,DFINITY在代码实现上非常灵活高效。公链上的智能合约是“死”的东西,需要外部触发;但DFINITY上的容器一直处于一个激活状态,编写的程序通过一个通讯协议,可以实现主动触发。
由此可见,DFINITY的初始设置考虑到了更多类型应用的需求。
2.DFINITY可以做到无缝连接。在DFINITY上,开发者可以直接在互联网本体上构建程序和应用,不需要云服务、数据库或支付接口等。开发者由于不需要考虑很多中间件,因而可以实现无缝连接地构建应用。
Punk谈到这样一个事情:“前些日子,Metamask更新,它的接口也发生了变化,因为我的前后端是分开的,就需要修,前前后后花了很长时间。作为一个独立开发者,如果想要开发很复杂的应用,这样的事情会占去我大部分时间,那我基本上什么也做不了。而在前后端一体的DFINITY上,不需要自己买前端服务器,或处理中间关于连接的dirtywork。”
Punk进一步补充道,”在以太坊上构建应用,这种连接点的中心化问题是很难避免的。为了方便普通用户使用,目前大多应用都需要构建一个Dapp前端,那就需要购买服务器或者托管在IPFS上,且中间需要构建‘桥’来连接。对于开发者而言,构建起来会耗时费力;更重要的是,如果要开发社交等应用,用户体验会非常差。如果是DeFi挖矿,耽搁一会儿就还好;如果是聊天之类,很多用户是受不了的。“
相比传统互联网,在DFINITY上开发非常方便,不用操心数据库、不用考虑负载均衡、网络分发以及防火墙等等。这为开发者解放出更多时间和精力。
3.DFINITY具有较强性能优势。当DFINITY上的应用需要扩展性能时,原容器可以创建新的容器,或者fork自身。每个额外的容器都会增加整体内存容量,在增加容器数量的同时也会增加整体更新和查询调用的吞吐量。这就是所谓的无限性能。
另外,容器的更新虽然只有一个执行线程,但DFINITY可以允许应用并行地执行很多个容器。这是因为,在DFINITY中不同容器具有不同功能,一个应用会涉及到多个容器,有些容器可能是数据容器,有些可能是信任容器等,容器之间是互相调用的关系,在应用更新时,也互不影响。
除此,DFINITY对“需要更新容器状态的更新请求”和“会修改容器状态的查询请求”进行了区分。后者不会对内存进行永久更改。这样一来,在任何给定时间,容器内可以有任意数量的并发线程来处理查询调用。这些查询调用针对最后确定的状态根中记录的内存快照运行。当进行跨容器更新调用时,如果该调用发生阻塞,DFINITY会允许将执行线程移至新的更新调用。
贴近传统互联网的开发体验和优于传统互联网的特性
不知大家是否发现,上文中Dominic对于DFINITY优势的叙说主要面向开发者群体。这皆因公链B2D2C的传导路径。在底层基础设施的展业过程中,得开发者,则得天下。而对于DFINITY而言,征服“小撮”其他公链开发者只是一小步,“征用”广大传统互联网开发者才是一大步。
我们询问了几位兼具互联网和区块链开发经验的老手,他们选择某个底层最核心的考虑要素。在我们收集到的答案中,开发门槛和迁移成本是高度重叠的两点。关于在DFINITY上的开发体验,几位开发者也有话要说。
1.DFINITY通过简化技术栈和简化开发存储,大幅降低了开发难度。DFINITY核心开发者Paul对此进行了详细解释:”程序员在传统互联网编程时非常复杂,因为很多传统技术都被可靠性和安全性所局限,但DFINITY在将这两个问题有效解决后,很多中间件不再必要,所以通过简化传统的技术栈就可以有效降低开发难度。更进一步的简化在于存储方面。从前由于存储的不稳定性,我们需要在硬盘上做出备份,但这完全没有必要,最新的硬件技术已经可以解决这样的问题。DFINITY在这个领域进行了较大开拓并发布了数据持久化方案。这个方案使开发者不需要再担心持久化问题,只要程序被写出并没有被删除,它将会一直运行。这从逻辑上对开发者来讲是一个巨大的简化,他们不再把程序想像成一个存在于复杂环境中的应用,而可以在虚拟空间持续运行。“
2.DFINITY的开发语言具有很强简洁性,同时具有很大包容性。目前在DFINITY上用于开发的两个主要语言是:Rust和Motoko。据官方介绍,未来DFINITY业将会支持所有的开发语言。HashQuark高级区块链研发工程师Flanker在接受采访时表示,根据最近在DFINITY上开发的经验来看,首推新的编程语言Motoko,当然它也支持其他很多语言,比如C还有Rust等等。“总体上说开发起来是比较舒服的,而且我们可以直接将前端和后端的代码一起编写,非常像开发一个普通的应用程序。开发完成后部署也是非常的简单,可以支持一键部署,然后还可以通过前端页面进行测试和调试。”
可见,只是贴近互联网还不足以吸引到大量开发者,在体验友好之外,还需要有优于互联网的特性,才能让创业者“不得不”选择新底层。我们也将收集到的开发者眼中的DFINITY优势特点归纳如下:
1.DFINITY提供了安全随机性通道,扩展了互联网应用边界。虽然比特币逐渐走向主流,以太坊上的DeFi应用蓬勃发展,各区块链生态愈加丰富,但仍与传统互联网无法完美连接或兼容。DFINITY的安全随机性通道,可能会是两个世界的桥梁,以API签名比特币和以太坊的合约,创建更符合数字时代的新型互联网。
2.DFINITY具有高度容错性能,不会因为故障而崩溃。从后台来看,进程和容器最大的区别在于,容器在DFINITY子网的所有节点上都存在一个副本,因此是高度容错的。这就是说,当某一进程发生故障时会崩溃,但容器遇到这种情况则将状态会被回滚到当前消息请求开始执行之前,回滚之后的容器可以继续执行新的消息请求。
3.DFINITY具有自动存储,正交持久性功能。DFINITY的底层数据中心使用的是专业内存服务器,容器就相当于运行在内存环境中,开发者在容器内编程,会自动在底层存储,而且可以直接调用,也就是说开发者的读写都在容器中完成,不需要像传统互联网那样先存储在硬盘中,然后需要用时再从硬盘中调用。在DFINITY中,开发人员不必考虑持久性问题,而只需编写代码就可以。
4.DFINITY展示出更多无感的互联网设计原则,同时保护隐私。在互联网上,想要连接到某些软件,需要知道运行该软件的计算机IP地址和该软件正在侦听的TCP端口。在DFINITY上,如果希望调用函数,则只需要知道容器的身份和函数签名即可。另外,为了运行托管的代码,数据中心会向应用开发者以加密货币的形式收取费用,但却无法访问数据,这使得广告商很难在互联网上收集用户活动,起到保护隐私的作用。
由DFINITY带来的创业新风口
既然相比传统互联网,DFINITY有这么多优势,那开发者/创业者将会如何利用“神器”、掀起巨变呢?
Flanker回答说:“你可以想象在我们这个巨大的互联网上运行着一台公共的,虚拟的计算机,其计算资源是足够大的,而且我们可以充分信任在上面的使用和数据安全,因为它是去中心化的,防篡改的,无须信任的。人们可以自由的在上面上传并部署自己的应用供别人使用,而不用投入巨大的服务器租用成本。我认为DFINITY与传统互联网最本质的区别在于,它没有运营主体,任何人可以无需信任就使用上面的应用。”
Dominic曾表示,对于创业者和投资者来说,最大的机会或许与构建"开放式互联网服务"有关。而发布CanCan,也是想以此为应用程序范本,给创业者一些代码展示,激励大家来DFINITY上实现他们自己想要实现的各种应用和功能,创造有高价值的应用。
如果其他涉及海量数据和事务的应用可以在DFINITY上更快速地搭建,那么创业者无需很高的启动成本,即可快速试错,把精力投入到代码之外的业务逻辑上。
Flanker对这一观点表示认同,“之所以看好DFINITY,是因为DFINITY有优秀的区块链共识机制、较快的区块最终确认性以及无限扩容的能力这三大基础,因此能够支持在上面做企业级应用,做出来的项目更有可能是真正能让区块链落地于实体经济的杀手级产品。”
2月18日,由福布斯和DFINITY合办的“万亿美元机遇:新型互联网是如何重塑商业模型想象力”线上活动将围绕这一主题展开讨论。目前已确认嘉宾包括Dominic、EFF执行经理CindyCohn、Mediapolis院长AlanEmtage、ClariNet创始人BradTempleton、Forbes加密与区块链频道副主编MichaeldelCastillo。感兴趣的开发者、创业者可以点击?https://www.forbes.com/connect/event/trillion-dollar-opportunity/?promo=prempost&tr=true?预约活动名额。
路漫漫其修远兮,吾将上下而求索
客观来看,虽在技术上受到不小的认可,但在新生代公链环伺的2021年,仍处于早期阶段的DFINITY需要加快步伐,优先处理紧急且重要的事项。
Odaily星球日报在与开发者们交流的过程中,也收获到他们眼中DFINITY需要解决的问题,以及走向长远目标的更短路径。
Flanker就认为,在选择一个底层前,除了考察开发环境、辅助工具、指导性文档、示例程序代码库这些是否完备等之外,最重要的是开发是否有持续性激励和扶持。一个再优秀的互联网产品如果没有多少人用,也不会成功。“因此DFINITY不仅要能够吸引开发者,同样还要想办法吸引用户来使用,持续性激励和扶持则是很重要的一个推广方式。”
Punk表示,DFINITY的数据中心,要求必须是专业的内存服务器,传统服务器不能用,所以这种门槛和成本会比较高,挡住一批人进来。虽然待生态成熟后,后来的开发者的成本降低完全可以覆盖掉数据中心的高投入,但一开始还是会有中心化的问题。所幸DFINITY的治理系统是完全去中心化的,可以弥补不足。目前大家比较关注的是DFINITY什么时候开源源代码,这样一方面可以打消市场上的一些质疑声,另一方面也可以让开者尽快围绕DFINITY去构建生态应用。
NEO对于DFINITY的开源进度也表示关切,同时他指出:早期比较关心DFINITY生态工具的完善性;其次就是希望整个产品的规划非常清晰,比如社区建设、开发者的复制,以及技术文档等,如果像很多项目仅依靠社区,是挺难发展起来的,官方需要更多做引导工作;再有是希望可以看到在DFINITY上跑出一两款现象级应用,让大家更好认识DFINITY,从而吸引更多人参与进来;最后,比较关心的就是迁移成本和好的迁移工具,比如以太坊上的应用和工具是不是可以很方便的迁移到DFINITY上;另外,如果成本可控,针对传统互联网上的一些应用是否可以很方便地迁移,比如设计“一键迁移“功能,可以将传统应用的代码直接部署在DFINITY上,如果可以,那将产生非常好的效果,DFINITY可以很快获得一部分传统互联网的价值,生态也会很好建设和发展起来。
鉴于在采访过程中,很多开发者以及早期项目参与者都热切关心DFINITY的进度,我们也在下文简单梳理下DFINITY的近期成果和未来规划。
据官方,DFINITY共有五个主要的里程碑:黄铜、青铜、钨、钠、汞主网上线。
2020?年12月18日,基于汞的第一阶段完成,DFINITY基金会初步实现DFINITY主网的去中心化,这使网络神经系统这一算法治理系统能够搭载数千个独立数据中心和数百万台特殊节点机器。
2021年1月6日,DFINITY主网Mercury第一阶段Alpha正式发布,代表着互联网计算机将成为公共互联网的一部分,将ICP作为TCP/IP的补充互联网协议。自主网推出以来,DFINITY已经创建超过40万个区块,NNS正在筹备在2021年第一季度末前入驻32个独立数据中心,并计划在2021年底前入驻100?个,到2030年入驻数千个独立数据中心的目标。
Mercury里程碑现在使互联网计算机走上最终“创世纪”去中心化阶段的短途,涉及NNS以表决神经元的形式向持有人释放ICP功能性代币,并将在处理触发提议后开启,开启时间预计是在2021年第一季度。一旦“创世纪”的需求被触发,超过5万个ICP功能性代币持有者将开始参与网络治理,或解散其投票神经元以释放ICP功能性代币,并将其转换为Cycles用于加强计算。
总结
DFINITY不仅仅是一个公链项目,而是基于区块链构建了更为完善的互联网服务,这是一次不亚于以太坊和比特币的巨大创新。
DFINITY改变了开发者构建应用的范式,让开发者不用再操心数据库,不用考虑负载均衡、网络分发以及防火墙等等,而可以把更多时间用于考虑代码逻辑实现上,这就像把开发者从”农耕时代“解放出来,用机器代替繁琐的工作,而大脑进行更多地创造,这样有可能使得更多富有创造性的应用井喷式的爆发。
对于创业者而言,DFINITY提供了一个巨大的时代风口,一个天才的开发者可以在互联网计算机上低成本构建任何创新性的应用,一旦成功会很难被超越。在以太坊时代,Uniswap的成功就是一个很好的例子,只需要几百行代码,天才性的创造力就不会被辜负。我们将翘首期盼在互联网计算机上出现下一个伟大的应用产品。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。