前言:本文主要阐述当前以太坊的具体运作原理,有助于我们理解以太坊背后的各种概念和操作,适合初学者阅读。未来ETH2.0将会发生非常大的变化,具体可以看之前的文章《ETH2.0:它会是什么?》和《ETH2.0:它会是什么?》。接上一篇《以太坊是如何运作的》Gas和支付
以太坊有一个非常重要的概念是费用的概念。因在以太坊网络上交易而消耗的计算都会产生费用,正所谓天下没有免费的午餐。支付的费用以“gas”来计算。gas是用于衡量特定计算所需费用的单位。gas价格是你愿意花费在每单位gas上的Ether总量,用“gwei”来衡量。“Wei”是Ether的最小单位,1^018Wei代表1Ether。1gwei是1,000,000,000Wei。每次交易,交易发送人都会设置gas的limit和gas价格。gas价格和gaslimit代表了发送人愿意为交易支付的最大数量的Wei。例如,我们假设发送人设置gaslimit是50,000,gas价格是20gwei。这意味着交易发送者愿意支付最多50,000*20gwei=1,000,000,000,000,000Wei,也就是0.001Ether用来执行该交易。请记住,gaslimit代表了交易发送人愿意支付的最大费用。如果他们的账户余额可以覆盖这个最大值,就不会有问题。交易结束时,发送人会收到未被使用的gas资金退款,并按最初价格交易。如果交易发送人没有提供足够的gas来执行交易,交易会用光gas,并且该交易无效。在这种情况下,交易过程中止,发生的任何状态更改都会被逆转,这样交易会结束,并回到交易前的以太坊状态。此外,还会记录交易失败,显示什么交易试图发起并在哪里失败。同时,既然在用光gas之前,机器已经花费了努力进行计算,逻辑上来说,这些花费的gas不会再退还给交易发送人。gas资金到底去哪里了?交易发送人花费的所有gas资金都被发送到“受益人”地址,这通常是矿工的地址。既然矿工花费努力来计算和验证交易,矿工收取gas费用作为奖励。通常,交易发送人愿意支付的gas价格越高,矿工从交易中获得价值越大。因此,矿工也会选择价格高的交易。这样,矿工自由选择他们愿意验证的交易。为了引导交易发送者设置gas价格,矿工可以选择宣传他们会执行交易的最低gas价格。存储也需要费用
美SEC在Ian Balina的起诉书中称所有以太坊都在其管辖范围内:9月20日消息,美国证券交易委员会(SEC)已对加密货币投资者Ian Balina参与推广2018年未注册加密资产SPRK一案发起诉讼,但加密社区在美国证券交易委员会的起诉书中发现,该监管机构认为所有以太坊都在其管辖范围内。
在起诉书第69段中,美国证券交易委员会指出发送给Ian Balina的ETH通过以太坊区块链上的节点网络进行验证,这些节点在美国的集群密度比任何其他国家都高,因此这些交易都发生在美国,意味着该监管机构认为在美国运营的以太坊验证节点比在任何其他国家都多,因此全球所有以太坊交易都应被视为源自美国,而且美国证券交易委员会对以太坊网络上的所有活动拥有管辖权。
肯塔基大学法学教授Brian Fyre表示,这是第一次看到美国证券交易委员会真正阐述其如何理解以太坊生态系统运作,以及他们为什么认为以太坊属于SEC的监管范围。根据Etherscan数据显示,目前45.85%的以太坊节点来自美国,相比之下排名第二的德国只有19%。(decrypt)[2022/9/20 7:07:21]
gas不仅用于支付计算步骤,也用于支付存储费用。存储所需的总体费用跟使用32字节的最小倍数成正比。存储的费用有一些细微差别。比如,既然不断增加的存储增大了所有节点的以太坊状态数据库的大小,那么有动机来保持小的数据存储量。因此,如果交易具有可以清除存储中的条目的步骤,则免除执行该操作的费用,并且为了释放存储空间还可以退还费用。费用有什么目的?以太坊运行的一个重要方面是网络执行的每个操作都同时受到每个全节点的影响。然而,在以太坊虚拟机上的计算步骤是非常昂贵的。因此,以太坊智能合约最适用于简单任务,例如运行简单的商业逻辑或验证签名和其他加密对象,而不是更加复杂的用途,如文件存储、邮件、机器学习等,这些会给网络带来压力。征收费用可以防止用户过度使用网络。以太坊是图灵完备的语言。简言之,图灵机是能够模拟任何计算机算法的机器。这允许循环,并使以太坊容易受到停顿问题的影响,这个问题让你无法确定程序是否会无限运行下去。如果没有费用,恶意行为者能够轻易尝试破坏网络,方式是通过在交易中执行无限循环却不用担心成本。因此,费用可以保护网络免受恶意攻击。你可能会想,“为什么我们还需要为存储付费?”好吧,就像计算一样,以太坊网络上的存储也有成本,整个网络不得不为此承受负担。交易和消息
Aave创始人:Aave社交媒体协议的账户可使用以太坊钱包:Aave创始人Stani转发推特创始人杰克·多西的推文,表示Aave社交媒体协议的每个账户可携带自己的以太坊钱包和受众。[2021/8/13 1:52:37]
我们注意到以太坊是基于交易的状态机。换言之,发生在不同账户之间的交易推动着以太坊的全球状态从一个状态转换到另外一个状态。在最基本的意义上,交易是加密签名的指令,它由外部账户生成,并序列化,然后提交到区块链上。有两类交易:消息调用和合约创建。所有交易包含如下部分,无论其类型如何:Nonce:交易发送人发送的交易数量的计数。Gasprice:交易发送人愿意为执行交易所需的每单位gas支付的Wei的数量。Gaslimit:交易发送人愿意为执行交易支付的最大gas数量。数量是设置并预付的,在任何计算完成之前确定。To:接收人的地址。如是创建合约的交易,合约账户地址还不存在,所以使用的是空值。Value:从发送人转移到接收人的Wei总量。在创建合约的交易中,这个值作为新创建合约账户的初始余额。V,r,s:用于生成签名,该签名可以标识交易的发送人。Init:仅用于创建合约的交易。它是EVM代码片段,可用来初始化新的合约账户。Init只允许一次,然后被抛弃。首次运行init时,它会返回账户代码的正文,这段代码与合约账户产生永久关联关系。数据:仅用于消息调用的可选字段。它是指消息调用的输入数据。比如,如果智能合约充当域名注册的服务,对合约的调用可能需要输入字段如域名或IP地址。在账户的章节,我们了解到交易,如消息调用或创建合约的交易,这些交易总是由外部账户启动并提交到区块链。另外一个思考的方式是,正是这些交易在外部世界和内部以太坊之间起到桥梁作用。但这不意味着这些合约不能跟其他合约沟通。存在于以太坊状态范围内的合约能够与其他同样范围内的合约进行对话。它们沟通的方式是通过“消息”或“内部交易”。我们可以将消息或内部交易看作与交易类似,主要区别在于它们不是由外部账户生成。相反,它们由合约生成。它们是虚拟对象,与交易不同,它们不会序列化并且只存在于以太坊执行环境中。当一个合约发送内部交易到另外一个合约,接收人合约账户的关联代码就会执行。需要注意的是,内部交易或消息并不包含gaslimit。因为gaslimit是由原始合约的外部创建者来确定的,即是一些外部账户。外部账户设置的gaslimit必须足够高,以执行交易,这些交易包括了任何子执行,子执行也是由交易导致的。比如,合约到合约的消息。如果,在交易和消息的链中,特定的消息执行耗尽了gas,消息的执行会还原,同时还原的还包括任何由执行触发的后续消息。然而,父执行无需还原。区块所有的交易组成一起进入区块。区块链包含一系列链接在一起的区块。以太坊中,一个区块包含:区块头关于区块中包含的一组交易的信息当前区块的ommers的一组其他区块头关于Ommersommer到底是什么?ommer是一个区块,它的父区块相当于当前区块的父块的父块。快速了解一下ommer用于什么,为什么区块包含ommers的块头?由于以太坊的构建方式,出块时间比其他区块链更短,比如它约15秒/区块,而比特币的出块时间是10分钟/区块。这让它拥有更快的交易速度。然而,更短出块时间的一个不足之处是矿工会发现有更多的竞争区块。这些竞争区块也称为“孤块”。ommers的目的是帮助奖励矿工包括这些孤块。矿工包含的ommers必须是“有效”的,意味着当前区块的六代之内或更小范围内。在六代之后,老旧的孤块不再被引用,因为包括较老的交易会让事情变复杂。Ommer区块获得的奖励比全区块要少。尽管如此,对矿工来说,这依然有激励,让他们把这些孤块包括进来,由此收获奖励。区块头让我们回到区块。之前提到过每个区块都有区块头,它究竟是什么?区块头是区块的一部分,包括:parentHash:父区块头的哈希值ommersHash:当前区块的ommers列表的哈希值受益人:接收挖矿费用的账户地址stateRoot:状态trie的根节点的哈希值transactionsRoot:包含区块中列出来的所有交易的trie的根节点哈希值receiptsRoot:包含区块中列出来的所有交易收据的trie的根节点哈希值logsBloom:Bloom过滤器,它包含日志信息difficulty:区块的难度级别number:当前区块的计数gasLimit:当前的每区块的gasliminttimestamp:区块开始的unix时间戳extraData:跟区块相关的额外数据mixHash:也是一个哈希值,当它结合nonce时,证明该区块已经执行足够的计算nonce:也是一个哈希值,当它结合mixHash时,证明该区块已经执行足够的计算注意每个区块头是如何包含三种trie结构:状态交易收据这些trie结构只是之前提到过的MerklePatriciatries。此外,以上的描述中一些术语需要澄清。Logs以太坊允许logs,以便于追溯各种交易和消息。合约可以通过定义“事件”来清晰生成日志,这里的“事件”则是想要记录日志。log条目包含:日志者的账户地址一系列的主题,这些主题代表本次交易执行的不同事件跟这些事件相关的任何数据日志存储在bloom过滤器中,该过滤器以有效方式存储无尽的日志数据。交易收据存储在区块头的日志来自于包含在交易收据中的日志信息。正如你在商店购物会收到收据一样,以太坊也会为每笔交易生成收据。正如你所期望的,每张收据都包含交易相关的一些信息。收据包含如下内容:区块编号区块哈希交易哈希当前交易使用的gas当前交易执行后当前区块所使用的累积ga当执行目前交易创建的日志......等等区块难度区块的“难度”用于实现一致性,它可以让验证区块所花费时间基本一致。创世区块难度是131,072,此后用特别公式来计算每个区块的挖矿难度。如果某个区块的验证速度快于之前的区块,以太坊协议会增加出块难度。出块难度影响nonce,这是一个哈希值,矿工必须在挖区块时使用PoW算法计算出来。区块难度和nonce的联系在数学上可以形式化为:其中Hd是难度。找到满足难度阀值的nonce的唯一方法是使用PoW算法来穷尽所有可能性。找到解的期望时间跟难度成正比——难度越高,找到nonce的就越难,验证区块越难,这会导致验证新区块花费更长时间。所以,通过调整区块的难度,协议可以控制验证区块需要耗费的时间。另外一方面,如果验证时间变长,协议就会降低难度。通过这种方式,验证时间自我调整,以此保持一个恒定速率——平均每15秒出一个区块。交易执行我们来到以太坊协议中最复杂的部分之一:交易的执行。假定你发送一个交易到以太坊网络进行处理,将以太坊的状态转换为包含你的交易会发生什么?首先,所有交易必须满足一组初始的设置要求才能执行。这些包括:交易必须是格式正确的RLP。“RLP”代表“递归长度前缀”,是一种数据格式,它用于编码二进制数据的嵌套数组。RLP是以太坊用于序列化对象的格式。有效的交易签名有效交易nonce。回想一下,一个账户的nonce是从该账户发送过来交易计数。为了有效,交易nonce必须等于发送者账户的nonce。交易的gaslimit必须等于或大于交易使用的固有gas。固有gas包括:1.为执行交易预先定义的成本21,000的gas2.与交易一起发送的数据的gas费用3.如果交易是创建合约的交易,则额外增加32,000gas发送人的账户余额必须有足够的Ether覆盖“预定”gas成本,这是发送人必须支付的。“预定”gas成本的计算是简单的:首先,交易的gaslimit乘以交易的gas价格,可以得出最大的gas成本。其次,最大的成本被加入到总值中,总值是指从发送者转移到接收者的总价值。如果交易满足所有以上的有效性要求,我们继续下一步。首先,我们从发送人的余额中扣除预定的执行成本,并将发送人的账户的nonce增加1以计入当前的交易。此时,我们可以算出剩余的gas,它们作为交易的总gaslimit减去使用过的固有gas。接下来,交易开始执行。在交易的执行过程中,以太坊跟踪“子状态”。该子状态是记录交易过程中产生的信息的方法,这些信息在交易完成后被立即需要。具体来说,它包括:自毁集:在交易完成后被抛弃的一组账户日志系列:虚拟机代码执行的归档及可索引的检查点。退还余额:交易后退还给发送人账户的金额。还记得我们提到的以太坊存储需要花费,并且发送人会为清理存储而退款?以太坊会使用退款计数器来跟踪此事。退款计数器从零开始,每次合约清除存储时会递增。接下来,处理交易要求的各种计算。一旦交易要求的所有步骤都被处理完毕,假定没有无效状态,则通过确定要退还给发送人的未使用的gas金额来实现最终状态。除了未使用的gas,发送人还可以从上面提到的“退款余额”中获得一些补贴。一旦发送人获得退款:gas的Ether已经给到矿工交易使用的gas被添加到区块gas计数器在自毁集中的所有账户都将被删除最后,我们留下新的状态和一组交易创建的日志。现在我们已经介绍了交易执行的基础知识,让我们来看创建合约的交易和消息调用之间的一些区别。
灰度以太坊信托或成为SEC第二个获得申报许可的数字货币投资工具:加密货币资产管理公司Grayscale Investments宣布已提交注册申请至美国证券交易委员会(SEC),如果在审查后被认为是有效的话,Grayscale的以太坊信托基金(ETHE)将作为第二个获得申报许可的数字货币投资工具(第一个是灰度比特币信托)。
Grayscale强调,该自愿性质的申请不应该将该信托归类为交易所交易基金(ETF),虽然这两者都对投资者而言有类似的结构,因为它们都是受欢迎的投资产品。
Grayscale透露,如果该申请通过后,将会产生这些改变:
1. 该信托将作为SEC第二个获得申报公司地位的数字货币投资工具;
2. 之前通过私募方式购买过该产品的合格投资者,法定持有期将从12个月缩短至6个月,这意味着可以提前获得流动性;
3. 由于许多机构限制投资尚未在SEC注册的投资产品,因此更多机构投资者可能会考虑使用该产品;
4. 将按照SEC的相关标准提交季度和年度报告以及经审计的财务报表。
据悉,今年1月,灰度比特币信托成为首个符合美国证券交易委员会标准的数字资产工具。(Globenewswire)[2020/8/6]
动态 | 以太坊已经成为Tether最主要发行平台,分析称USDT总流通量中至少有1亿的水分:根据Tokenview数据显示,USDT今年4月以后在以太坊上的需求量持续走高,从6月开始发行量超过其他公链,进入7月以来成为最主要发行USDT的公链。由于用户对以太坊USDT的需求持续走高,致使Tether近期在以太坊大量增发,用以替换Omni链的USDT。此前,Tether CTO曾在推特中解释道,近期Tether在以太坊新印的1亿USDT并非新入场的资金,而是为了将Omni链的USDT转移至以太坊所致,后续将会被销毁。分析师Aaron认为,增发的USDT尚未销毁,也就意味着目前USDT总流通量中至少有1亿的水分。[2019/7/9]
动态 | 以太坊关键漏洞可能导致加密交易所承受巨大损失:据cryptovest消息,一组研究人员发现了以太坊(ETH)网络中的一个关键漏洞,这可能导致加密交易所承受巨大损失。该漏洞将使黑客能够在没有使用限制的情况下,迫使交易所支付极高的交易费用。此外,该漏洞也让攻击者获得了巨额利润。[2018/11/28]
编者按:本文来自Cointelegraph,作者:AnaAlexandre,译者星球日报茶凉编辑:卢晓明据Cointelegraph3月15日报道.
1900/1/1 0:00:00继稳定币传闻之外,社交巨头Facebook开始考虑区块链在登陆服务上的变革。近日,FacebookCEO马克·扎克伯格在接受哈佛大学法学院教授JonathanZittrain的视频采访时表示,其.
1900/1/1 0:00:00编者按:本文来自京都律师,作者:任视宇、陈宇、林琳,Odaily星球日报经授权转载。区块链技术作为一种新兴的互联网应用技术,在带来发展机遇的同时,由于缺乏明确的法规监管而一度成为“法外之地”.
1900/1/1 0:00:00编者按:本文来自区块律动BlockBeats,|作者:区块律动BlockBeats0x29,星球日报经授权发布.
1900/1/1 0:00:002019年两会期间,全国人大代表、小米集团董事长兼CEO雷军在个人社交媒体账号上公布了自己准备的提案.
1900/1/1 0:00:002月20日,李国庆宣布离开当当,全心投入到CRYSTO这一“内容产业+区块链”的项目,这并不奇怪。毕竟,有一批互联网人在互联网“混不下去”了,都走向区块链.
1900/1/1 0:00:00