从Ethereum到Flow--Flow区块链简介

366 阅读12分钟

从Ethereum到Flow--Flow区块链简介

以太坊不具备支持大规模成功区块链游戏的状态,看看Flow区块链和Cadence智能合约语言如何提供优化的解决方案。

在快节奏的Web3世界中,不乏有创新的新技术需要探索。如果你是一个Solidity开发者,希望在一个比以太坊更快、更安全、更具可扩展性的区块链上进行构建,那么Flow是一个你不能忽视的选择。

Flow从一开始就作为较慢的、对用户不太友好的第1层区块链的替代品,它有自己定制的智能合约语言,一种为创建和管理数字资产而优化的语言。

本文将更详细地介绍Flow区块链,解读其智能合约语言Cadence,并看看为什么以太坊开发者应该考虑在Flow上构建。

什么是Flow?

2017年,由加拿大公司Dapper Labs开发的一个新的以太坊收藏品游戏CryptoKitties成为头条新闻,因为它导致以太坊网络大量拥堵,而它只有1万个用户。Dapper Labs的开发人员很快意识到,以太坊网络没有经过优化,无法运营和扩展一个成功的游戏,所以他们开始研究一个替代方案。

Dapper Lab努力的最终结果是Flow区块链--一个去中心化的、对开发者友好的区块链,设计成无需分片就能扩展。Flow为创建和管理数字资产(如NFTs)进行了高度优化。

Flow的四个主要支柱

Flow区块链在其基础上有四个关键支柱。

  • 多角色架构

  • 面向资源的编程

  • 开发者工效学

  • 消费者入职

这四个支柱使Flow与众不同,有助于解决其他区块链通常面临的共同挑战。让我们详细了解一下这些项目中的每一项。

多角色架构

Flow的独特设计采用了一个多角色架构,使网络得以扩展。这是通过一个验证器节点实现的,该节点被分成四个不同的角色:收集、共识、执行和验证。简单地说,收集节点分批,共识节点确保,执行节点完成,而验证节点检查工作。每个节点仍然参与验证交易,但它们各自专攻不同的阶段,有效地提高了交易的吞吐量。

面向资源的编程

Flow的第二个支柱是面向资源的编程。Cadence是一种面向资源的编程语言,用于开发Flow区块链上的智能合约。这种优化的智能合约语言使用强大的静态类型系统,有助于最大限度地减少错误。它还允许使用前置和后置条件,因此开发人员可以强制执行预期行为。我们将在下一节中介绍更多关于Cadence的内容。

开发者工效学

开发者工效学是Flow的第三个支柱。从一开始,Flow的创造者就专注于支持开发者,使他们的生活更轻松。

  • Cadence智能合约语言从一开始就是为了使创建和管理资产变得高效和不容易出错。

  • 开源工具--如Flow JavaScript SDKFlow Go SDKFlow Playground GUI--使开始使用Flow的过程变得顺利。

  • 可升级的智能合约有助于最大限度地减少代码中的错误,在整体上创造一个更安全的生态系统(下文将详细介绍合约的不可更改性)。

  • 内置的日志支持为开发者提供了追踪程序行为的手段。这是许多区块链生态系统无法提供的一个备受追捧的功能。

消费者入职

为新用户创造一个消费者友好的上机体验是Flow的第四个支柱。人类可读的安全性确保用户在运行交易时做出知情决定。例如,Flow的人可读交易不是签署哈希值或混乱的数字和字母,而是确保一定程度的透明度,明确说明用户可能授权的权限。

Flow的账户模型也将用户考虑在内。Flow钱包具有内置的、可选的和模块化的智能合约功能,这些功能可以实现更复杂的授权控制或自动化流程。这些功能反过来又创造了更好的体验,确保用户不会丢失他们的资产,同时也提供了钥匙丢失时的账户恢复选项。此外,多签名支持通过允许用户定期循环使用旧钥匙,为钱包配备了额外的安全性。

什么是Cadence?

与更快、更可扩展的区块链一起,Flow的开发团队创造了一种新的智能合约语言--Cadence。数字资产是区块链开发中最重要的方面之一,现在终于有一种语言可以优化其创建和管理。

Cadence的语法从其他现代编程语言(如Swift、Kotlin和Rust)中获得灵感。它是第一种高水平的、面向资源的编程语言,并利用了强大的静态类型系统。这有效地帮助减少了运行时的错误,确保了预期的行为。

面向资源是什么意思?在Cadence中,特殊的数据类型,称为资源,以线性数据类型为基础,代表Flow上资产的数字所有权。这些资源,如NFT,直接存储在用户的账户中,而不是反映为公共数字分类账上的记录,并且一次只能存在于一个地方。这意味着Flow上数字资产的所有权直接在语言本身中定义,有效地消除了在集中式数字分类账上存储余额所涉及的风险。

此外,Cadence通过执行严格的规则来管理可能的操作,从而改善资产管理。开发人员在明确移动、存储或销毁资源之前,必须用"@"符号定义资源类型。这种对资产的强制管理消除了因代码中的错误而丢失或意外删除资产的可能性,减少了人为错误。

Cadence与Flow类似,建立在支柱上--这次是五个支柱。

  • 安全和保障--Cadence使用强大的静态类型系统,基于线性类型的内置所有权基元,以及对资产管理的基础性关注,以确保代码的预期行为,并尽量减少黑客的攻击载体。

  • 明确性- Cadence的声明性确保开发人员明确他们的意图,使代码更容易阅读、编写和审计。

  • 平易近人--Cadence的语法和语义受到Swift和Rust等语言的启发,使其变得熟悉,而详尽的文档和高效的工具为开发人员创造了一个平易近人的环境,使其迅速上手

  • 开发者体验--Flow生态系统提供资源,在整个开发生命周期提供支持。

  • 利用资源直观地了解所有权--资产所有权的概念通过使用资源而不是中央账簿,建立在Cadence语言本身中。资产直接与账户的存储联系在一起,无需智能合约即可自由转让。

为什么开发者应该在Flow的基础上建立?

随着Flow引入的所有协议改进,他们显然迎来了区块链技术的新时代,关注开发者获取和用户体验。可用的工具套件能够实现富有成效的开发生命周期,而他们广泛的架构指南确保来自以太坊的开发人员,或一般的Web3新手,对Flow优化的解决方案类型有一个全面的了解。

诸如Flow客户端库(FCL)JSFlowser等工具使入门比以往更容易。FCL JS包使钱包的集成变得非常容易,而其强大的SDK提供了所有必要的工具来快速和安全地创建dapp。Flowser(Flow浏览器)是最具创新性的新区块链开发工具之一,不仅可以检查Flow主网、测试网或仿真器的状态,还可以通过其GUI管理自定义仿真器和钱包。

此外,Flow区块链与协议的其他方面一样,优先考虑环境影响。也正因为如此,它可以说是地球上最生态友好的区块链之一。它们不仅比每一个工作证明区块链使用更少的能源,而且大多数股权证明区块链也是如此。这要归功于其共识机制和本文前面提到的独特的多角色架构。为了正确看待它的能源使用,对于进行一次谷歌搜索的能源成本,你可以创建12个Flow NFTs。

因此,让我们通过与Web3的最大贡献者Ethereum的比较,更深入地了解为什么开发者应该建立在Flow上。

Flow和Ethereum。近距离观察

为了更好地了解Flow与Ethereum的比较,让我们仔细看看几个重要的方面和差异。

交易费用和速度

以太坊因其在网络需求量大时具有极其昂贵的交易费用而臭名昭著。高额费用是网络用来保持交易量在可控水平的一种机制。当区块空间需求很高时,费用就会上升,以阻止人们的部署。此外,以太坊上的区块每12至14秒确认一次,最后的确认在6个区块内发生,或刚刚超过1分钟。这导致最大交易吞吐量为每秒约15笔交易。为了满足数百万用户的需求,必须做出重大改进。

另一方面,Flow是在考虑到这些挑战的情况下创建的。上面提到的多角色架构使区块的最终完成大约每2.5秒发生一次,这导致每秒约100笔交易。在主网上部署和交易的费用也只是以太坊主网的一小部分。

合约的不可更改性

取决于你如何看待它,Ethereum智能合约一旦部署,其不可更改性既可以是一件好事,也可以是一件坏事。一方面,智能合约部署后无法编辑,这确保了一定程度的信任。它确认了你正在与之互动的代码一旦上线就不能被改变或重新使用。从另一个角度看,代码很少以完美的形式部署,即使是由令人难以置信的熟练代码员组成的团队。任何小的不完善都可能导致大规模的漏洞,造成重大损失。为了修复一个有缺陷的智能合约,开发人员必须部署一个全新的合约,并确保他们的用户群使用该合约。

Flow考虑到上述情况,采用了他们的智能合约不可更改的方法。当合约被部署到Flow区块链上时,它们默认是可变的。这意味着,如果实时合约出现任何复杂情况,开发者可以轻松地进行修改。当然,这并不意味着智能合约完全跳过测试阶段。开发合约的团队通常会使用软件开发的最佳实践,在最终部署到主网之前,在testnet测试和迭代合约。

在主网上经过一段时间后,智能合约已经满足了任何最终的测试或安全检查,开发人员可以选择撤销持有智能合约的账户的钥匙。这个过程消除了做任何进一步修改的能力,有效地使智能合约变得不可改变。智能合约开发者能够在任何时候对任何合约实施不可更改性,这是Flow相对于以太坊和其他区块链网络的一个明显优势。

不断增长的生态系统

除了技术优势,Flow的社区也在快速发展。强大的开发者生态系统、可访问的网络参与和内容合作伙伴都有助于提高知名度,并导致Flow上的交易稳步增加。2022年6月是Flow破纪录的一个月,达到接近3400万笔交易。

大多数人一听到Flow区块链就会想到NBA TopShot;然而,Flow在DeFi和游戏领域也出现了快速扩张。根据Flow区块链聚合器Flowverse的数据,引领游戏领域的ChainmonstersZeedz的销售额最高。DeFi项目包括由Blocto构建的去中心化交易所BloctoSwap,以及IncrementFi。你可以在这里看看其他一些建立在Flow上的项目。

Flow生态系统还从Flow生态系统基金获得了7.25亿美元,以帮助那些在Flow上进行建设的开发者。随着建设动力的增加,决定在Flow上建设的项目数量将继续绽放。

随着Flow的技术优势、日益普及以及资金的供应,对Flow/Cadence开发者的需求从未如此之高

总结

在CryptoKitties的成功之后,Dapper Labs团队很快意识到,以太坊的状态并不能支持一个大规模成功的区块链游戏。他们与以太坊的斗争导致了Flow区块链和Cadence智能合约语言的创建,两者都为数字资产的创建和管理而优化。

对于Ethereum和Solidity的开发者来说,从来没有一个更好的时机开始在一个更快、更安全、更可扩展的区块链上构建。如果你有兴趣了解更多关于在Flow上开发或如何使用Cadence,你可以访问新的开发者门户网站。在那里,你会发现更多关于如何开始的信息。

祝你有一个非常好的一天!