Ethereum
以太坊与智能合约:由网络执行的规则
以太坊既可以转移以太币,也可以执行共享程序。智能合约让许多应用成为可能,同时也具有明确的规则和限制。
张俊编辑笔名
程序与交易
以太坊是一种区块链,除了转移原生资产以太币,还被设计用于执行程序。这些程序称为智能合约。名字听起来复杂,但首先指的仍是代码:一组指令规定某项操作满足特定条件时,应该发生什么。
02运作流程+
设想一个数字保险箱,接受存款后,允许指定地址提取。程序保存必要信息,在收到交易时执行规则。网络参与者验证执行过程。应用由此可以通过合约提供代币兑换、数字物品,或集体组织等功能。
执行与依赖
03要点回顾+
用户通常通过网站和钱包操作。网站提供按钮,钱包显示签名请求,合约执行被授权的动作。这些部分并不相同。界面不能证明程序质量,而一次签名可能授权的不只是简单连接。
执行消耗的资源以gas计量。费用用以太币支付,并随所需工作量和网络需求变化。以太坊采用权益证明:验证者锁定以太币,参与共识,并受到协议规定的奖励和惩罚。这并不意味着所有用户都会成为验证者。
智能合约既不是法律专家,也不是能判断具体情况的智能体。它执行代码,即使代码缺陷会导致不希望出现的结果。为了获知外部事件,它依赖特定机制提供的信息,这些机制通常称为预言机。有些合约可通过管理权限修改,另一些则不能。因此,理解应用需要考察授权、升级可能性和依赖关系。自动化替代部分人工干预,但不会消除设计错误,也不会让所有中介消失。
应用包含不同层次
使用以太坊的应用,可能结合网站、钱包和多个合约。屏幕帮助用户理解可选操作,程序则决定网络实际执行的行为。网站无法访问,不自动意味着合约已经消失;反过来,界面仍能访问,也不能证明底层程序运转正常。这说明可见体验不足以描述整个应用。
举一个虚构程序的例子:当某项计算条件满足时,程序发放积分。它根据收到的数据执行预设指令,并不理解请求背后的人类意图。因此,设计错误可能产生符合代码、却不符合用户想象的结果。“自动”描述的是执行方式,既不评价服务是否有用,也不保证其可靠性。
执行与修改权力
不同合约具有不同的演进能力。有些系统包含升级功能,或可由管理员调整的参数。谁能干预、能够修改哪些部分,都属于服务技术说明的一部分。另外,代币授权和立即转账应加以区分:前者可能允许未来执行某项操作。最后,执行失败与用户拒绝签名是不同事件,即使它们有时在界面上呈现相似结果。