首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >区块链101:Ethereum(以太坊)是如何工作的?

区块链101:Ethereum(以太坊)是如何工作的?

作者头像
首席架构师智库
发布2018-04-09 17:47:08
9930
发布2018-04-09 17:47:08
举报
文章被收录于专栏:超级架构师超级架构师

现在,我们已经讨论了ethereum的内容,让我们深入了解一下这个平台在底层的功能。

考虑一下在线笔记本应用程序在“什么是Ethereum?”

使用ethereum,这个应用程序不需要一个实体来存储和控制它的数据。为了做到这一点,ethereum大量借鉴了比特币的协议和区块链的设计,但它调整了它来支持超出金钱的应用。

然而,Ethereum的目标是抽象出比特币的设计,这样开发者就可以创建应用程序或协议,这些应用程序或协议具有额外的步骤、新的所有权规则、可供选择的交易格式或不同的传输方式。

ethereum的“Turing-complete”编程语言的目标是允许开发人员编写更多的程序,其中区块链事务可以管理和自动化特定的结果。

这种灵活性可能是ethereum的主要创新,正如指南中所解释的“以太的智能合同是如何工作的”。

Ethereum区块链

ethereum区块链的结构与比特币非常相似,因为它是整个交易历史的共享记录。网络上的每个节点都存储了这段历史的副本。

与ethereum的最大区别在于,它的节点存储了每个智能契约的最新状态,除了所有的以太交易。(这比描述的要复杂得多,但是下面的文字可以帮助你把脚弄湿。)

对于每个ethereum应用程序,网络需要跟踪“状态”,或所有这些应用程序的当前信息,包括每个用户的余额、所有智能合同代码以及它们都存储在哪里。

比特币使用未经处理的交易输出来追踪谁拥有多少比特币。

虽然听起来更复杂,但这个想法相当简单。每次比特币交易完成时,网络就会“打破”总金额,就好像它是纸币一样,以某种方式发行比特币,使数据的行为与实物硬币或变化类似。

为了进行未来的交易,比特币网络必须把你所有的改变都加起来,这些改变被归类为“花费”或“未使用”。

另一方面,Ethereum使用帐户。

就像银行账户基金一样,以太令牌出现在钱包里,可以被移植到另一个账户上。资金总是在某个地方,但却没有你所说的持续的关系。

什么是ethereum虚拟机?

使用ethereum,每当一个程序被使用时,一个由数千台计算机组成的网络就会处理它。

用智能契约特定编程语言编写的契约被编译成“字节码”,该特性被称为“ethereum virtual machine”(EVM)可以读取和执行。

所有节点使用它们的EVMs执行此契约。

请记住,网络中的每个节点都保存着该网络的事务和智能合同历史的副本,并跟踪当前的“状态”。每当用户执行某个操作时,网络上的所有节点都需要达成协议,该更改发生了。

这里的目标是让矿商和节点网络负起责任,将转移从国家转移到国家,而不是像贝宝或银行这样的权威机构。比特币矿商证实,比特币的所有权从一个人转移到了另一个人。EVM执行与开发人员最初编程的任何规则的契约。

在EVM上的实际计算是通过基于堆栈的字节码语言(机器可以读取的1和0)来实现的,但是开发人员可以用高级语言编写智能合同,例如Solidity和蟒蛇,这样便于人们阅读和编写。

就像我们的指南“Ethereum Mining Works”中所解释的那样,矿工是防止不良行为的人——比如确保没有人会不止一次地花费他们的钱,并且拒绝那些没有得到报酬的智能合同。

在那里有几千个ethereum节点,每个节点都在编译和执行相同的代码。

但是,你可能会想,这难道不比一个普通的计算昂贵得多吗?是的,它是。这就是为什么网络只能用于特定的用例。

官方的ethereum dev教程承认这种低效率,说明:

“粗略地说,使用一种好的启发式方法是,你将无法在EVM上做任何事情,而这在1999年的智能手机上是无法做到的。”

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-03-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 首席架构师智库 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档