前言
在对比特币有一定的了解后,我们将进入以太坊。新事物是由旧事物(例如区块链技术)矛盾引起的,以太坊和比特币也是如此。
在比特币中,仍然存在以下问题要解决:
交易表现不佳:如果我们仅将其视为新的分散加密货币,则无法满足当前大量交易。与传统的集中财务模型相比,效率非常低。比特币的平均块生产时间为。
比特币的脚本语言是非完整的:比特币脚本语言可以实现的功能非常有限。 *图灵完整性:指具有足够功能的计算模型或编程语言,可以执行图灵函数执行的任何计算任务。图灵机:如果可以通过算法解决问题,则可以在图灵机上解决。但是有一些问题可以从理论上解决,但实际上需要很长时间。
UTXO缺乏帐户的概念:(1)使用时,它只能出现在一个交易中,并且使用它并不方便。交易发起人在提交交易时不得将剩余的余额转移给自己,所有这些余额都用作矿工的包裹费,从而造成损失。 (2)对于硬币持有人来说,获得自己的平衡并不方便,有必要对UTXO进行摘要计算。 *在开发钱包软件后,提供了图形接口,可以包装类似钱包的模型,例如封装内部脚本语言,并自动将某个UTXO余额转移回您的帐户,查询余额,等等。
共识机制POW:在采矿过程中,随机数的计算被浪费了很多计算资源。背后也是很多能量的浪费。 (废物:计算随机数是计算机的简单而重复的计算)
另一方面,考虑比特币的基本原理,我们可以将这个想法,理论和技术应用于其他地方吗?或比特币仅作为加密货币,缺乏可扩展性。这是一个诞生的以太坊,这是一个提供图灵完整语言的开源项目 - 开发人员可以开发智能合约或进一步将其设计成,从而完成复杂的业务逻辑。这样,以太坊非常灵活,适应性和可扩展性。 *智能合约:可以由外部帐户(EOA)调用的交易协议,可以执行合同条款,是一定有限的状态自动机。
当以太坊参与者进行块验证时,如果有涉及智能合约的交易,以确保交易的有效性,其他节点需要验证智能合约的状态更改,即执行相同的合同逻辑。对于以太坊而言,它引入了一种气体机制,以限制智能合约的计算能力,整个网络中存储的过多消耗,甚至是恶性循环。
气体机制
以太坊的任何交易收取执行费。
作为一个单独的评估单元,气体有利于交易费用的稳定性。 (以太坊的市场价格非常波动)
确保区块链的稳定性,并通过限制智能合约的工作量和内存的使用,一旦超过此限制,交易失败,并且消耗的气体将不退还。
该系统规定必须至少消耗一种气体进行转移交易。
一。有限状态自动机
比特币系统,智能合约和以太坊系统都可以视为某些有限状态自动机。
比特币系统
对于TX中的每个:
(1)如果UTXO不在s中,则为。
(2)如果不是utxo的,则
如果所有UTXO的总和小于所有Utxo的总和。
所有UTXO和All Utxo。
对于TX中的每个输入:
(1)如果引用的UTXO不在S范围内,则返回错误。
(2)如果提供的签名与UTXO的所有者不匹配,则将返回错误。
如果所有输入UTXO面值的总数小于所有输出UTXO面值的总数,则返回错误。
删除所有输入UTXO并添加所有输出UTXO后,返回S'。
以太坊系统
如果是良好的(即具有),则是is和is。如果没有,一个。
费用为汽油 *,以及。从“和”和“ s)的费用。如果不是,一个。
气体=,并取出每个字节的气体,以支付。
从“到”。如果还没有的话,它。如果是a,则将其代码运行或运行耗尽。
如果没有汽油或所有费用的代码,则代码用光了,并将费用添加到s中。
,所有天然气的费用,然后将费用的汽油收费发送给。
检查事务格式是否正确(即具有正确的值数量),签名是否有效,以及该值是否与发件人帐户中的值匹配。如果没有,返回错误。
交易费用是通过天然气 *计算的,并从签名确定发送地址。从发件人的帐户余额中减去费用并增加发件人的价值。如果帐户余额不足,则返回错误。
初始化气体=并根据交易中的字节数量扣除每个字节的相应燃料量。
从发送者帐户转移交易值到接收帐户。如果尚不存在接收帐户,请创建此帐户。如果接收帐户是合同,请运行该合同的代码,直到代码用完或燃料用完为止。
如果转移因发件人的资金不足或运行排气燃料的代码而失败,则所有状态更改,除了付款费将退还,并且费用将支付给矿工的帐户。
否则,所有剩余的燃料成本都退还给发件人,并且用于消费燃料的费用将发送给矿工。
智能合约
只有在呼叫者提供足够的汽油费用时才能完成国家过渡:完全执行合同代码并退还未使用的汽油费。否则,消耗的天然气将退还给矿工,不会退还。
二。块数据结构1。
(1)块标头
(2)交易列表
(3)叔叔列表
2。块标头
(1)哈希
(2)哈希
(3):矿工的地址用于向以太坊系统支付块奖励
(4)根:MPT状态树的根哈希
(5):MPT交易树的根部哈希
(6)哈希:MPT收据树的根哈希
(7):当前块的难度。
(8):从创建节点到当前的累积难度值。主链是最大的总难度值
(9):块序列号
(10):块创建时间,以秒为单位
(11)气体:与交易无关的气体。它通过以太坊网络动态调整。
(12)使用的气体:交易的总气体消耗
(13):随机数
(14)混合哈希:头部混合哈希,它应该满足难度目标。
(15):其他数据
3。交易
(1):发件人的地址
(2):接收器的地址
(3):交易金额,WEI单位
(4):此交易中天然气的单位价格
(5)气体:此交易中气体消耗的上限
(6)工资负载:交易其他数据,发送到智能合约的信息
(7):( r,s,v),以太坊使用椭圆曲线数字签名算法
(8):交易状态,成功或失败
4。交易收据
(1)来自
(2)至
(3)哈希
(4)
(5)哈希
(6):交易在块中的位置
(7)使用的气体
(8)气体
(9):合同中合同的地址涉及合同
(10)日志:事务日志
三。以太坊的数据结构
1。以太坊虚拟机(EVM)
(1)当前有两个主要的虚拟机:
①系统级虚拟机:生成基于当前操作系统的独立操作系统,例如
②一些编程语言中的虚拟机是用于运行程序的容器,例如JVM。这使编程语言具有跨平台的性质。只要安装了编程语言的虚拟机,它就可以在虚拟机中运行并获得相同的结果。
(2)为了保持智能合约操作结果的一致性,建立了以太坊虚拟机,以便所有以太坊节点都可以通过EVM运行智能合约并获得相同的结果。
2。帐户
(1)类别:
①外部帐户(,EOA)
②收缩帐户(,CA)
(2)字段(状态):
①键:
②:
一个。 : 平衡
b。 :EOA中的交易号表示自创建以来发行的交易数量。指示在CA中创建的新智能合约的数量
c。代码哈希:合同帐户中合同代码的哈希值
d。根:合同帐户的帐户存储树根。每个合同帐户都有一个帐户存储树(合同状态树),该帐户存储智能合约的持久数据。数据中的数据存储在插槽状的数组中,每个插槽插槽用作存储单元,并且可以定义。叶节点是插槽数据的RLP编码。
*:是一种紧凑的二进制编码,用于表示任何复杂的数据结构。
(3)对于全球以太坊,我们使用默克尔·帕特里夏( )树记录以太坊帐户的状态,其中每个叶子节点都是帐户状态的RLP编码。
3。在以太坊中使用 树(Trie,MPT)
(1)状态树(Trie):以太坊中所有帐户的状态共同构成以太坊状态。为了促进状态回滚,在以太坊链上,以太坊链上以太坊之前和之后的状态树的变化是仅允许新状态树使用未改变的部分,并添加新的和更改的部分,从而节省了存储空间。
(2)交易树(TRIE):交易中所有数据的RLP编码,然后用作交易树的叶子节点。
(3)收据树(TRIE):RLP编码是在收据的所有数据上执行的,然后用作收据树的叶子节点。
iv。激励机制(POW共识)
在前言中,我们提到了比特币交易性能不佳的问题。以太坊的平均块生产时间约为10秒,它缩短了块生产时间,不可避免地会增加区块链中临时分叉的可能性。对于比特币,当发生临时叉时,只有最长的链条被识别,而临时叉子产生的块将不会从比特币系统中获得奖励。但是,这种临时分叉的解决方案将减少矿工对以太坊的热情,而临时叉的可能性更高,因此以太坊引入了一种用于叔叔街区的机制:尽管未认识到叔叔街区(无法作为奖励获得包装交易的汽油费),但叔叔矿业人仍然可以作为叔叔的区块奖励,因为它们是叔叔的区块。
1。(孤儿块)未确认为最长链的块,如果将来
如果在这一代人中引用,它将成为一个叔叔。
2。每个块最多将两个孤儿块作为叔叔块。
3。引号可以获得额外的块收益奖励,对于每个块,我们将增加额外
阻止奖励。
4。引用孤儿块的速度越快,作为叔叔街区的奖励越高。
一方面,矿工的奖励是块奖励,另一方面是包装交易的汽油费。交易的单价可以通过帐户定制。同样,交易费用越高,将其包装到块中的速度越快。
五。以太坊的发展
1。EIP(),以太坊改进建议,在原始EIP-1中提出了这个概念。作为以太坊社区的开放协作环境,EIP为以太坊提供了一种标准形式,以孵化新的想法和新技术。
如果a为6或to,则任何EIP中的任何EIP或或或或或或或或或或或或或或或或或或to。 EIP可能是由此源于或将其回到或回到的。如果没有,则可能会留在此中。
如果在草案,审查,评论阶段持续六个月或更长时间,则任何EIP将被转移到停滞状态,直到EIP编辑的作者或人员将其移至草稿阶段或更早之前,任何操作都将停滞不前。
2。:ERC-20(一项标准建议)首次定义了均质令牌的设计标准(a。
3。EIP-721:ERC-721(一个标准建议)首次定义了无杀菌令牌(NFT,non-)的设计标准。开发人员还可以使用借口标准来开发和设计自定义的无牙代币。
4。EIP-1155:ERC-1155
(1)为此。 a可以,任何一个非 - 或(例如半)。
该标准提出了一个智能合约接口,可以同时支持和管理多个令牌类型。单个合同部署可以包括均质代币(FTS),无牙代币(NFTS),半同质令牌(SFTS)(SFTS)的组合。
(2)在每个ID到新类型的每个ID的ERC-1155中,可能都有其自己的。
相比之下,ERC-1155多键标准允许每个ID表示可能具有自己的元数据,供应和其他属性的新的可配置令牌类型。
5。EIP-1559该提案介绍了一种新的交易费用模型,该模型提供了交易费用的预测并改善了用户体验。这包括基本处理费和优先费。在此EIP中,基本费用是关于IS的方式上下的。用户设定了基本费用以增加交易的优先级。
(1)与上一张相比,经常的手动设置费已减少。
(2)此费用是只能保留费用。基本费用是(即是由)。对于矿工而言,只能获得基本费用以外的其他优先费,并且基本费用将根据本协议销毁。
5。EIP-2982该以太坊改进建议阐明了以太坊2.0()的0阶段。以太坊将在多个阶段完成更新共识机制,即实现POW→POS。在此阶段,以 1.0与共识机制POW一起运行根本不会受到影响。我们已经建立了一个独立的链: (),它将作为以太坊2.0更新的核心,支持并确保多个碎片链的触及到达。最后,当前的以太坊主网络必须作为片段合并,以完成升级到以太坊2.0。以太坊2.0将同时运行多个碎片,这进一步提高了效率和可扩展性。在前言中,目前正在解决共识机制POW所面临的问题。目前,我们还可以从以太坊官方网站上找到能源消耗的比较(所有估计均来自2023年5月的公共信息)。可以看出,就能耗而言,共识机制的转化非常有效:
6。EIP-3525:ERC-3525半(sfts)Of(fts)和非(NFTS),均具有.sfts的ERC-20和ERC-721。 ,SFTS-与ERC -721。
半生殖的令牌结合了均质令牌和非殖民代币的特征,因为两者都有明显的缺点。半生殖器令牌具有同质代币的定量特征和非殖民化令牌的定性属性的特征。同时,该标准也与ERC-721兼容。 *目前,它主要用于元游戏和链游戏。
7。EIP-3675该提案提出了以太坊主网络共识机制的更新,并且 自启动以来一直运行良好。它将作为以太坊主网络的安全提供商,以确保以太坊更新。同时,在块结构中,某些字段将被常数替换:
这样可以确保以太坊的向后兼容性而不会引起硬叉。
请参阅以太坊白皮书|张小山,李范,黄明冯等。区块链原理和技术应用。 Xi'an:Xi'an 大学出版社,2023年。- /EIPS: