最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

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

  • 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:005668

评论 1 条评论

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

2023金三银四Java开发岗热门面试题总结

小小怪下士

Java 程序员 面试 金三银四

全网首推!头条大佬手码的164页Elasticsearch核心学习手册,我服了

做梦都在改BUG

Java 搜索引擎 elasticsearch ES

对上一年工作中猫腻的总结

HoneyMoose

以后我准备告别String.format()了,因为它不够香!

Java你猿哥

Java 编程 string 格式化 format

Nautilus Chain:我们将支持EIP6969

西柚子

来自大佬的洗礼!全网独家的SpringCloud Alibaba学习笔记,太全了

做梦都在改BUG

Java 架构 微服务 Spring Cloud

一文纵览Umi's Friends生态,GameFi浪潮的变革者

鳄鱼视界

深度学习应用篇-计算机视觉-图像增广[1]:数据增广、图像混叠、图像剪裁类变化类等详解

汀丶人工智能

人工智能 深度学习 CV 计算机视觉 图像增广

Spring Boot 开发离不开这些注解,快来学习啦!

Java你猿哥

spring Spring Boot ssm spring aop java框架

真香!阿里最新产出分布式进阶实战手册,涵盖分布式架构所有操作

Java你猿哥

Java 架构 Spring Cloud Spring Boot ssm

简化Mybatis分页操作,让我们来聊聊 PageHelper 及实现原理

Java你猿哥

Java mybatis ssm PageHelper

首屈一指,清华大佬首推"中高级Java程序员进阶小册",程序员架构进阶必备

做梦都在改BUG

Java java面试 Java八股文 Java面试题 Java面试八股文

深度学习入门系列(一):一文看懂 MNIST

U2647

神经网络 机器学习 深度学习 keras

阿里内部总结的微服务笔记,从入门到精通小白也能学的会

Java你猿哥

分布式 微服务 微服务架构 Spring Cloud ssm

专业笔记工具:Keep It 激活版

真大的脸盆

Mac Mac 软件 笔记工具

Github上获赞59.8K的面试神技—1658页《Java面试突击核心讲》

做梦都在改BUG

Java java面试 Java八股文 Java面试题 Java面试八股文

原来user.dir竟然会影响classpath的值

Java你猿哥

Java tomcat classpath ssm

阿里架构师JVM基础到调优笔记,吃透阿里P6小case

做梦都在改BUG

Java 性能优化 性能调优

2023-06-03:redis中pipeline有什么好处,为什么要用 pipeline?

福大大架构师每日一题

redis 福大大

构筑算力时代的全光底座,华为带来了面向F5.5G演进的战略蓝图

脑极体

光网络

Maven的依赖作用域和依赖传递

做梦都在改BUG

Java maven 依赖

2023年互联网Java工程师高级面试八股文汇总(1260道题目附解析)

架构师之道

Java 面试

互联网广告代理加盟 全媒体广告投放项目解析

微点全媒体微信推广渠道

大神在民间!碰巧在Github发现一个Java面试高分Guide,已跳槽涨20K

做梦都在改BUG

Java java面试 Java八股文 Java面试题 Java面试八股文

鲨疯了,阿里限时开源的亿级高并发设计实录,Github都为之低头

做梦都在改BUG

Java 系统设计 高并发

不愧是牛客网爆火的1658 页《Java 面试突击核心讲》,面面俱到太全了

采菊东篱下

Java 程序员 面试

强化学习基础篇[3]:DQN、Actor-Critic详细讲解

汀丶人工智能

人工智能 深度学习 算法 强化学习 DQN

【Python金融-001】如何快速计算股票的收益?1行代码,高效做T

程序员晚枫

Python 金融 股票

SpringBoot异步线程,父子线程数据传递的5种姿势

Java你猿哥

Java Spring Boot 线程 ssm 异步

一文读懂Java多线程背后的故事

做梦都在改BUG

Java 多线程

Nautilus Chain:我们将支持EIP6969

鳄鱼视界

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