以太坊是什么?是做什么的?

以太坊是什么?是做什么的?,第1张

以太坊是什么?是做什么的?

比特币是区块链1.0,以太坊是区块链2.0”,类似的表述或许你经常听到。

什么是以太坊?和比特币有什么不同?为什么会被称为“区块链2.0”?今天,我们就来一起揭开以太坊的“神秘面纱”。

以太坊是什么?

以太坊(Ethereum)是一个建立在区块链技术之上, 去中心化应用平台。它允许任何人在平台中建立和使用通过区块链技术运行的去中心化应用。

对这句话不理解的同学,姑且可以理解为以太坊是区块链里的Android,它是一个开发平台,让我们就可以像基于Android Framework一样基于区块链技术写应用。

在没有以太坊之前,写区块链应用是这样的:拷贝一份比特币代码,然后去改底层代码如加密算法,共识机制,网络协议等等(很多山寨币就是这样,改改就出来一个新币)。

以太坊平台对底层区块链技术进行了封装,让区块链应用开发者可以直接基于以太坊平台进行开发,开发者只要专注于应用本身的开发,从而大大降低了难度。

目前围绕以太坊已经形成了一个较为完善的开发生态圈:有社区的支持,有很多开发框架、工具可以选择。


以太坊是如何运行的?


像任何其他的区块链一样,以太坊需要几千人在他们的计算机上运行一个软件来为网络供以动力。网络中的每个节点(计算机)都运行着一个被称为Ethereum Virtual Machine(EVM)的脚本语言。 EVM可以被看做是一个 *** 作系统,它可以理解并执行用以太坊特定编程语言编写的软件。而 这些用Ethereum Virtual Machine执行的软件或应用程序则被称为“智能合同”(smart contracts)。

不管你要在这台世界级计算机上做什么,你都需要付出一定的报酬。不过,你并不需要用像美元或英镑这样的常规货币来支付,一切都必须以一种网络的本地加密货币来支付,称为ether(以太币)。 Ether(以太币)和比特币几乎是完全一样的性能,除了它也可以用来支付执行以太坊的智能合同(smart contracts)。



无论是一个人还是一个智能合同 (smart contracts),在以太坊上都被看作是用户。 人类用户可以做什么,智能合同(smart contracts)也可以做同样的事情,两者都可以像流通其他货币一样支付和接收以太币(ether)。



但与人类用户不同的是,智能合同还可以执行预定义的计算机程序,在被触发时执行各种 *** 作。 为了理解智能合同的威力,我们来举一个例子。

智能合同的威力

想象一下,我们来打赌明天的天气。 我押明天是晴天而你押明天下雨,输家必须给赢家100美金。 我们如何来完成这个赌约,并确保输家将履行自己的承诺呢?我可以想到三种方法:

1. 相互信任

最简单的做法就是选择相互信任。 如果我们长期以来一直是朋友,相互信任是相当容易的。 我知道你住在哪里,而你知道有关我的任何糗事。 但如果我们之间完全是陌生人,那么事情就会变得比较困难。 你没有理由相信我,而我也没有理由去相信你。

2. 签一个法律协议

另一个貌似可行的方法是将我们的赌注制定为一个法律协议,双方都要签署这个协议。协议详细规定了关于我们赌注的各项条款,包括如果输家违反协议将会发生什么。

这个协议使我们有法律义务去向赢家支付赌金,但它其实不具有任何实际意义,因为使用法律手段去制定这个协议的成本,将比这个赌注本身贵得多。

3.寻求我们共同朋友的帮助

我们可以寻求一位我们都十分信任的朋友,分别给她/他100美金来保管。第二天,她/他根据天气结果给胜者200美金。很简单吧,除非出现意外,比如这位被信任的朋友卷款逃跑。

目前我们有三种不同的方法来完成赌约,每一种选项都有它的缺点。因为我们互为陌生人,我们无法相信彼此;强制达成一个法律协议太过昂贵以至于难以实行;寻求共同朋友的帮助再次引发信任问题。

以太坊的智能合约能够解决这类问题。智能合约就像共同信任的朋友,只不过写在代码中。以太坊允许我们开发一款向双方收取价值100美金的以太币的软件,第二天通过开源天气API来查询天气结果,将价值200美金的以太币都转交给胜者。



一旦智能合约被签署,它无论如何都不可能被修改。因此,你可以确保它在任何情况下被执行,无论合约发出了什么指令。

但是智能合约如何被执行呢?它如何关联区块链呢?


智能合约如何与区块链关联?

当智能合约被执行时,它会将执行信息作为一次交易记录在区块上。从一个很高的层面来看,在以太坊的区块链上的一次交易执行如下:



这些字段除了一个地方外,都较好理解。“data”字段赋予了以太坊特殊性,它用来记录一次交易中智能合约的创建与执行。任何以太坊的区块链上的区块能够包含三种交易:

1.在一个用户和另一个用户之间常见的转移交易

这些都是网络中常见的类似比特币的交易。如果你直接将以太币发给你的朋友,那么“data”字段将置空。



2. 将以太币从一个账户发送出来,但目标账户为空

当没有目标账户的交易进行时,意味着交易的目的是使用“data”字段中的内容在网络中创建一个新的智能合约。“data”字段包含的软件代码使它看起来就像网络中的另一个用户 。



3. 将以太币从一个账户发送到一份智能合约

每当一个账户用户(或一个智能合约)想要执行一份智能合约时,他/她/它就需要与智能合约进行交易,并在“数据”字段中存储执行指令。



就像其他的区块链,无论上文提及的三种交易在任何时间发生,都会向全网发出通知,每个账户用户都会记下。除了注意到记录,每个节点都会执行指定的智能合约,使得EVM状态与网络其他节点保持同步。

每个节点执行软件中的一部分,从而使整个网络充当一个巨大的(但速度较慢)的去中心化计算机。为了永久化,每一次执行都会存储到区块链中。

等会儿,我听说听到有个词叫GAS,这是什么?

我刚告诉你执行智能合约的账户必须付一定的费用。它付给那些消耗了内存、存储空间、计算能力和电力来执行智能合约的节点。

为了计算智能合约的费用,每一条语句都有一个指定的费用。举例来说,如果你执行的这条语句使用了节点的内存,这种语句就有一个特定的费用。如果你执行的语句使用那个节点的磁盘空间,这种语句就有附加的具体的费用。这种费用就叫做Gas。最终,Gas通过一定的汇率转变成以太币。

当你执行智能合约,你必须预定义要消耗的Gas的最大值。当Gas达到这个值时,执行将被终止。这是为了避免智能合约中出现无限循环,使得程序重复一个语句集合时而不再往下执行。

这种情况往往是因为编程者粗心大意。每一次重复消耗一些指定的Gas,这使得无限循环成为有限。因为一个编程者的失误而使得节点执行停滞没有任何意义。Gas的概念解决了这个问题。

同学们,这就是以太坊

以太坊不仅仅用于交易加密货币,它真正的价值存在于它的使命。以太坊的使命是让用户能够使用包含数千个动力节点的世界级去中心化计算机。

当然,由于每一个简单的语句都被网络中的每一个节点执行,去中心化、分布式电脑计算机会变得缓慢而昂贵。但是慢的反面是什么?是更快的,但是中央化控制的服务器。

为了享受使用中央计算机带来的较低消耗,我们给予它们控制我们的权利。如果中央计算机(服务器)宕机或者被攻击,它将连累所有连接的用户。而一台去中心化的计算机只有在所有节点都被攻克后才会宕机,所以它总是能工作的。只要有网络,就有以太坊。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/4848651.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-11
下一篇 2022-11-11

发表评论

登录后才能评论

评论列表(0条)

保存