月亮链 月亮链
Ctrl+D收藏月亮链
首页 > Gateio > 正文

以太坊:真正理解以太坊智能合约_区块链

作者:

时间:1900/1/1 0:00:00

编者按:本文来自蓝狐笔记,作者:GjermundBjaanes,编译:Dyna,星球日报经授权发布。前言:智能合约这个词你可能听过无数遍,但有多少人真正理解什么是智能合约?本文帮你深入理解以太坊智能合约。本文作者是GjermundBjaanes,由“蓝狐笔记”社群的“Dyna”翻译。你可能听说过“智能合约”,甚至可能知道它们是在区块链上运行的代码。但是你如何才能在区块链上运行代码?这不是可以轻易理解的简单概念。本文解释了智能合约是如何在以太坊区块链上运行的。对编程的基础理解将会有所帮助,因为本文包含了一些用于举例的简单代码。为了清晰起见,本文将其中的一些技术细节稍微进行了简化,但概念是有效的。区块链-快速入门

这里不讲太多细节,区块链技术的核心概念是分布式账本。它是一种在众多参与者之间共享的特殊类型的数据库。这个特殊的数据库就是一个交易列表,记录了网络中发生的每一笔交易。每个人都有一个副本。这种去中心化分布结合强有力的货币激励措施,消除了各方之间信任的必要性。传统意义上,当事人之间的信任是通过中间人,即第三方来解决的,比如Paypal、银行。与你不信任的人之间的交易将通过双方都信任的中间人进行。有了区块链,这种需求消失了。因为你可以把你的信任放在网络上,在这里,强有力的激励措施消除了作弊的欲望(简而言之:遵守规则更有利可图)。

NEST LABS负责人Tina Zhang:DeFi还远远没有真正的走出去:金色财经现场报道,在金色财经主办的 “金色沙龙第59期上海站:“DeFi-2021发展形势与投资价值分析”的活动圆桌环节中,NEST LABS负责人 Tina Zhang发言指出:Defi它现在还像一个襁褓婴儿一样,只是刚刚开始,DeFi 还远远没有真正的走出去。

我们按圈层范围,由大到小:普通人-金融圈-科技金融圈-区块链金融-BTC-以太坊-DeFi。

BTC以数字黄金的身份通过十年时间将需求触及到了普通人,ETH暂时还没有做到,DeFi能否助推ETH触达普通人的圈层,或者说DeFi本身能否触达普通人的圈层,可能才是我们未来需要研究的方向和天花板,现在还远远不够。2021仍然是一个Defi元年。[2021/1/22 16:47:49]

更具体地说:区块链网络是一组机器,它们记录着相同的交易列表副本(例如,从A转给B的钱)。因为每个人都有相同的列表,所以很难网络接受错误的交易。结合一些加密算法和货币奖励以便遵守规则,你的网络会非常安全。所有这些也使得区块链几乎是不可变的,因为改变历史记录的唯一方法是获得全网大多数人的同意。什么是智能合约?

HBTC Chain负责人:DeFi是公链生态的重要组成部分,可以促进公链的真正发展和长期价值保障:金色财经报道,在10月21日举办的《金色百家谈 | HBTC Chain打造跨链Dex解决方案》的直播节目中,HBTC Chain负责人Cody表示,DeFi对于公链的重要性不言而喻,优秀健康的DeFi会是公链的护城河,以太坊就是最好的案例。从公链的发展来看,最先大家讲究的是共识算法/扩展性/性能等,最后,我们逐步公链的竞争来到了生态之争,DeFi就是公链生态最好的补充之一。以太坊之所以是以太坊,更多的是以太坊上有足够多的生态应用来支撑其价值,形成了事实上的公链绝对领先地位。DeFi是公链生态的重要组成部分,是能够真正推动公链做更多可以实际落地的应用,可以促进公链的真正发展和长期的价值保障。个人认为,DeFi是完全不同于以往的ieo/ico之类,是实实在在的去促进数字资产的价值转换,对于公链来说,支持DeFi是公链应用落地的必然趋势。[2020/10/21]

区别于比特币,以太坊最大的不同是引入了智能合约的概念。比特币是数字货币,以太坊也是数字货币,但远不止这些。“智能合约”这个名称有点误导人。它们不是真正的合约,也不特别智能。它们只是一些可以运行在区块链上的代码-或者说是计算机逻辑运算。首先,我将介绍有关智能合约是以太坊网络上的一种特殊账户。你有用户账户,你还有智能合约账户。一个用户账户包括:一个地址余额一个智能合约账户包括:一个地址余额一个状态代码地址和普通账户的地址是一样的,它是该账户的唯一识别符。余额和普通账户也是一样的概念。唯一令人激动的是,智能合约上的余额意味着代码可以拥有金钱。它可以处理这些钱,也可能因为编码错误而造成处理不当。智能合约帐户的状态是智能合约中声明的所有字段和变量的当前状态。它的工作方式与大多数编程语言中类的字段变量相同。事实上,一个类的实体化对象可能是理解智能合约的最简单方法。唯一的区别是这个对象是永久存在的(除非被编程为自我毁灭)。智能合约的代码是编译好的字节代码,以太坊客户机和节点可以在上面运行。它是在创建智能合约时执行的代码,并且包含可以调用的函数。就像面向对象编程的语言中的任何对象一样。关于智能合约的趣事:它们可以调用其它的智能合约。这就开启了创建自主代理的能力,这些代理可以自己花钱和进行交易。

杨海坡:比特币失去了一个本可以真正成为货币的机会:ViaBTC矿池CEO杨海坡发微博表示,比特币从2012到2016的减半周期中,链上交易数量提升了十倍,每块的交易费收入大约是0.2到0.3BTC左右。如果比特币顺利扩容的话,比特币的链上交易量在2016到2020的减半周期很可能再提升十倍,链上手续费收入在2到3个BTC,接近区块奖励的40%到50%。按照这个速度,手续费的收入将很快超过区块奖励,维持比特币的良性运转。但历史没有假设,比特币扩容失败,2016年减半前比特币开始拥堵,到2020年减半时,链上交易数量几乎维持不变,手续费收入也几乎维持不变,只有因为行情导致的拥堵才会暂时的出现上涨。比特币,失去了一个本可以真正成为货币的机会![2020/5/14]

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

声音 | FlashFX CEO:Ripple加密汇款真正解决了现实问题:据The Daily Hodl 1月11日消息,国际汇款公司FlashFX首席执行官Nicolas Steiger在接受采访时表示,Ripple基于加密货币的汇款是真正的交易,Ripple及ODL(Ripple按需流动性平台)不是局,Ripple加密汇款真正解决了现实问题。[2020/1/11]

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

比特币交易非常简单。你可以只做一件事。一种类型的交易。略过一些细节,一切都可以归结为TO,FROM和AMOUNT。这使得比特币成为一种价值储存手段,能够在网络参与者之间传递价值。以太坊的不同之处在于交易还有一个“DATA”字段。该“DATA”字段支持三种类型的交易:价值转移TO接收地址DATA字段为空或包含要附加的任何消息FROM你AMOUNT是你要发送的以太坊数量创建智能合约TO字段为空(它触发智能合约的创建)DATA字段包含编译为字节代码的智能合约代码FROM你AMOUNT可以是0或者任意你想放在合约里的以太坊数量调用智能合约TO字段是智能合约账户地址DATA字段包含函数名称和参数–如何调用智能合约FROM你AMOUNT可以是0或者任何数量的以太坊,比如你需要为一项服务合约支付的数目在这些交易中还有更多的字段和复杂性,但以上这些已经很好地解释了核心概念。让我们看看关于这些交易的一些更具体的例子。以太坊交易价值转移

声音 | 张龙:微众银行近期将发布一款业界真正可用的跨链解决方案:12月7日,在以“从技术开源到产业连接”为主题的区块链公开课。微众银行区块链高级架构师张龙指出,当前的区块链面临节点多、数据量大、隐私保护以及账户治理等方面的挑战。对此,微众银行采取同构跨链、多链平行扩容以及群组模式构建分层分组的纵深协作关系,采取分布式存储方案应对性能和容量问题,采用分层设计和账本加密解决隐私保护问题,在治理方面,管理者、使用者和建设者系统分离,各司其职。基于以上解决方案,微众银行联合金链盟打造了开源区块链底层平台FISCO BCOS,自主研发并开源中间件平台WeBASE、实体身份标识及可信数据交换解决方案WeIdentity、消息协作解决方案WeEvent,据张龙透露,微众银行近期还会发布一款业界真正可用的跨链解决方案。[2019/12/7]

非常简单。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只是把一个账户映射到一笔钱。使用构造函数,你可以在自己的帐户中设置初始供应量

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

创建通证与我们在以太坊使用的概念完全相同。当然,还有一些更复杂和额外的功能,但是基本概念非常简单。以下就是基本的通证合约在以太坊编程语言中呈现的样子(再次重申:为清晰起见进行了简化):

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

标签:以太坊区块链DEFIEFI以太坊官网中文区块链dapp开发费多少钱DEFIDOPINETWORKDEFI价格

Gateio热门资讯
BTC:看市 | 跌逾10%,比特币瞬时下挫,Bitstamp一度跌破6200美元,后市如何?_OIN

作者|秦晓峰、王也编辑|卢晓明出品|Odaily星球日报!webp\"data-img-size-val=\"710,423\"\u002F\\>在经历了多日的上涨之后.

1900/1/1 0:00:00
稳定币:大话BTC暴涨逻辑,OK战略副总裁徐坤认为BTC涨到10000美金值得期待_中心化交易所

Odaily星球日报出品作者|王也编辑|卢晓明近日,中美贸易战爆发,美股暴跌,道琼斯指数暴跌600点,全球资本市场哀鸿遍野,而此时比特币却逆市大涨,价格突破8000美金.

1900/1/1 0:00:00
ACE:变革来了,Facebook 开启全球加密支付计划_Metaverse Face

Odaily星球日报译者|Moni根据《华尔街日报》消息,Facebook正计划和多家金融公司和线上电子商务公司合作,准备基于其全球最大的社交网络推出基于加密货币的支付系统.

1900/1/1 0:00:00
比特币:为什么绝大部分炒币者注定赔钱?_特比特币是干什么

作者:笑岩比特币这轮上涨行情,我本以为很多人抓住了,后来我做了一个调查,结果令人唏嘘,不到20%的人盈利,其他80%的人要么亏损,要么踏空.

1900/1/1 0:00:00
比特币:比特币五个月上涨近100%,一枝独秀的行情靠不靠谱?_比特币价格

5月10日12点左右,比特币价格突破6200美元关口,比想象中来得早了不少。自今年4月以来,比特币从4000美元的低位区域连续突破5000美元、6000美元,上扬态势明显,且被认为是冲击牛市的一.

1900/1/1 0:00:00
NFT:你还停留在靠K线炒币?_CAPP币

受币安被黑客盗取约4000万美元的比特币事件影响,比特币与币安的平台币BNB皆在币安发布公告后的短时间内产生价格下挫.

1900/1/1 0:00:00