编程语言如何推动DeFi成为主流?

news2025/1/19 7:58:27

随着DeFi的快速增长,提供DeFi服务的平台和产品也如雨后春笋般纷纷冒头。作为衡量DeFi协议管理资金规模的标准之一,DeFi“总锁仓量”在过去两年一路从100亿美元增长到超400亿美元,期间更是一度冲上1800亿美元的巅峰。但直到今天,智能合约编程语言功能并没有足够完善到可以安全地创建和管理资产。面对这头“房间里的大象”,我们无法选择视而不见,因为DeFi要想称为主流,编程语言就必须要具备“资产导向”功能,只有这样DeFi智能合约的开发才能更加安全和直观。

 

截至 2022 年 11 月,DeFi 的总锁仓量。数据来源: DefiLlama

DeFi编程语言尚未融入“资产”概念

要想解决DeFi常年遭受黑客攻击的问题,编写“审计代码”就是一个很好的方法。如果细数历史上规模最大的十次DeFi黑客攻击,那么你会发现其中有9次都是由“未审计”惹的祸。所以从某种程度上来说,审计的确是一种避免攻击非常有效的方法。假如没有审计,那么即便在黑客攻击问题上投入再多的资源也无济于事。这就好比为了解决一辆方形轮胎汽车的性能问题而安装大量发动机一样,这样做虽然可以让它跑得更快一些,但是没有找到突破性能的关键点。

同理,如今的DeFi编程语言,比如Solidity,并没有融入“资产”这个概念。代币、NFT这类资产仅仅只是智能合约中的一个变量(可以被更改的数字,如以太坊的ERC-20),而至于这些变量该如何被保护以及被验证则需要开发人员对每个智能合约进行重新定义。比如,该变量不应被使用两次;不应被未经授权用户耗尽;转移时应该始终保持平衡且净值为零。。。。。。

随着智能合约变得越来越复杂,所需的保护和验证也正在变得越来越复杂。然而,人无完人,金无赤足,发生错误在所难免,资产也会因此而丢失。就连DeFi领域最佳蓝筹协议之一的Compound也无法幸免于难。2021年9月,Compound智能合约中的一个Bug导致其错误分发了8000万美元代币,原本应通过该合约缓慢分发给所有流动性提供者的COMP代币被错误释放,部分用户收到了远高于正常数量的代币。

连锁反应

智能合约之间的交互(如代币之间的交换)是通过发送消息到各合约来实现的。智能合约在收到消息之后会更新其内部变量列表,而结果则反映出了一个较为复杂的平衡过程。至于智能合约之间的所有交互是否能正确处理则完全取决于DeFi开发人员。由于Solidity和以太坊虚拟机(EVM)在设计初期没有考虑到防护问题,因此DeFi 开发人员必须在后期通过一定的设计来确保必需的防护和验证。

为了降低安全风险,DeFi 开发人员几乎将所有时间都花在了确保代码安全上。那些开发人员表示,他们在写完代码后一定会进行反复仔细检查,甚至不惜花费高达90%的时间进行验证和测试,而只留下10%的时间在构建产品性能和功能上。令人费解的是,开发人员将自己的大部分时间都花在了与不安全代码作斗争上,再加之开发人员短缺,DeFi为何还能发展得如此之快?

很显然,尽管当今的可编程化货币存在着风险和挑战,但这种能够实现自我主权、无需许可以及自动化的可编程化货币仍然是无法阻挡的大趋势。我们可以想象一下,假如DeFi开发人员能够将他们的生产力集中在开发产品功能性方面而不是整天忙于处理各种漏洞,那么该有多少创新力量可以被释放出来。这种创新很可能会带来一个惊人的结果,那就是使一个刚刚起步的460亿美元行业颠覆一个468万亿美元的全球金融大行业。

2002年至2020年全球金融机构总资产。资料来源:Statista

创新与安全

DeFi要想做到既创新又安全,关键一点在于要为开发人员提供一种简单的方法来创建资产并与其进行交互,与此同时将基本功能转换为编程语言的原生功能。最重要的是,创建的任何资产都应始终具有可预测性并符合常识性财务原则。

其实,在以资产为导向的编程范例中,创建资产就像调用原生功能一样简单。平台知道什么是资产,比如 .initial_supply_fungible(1000)创建了一个固定供应量为1000的同质化代币(除了供应之外,还有更多的代币配置选项可用),而.take和.put等功能则从某个地方获取到代币后再将它们放置在其他地方。

在以资产为导向的的编程中,任何人都会很自然地期望有关DeFi的基础操作已包含进了该语言的原生功能,而不是开发人员通过编写复杂的程序来指示智能合约用错误检查来更新变量列表。在这种情况下,有了以资产为导向的编程来做保证,代币就不会丢失或被耗尽。

以上就是在DeFi领域获得创新和安全性的方法。只有一切以资产为导向,来自主流的看法才会又所改变,人们也才会从远远观望这个令人生畏的DeFi转变为争先恐后地要将自己的资产投入其中。不然,你就输了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/44312.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python爬虫request模块的get、post方法应用

目录 post方法使用 一、确定爬取网站的数据 二、分析数据类型和相应类型 三、使用requetst模块方法进行爬取 四、源代码分享 get的方法使用 一、分析抓取网站操作 二、参数的分析和组成 三、使用get模块方法进行爬取结果 四、源代码分享 思考和总结 参考网站 爬虫是…

MySQL---触发器详解

目录 一、触发器的介绍 二、触发器的语法 (1)insert触发器 (2)update触发器 (3)delete触发器 一、触发器的介绍 触发器是与表有关的数据库对象,指在insert/update/delete 之前或之后&…

4-UI自动化-selenium三大等待操作

4-UI自动化-selenium三大等待方式selenium三大等待方式强制等待timd.sleep隐式等待implicitly_wait显式等待WebDriverWait显式等待和隐式等待的区别上篇介绍了3-UI自动化-八大元素定位,xpath定位方式和相关的常问面试题 本篇来学习三大等待方式 ♡\color{red}{\hear…

如何用蓝牙实现无线定位(一)--系统原理

1. 简介 本项目将利用多个BLE4.0蓝牙模块,配合主控板、OLED显示屏等,构建一个无线定位系统。 本项目的系统构成为:3个信号塔,1个中控台,2个被定位的目标。 无线定位的用途有很多。比如,我们可以把固定的目…

zabbix拓扑图和聚合图形

目录 一、环境准备 1、搭建zabbix基础环境 2、创建被监控主机 二、拓扑图 1、拓扑图作用 2、拓扑图绘制步骤 三、聚合图形 1、聚合图形的作用 2、创建聚合图形 一、环境准备 1、搭建zabbix基础环境 zabbix基础环境部署参照:zabbix基础环境部署_桂安俊kyli…

方格取数 (两条路径,使得取得的数字和为最大)

设有 NN 的方格图,我们在其中的某些方格中填入正整数,而其它的方格中则放入数字0。如下图所示: 某人从图中的左上角 A 出发,可以向下行走,也可以向右行走,直到到达右下角的 B 点。 在走过的路上&#xff0…

Vue中的组件生命周期

一个组件从创建到销毁的过程 成为生命周期。 在我们使用Vue3 组合式API 是没有 beforeCreate 和 created 这两个生命周期的 组件生命周期如下: onBeforeMount() 在组件DOM实际渲染安装之前调用。在这一步中,根元素还不存在。onMounted() 在组件的第一次…

【手把手】教你玩转SpringCloud Alibaba之Sentinel整合GateWay

1、网关流控介绍 在微服务系统中,网关提供了微服务系统的统一入口,所以在做限流的时候,肯定是要在网关层面做一个流量的控制,Sentinel 支持对 Spring Cloud Gateway、Zuul 等主流的 API Gateway 进行限流。 Sentinel 1.6.0 引入…

R语言隐马尔可夫模型HMM识别不断变化的市场条件

了解不同的市场状况如何影响您的策略表现可能会对您的收益产生巨大的影响。最近我们被客户要求撰写关于隐马尔可夫模型的研究报告,包括一些图形和统计输出。 某些策略在波动剧烈的市场中表现良好,而其他策略则需要强劲而平稳的趋势,否则将面…

【PdgCntEditor】解决PDF的目录页码和PDF实际页码不一致的问题,书签页码偏移页面偏移功能,PDF页面标签的添加

一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码,两者之间存在一定的偏移值;导致我们看目录后面的页码,并不能直接借此数字索引到对应页面,非常麻烦。 二、改变页码标签 这是第一种方法&…

电脑技巧:Win10粘贴文件到C盘提示没有权限的解决方法

❤️作者主页:IT技术分享社区 ❤️作者简介:大家好,我是IT技术分享社区的博主,从事C#、Java开发九年,对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉: 数据库领域优质创作者🏆&#x…

VMware升级手册

1. 概述 1.1 实施范围 本次实施涉及上海SMVIC虚拟化平台的7台物理服务器、7台ESXI节点、一台VC(6.7升级到7.0),以及广德、如皋两个集群迁移到7.0VC。 1.2 实施内容 本项目中需要实施内容包括: 2. 前置准备 升级确认: 3. WBS 4. 实施过程 4.1 VC部署 运行安装包,点击…

R语言生存分析数据分析可视化案例

目标 本文的目的是对如何在R中进行生存分析进行简短而全面的评估。关于该主题的文献很广泛,仅涉及有限数量的(常见)问题。最近我们被客户要求撰写关于生存分析的研究报告,包括一些图形和统计输出。 可用的R包数量反映了对该主题的…

SpringBoot 配置文件这样加密,才足够安全!

1. 前景 在使用Springboot时,通常很多信息都是在application.yml中直接明文配置的,比如数据库链接信息,redis链接信息等等。但是这样是不安全的。 所以需要对敏感数据进行加密,这样防止密码泄露 Jasypt这个库为我们解决了这个问…

[附源码]计算机毕业设计springboot-大学生健康档案管理

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

初识Pytest自动化测试框架,我彻底懂了

初识Pytest Pytest是Python实现的一个测试工具,可以用于所有类型和级别的软件测试。 Pytest是一个可以自动查找到你编写的用例并运行后输出结果的测试框架。 Pytest的特点: 是一个命令行工具,编写用例简单,可读性强非常容易上手…

2023年高企申报准备工作,明光市企业可以提前做这些准备

为了帮助企业提前准备和更好地开展2023年高新技术企业认定申报工作,安徽省大力鼓励企业申报高新技术企业,相应出台了相关政策,同时对于高企申报也有很多奖补,下面小编汇总了滁州市2023年申报,企业提前准备工作有哪些。…

黑群晖从入门到入土,自编译适合自己硬件的黑群晖7.1.x引导(黑群晖DSM7.X引导用arpl编译教程)

写在前面的话 没啥好说的,只需要感谢在GitHub上开源代码的巴西老哥就好,好了废话不多说直接开始。 黑群晖DSM7.X引导用arpl编译教程写在前面的话一、需要的软硬件清单二、制作引导盘1、下载arpl镜像2.1.1、制作PE启动盘,这是使用msata硬盘或…

3. Vue.js 3.0 响应式系统原理

1.响应式系统原理-介绍 接下来通过模拟Vue3的响应式系统来深入了解它内部的工作原理。先来回顾一下Vue3重写了响应式系统,和Vue2相比,Vue3的响应式系统底层采用proxy对象实现,在初始化的时候不需要遍历所有的属性,把属性通过defi…

C语言——结构体(入门)

文章目录1.结构体的声明1.1.结构体是什么?1.2.结构体的声明1.3.结构体的定义和初始化2.结构体成员的访问3.结构体传参1.结构体的声明 1.1.结构体是什么? 在生活中往往很难用一个准确的数据类型来描述一个物体,例如一本书,描述它…