【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

智能合约很好,但还不能完全相信它

  • 2021-05-29
  • 本文字数:3664 字

    阅读完需:约 12 分钟

智能合约很好,但还不能完全相信它

近日,美国总统拜登签发了旨在改善国家网络安全的行政命令,同时在拜登总统令中强调,联邦政府网络安全现代化的关键举措之一便是迈向零信任架构。政府部门向云技术的迁移应在可行情况下采用零信任架构。CISA 应对其当前的网络安全计划、服务和功能进行现代化升级,使其能够在具有零信任架构的云计算环境中完全发挥作用。

 

受该政策影响,“零信任”成为颇受安全领域关注的一个技术方向。在“零信任”领域,智能合约无疑是不可忽略的一项技术。

 

大家对应用和应用商店都很熟悉:在商店中浏览、下载所需的应用,然后离开。在可爱的 UX 和 UI 界面之后,这些应用正在执行其创建者制定的一组特定指令。智能合约执行着与此非常相似的指令。智能合约是一种用一段代码来表达的合约,旨在执行一组指令。

 

唯一的区别是,在智能合约中没有中间人。没有任何人或公司持有用户信息或对其进行验证,进行验证和记录保存的是区块链。

 

Vitalik Buterin 和以太坊社区相信这就是区块链的未来。如果说比特币是商业世界的黄金,那么智能合约就是商业世界赖以生存的石油。

 

谁创建了智能合约?

 

“智能合约”一词是在 1990 年代由著名计算机科学家和密码学家 Nick Szabo 撰写的一篇学术论文中提出,这位科学家还是开发比特币的先驱之一,即 Bit Gold。Szabo 最初描述的智能合同旨在执行一些基本任务,例如减少欺诈和执行合同安排,但后来他在 1996 年的一篇论文中详细阐述了这一技术在数字现金、智能财产等方面的潜在用例。

 

在没有智能合约的时候,如果想要在线上购买一辆汽车,你需要:

 

  • 一个展示网站,可保存你想要查看的所有汽车的信息

  • 一种与卖家沟通的渠道

  • 一种付款系统,你在找到心仪的汽车后用它来付款

  • 如果交易失败,那么还需要退款系统

  • 你还需要在管理部门注册汽车所有权的转移情况

 

这个过程中,用户需要对这些可能由不同公司或个人控制的站点或服务保持信任,但怀有恶意的个人或组织无需花费太多时间就可以篡改任何一项信息,从而让整个流程失效。智能合约则消除了在购买商品的过程中需要信任如此多参与方的要求。这主要源于智能合约本身的几个特点:

 

  • 安全:智能合约使用加密技术来阻止人们更改记录。

  • 透明:每个人都可以在区块链上看到智能合约及其用途。

  • 第三方免费使用:智能合约不需要中间人验证。

  • 自治:智能合约会自动运行,不必等待别人来执行操作。

  • 准确:由于智能合约是用代码编写的,因此它们不依赖会产生歧义的自然语言。

 

智能合约的执行机制

智能合约的核心往往是这样一种机制(用计算机代码表示):“如果发生这种情况,那就这样做”。对应到指令执行程序,即根据提供的信息使用 if/else 语句和其他条件逻辑,自动产生结果。

 

其实,现代社会已经有这种机制了。比如你要使用借记卡或信用卡支付费用,银行的软件将通过以下方式执行“如果发生这种情况,那就这样做”的机制:

 

  • 如果银行帐户中的金额大于要求的金额,请释放资金。

  • 如果银行帐户中的金额少于要求的金额,请不要释放资金。

 

使用智能合约的区别在于,决定权在区块链,而不是由银行(或任何第三方)。因此,如果用构建在区块链上的智能合约来执行,将看到以下内容:

 

  • 如果数字钱包中的金额大于要求金额且尚未用完,请释放资金。

  • 如果数字钱包中的金额小于要求金额或已用完,请勿释放资金。

 

使用智能合约意味着任何人可以与任何人达成协议,区块链会记录整个交易过程。

 

像常规合同一样,智能合约就是要执行协议条款——无论是身份证明、交换数字货币还是其他事务。满足预定条件时,智能合约将自动执行。可以使用三大术语来简要描述智能合约的操作:

 

  • 互连性:每个智能合约通常具有一组受限制的功能。可以设置多个智能合约来相互连接,并且形成更复杂的机制,这被称为去中心化应用(DApps)。

  • 对象:这是与智能合约和由智能合约根据预定义或新提交条款修改的主题进行交互的签名者。

  • 环境:智能合约依赖于底层密码环境来确保运行的安全,并且其数据是透明、不可变的。

 

尽管一些区块链支持更新智能合约,但大多数区块链智能合约的基础代码是不可变的。

 

智能合约的广泛应用

 

DApps 或去中心化应用可以被视为打包在一起的智能合约组合。单独的智能合约只能用于一种类型的交易,但是 DApp 可以将多个智能合约打包在一起来执行更复杂的事务。

 

目前也有一些在业内比较知名的 DApp:

 

  • Augur:一种工具,使任何人都可以投机于金融衍生品

  • MakerDAO:一种去中心化金融(DeFi)DApp,使用户无需中间人就可以借出和借用加密货币。

  • Uniswap:一个基于以太坊的交易平台,使任何人都可以交易 ERC20 代币。

  • CryptoKitties:独特的基于 NFT 的加密货币收藏品,可以使用智能合约对其进行“繁殖”。

  • gentArgent:一种以太坊钱包,使用智能合约摆脱了地址和私钥等概念。

 

智能合约虽然是一种相对较新的技术,但却是整个去中心化金融(DeFi)革命的核心,并被用来为一些流行的 DeFi 协议提供支持,如 Compound、Aave、Uniswap 以及其他数百种协议。同时,智能合约也被许多公司采用,甚至一些政府也已经开始进行尝试。

 

视频游戏巨头育碧在很大程度上拥抱了区块链。育碧为其众多的区块链计划精心设计了专用智能合约,允许用户基于其广受欢迎的 Rabbids 游戏系列拥有、转让和申领稀有的不可替代令牌(NFT);荷兰银行 ING 联合创建了基于区块链智能合约的贸易结算系统 Fnality,同时还参与了许多区块链计划;瑞典政府已经测试了基于区块链的土地注册系统,用来对土地所有权进行确认。


智能合约并不总是完美

 

尽管智能合约被普遍认为是执行协议和逻辑的“零信任”方式,但它并不是没有问题。

 

一方面,智能合约在许多区块链上都是不可变的,这意味着一旦启动就不能对其进行更改或升级,如果代码存在根本性问题就可能导致灾难性的后果。2016 年的以太坊 DAO 黑客事件就是一个绝佳的佐证,当时身分不明的黑客利用 DAO 拆分函数中的漏洞偷走了数百万以太坊(ETH)。

 

另一方面,未知和新颖的攻击媒介也经常被利用,从而导致投资者损失。在 2020 年 9 月,Yearn Finance 的 Andre Cronje 一个项目 Eminence 的测试版本崩溃时就出现了这种灾难。在大量投资者将资金投入其中之后,它被一位不知名的黑客成功攻破,投资者损失高达 1500 万美元。

 

同样,简单的错误代码也能让智能合约化作废纸。2020 年 8 月 DeFi 挖矿项目 YAM 的崩溃就可以证明这一点,该项目使用了未经审计的智能合约,并受到了一个严重错误的影响,导致其治理功能失效。

 

尽管智能合约是通过底层区块链技术来进行保护,但它们也需要通过设计来确保其安全性——因为其代码中的某些功能或错误可以被恶意利用。

 

这种情况过去已经发生过多次,并且仍然是智能合约通向更广泛采用目标时面临的最大挑战之一。已经有总计价值上亿美元的资产从不安全的智能合约中流失,其中包括上述的 Eminence 黑客攻击和 2020 年 4 月的黑客攻击,导致 2500 万美元从 dForce 被盗。

 

区块链调查公司 CipherTrace 在 2020 年 11 月的一份报告中发现,仅 DeFi 项目一个月就浪费了大约 1000 万美元。

 

为了帮助最大程度地减少这种风险,有许多第三方开发和安全公司提供智能合同审核服务,包括仔细检查智能合约代码以识别任何漏洞,然后开发者对这些漏洞进行修复。这一步通常在智能合约公开之前完成。流行的 DApp 通常会在其网站的页脚中发布其智能合同审核信息,从而为没有时间或专业知识自行检查其代码的用户提供信心。

 

如今,大多数区块链都具有智能合约功能,很多活跃的开发者社区使用上面的智能合约来创建 DApp,智能合约的能力范围从简单变得日益复杂。现在仍处于智能合约和 DApp 现实应用的早期阶段,但是已经有公司甚至政府在数字身份、供应链管理、保险、数据存储等领域进行尝试,智能合约在未来还有很大的可能。

 

附:按市值排名的十大智能合约平台

 

在撰写本文时,这 10 个领先的智能合约平台的总市值超过 1760 亿美元,它们分别是:

 

  • 以太坊(Ethereum):以太坊被设计为去中心化的“世界计算机”,可以用作运行 DApp 的大平台。

  • Cardano:Cardano 是一个开源公共区块链项目。它的 USP 自称是世界上第一个经过同行评审的区块链,由一批学者和科学家在协议发布之前对其做了仔细检查。

  • Polkadot:Polkadot 由以太坊联合创始人 Gavin Wood 创建,是一个“多链网络”,旨在将区块链网络连接在一起。

  • EOS:EOS 以商业用户为目标,旨在解决围绕区块链的常见问题,例如速度和可扩展性。

  • TRON:Tron 是一种“去中心化虚拟机”,最初被设计为社交媒体和娱乐平台,现在其崇高目标是支持去中心化互联网。

  • NEM:NEM 平台是新经济运动的缩写,旨在为企业提供一种更有效的方式来验证和转移区块链资产。

  • Tezos:以太坊的竞争对手 Tezos 是从头开始设计的,是基于链上治理的权益证明型区块链。代币所有者可以对提案投票,以更改 Tezos 区块链的工作方式。

  • VeChain:VeChain 旨在改善和简化供应链管理,帮助企业消除制造和交付过程中的欺诈行为。

  • NEO:NEO 通常被称为“中国以太坊”,它与以太坊的不同之处在于前者没有交易费。它也更快,每秒支持约 10,000 个事务。

  • Cosmos:Cosmos 是“区块链的互联网”,这是一种区块链网络的网络,旨在使用区块链间通信协议进行无缝通信。

 

原文链接:

 

https://decrypt.co/resources/smart-contracts


2021-05-29 08:005656

评论 1 条评论

发布
用户头像
来BSN学习区块链,保证让你有意想不到的收获哦~
2021-11-02 18:04
回复
没有更多了
发现更多内容

SpringBoot 入门:02 - 实现 MVC

封不羁

Java spring springboot

阿里花500万年薪招天才黑客?官方回应:这种人得交给警察

程序员生活志

黑客 阿里

如何在 Go 中写出高效的单元测试

Grafana 爱好者

testing slideshare Go 语言

使用 Generic Webhook Trigger 触发 Jenkins 多分支流水线自动化构建

jerry.mei

DevOps 持续集成 jenkins CI/CD 持续交付

看动画学算法之:排序-冒泡排序

程序那些事

算法 动画 排序算法 轻松学

iOS - CollectionViewCell对应不同flow layout的实例

teoking

ios

大话设计模式 | 4. 装饰模式

Puran

C# 设计模式

如何编写可怕的 Java 代码?

武培轩

Java 编程 程序员 后端

U盘+grub2安装centos8实战

程序饲养员

帮助小团队实现大梦想 | Atlassian 云产品免费使用

Atlassian

如何使用预测性指标衡量敏捷转型的成功?

Atlassian

敏捷开发 开发工具 Atlassian Jira

要不要做一个gif动态图玩一下?

诸葛小猿

GIF ScreenToGif 动态图

3W字干货深入分析基于Micrometer和Prometheus实现度量和监控的方案

Throwable

Java 监控 Grafana Prometheus springboot

关于架构的几件小事:架构概述(1)

北风

架构 架构设计 架构师 架构设计原则

AOP有几种实现方式?

八苦-瞿昙

技术 随笔杂谈 aop 代理 框架

了不起的 Webpack Scope Hoisting 学习指南

pingan8787

Java 大前端 webpack

[译] 图说前端-图解 React

梦见君笑

大前端 React 框架

[译] 图说前端-图解 React Native

梦见君笑

大前端 漫画编程

SpringBoot2.x入门:应用打包与启动

Throwable

springboot

谈谈对分布式事务的一点理解和解决方案

Throwable

分布式 分布式事务 架构设计

如何搭建Hive 环境

Rayjun

大数据 hive

工程规约 - maven统一管理

Man

maven DevOps 工程规约

[译] 图说前端-组件、Prop 和 State

梦见君笑

大前端 React 漫画编程

[译] 图解前端-深入理解 Props 和 State

梦见君笑

大前端 React 漫画编程

修炼我们的智慧之眼

J.Smile

认知提升

架构师训练营第六周作业

talen

架构师训练营第六周学习总结

张明森

list vs tupple

Leetao

Python 数据结构 Python基础知识

玛雅密码社区不忘初心 共筑未来通证新经济

Geek_116789

ARST Week7

时之虫

ARTS 打卡计划

创业使人成长系列 (3)- 如何取个好名字

石云升

创业 成长 取名

智能合约很好,但还不能完全相信它_区块链_Matt Hussey_InfoQ精选文章