智能合约会让理财变安全吗?

 加密货币,ICO,神奇的互联网现金 - 这一切都非常令人兴奋,而你,热切的开发者,想要了解这些疯狂的东西,该从哪里开始呢?

我很高兴你对这个领域感到兴奋。我也是。但你可能会发现还是不清楚从哪里开始。区块链正在以极快的速度发展,但没有清晰明确的指南来学习这些东西。

自从我离开Airbnb,全职在区块链行业工作后,很多人都问我如何进入区块链领域全职工作。那么,考虑一下我的权威指南(当然不可避免是不完整的)--如何进入区块链工程领域。

  1. 为什么要学习区块链开发?

  2. 01 为什么要学习区块链开发?

在回答这个问题之前,让我先做一个小的陈述:区块链现在是一个被价值高估的事物。这些价格是不可持续的,崩盘肯定会到来。这一切以前都发生过,而且很可能还会发生。但如果你在这个领域长期工作,你就会学会对价格置之不理。用 Emin Gun Sierr 的话来说,价格是加密货币中最没意思的部分。但是,区块链领域的技术都是非常重要的技术,它们将不可逆转地改变世界。如果你不确定是否要投身于这个行业,我不能直接告诉你答案,但我可以告诉你五个让我信服的理由:

比特币是10年前发明的,但区块链行业的创新率直到最近几年才达到一个狂热的水平,特别是随着以太坊在2015年的推出。这一领域的大多数新公司和想法都是建立在以太坊之上的,况且以太坊还很不成熟。

即使你现在开始,你也可以在几年内成为世界级的专家。大多数人都没做那么久,要赶上也没那么难。从现在开始学习区块链类似于在21世纪末开始研究深度学习。

这个领域还没有很强的人才漏斗

大学里最优秀、最聪明的学生大多专注于机器学习、网络编程或游戏开发。虽然区块链在公众话语中变得越来越具有吸引力,但它们仍然是一个怪异和颠覆性的话题,进入这个领域对你的职业生涯来说可能是场冒险。

在早期,区块链只属于cypherpunk(赛博朋克)(其实更准确的说服应该是加密朋克)、偏执狂和怪人的领域,只是最近才开始改变。作为一个好奇和开放的开发人员,你会给这个领域带来很多价值。

大部分创新都发生在学术界之外

据我们所知,中本聪并不是一个学者。目前还没有一所大学或机构提供一整套的区块链知识体系。这里的大多数创新都是由狂热者、企业家和独立研究人员领导的。你需要知道的几乎都是白皮书、博客、公共休闲频道和开源软件。你只需要卷起袖子,投入战斗。

这个领域还没有足够的开发人员,他们也不能快速得到培训。每个人都在竞相招聘区块链人才,项目方也感受到了人才短缺。许多最好的公司付不起足够的钱让员工留下来,因为他们有太多的机会。如果你掌握了一些技能,就很容易找到工作。

加密货币真的太特么酷了

还有什么地方可以建立像加密、安全、去中心化货币这样科幻小说里的事物?现在是狂野的西部 - 当然这带来好坏两面。这个领域可以更加透明,并最终实现监管。但毫无疑问,加密货币是您现在可以从事的最具创新性的领域之一。 

Naval Ravikant 在最近的一次采访中说:成功的关键是给社会提供它想要的东西,只是你不知道怎么去做而已。你无法在学校学习到这样的知识;如果可以的话,这个世界的物质文明早就极度饱和了。

所以去建立一些没有人知道如何构建的东西吧。而现在,区块链是全新的,还有很多东西需要解决。如果你成功地建立了去中心化技术的未来,那么世界将会给你带来丰厚的回报。那么,在你进入这个领域之前,你需要知道哪些东西呢?

我建议你在深入研究之前,先加强对基本原理的理解。区块链建立在计算机科学、密码学和经济学数十年研究的基础上。中本聪是一个“反叛者”,但他也很清楚之前的历史。为了理解区块链的工作原理,您需要了解先于区块链产生的区块,以及为什么他们不起作用。

 以下是一些需要熟悉的预备知识,按重要性排序。

(注意,以下内容里的链接只是一个学习起点,您可能会想深入了解更多。)

您需要熟悉主要数据结构的特性和复杂性保证:linked lists, binary search treeshash maps, 以及 graphs (特别是在区块链中具有显著特征的有向非循环图)。从头开始构建它们有助于更好地理解它们的工作方式和属性。

密码学是加密货币的代名词和基础。所有加密货币都使用公钥/私钥加密(public/private key cryptography)作为身份和身份验证的基础。我建议学习 RSA( RSA)(它很容易学习,不需要很强的数学背景),然后看看 ecdsa( ECDSA)。椭圆曲线密码需要更抽象的数学——理解所有细节并不重要,但要知道,这是大多数加密货币(包括比特币)使用的密码。

 另一个重要的密码原语是密码散列函数(哈希函数)。这些可用于承诺机制,并且是 merkle 树的构建块。Merkle trees 支持 Merkle proofs,这是区块链用于可扩展性的关键优化之一。

关于分布式系统有一些很好的教科书,但这是一个庞大而困难的研究领域。分布式系统对于区块链的论证是绝对必要的,因此在处理区块链编程之前必须在此建立基础。

一旦你的系统不再运行在一台机器上,就必须开始论证一致性和共识。您需要了解可线性化和最终一致性模型之间的区别。您还需要了解容错一致性算法的保证,例如  Paxos 和  RAFT。了解在分布式系统中论证时间的困难,理解安全与活性之间的权衡。

有了这样的背景,你将能够理解拜占庭容错共识的难点,这是公共区块链的主要安全要求。您将需要了解  PBFT,这是首个提供拜占庭容错共识的可扩展算法之一。PBFT 是许多非工作证明区块链一致性算法的基础。再次提醒,你不需要了解 PBFT 太多的细节,而是总体的思路及其安全性保障机制。

理解传统的分布式数据库也是非常有用的(其核心思想是,区块链本质上是数据库)。了解分片(例如通过一致性哈希),主从复制(leader-follower replication),分布式哈希表 (DHTs),例如 Chord 或 Kademlia。

区块链的分布式在很大程度上源于其点对点网络拓扑结构。因此,区块链是过去 p2p 网络的直接产物。

 要了解区块链通信模型,您需要了解计算机网络的基础知识:如 TCP 与 UDP、数据包模型、IP数据包,以及大致的网络路由工作方式。

公共区块链倾向于通过 gossip protocols 和 flooding 来传播信息。学习p2p网络设计的历史,包括 Napster to Gnutella, BitTorrent,Tor,都具有一定的指导意义。区块链有自己的特点,但它们借鉴了这些网络的经验教训以及它们是如何设计的。

加密货币本质上是多学科的 - 这是使它们如此迷人和激进的主要原因。除了计算机科学,密码学和网络,它们还与经济学密切相关。加密货币可以通过其经济结构获得许多安全属性,这通常被称为加密经济学。因此,经济学对于理解加密货币至关重要。

对加密货币最重要的经济学分支是博弈论,即研究多个主体之间的收益和激励。你不需要深入到很细节,但你需要了解博弈论分析的基本工具,以及如何使用它们来分析一次性和持续性游戏中的激励因素。

你需要掌握两个关键的概念:纳什均衡点谢林点,因为它们在密码学分析中具有突出的特点。

加密货币不仅是协议,也是货币的形式。因此,它们响应宏观经济规律(如果它们可以被称为规律的话)。加密货币受制于不同的货币政策,并对通货膨胀和通货紧缩作出可预见的反应。你应该了解这些过程以及它们对支出、储蓄等的影响。

另一个有价值的经济概念是货币的流通速度,特别是当它与货币的价值相对应时。

加密货币也深深地与市场交织在一起,这需要了解微观经济学。你需要对供求曲线有很强的直觉。你应该能够解释竞争和机会成本(它们将经常应用于挖矿领域)。在许多硬币发行和密码经济系统中,拍卖理论具有突出的特点。

我希望你已经熟悉了其中的一些话题。如果是的话,请随意浏览或跳过它们。

好吧,到现在为止,你已经完成并巩固了你的基础知识,现在您已经掌握了以上的理论,让我们来开始区块链开发吧。

03 为什么要学习区块链开发?

2008年10月,Satoshi Nakamoto发表了一份白皮书,他在其中描述了一种分散数字货币的协议。他把这个协议叫做比特币。

在你了解区块链背后的伟大创意之前,你必须先从比特币开始,掌握 Satoshi 的独到见解。

首先,我建议你建立关于工作证明分叉选择规则(也称为中本共识)的直觉能力。你可以从以下视频开始:

区块链可视化 Demo:

(此图为视频截图,链接如下:)

资源及 PPT 点击此链接

一些额外的可靠学习材料:

  • 比特币机制:utxos和比特币脚本(比特币脚本不是特别重要,只是大致知道它能做什么)( UTXOs and Bitcoin script)

  • 比特币的可扩展问题是比特币生态系统中大多数争议的根源。你应该知道为什么行业内对块大小争论这么多。(Bitcoin scalability problems)

  • 安全对于区块链的开发是绝对必要的。智能合约一直受到灾难性黑客攻击的困扰,包括DAO黑客攻击、Parity钱包黑客攻击,以及第二次Parity钱包黑客攻击。如果你想要编写智能合约,你必须阅读这三个攻击的分析。

    事实是,智能合约很难搞好。虽然编程工具链将会得到改进,使这些精确的攻击变得更加困难,但最终它们都是由于程序员的错误造成的。还有许多由智能合约编程产生的更微妙的bug,比如在前端集群(frontrunning)或安全生成随机性(secure generation of randomness)等方面。

    作为一名智能合约开发者,你必须将安全性视为最重要的事情。在智能合约编程中没有“快速行动和打破常规”。这意味着任何处理大量资金流动的代码都应该通过像Oyente或Securify这样的静态分析程序来运行,进行彻底的测试,然后由经验丰富的智能合约审核员进行审计。你还应该尝试依赖预审计的组件,比如OpenZeppelin的开源合约。

    为了加强你的安全性,我建议你使用OpenZeppelin开发的Ethernaut,这是一款你可以在智能合约中发现并攻击漏洞的游戏。他们中的很多人已经复制了对这个领域发生的智能合约的真实攻击。

    在你做到了这些以后,我强烈建议你整本阅读由ConsenSys编译的Smart Contract Best Practices。希望在你的智能合约编程生涯中多次重温这个文档。bibliography 也值得安全专家进一步阅读。

    如果你已经做到了这一步,你现在应该准备好跳过Remix,开始使用一个可靠的开发堆栈。

    大多数开发人员都推荐使用VSCode或Atom作为文本编辑器,因为它们有相当可靠的Solidity插件。为了与本地区块链进行交互,你将使用Ganache(以前是TestRPC),并且你将使用Truffle框架进行(基于JS)测试和配置构建管道。

    然后是着手研究IPFS,你可以使用IPFS作为一个完全去中心的文件存储,其成本比Ethereum区块链低得多。以下是作者Juan Benet的简短解释:对于Ethereum和IPFS全节点的交互,大多数开发人员推荐的Infura。Etherscan和ETH Gas Station 在以太网络上提供有用的实时统计数据。

    一旦你建立了完整的Web3堆栈,尝试部署端到端Dapp(去中心应用程序)。这个教程为后端提供了一个使用Node和Postgres的良好的全堆栈概览,并且这个教程将向你展示如何使用IPFS作为持久性层(persistence layer)创建一个完全去中心的应用程序。

    现在,你应该对大多数技术都有了深入的了解,剩下的就是开始构建一些东西,并深入区块链社区。

    首先,开始建立自己的项目。如果你对某个点子很感兴趣,那就去实现它,并说服别人和你一起破解它! 如果你还没有特定的想法,或者不愿意动手,有许多高质量的开源项目欢迎你的贡献。OpenZeppelin可能是上手智能合约的一个好的起点。

    更好的是,我建议从寻找一个你喜欢的正在积极开发的项目开始。去他们的Slack或者Rocketcha - 开发人员通常都在那里。告诉他们你愿意帮忙,并要求完成一些小的任务(或者在他们的Github上发现一些尚未解决的问题)。

    注意,虽然我一直关注协议(protocols)和智能合约的开发,但区块链公司需要web开发人员来构建它们的核心功能。这些角色经常需要与区块链(们)进行交互,所以要有一个区块链是如何工作的良好心理模型,但对于许多区块链初创公司的工程师,你的工作将在Python构建一个网络服务器,或者设计一个前端的React, 与区块链交互可能只是一小部分的工作。你不必专门从事智能合约开发 — 实际上,这只是成熟的区块链堆栈的一部分。

    除了对开源项目的贡献,还有许多区块链黑客马拉松不断涌现。大多数项目都有一个免费的Slack,你可以加入其中,而且Ethereum本身有一个非常活跃的Gitter channel,在那里有很多开发者。当你深入到这个空间,你最终会找到你的同伴,无论是在Slack频道,Telegram,还是Gitter channel。无论在哪里,找到和你趣味相投的人并继续学习。

    真正了解区块链世界的最好方法是让自己沉浸在其中。阅读和倾听最聪明的人,特别是他们过去写的东西。当我尝试学习一个新的领域时,这一直是我的策略,它为我带来了回报。

    有很多好的区块链内容,但也有很多垃圾。以下是我推荐的信息节食法。

    在这里我推荐三个不错的播客,Software Engineering Daily Blockchain,他们对许多主题和加密货币提供了很好的技术介绍,以及Epicenter和Unchained -- 他们过去推出的很多都系列值得一听。另一个有趣的新兴技术播客是Conspiratus。以上的博客建议你们都订阅。

    YouTube上也有几个不错的频道(尽管YouTube上有很多垃圾)。订阅以太坊基金会并观看DEVCON3演示文稿。伯克利大学的区块链记录了他们的许多讲座,其中大部分都是优秀的技术概述。Decypher媒体还发布了访谈、白皮书评级和教程。Jackson Palmer有精彩的每周概述,内容里面虽然技术部分较少但是涵盖内容较全面。

    对于实时区块链聊天来说,它主要存在于两个地方:Reddit和Twitter。对于reddit来说,大多数栏目的质量都很差。r/ethereum的质量一直不错(并且有一些适合特定加密货币的栏目)。不过,大多数栏目都被投机者占领,并不能对得起你的注意力。远离比特币相关的栏目。众所周知,比特币是最有毒性的社区之一,而Reddit只会放大这一点。

    Twitter上的内容更是参差不齐了。不管好坏,大多数区块链用户都生活在Twitter上。区块链Twitter起初对我来说有些神秘,但最终我建了一个非正式的Twitter区块链人物分类。根据我的经验,有五种类型的区块链人物:建设者、企业家、记者、交易员和“思想领袖”。

    避免像瘟疫一样的“思想领袖”

    企业家有理由活跃在twitter上,因为他们大多扮演炒作者的角色,或者在Twitter上宣传自己的项目。投资者大多在Twitter上谈论价格和炒作类项目,如果你也是这样的,那你继续吧。记者们倾向于在推特上发布当天的主要新闻。我建议你远离这些消息,除非你需要实时信息,但是通常这些信息对你来说都不是必须的。如果你是一个活跃的交易者,这可能很重要,但如果你试图在区块链技术上有所建树,大多数实时的东西都会分散你的注意力。

    把注意力放在区块链建设者身上。他们是当前最重要的人,也是推动科技进步的人。

    每个类别中都有几个代表(如果你想把你的Twitter信息流塞满,请先关注这些人):

    (不防也关注我一下,尽管我绝对不属于这个名单。)

    总而言之,我建议您尽量少刷Twitter和Reddit。如果你不是记者或日常交易者,大多数情况下,你不需要实时聊天。重要信息将以异步方式向您显示,你可以关注重点信息摘要,而不是时刻获取市场的信息并受其影响。

    我建议订阅Inside Bitcoin(内部比特币)以获取最重要的加密新闻的每日摘要(它涵盖的不仅仅是比特币)。对于代币项目,Token Economy(代币经济)每周都有优秀的内容,Week in Ethereum(每周以太坊)对以太坊生态系统中以开发人员为重点的事件提供了很好的摘要。

    除此之外,您基本上不需要监控实时新闻。请专注于学习和积累。

    另外,你可以关注一些好的博客。长篇幅的内容往往是学习最好的选择。我的建议如下:

    • V神博客(Vitalik Buterin)提供优秀的区块链和密码经济分析(阅读他所有的旧博客文章,Vitalik被广泛认为是百年一遇的思想家)

    • 破解,分布式(Hacking, Distributed)由康奈尔研究人员发表的区块链安全性分析

    • 未枚举(Unenumerated),Nick Szabo发表关于加密货币在社会中作用的挑战性和折衷性论文的著名博客

    • 金钱物质(Money Stuff),马特·莱文(Matt Levine)的Bloomberg的供稿,针对市场、金融和区块链新闻交叉点深刻的分析

    • 弗拉德·赞菲尔(Vlad Zamfir) 对国家和公共区块链适中谨慎的观点

    • 克里斯·伯尼斯克(Chris Burniske)撰写了一系列关于如何评估加密资产的优秀博客文章

    • 詹姆森洛普 (Jameson Lopp) 从构建区块链生态系统软件工程师的角度发表他出色的技术文章

    • 数字长城(Great Wall of Numbers)由蒂姆斯旺森 (Tim Swanson)撰写,关于他对区块链狂热的冷静而坚定的解构,特别是在企业领域

    (再一次,建议你也阅读我的博客,尽管我并不完全属于这个名单。)

    如果你想要一种更有条理的方法来学习这些材料,有一些高质量的书籍和课程。

    Ethereum》),由以太坊联合创始人加文·伍德(Gavin Wood)合著(均由o'reilly出版)。另外一本我推荐的非技术性的书是纳撒尼尔·波普(Nathaniel Popper)的《数字》(《Digital Gold》)。几乎所有值得阅读的东西都会出现在博客中,而不是书籍-这个领域发展很快,以至于最重要的人物很少有时间写书,而且书籍在发行时往往已经过时。

    如果你想用更结构化的方法来学习这些材料,有一些高质量的课程。比如普林斯顿大学Coursera课程(视频也在YouTube上)和加州大学伯克利分校(UC Berkeley)的一些讲座。我也听说了来自康森斯学院(Consensys Academy ),对于想进入智能合约开发的人员来说的的好消息。

    另外,我还在旧金山布拉德菲尔德计算机科学学院( Bradfield School of Computer Science)为软件开发人员举办为期4周的加密货币研讨会。本课程仅限于旧金山地区,座位有限,因为它是一个小型的、深入的研讨班。但如果你是名位于旧金山的软件工程师,想了解更多有关加密货币背后的理论和实践,它也许很适合你。

    正如我之前所说,区块链初创公司正在疯狂招聘。如果你真的做到了这一点,并且完成了我建议的一半,那么你很可能已经可以在这个领域找到工作了。AngelList特写了一篇关于如何在加密领域找到工作的文章。

    对于区块链相关的职务发布,有几个好的网站:

    我知道一些特别有前途的区块链初创公司正在招聘开发人员:

    市场上还有许多大型公司在开发加密产品:

    • Coinbase,加密行业里的谷歌,一直在疯狂地招聘

    • 恒星币(Stellar)和 瑞波币(Ripple)公司,如果你想直接开发更适合企业的加密货币

    • Square整合了一些区块链,但不确定他们是否对外招聘

    • IBM、Visa或JP摩根,如果你有传统情怀

    (请注意,这个特定的公司列表是以湾区为中心的,因为我居住于此。您可能居住在别的地方,以上网站推荐的工作会更全面。)

    但在我看来,加入一个公司最好方法是找到一个你感兴趣的项目并直接联系他们。大多数区块链团队都愿意为合适的人才提供远程办公职位。许多开发人员可以在Twitter、Github或他们公共的Slack频道上轻松的联系上。假如你有扎实的作品集并能展示技术专长,并且表现出一些主动性,就会让很多人印象深刻。

    以上就是我能推进给你的。如果你做了以上所有的事情,不久你可能会比我走得更远了。

    兔子洞不会真的结束。我给你展示的只是一个开始。加密货币仍处于早级阶段,我深信这是你可以工作的最快速发展的领域。我相信这本指南将在一年内过时,并且有很多令人惊叹的项目在这里我还没有机会谈论。但如果你进入这个领域,你会在适当的时候找到他们。

    保持探索。保持越来越好。保持学习。

    声明:蜂鸟财经转载此文出于传递更多信息之目的,内容仅供读者参考。若存在侵权行为,请联系我们删除。

到现在为止,我们应该对人工智能都比较熟悉了。科幻小说向我们展示了当机器人拥有人类一样的智慧时会发生什么。通常情况下,结局对人类来说并不好。那么区块链网络的“智能”呢?

智能合约可以看作是一种机器智能的简单形式。而一位学者认为,我们让智能合约承担太多的责任了。

布鲁克林法学院教授Adam Kolber向我们分享不太遥远的未来里一个令人不寒而栗的景象。在这种景象中,人类生活在一些领主(overlord)的威胁之下,而这些领主都是基于区块链的。他甚至创造了一个新名词——“人工责任(Artificial responsibility)”,即我们分配给智能合约系统的大量控制权

人工责任与人工智能有关,因为我们可能倾向于给予更智能的机器更大的控制权。但即使是非智能机器,在承担很多责任时也会很危险。

尽管区块链技术的人工智能程度很低(低到通常不被认为是人工智能),但人工责任的程度却非常高。

智能合约可以是非常强大的。以分散自治组织(DAO)的概念为例。一个分散自治组织是一个分散的投资公司,允许陌生人通过投票系统为风险投资提案提供资金,没有中央权力机构。从本质上讲,它是一种区块链驱动的机器,控制大量人群的投资。

Kolber解释了DAO如何成为了很多人的噩梦:

(The DAO)中的一个bug被黑客利用,转走了价值超过5000万美元的ETH。在这里,我们可以看到我们愿意赋予区块链以人工责任。尽管损失了资金,但没有简单的机制,也没有中央机构去追回资金。需要在社区取得大量的共识才能减轻黑客带来的损害。

(...)因此,不仅难以撤销赋予DAO的控制权,许多人甚至出于原则问题的考虑不愿意这样做。一些纯粹主义者还批评了一些社区成员试图减轻损害的努力,认为黑客只是根据组织商定的合约条款(以计算机代码的形式)来转走资金。

目前,一切都还好,因为目前授权给智能合约的最复杂的任务主要与金融有关。当智能合约的“智能”开始与“物联网”交互时,真正的威胁将会到来,机器行为会变得更难以预测。最终,它将在一个各种设备使用物联网连接的世界中脱离人类的控制,从而可能造成附带损害。现在黑客已经可以破解像胰岛素泵这样的东西。那么在未来,智能合约代码错误带来的损失可能不仅仅是经济上的,智能合约交互的物联网设备可能会危及人身安全。

曾几何时,导致大量金钱损失的黑客是很少见的。但现在,黑客攻击非常普遍。随着区块链行业成功扩展到金融科技之外,我们只希望我们不会忽视糟糕的“智能”合约可能导致的其他灾难。

在DeFi世界,去中心化借贷系统是一个极其重要的赛道,也是整个DeFi体系里面的基石系统,它能够模拟现实世界里的金融系统,了解不同用户的资金需求,并提供用户间相互资金融通的平台;它能够无边际成本的支持符合同质化代币标准的所有加密资产之间的借贷,并能够根据市场供需,自动化的计算与调整市场的借贷利率。

它能够以提供存款凭证代币的方式,将同一资产穿梭、重复使用于不同的DeFi协议之中,从而数倍地提升资金在金融市场上的使用效率;它还可以与其它DeFi协议进行灵活组合,从而实现多层、多级、复杂、嵌套金融交易的自动化运行。

那么,DeFi借贷协议究竟是如何运行的?其基础的技术原理是如何?未来又会有哪些更激动人心的应用扩展?本文中,BKFUND创始人许超逸将对以上问题进行详细探讨。

基于资金池智能合约的借贷模型

传统的中心化借贷系统是以点对点的方式进行撮合执行的,例如资金富余的用户可以在一些中心化交易所的「理财」页面,将自己的闲置资金以自己想要的利率进行挂单,而资金短缺的用户则可以通过抵押自己其他代币资产并以指定的利率进行借单,像「交易市场」一样,「借入」挂单与「借出」挂单是一比一完全对应的,中心化交易所在其中承担了撮合的角色。

去中心化的DeFi借贷系统则有所不同,目前主流项目均普遍采用了「资金池」模型来解决流动性的问题,实现借贷需求的快速撮合,如下图所示,作为「存款人」可以将自己的闲置资产「存入」资金池,并且在需要的时候随时「取回」,而「借款人」可以从资金池里面「借出」一笔资金,并在任意时候进行「偿还」。系统将根据资金池里面的资金进出情况,实时调整动态的「存款利率」与「借款利率」。

存借款利率主要依据两个因素来调整,第一是市场的供需,即:当借款需求较为旺盛时,利率上升,而借款需求较为匮乏时,利率下降;第二是资金池里的资金使用率,即U = 借款额/存款额 *100%,存款人的收益(存款利息)来自于借款人所支付的借款利息,因此资金使用率上升时,借款利率下降,而资金使用率下降时,借款利率上升。

与中心化借贷系统的有所区别在于,DeFi借贷系统的资金使用率U并非越高越好,当U = 100%,即所有存入资金全部被借完的时候,若部分存款人从资金池中取回资金,这将发生资金池里面的存款额 < 借款额这一极端情况,这使得资金挤兑、资金池爆仓的风险大幅增加,因此DeFi借贷系统通常都会设计有最优使用率Uoptimal,当资金使用率超过最优使用率时,借款利率会大幅上升,以抑制更多的借款需求,保障资金池的安全。

由于「存款利率」与「借款利率」的调整均是实时且动态的,对于用户来说,意味着收益与风险的不确定性(特别是对于借款人而言),因此一些类似AAVE这样的新型DeFi借贷系统还提供有「稳定利率」的选择,稳定利率在用户一笔借款周期内一般不会改变,便于用户估算自己的资金成本,因此提供用户进行「浮动利率」与「稳定利率」进行切换的选项。特别的,当市场资金供需行情出现极大波动之时,也会出现「稳定利率再调整」的情况。

由于加密资产的市场价格波动非常剧烈,当借款人的抵押物价值下降,或者借入资产价值上升,以致于抵押率不足时,需要对借款人的借款执行清算,清算的本质是以低于市场价格的方式出售一部分抵押物,来支付借款人应向资金池归还的本金与利息,从而使得资金池得以持续健康运转。

「存入」、「取回」、「借出」、「偿还」、「利率调整」、「清算」这是触发DeFi借贷系统最主要的六项事件。

由于DeFi借贷系统基于去中心化的智能合约来运行,没有一个中心化的数据库来记录用户存入/取回/借出/偿还的时间,因此通常使用以太坊网络区块高度作为时间标记来更新一个资金池的利率指数Index,当「六项事件」中的任何一个事件触发时,该资金池的Index指数便会随之更新(Indexn = Indexn-1 * r),同时根据算法计算出系统动态的「存款利率」与「借款利率」,并更新相关的用户侧利息数据。

从六项事件的视角观察DeFi借贷系统的运作

存入加密资产是用户进入DeFi借贷系统的第一步,这一步骤将用户的加密资产从私人账户转移进入智能合约的资金池,同时系统根据实时的存款利率开始为用户计算存款利息。

像用户在银行里面存款一样,用户在DeFi借贷系统中存入加密资产,将会获得一份存款凭证,DeFi借贷系统依据存款凭证而非账户对用户的存款权益进行确权。这意味着,如果用户的存款凭证丢失或者转让,也将丧失其在DeFi借贷系统相应的存款权益。此外,存款凭证同时也是用户向DeFi系统借款时所需提供的抵押物。

存款凭证通常以同质化代币的方式向DeFi存款用户发放,这里又有两种不同的设计方案,以Compound为代表的DeFi借贷系统发放与存款本息额等值的凭证代币cToken,通过凭证代币与基础存款资产的汇率升值的方式来支付利息,另一种是以AAVE为代表的DeFi借贷系统发放与存款本息额等量的凭证代币aToken,通过增加凭证代币数量的方式来支付利息。

我们认为,这两种技术方案各有优劣,采用存款本息额等值凭证代币cToken的方案,在出现资金池挤兑、爆仓的极限情况下,可以采用降低cToken汇率的方式将资金池损失由全部存款人进行集体分摊,从而降低单个用户的损失金额。

而存款本金息等量凭证aToken的方案,更有利于构建一个在应用生态系统内价值相对稳定的支付代币,同时存款凭证的本金、利息部分可以进行更灵活的分拆发放,衍生出更多的金融应用场景。

取回的操作与用户存入的操作是反向的,即用户向合约系统归还存款凭证代币cToken、aToken或其他,并获得原始的存入资产。

需要再次强调的是,DeFi借贷系统以存款凭证代币为存款权益的确权,一旦丧失存款凭证代币,用户将无法取回资产,在过去的项目中,曾出现过DeFi借贷系统的新用户误将存款凭证当作一种系统的空投(AirDrop),以极低价格在市场出售,从而受到重大资金损失的情况。

用户通过抵押存款凭证代币,可以向DeFi借贷系统借出目前自己没有但是紧急需要使用的加密资产。并非所有的加密资产都可以用于抵押,通常在初期,DeFi借贷系统的管理员配置主流、流动性较好的加密资产作为抵押物,而随着用户的日益增长,抵押率的类型会逐步交由社区通过投票治理的方式进行调整。

与抵押物类型逐一对应的有最大抵押率与清算阈值两个参数的设置,最大抵押率表示该抵押物价值最大可借出加密资产的比率,而清算阈值表示抵押物面临被清算的门槛比率,通常清算阈值 > 最大抵押率。

例如使用户使用1万美元等值的DAI作为抵押,在最大抵押率75%的情况下,最多可以借出7500美元等值的ETH,但若是ETH价格稍有上涨,从7500美元涨到8000美元,若已达到清算阈值参数80%,用户的1万美元DAI将要面临清算。

我们观察到,主流DeFi借贷系统多数都没有将USDT这一交易量最大的稳定币纳入抵押品范围,可能是因为USDT本身过度中心化,以及其主体公司Tether曾接受监管部门调查的原因。

偿还的过程与借出是反向的,用户向DeFi借贷系统归还本金与计息,同时减少自身在DeFi借贷系统中相应的债务。

用户在DeFi借贷系统中的存入、借出目前都是活期的,因此偿还机制也是较为灵活的,用户可以根据自身的实际情况,选择全部偿还或者部分偿还。

清算过程涉及到DeFi借贷系统中重要的概念,即账户的健康因子(又称:健康指数),前面有提过到存款权益的确权是基于凭证的,而健康因子则与账户的借款额、抵押物相关,具体用公式表述为:

健康因子 = ∑(抵押物*清算阈值)/(借款额+借款利息)

当健康因子<1时,将触发DeFi借贷系统对该用户账户抵押物的清算,清算个别用户是为了避免系统性金融风险的发生,因此借款人将受到系统的惩罚,而清算人则会获得一定的奖励。

清算有两种常见的方式,一种是直接将借款人的部分抵押物以一定的折价通过合约挂单出售,允许任何用户代替借款人偿还债务后立即转售进行套利,另一种方式是从底价开始,以逐步加价的方式公开将抵押物进行拍卖。

借款人可能会对自己的抵押物受到清算而感到不满,而实际上,清算是对借款人资产的一种保护,当触发清算时,系统强制处置部分抵押物可以使得账户整体的健康指数回升到正常水平,从而避免抵押物被全部清算。如下图所示:

6)稳定利率、再平衡与利率切换

如前文所述,当DeFi借贷资金池每一次发生存入、取出、借出、归还、清算之时,其利率指数Index都会随之发生变化,这会影响到相应的「动态利率」,而出于满足部分用户愿意支付利息溢价以降低借款成本不确定性的需求。

类似AAVE这样的新型DeFi借贷系统尝试了「稳定利率」的机制,「稳定利率」机制通过预言机去获得外部系统的借贷利率,结合资金池的动态利率综合计算得出当前的稳定借款利率,并对单个用户在其借款周期内保持相对稳定,不受动态利率变化的影响。

需要说明的是,目前的「稳定利率」并非绝对稳定,仍然有可能经历系统强制调整即称之为「再平衡」的过程,「再平衡」的原因一种是因为「稳定利率」已超过存款的收益,导致用户可以无限制的从系统中借款再存入进行套利,这需要进行稳定利率的「向上再平衡」,另一种是当「稳定利率」与动态利率的差值过大使得用户需要支付的溢价超过一定数值的时候进行「向下再平衡」。

借款用户允许在「动态利率」与「稳定利率」之间进行切换,以获得最优的借款条件,同样这会触发资金池利率指数Index的更新。

以上,便是DeFi借贷系统最基本的技术原理,我们将其主要公式用一张图总结如下:

DeFi借贷系统的应用扩展

以资金池为核心模型的DeFi借贷系统的蓬勃发展,确实满足了部分用户的资金借贷需求,然后,相比于传统金融行业,功能仍显不足,从金融应用发展的角度去思考,我们认为,DeFi借贷系统未来将会有如下多个方向的扩展:

固定周期的存借款有利于用户更好地规划自身资金的使用周期,同时资金池也能够更好的预测资金的变动情况。然而,固定周期的存借款模型给现有的利率指数算法的改进带来的的挑战是,既要能够让固定周期利率相比于活期利率更具吸引力,又要适应用户自身违约,提前取款或者提前归还的现实场景。

由于DeFi借贷系统的存款利率本身也是浮动的,当市场需求旺盛时存款利率会大幅上涨,因此可以基于存款利率做一些结构化理财产品的开发,类似传统的分级基金,将资金分为优先级、中间级、劣后级,基金管理人向不同风险偏好的用户募集资金并获得管理收益与业绩奖励。

闪电贷是加密货币领域当中最令人兴奋的原生应用之一!这项技术可以让用户以无任何抵押、且极低的交易成本(AAVE为0.09%)使用资金池内无限制的资金量,只要用户在同一笔交易内偿还相应数量的资金即可。

而闪电贷的开发技术门槛初期比较高,后续随着类似FuruCombo这样的平台的出现与发展,闪电贷编程开发的门槛将不断降低,交易员只需要专注于策略本身的研究与实现,就可以获得在各个不同的DeFi协议之间套利赚钱的交易机会,闪电贷交易策略未来可能会成为加密经济里面最有价值的交易策略!

下图是一个简单的FuruComb工具使用示例:

用户从AAVE协议里面通过闪电贷借出200 DAI

4)机构专属的私有资金池

DeFi借贷系统多数仅支持主流加密资产的相互借贷,然而对于一些小型的加密货币,虽然流动性要远远弱于主流加密资产,其机构成员、社区成员之间亦有相互短期拆借的应用需求。较好的做法是,由机构担保开发、运营私有借贷资金池,以供作小币种的借贷及抵押需求,这样即使出现因流动性不足而爆仓的问题,也不会影响到公用资金池的安全性。

5)第三方用户担保借款

这是一个经常被标榜为「无抵押借款」的应用,实际上这个功能是由DeFi借贷系统的一个机构用户或大客户以其在资金池内的抵押物作为担保,向另一借款人提供借款的场景,机构客户通常与借款人有线下的信用担保或实物担保关系,使得机构客户愿意以自己的抵押物为他人提供借款。

这里的主要问题是机构客户应有从中获利的可能,即当借款人按期还款时,其所支付的利息应高于系统利息,其中的差额作为对机构客户的奖励。

6)第三方协议担保借款

这是由DeFi借贷向一些主流DeFi协议授信,以供他们的用户从借贷协议应用中进行杠杆借款,Cream所开发的Iran Bank便是第三方协议担保借款的典型应用之一,然而前几天,Iran Bank因受到黑客攻击,资金池被「借走」约3750万美元的加密资产,成为目前损失额最大的一笔DeFi安全攻击。

真正的「无抵押借款」场景应该是指类似我们在「借呗」等APP一样,通过账户地址历史积累的DeFi交易记录获得一定程度的授信,从而向DeFi协议进行短期借款。

这里有一个值得讨论的问题是,区块链网络账户地址本身可以无限制的生成,且创建成本接近于零,频繁的DeFi交易记录是否具有特别的价值?

我们认为随着DeFi的进一步繁荣发展,这个答案应当是肯定的。频繁DeFi交易的账户地址,其拥有者的资金体量、DeFi应用经验、抗风险能力要远远超过普通的用户,未来一些新型的DeFi协议在内测阶段将可能会筛选优质的DeFi老用户进行体验并空投代币作为测试激励,减少项目方被机器人批量薅羊毛的损失,若地址未按期归还借款,该地址将被所有的DeFi协议列入黑名单,不再拥有相应的内测激励机会。

DeFi借贷系统的资金池模型、闪电贷等技术创新带领了一股新的创新浪潮,在开发者与社区用户的共同努力下,DeFi借贷系统及其生态产品将进一步发展,并不断的与主流金融、主流资产进行融合、创新,开启未来新的金融秩序。


声明:本内容为作者独立观点,不代表 CoinVoice 立场,且不构成投资建议,请谨慎对待,如需报道或加入交流群,请联系微信:VOICE-V。

我要回帖

更多关于 合约机骗局为什么没人管 的文章

 

随机推荐