launchkit

您已加入 🚀

什么是智能合约?区块链自动化详解
Web3 词汇
什么是智能合约?区块链自动化详解
The DAO筹集1.5亿美元,然后被黑客攻击损失6000万——智能合约如何运作、为何存在,以及为什么代码即法律直到它不是

2016年,一个名为The DAO的智能合约筹集了1.5亿美元的以太坊,旨在创建一个由代码而非人类管理的去中心化风险基金。推介词很美妙:透明的规则、民主投票、没有腐败的高管做幕后交易。然后有人发现了一个漏洞,在任何人能够阻止之前抽走了6000万美元。以太坊社区硬分叉了区块链以逆转盗窃,这在某种程度上违背了"代码即法律"的整个前提。欢迎来到智能合约的世界,代码总是完美执行,即使它完美地错误。

智能合约是存在于区块链上的程序,在满足特定条件时自动执行。把它想象成自动售货机:你投入钱,选择零食,机器无需收银员就能分发它。"合约"部分是它执行协议——如果你履行你的一方(付款),它就履行另一方(交付)。"智能"部分是……嗯,这是营销。这些东西完全按照编程的指令执行,这使它们具有确定性,而不是智能。

这个概念可以追溯到1994年,当时Nick Szabo提出了可以自动执行合约条款的数字协议。但这个想法一直是理论性的,直到区块链提供了基础设施。以太坊于2015年推出,使智能合约变得实用。每个以太坊节点运行一个虚拟机,执行用Solidity编写的程序。任何人都可以部署代码,使其永久自主运行而无需服务器。

智能合约如何工作

智能合约是存储在区块链上的代码。当你将其部署到以太坊时,它存储在特定地址。要与之交互,你向其地址发送交易。成千上万的节点独立执行相同的代码并达成共识。

智能合约一旦部署就是不可变的。你不能编辑代码。这是一个功能,因为规则不能任意更改。这是一场噩梦,因为错误是永久的。The DAO黑客之所以发生,是因为重入漏洞无法在不分叉整个区块链的情况下修复。

Gas费用支付执行费用。在数千台计算机上运行代码是昂贵的,所以以太坊根据计算复杂性收费。

自动售货机隐喻

传统合约需要中介:律师、产权公司、托管代理。智能合约通过将协议编码为代码来消除中介。

购买NFT就证明了这一点。交换是原子性发生的——代码检查付款,然后转移NFT。要么两者都执行,要么都不执行。无需信任,无需中介。

这适用于数字资产,因为一切都在链上。但智能合约无法与现实世界交互。它们只知道链上的东西。如果你的合约需要天气数据或股票价格,它需要预言机。

预言机向智能合约提供外部数据。Chainlink是最大的预言机网络。问题是预言机重新引入了信任。如果你的"无需信任"合约依赖Chainlink报告以太坊的价格,你就是在信任Chainlink。合约的去中心化程度取决于其最弱的环节。

这限制了智能合约管理链上数字资产。DeFi有效,因为代币余额是区块链原生的。将智能合约用于房地产或供应链需要可信的数据源,这会破坏无需信任的前提。

DeFi爆炸

DeFi(去中心化金融)用智能合约而不是银行重建金融服务——借贷、交易、保险。结果是无需许可的、透明的,偶尔是灾难性的。

Uniswap开创了自动做市商,让任何人无需订单簿即可交易代币。整个交易所只是代码,没有公司或员工。Aave和Compound创建了借贷市场,你可以存入加密货币赚取利息或抵押借款。数十亿锁定在这些协议中,全部由代码管理。

承诺是无需许可的金融。没有银行账户,没有信用检查,没有地理限制。任何有互联网和加密货币的人都可以参与。对于货币不稳定国家的数百万人来说,这是革命性的。

问题是错误变成金融灾难。2022年从DeFi中盗取了超过30亿美元。桥梁被黑客攻击,协议被耗尽,漏洞级联——都是因为代码有漏洞。与银行不同,没有保险,没有逆转,没有客户服务。

NFT和DAO

NFT是证明独特数字物品所有权的智能合约。当你购买NFT时,合约将所有权从卖家转移给你。合约不存储实际图像——区块链太昂贵了。相反,它存储指向IPFS上图像的URI。你的10万美元无聊猿只是一个指向可能消失的链接的区块链条目。

DAO(去中心化自治组织)使用智能合约进行治理。DAO不是CEO和董事会,而是通过代币投票进行协调。代币持有者投票,合约自动执行提案。像MakerDAO这样的现代DAO管理价值数十亿的协议。挑战在于合约执行编码的内容,而不是预期的内容。DAO面临治理攻击,有人购买代币以通过恶意提案。

安全噩梦

智能合约安全是一场灾难,因为错误是永久的且可以被金融利用。传统软件可以打补丁。智能合约不能,所以每个错误都成为攻击向量。

The DAO黑客是重入攻击:攻击者在合约更新其记录之前反复提取资金。预言机操纵利用使用闪电贷的价格源。访问控制错误让未授权用户调用特权函数。Poly Network损失了6亿美元,因为一个函数意外公开。

审计有助于发现错误。顶级协议获得多次审计并提供漏洞赏金。但审计是快照——Euler Finance在2023年3月损失1.97亿美元之前经过多次审计。

以太坊也很慢且昂贵。它每秒处理15-30笔交易。Gas费用可能达到每笔交易50-100美元。Layer 2 rollups通过将执行移出链外来解决这个问题,将吞吐量提高10-100倍。

代码即法律(直到它不是)

"代码即法律"是意识形态基础——代码完全按照编写的方式执行,没有解释,没有例外。这创造了可预测性,但听起来比实际更吸引人。

The DAO黑客测试了这一点。攻击者利用了代码技术上允许的重入漏洞。从"代码即法律"的角度来看,他们遵循了规则。从常识来看,他们偷了6000万美元。以太坊硬分叉以逆转盗窃,放弃"代码即法律"而选择实用主义。

不可变性是一个功能,直到它变成一个错误。一旦部署,智能合约就无法更改。这可以防止rug pulls,但意味着错误是永久的。项目使用代理合约进行升级,这重新引入了集中化。没有干净的解决方案:不可变性或可升级性,选择你的毒药。

诚实的评估

智能合约是在没有中介的情况下协调数字资产的强大工具。它们支持处理数十亿美元的DeFi、NFT市场和DAO。尽管经常发生灾难,这项技术仍然有效。

但它们不是魔法。它们是缓慢、昂贵、容易出错的具有永久代码的程序。它们在数字原生应用中表现出色。它们在需要隐私或判断的现实世界集成中遇到困难。

"智能"标签具有误导性。这些合约是确定性的,而不是智能的。它们完全按照指令执行,即使是错误的。它们无法解释意图或适应。它们是脆弱的自动化,在约束范围内强大。

"合约"标签也具有误导性。大多数不是法律协议。它们是执行交易的程序。在MetaMask上点击"批准"可能不构成法律协议。

未来看起来像是选择性采用。金融基础设施受益于自动化。数字所有权对NFT有意义。DAO协调适用于互联网原生社区。大多数消费者应用不需要区块链后端。

智能合约可能会成为无形的基础设施。你将在不知不觉中与它们交互,就像TCP/IP一样。高价值合约受到监管,实验性合约仍有风险,消费者应用将它们用作后端基础设施。

诚实的看法:智能合约对特定问题有用——无需许可的金融、数字所有权、无需信任的协调。它们不是通用的。代码并不真的是法律,智能并不真的是智能,合约并不真的是法律的——它只是分布式账本上的确定性程序。在这个框架内,它们实际上非常有用。

而且与传统合约不同,至少它们完全按照编写的方式执行。即使那很糟糕。


延伸阅读:

相关术语