首页 > 区块链 > 关键词 > 以太坊智能合约最新资讯 > 正文

真正理解以太坊智能合约

2019-04-29 16:25 · 稿源:蓝狐笔记公众号

以太坊001

图片版权所属:站长之家

声明:本文来自于微信公众号蓝狐笔记(ID:lanhubiji ),授权站长之家转载发布。

前言:智能合约这个词你可能听过无数遍,但有多少人真正理解什么是智能合约?本文帮你深入理解以太坊智能合约。本文作者是Gjermund Bjaanes,由“蓝狐笔记”社群的“Dyna”翻译。

你可能听说过“智能合约”,甚至可能知道它们是在区块链上运行的代码。

但是你如何才能在区块链上运行代码?这不是可以轻易理解的简单概念。

本文解释了智能合约是如何在以太坊区块链上运行的。对编程的基础理解将会有所帮助,因为本文包含了一些用于举例的简单代码。为了清晰起见,本文将其中的一些技术细节稍微进行了简化,但概念是有效的。

区块链-快速入门

这里不讲太多细节,区块链技术的核心概念是分布式账本。它是一种在众多参与者之间共享的特殊类型的数据库。

这个特殊的数据库就是一个交易列表,记录了网络中发生的每一笔交易。每个人都有一个副本。这种去中心化分布结合强有力的货币激励措施, 消除了各方之间信任的必要性。

传统意义上,当事人之间的信任是通过中间人,即第三方来解决的,比如Paypal、银行。与你不信任的人之间的交易将通过双方都信任的中间人进行。

有了区块链,这种需求消失了。因为你可以把你的信任放在网络上,在这里,强有力的激励措施消除了作弊欺骗的欲望(简而言之:遵守规则更有利可图)。

更具体地说:区块链网络是一组机器,它们记录着相同的交易列表副本(例如,从A转给B的钱)。

因为每个人都有相同的列表,所以很难欺骗网络接受错误的交易。结合一些加密算法和货币奖励以便遵守规则,你的网络会非常安全。

所有这些也使得区块链几乎是不可变的,因为改变历史记录的唯一方法是获得全网大多数人的同意。

什么是智能合约?

区别于比特币,以太坊最大的不同是引入了智能合约的概念。比特币是数字货币,以太坊也是数字货币,但远不止这些。

“智能合约”这个名称有点误导人。它们不是真正的合约,也不特别智能。它们只是一些可以运行在区块链上的代码 - 或者说是计算机逻辑运算。

首先,我将介绍有关智能合约是以太坊网络上的一种特殊账户。你有用户账户,你还有智能合约账户。

一个用户账户包括:

  • 一个地址(类似于你的银行账号-它也存在于比特币上)

  • 余额(我有多少钱)

一个智能合约账户包括:

  • 一个地址

  • 余额(以太坊)

  • 一个状态

  • 代码

地址和普通账户的地址是一样的,它是该账户的唯一识别符。

余额和普通账户也是一样的概念。唯一令人激动的是,智能合约上的余额意味着代码可以拥有金钱。它可以处理这些钱,也可能因为编码错误而造成处理不当。

智能合约帐户的状态是智能合约中声明的所有字段和变量的当前状态。它的工作方式与大多数编程语言中类的字段变量相同。事实上,一个类的实体化对象可能是理解智能合约的最简单方法。唯一的区别是这个对象是永久存在的(除非被编程为自我毁灭)。

智能合约的代码是编译好的字节代码,以太坊客户机和节点可以在上面运行。它是在创建智能合约时执行的代码,并且包含可以调用的函数。就像面向对象编程的语言中的任何对象一样。

关于智能合约的趣事:它们可以调用其它的智能合约。这就开启了创建自主代理的能力,这些代理可以自己花钱和进行交易

假设我用上面的代码创建了一个智能合约。该代码有一个名为counter的字段,类型为uint(整数)。counter变量的内容是本合约的状态。每当我调用count()函数时,任何人都能看到这个智能合约在区块链上的状态将会加1。

稍后我们将通过更多的例子来解释它是如何工作的,但首先我想回到以太坊和比特币的交易,并以此来解释一些事情。

交易水平上,以太坊VS比特币

比特币交易非常简单。你可以只做一件事。一种类型的交易。略过一些细节,一切都可以归结为TO(付给,谁在收钱),FROM(来自于,谁在付钱)和AMOUNT(数量,多少钱)。这使得比特币成为一种价值储存手段,能够在网络参与者之间传递价值。

以太坊的不同之处在于交易还有一个“DATA”(数据)字段。该“DATA”字段支持三种类型的交易:

  • 价值转移(和比特币一样)

    •  TO接收地址

    • DATA字段为空或包含要附加的任何消息

    •  FROM

    • AMOUNT是你要发送的以太坊数量

  • 创建智能合约

    • TO字段为空(它触发智能合约的创建)

    • DATA字段包含编译为字节代码的智能合约代码

    • FROM

    • AMOUNT 可以是 0 或者任意你想放在合约里的以太坊数量

  • 调用智能合约

    • TO字段是智能合约账户地址

    • DATA字段包含函数名称和参数– 如何调用智能合约

    • FROM

    • AMOUNT可以是 0 或者任何数量的以太坊,比如你需要为一项服务合约支付的数目

在这些交易中还有更多的字段和复杂性,但以上这些已经很好地解释了核心概念。让我们看看关于这些交易的一些更具体的例子。

以太坊交易

价值转移

非常简单。TO向一个地址发送一定数目的以太坊代币。你也可以为一笔交易加上一条消息。

创建智能合约

正如以上提到的,一个空的TO字段表示创建一份智能合约。DATA字段包含编译为字节代码的智能合约。

调用合约

我们稍后会回到这个问题,但是其主要概念是你将交易发送到你想要调用的智能合约地址,然后将函数调用放在DATA字段中。

注意成本和执行

正如你所想象的,你不能一直在区块链上免费运行计算量很大的程序。

代码的执行是由调用者用一种叫做gas的东西来支付的。Gas是运行以太坊虚拟机的燃料。你可以将其视为每次执行指令的费用(就像一行代码)。

你需要为一个特定的合约调用设置可花费的最大gas。比如,如果你调用的代码进入了一个永久循环,将会确保在执行过程中所花费的gas不会超过设置的最大gas。

gas(执行)的成本由网络的矿工(运行代码的节点)决定。关于gas和执行,还有很多知识。但以上这些值得牢牢记住。

智能合约如何工作?

当一个智能合约被部署到以太坊网络时,任何人都可以调用智能合约的函数。虽然出于安全考虑该函数可能阻止人们调用,但你可以自由尝试。

假设有一个MyObject类型的对象。该对象有一个名为myFunction的函数。要调用它,只需引用对象的实例、调用哪个函数和使用哪个参数调用。

像这样:

myObjectReference.myFunction(parameters);

该函数返回的任意值,可以将其存在变量中:

myVariable = myObject.myFunction(parameters);

调用一个智能合约在概念上是一样的。唯一的区别是,你必须将调用相关的所有信息放在交易中,对其签名并发送到网络上来执行。

假设你想要调用函数myFunction,其中包含智能合约“0x0123456”里的一些参数。调用智能合约分四步:

现在,当交易被放进区块链中的一个块,该状态变化便会被记录在整个网络中。

世界计算机

许多人把以太坊称为世界计算机。这是个不错的类比。它就像一台由整个世界来维护的虚拟机。

但是请记住:虽然智能合约是图灵完备的,并且理论上可以做任何事情,但它们不太适合繁重的计算工作。

以太坊世界计算机就像一台运行简单程序的老式慢速计算机。由于成本和安全性,保持以太坊的智能合约小而简单是至关重要的。

合约需要的计算量越多,运行的成本就越大。合约越复杂,就越有可能存在安全漏洞。而且智能合约中的安全漏洞是很难处理的——毕竟区块链是不可变的。

举例:通证

回归重点,我想解释一下通证是如何工作的。

大多数这些通证都是在以太坊上创建的,而且概念非常简单(它运行良好,但是太简单了,以至于几乎可以说是愚蠢的)。

如何使用Javascript或其他编程语言编写一个简单的货币系统?你可以在一个文件中完成所有的操作。你真正需要记录的是:

1. 总供应量

2. 账户

3. 账户中的余额

4. 资金流向

通过用户和余额之间的简单映射,你可以得到 123 的答案:

该map只是把一个账户映射到一笔钱。

使用构造函数(constructor),你可以在自己的帐户中设置初始供应量 (或分布在任意数量的账户中)

资金的流动是通过简单的函数来完成的,即从一个账户中减去,然后加在另一个账户上。 

创建通证与我们在以太坊使用的概念完全相同。当然,还有一些更复杂和额外的功能,但是基本概念非常简单。

以下就是基本的通证合约在以太坊编程语言中呈现的样子(再次重申:为清晰起见进行了简化):

这就是基础编程概念。我认为这说明了以太坊作为一个平台的力量。通过一些简单的代码,你可以凭空生成一个代币,它本质上就是由世界计算机记录的一些变量。欢迎来到新的互联网。

  • 相关推荐
  • 大家在看
  • 以太坊备受关注,OKEx的多元化交易

    Dune Analysis数据显示,截至6月13日,以太坊去中心化交易平台近7日的总交易量为2.47亿美金,较上一周相比,上涨了13%。OKEx数据显示,截至6月17日,ETH暂报223USDT,较昨日增长0.15%。近日来,以太坊接连上涨三天,成为了投资者聚焦数字货币的又一热门选择。在大多数平台仍旧以BTC交易为主的时候,OKEx作为世界领先的数字资产交易平台,已经开放了多项以太坊投资交易的内容,为投资者提供了多元化、便捷的选择。OKEx已提供了以ETH

  • OKEx早报:以太坊2.0一周内开测,挖矿木马近期活跃

    OKEx早报将在每日早间为您带来最新的行情,以及相关行业动态。帮助投资人在最短的时间内了解夜间的动态消息,更好的握把每日行情。行情速递6月24日讯,昨日晚间BTC出现一轮上涨行情,通过OKEx平台交易数据可以看出,BTC今日开盘报9691.01美元。开盘后一路震荡下行,至6:45跌至早间低点9591.47美元,早间跌幅接近100美元。随后开始横盘整理,截止发稿BTC报9629.34美元。图片来源:OKEx平台BTC/USD交易数据据OKEx交易大数据显示,BT

  • OKEx讲解以太坊影响,ETH 2.0主网或将于11月启动

    在 6 月 17 日OKEx矿池与以太坊中国社区主办的ETH 2.0 AMA中,以太坊多客户端测试网开发者Afri Schoedon表示,谈ETH2 发布路线图的时候最好不要带上主网启动的具体日期。我们都没法预判主网的创世区块何时产生,因为ETH2 实在是有太多变动因素了。但是对于ETH2 这一重大里程碑,我认为首先,所有客户端都必须实现规范的最终版本v0.12.1。目前只有一个客户端实现并发布了最新版本,我们计划本月底多客户端测试网能够实现最终版本规?

  • OKEx早报:俄电子投票系统遭攻击,以太坊2.0测试网启动

    OKEx早报将在每日早间为您带来最新的行情,以及相关行业动态。帮助投资人在最短的时间内了解夜间的动态消息,更好的握把每日行情。行情速递6 月 30 日讯,昨天BTC收跌,跌幅0.35%,盘中逼近 9000 美元关口。通过OKEx平台交易数据可以看出,今日早间行情较为平淡,BTC开盘报9121. 46 美元。开盘后一路缓慢上行,6: 00 涨至早间高点9234. 80 美元。随后开始横盘震荡,截止发稿BTC报9175. 28 美元。图片来源:OKEx平台BTC/USD交易数?

  • DeFi增长超过比特币、以太坊,OKEx分析师做出风险提醒

    据金色财经消息,一些加密货币资产在今年表现不错,其中比特币和以太坊分别上涨了32%和82%,排名前100位的以太坊DeFi代币则上涨了237%,其当年累计平均回报率超过了比特币和以太坊。早在今年1月,我们就曾比较DeFi和BTC 2019年的表现。结果显示,采用同等权量的6个主要DeFi代币——ETH,MKR,SNX,LINK ,KNC,ZRX (+ 550%)的表现远超BTC(+ 86%)。DeFi的新趋势DeFi出现了一种新兴趋势:代币被赋予了对协议的经济和管理权力?

  • 欧科云链行业观察:OKLink带你参与不容错过的以太坊2.0

    如果说区块链有热搜榜,那比特币和以太坊注定要霸占 2020 整年的榜单前列。比特币减半的热度才退散,以太坊2. 0 迅速接力。北京时间 6 月 15 日,以太坊正式启动测试网Onyx。曾经被人笑称“永远还有 18 个月”的以太坊2.0,终于到了临门一脚的时刻。以太坊重点项目的企业孵化器 Consensys 正在机构用户的支持下,测试 “ Staking as a service”。这一服务可以让机构用户从以太坊2. 0 中赚取收益。第一批参与的机构用户包括Matrix

  • 投资者对以太坊期权兴趣超过比特币,OKEx CEO Jay Hao解读期权市场

    据Cointelegraph消息,以太坊(ETH)期权今年的表现非常出色,过去两个月里,Deribit的未平仓头寸飙升315%,达到1.58亿美元,首次突破了1.5亿美元大关。尽管以太坊最初只是为以太坊平台的用户提供钱包服务,以便与平台上开发的应用程序一起使用,但最近以太坊成为比特币(BTC)的明显竞争对手,以太坊是按市值计算的第二大加密货币。ETH期权的出现ETH期权主要出现在2019年3月,当时Derbit在其交易所推出了以太坊衍生品,包括期权?

  • 《合约星期五》OKEx 季度0619期合约周报

    特别支持媒体:火星财经 金色财经特别支持机构:币牛牛 AICoin 开单支持媒体:耳朵财经 火讯财经 陀螺财经本期内容总览:【行情回顾及官方解读】【OKEx交易大数据解读】【大V及机构解读】本周重要行情回顾及官方解读行情回顾:美国约翰斯·霍普金斯大学发布的实时统计数据显示,截至北京时间6月19日7时30分左右,全球累计确诊新冠肺炎病例8,449,983例,累计死亡452,465例。全球疫情持续蔓延,多个国家抗疫形势不容乐观。美国累计确

  • 《合约星期五》OKEx季度0619期合约周报

    行情回顾:美国约翰斯·霍普金斯大学发布的实时统计数据显示,截至北京时间6月19日7时30分左右,全球累计确诊新冠肺炎病例8,449,983例,累计死亡452,465例。全球疫情持续蔓延,多个国家抗疫形势不容乐观。美国累计确诊2,185,873例,累计死亡118,334例。与前一日数据相比,美国新增确诊病例22839例,新增死亡病例633例。外围市场方面,美股经过上周四的暴跌后,本周开始止跌反弹,截止昨晚美股收盘,三大股指涨跌不一,道指报

  • 交易所永续合约费率大对比,OKEx优势何在?

    摘要:永续合约通过资金费用机制,来使永续合约市场价格锚定现货价格。 收取时间: 各交易所资金费用均为每 8 小时收取一次,收取时间略有不同,其中OKEx、Binance收取时间均为(每天的08:00、16: 00 和24:00(HKT)),Huobi的收取时间为(每天的04:00、12: 00 和20:00(HKT))。当在收取的时刻持有仓位时,用户才需要支付或收取资金费用。如果在费用收取之前平仓,则不需要支付资金费用。资金费率为正时,多头支付空头资金费用

  • 最强防爆仓指南,以OKEx为例教你了解真正的合约法则

    随着数字货币衍生品市场的发展,虚拟合约凭借其高杠杆和可做空的特点,吸引了越来越多的用户开始进行合约交易。然而,大部分用户对合约产品的理解和认知程度不足。在交易时完全凭感觉选择初始保证金和杠杆倍数,因此面临着巨大的爆仓风险。因此本文将以OKEx合约产品为例,具体说明合约爆仓相关重要规则,并通过实例介绍如何正确地进行合约交易。1. 虚拟合约产品中的关键要素虚拟合约是由合约交易所统一制定的,规定了未来特定的时?

  • 比特币期权合约如何选?OKEx分析师的“进阶策略”

    据CoinDesk消息,Skew数据显示,比特币期权市场未平仓合约与期货和掉期市场未平仓合约的比率从2020年1月至今出现了明显的上升趋势,这表明期权未平仓合约的增长率已超过比特币期货和掉期未平仓合约的增长率,意味着期权未平仓合约的受众度在增加,投资者对于期权合约的选择在增加。 期权合约备受瞩目,投资者在市场中对于期权合约难以抉择。在上一期的“入门指南”中,OKEx的分析师以OKEx的期权合约为例,向大家介绍了不同种类的?

  • 期权合约交易火爆,OKEx分析师详解产品逻辑

    据OKEx官方消息,OKEx于 2020 年 6 月 4 日17:00(HKT)在网页端和移动端同步正式上线ETHUSD期权合约。同时,OKEx平台官方已捐赠1000ETH注入到ETHUSD期权合约风险准备金。而很多交易者在刚接触期权时,往往难以理解数字资产期权和交割合约的区别。为此,OKEx分析师将通过案例给投资者进行讲解,以便投资者更好的了解数字资产期权和交割合约:假设目前比特币市场价格为7, 000 美元,一个投资者想将手中的7, 000 美元投入该市场。?

  • 币安周报:全新合约交易产品 + 更多代币开放逐仓杠杆模式

    本期周报( 2020 年 5 月 25 日- 5 月 31 日):我们上架了全新THETA/USDT永续合约,新增 10 种支持逐仓杠杆模式的代币,并披露了Binance IDR的未来发展计划。币安合约交易平台及期权动态1. 币安合约交易平台上架THETA/USDT永续合约。其杠杆自主调节功能从1- 50 倍调整到1- 20 倍,同时调整了风险和保证金水平。2. 币安合约交易平台的交易平台界面“启用”、“停用”、“尺寸”调整功能已上线。可按图表、交易深度、订单簿、交易、

  • 香港联合交易所将推出网易股票期权和期货合约

    DoNews 6月5日消息(记者 程梦玲)香港联合交易所有限公司将推出网易股票期权和期货合约。若相关股票成功上市,新股票期权和期货将于2020年6月11日(星期四)同日推出。网易6月11日首日上市交易有资格进行卖空交易。

  • 韦神合约期跳槽虎牙案一审宣判 赔偿斗鱼8522万

    近日,斗鱼方面透露, 2019 年 12 月 30 日,湖北省高级人民法院对国内知名电竞选手、主播韦朕合约期内跳槽案件作出判决。判决书显示,法院判定韦朕在合同期内跳槽其他平台的行为为故意根本违约,按照合同约定,判决韦朕向原告武汉鱼行天下文化传媒有限公司(以下简称“鱼行公司”)支付违约金 8522 万元。

  • 比特币期权6月报告,OKEx期权合约数据“食用指南”

    近期,Arcane Research报告提到,“接近10亿美元的比特币期权合约将于6月26日到期,占BTC期权市场未平仓合约总额的60%。在这种情况下,在到期日之前可能会有很大的经济激励将现货价格推向一定水平。”需要明确的是比特币期权交易量仅占BTC期货和现货交易量的1%。这意味着,期权在比特币市场具有巨大的发展潜力。实际上,比特币期权合约的需求量在不断地增加。据AMBCrypto消息,比特币期权市场已经注意到,交易员对买入看涨期权合约

  • 抹茶交易所推出新版合约系统 功能风控大升级,用户驱动创新力

    6 月 5 日,MXC抹茶发布公告显示,当日 11 点,MXC抹茶交易所经全方位升级的新版合约系统率先上线网页端,APP 正式版本于 6 月 8 日 11 点上线。据其官方介绍,新版合约系统,不仅在功能、性能、风控和产品方面实现了全方位升级,还针对产品细节进行多处优化和改良,是其着力打造的“精品合约”。1、将选择固定杠杆变为可1- 125 倍自由调节杠杆。按 MXC 抹茶原版合约,用户只能选择逐仓 20、50、100 倍三种杠杆,而新版合约系统上?

  • 5.0还没用上呢!PCIe 6.0正式版明年出炉 支持800G以太网

    作为计算机行业最通用的总线标准,PCIe 3.0-4.0用了足足7年,但是眼下PCIe 4.0还没有全面普及,PCIe 5.0早已完成,PCIe 6.0也跃跃欲试了。PCI-SIG组织今天在开发者大会上官方宣布,PCIe 6.0标

  • 云测数据:场景化AI数据 破解智能家居“伪智能”

    据IDC的数据研究报告显示,近5年内智能家居市场将以14.9%的复合增长率增长。得益于物联网、人工智能、5G等新型技术的飞速发展,智能家居在短短数年间就已经相继渡过了“自动化”、单品智能化”、“物联网+家居场景”三个阶段,进入了当前的“人工智能+家居场景”的“智能”阶段,开启了智能家居对人的思维和意识的学习与探索。现阶段的智能家居融合了IoT、人工智能、边缘计算等信息技术,以前影视片段中一声令下就能控制所有家具电器、?

  • 参与评论
文明上网理性发言,请遵守新闻评论服务协议

热文

  • 3 天
  • 7天