👨🚀 Glaze & Jasmine:本期我们继续了解有潜力的公链 Flow,学习闪电贷及相关知识
如果你喜欢本期内容,不妨在阅读后给我们点个 ❤️ ,并在下方订阅 un.Block Weekly ⬇️
🚀 链圈热闻:Flow
随着 NFT 和 Gamefi 的热度上升,这期我们为大家介绍 Flow - 专为 NFT 和游戏设计的一条链。
Flow 是 CryptoKitties 的开发团队专为游戏和 NFT 设计的一条公链。目前公链上有 NBA Top Shot,育碧 等项目。
处理速度
Flow 采用多角色的架构来提高处理速度。相较于常见的 Layer2,分片。Flow 认为分片使智能合约间的交互更加复杂,容易出错,损害可组合性,无法保证对事物状态的 ACID(原子性,一致性,隔离性和持久性) 的要求。
Flow 意识到验证节点处理不同任务的速度是不一样的。于是他们将验证节点的职责细分,让部分验证节点专注于一小部分的任务。
Flow 将任务分为非确定性任务和确定性任务。
非确定性任务需要更少的计算资源,例如确定区块链中的交易是否存在以及他们的顺序
确定性任务需要更多的计算资源,例如计算交易结果
这样的任务的划分实际上是将计算任务和共识分开。
如上图所示,Flow 一共设置了 4 个角色:
共识节点:确定交易的存在性以及顺序
验证节点:监督执行节点
执行节点:执行交易相关的计算
收集节点:增强 Dapp 的网络连接和数据可用性
共识节点所采用的是 Libra 使用的权益证明算法 HotStuff 的变体
开发
Flow 采用了 Cadence 作为它的智能合约编程语言。Cadence 使用面向资源的编程范式。资源指的是具有可编程性的安全数字资产。面向资源的编程范式给予开发者创建独一无二耐用数字资产的能力。资产的所有权则由语言本身追踪。这些特性听起来是专为 NFT 和游戏等特别专注于资产所有权的应用量身打造的。
在采用面向资源编程之前,Flwo 认为现有的编程环境可以追踪资产所有权,但是不能直接定义所有权。然而区块链公链就应该是为了管稀有资产的所有权。
以下这个例子应该可以让各位读者进一步了解面向资源的概念。
上图是 CryptoKitty 合约的一个示例图。在使用 EVM 的以太坊上,所有的 Kitty 都存储在一个合约里面。想要知道谁拥有某只 Kitty,我们就要查询这个合约里的一个字典。想要更改某只 Kitty 的所有权,我们需要在这个合约里面进行更改。
上图是面向资源的一个例子。我们使用 resource 对象来表示 Kitty。Kitty 直接存储在拥有者的账号里。这就更像是现实世界,拥有者直接拥有 Kitty,而不是得去一个中心化的机构进行查询所有权。
除了 Cadence,Flow 还提供 Flow Go SDK,Flow JS SDK,VSC 插件,Flow Playground GUI,FTs 和 NFTs 两个标准。
Flow 的另一个特色便是智能合约的可升级性。开发者能够以测试状态部署智能合约,并允许逐步升级。在最后,开发者可以选择发布正式版,并放弃合约控制权。发布正式版后,代码将完全不能篡改。
为了方便用户使用,Flow 支持 Ramp。用户可以在 Ramp 上购买 Flow 网络的 fUSD。
总结
相比上周令人眼前一亮的三链架构,Flow 采用了多角色模型来保证交易速度,并采用面向资源的编程范式。我们可以明显感受到 Avalanche 和 Flow 是为了不同的目的而进行设置的。
📔 相关阅读:
🍼 保姆级教程:闪电贷
闪电贷是好是坏,谁知道呢?
什么是闪电贷
💡 闪电贷是在一笔交易内完成借、还操作的贷款工具
闪电贷可理解为无抵押贷款,借款人无需提供任何抵押品,也不需要通过任何信用评级或类似的审查。值得注意的是,闪电贷的还款必须在同一笔交易中完成。
闪电贷的交易程序可以分解为三大步骤:接收贷款、使用贷款与**偿还贷款,**整套程序均在瞬间完成:
交易提交至网络后,这些资金暂时划拨给用户使用
用户可以利用资金开展投资、套利等活动
用户需要按时还款并交付手续费;否则,网络将否决这笔交易,资金将返还给出贷方
实际上,就区块链而言,出贷方始终拥有资金,因此,出贷方不需要获得抵押品,智能合约程序会执行强制还款。
闪电贷喂价攻击
聊到闪电贷,就不得不讲最常见的攻击方式:闪电贷喂价攻击。首先,需要澄清的是:在这种攻击事件中,闪电贷只是作为一个攻击资金来源,并不是攻击的手段。
下面我们通过一个例子来讲述闪电贷喂价攻击的过程
受害者:某 DeFi 借贷协议,该协议只从某一 DEX(去中心化交易所)获取喂价数据
攻击过程:
借钱:黑客从一个支持闪电贷的借贷协议借入大量代币 A
操纵价格:黑客在 DEX 上,将大量的 A 代币换成 B 代币,导致 A 的价格剧烈下跌,B 的价格剧烈上涨,脱离真实的市场水平。由于受害的 DeFi 借贷协议只从这一个 DEX 获取价格数据,因此受害协议的 A 价格也下跌,B 价格也上涨
攻击借贷协议:黑客到被害协议进行借贷,抵押代币 B,借出比原来更多的代币 A (由于价格数据被操纵,A 的价格很低,因此可以借到高于正常量的 A )
还钱:将得到的部分代币 A 还贷,多余部分的 A 就是攻击得到的利润,闪电贷过程结束
后续:随着 DEX 中的代币 A 和 代币 B 的价格不断通过套利行为回到真实的市场水平,被害 DeFi 协议中会出现债务 > 抵押物价值的情况,正常用户的利益收到了侵犯
如何使用闪电贷
闪电贷是一项主要面对开发者的借贷工具,有一定的使用门槛,使用者需要熟悉区块链智能合约开发,具体的代码编写教程我们会在下期和大家分享。
实际上,使用闪电贷也不是一定要编写代码,目前有许多的乐高式的闪电贷 DApp 能够让你以拼积木的形式使用闪电贷,就像我们日常使用的 Workflow 一样方便:
比起写具体的代码,通过这些工具来使用闪电贷,能够有更好的使用体验。
📔 相关阅读:
📘 附加题
V 神的 Q&A;可组合的 NFT;新的社会实验 Loot
🚏Find us
💻 Website: unblock256.com
✈️ Telegram:un.Block Weekly
🕊️ Twitter: @unBlock256
📧 Email:unblocketh@gmail.com
视觉设计:Jenny
特别鸣谢:
本文非商业目的转载授权遵循 CC BY-NC 4.0 协议
版权所有 ©️un.Block 2021