引介:以太坊为什么是第二代区块链?
2017年末,当我开始了解区块链的时候,我注意到以太坊非常受关注。我总是看到别人说:比特币是第一代区块链,而以太坊是第二代区块链。读了许多关于比特币与以太坊间对比的文章之后,我明白了“为什么”:比特币是一种使用有限脚本语言来构建去中心化支付系统的加密货币,但是以太坊不仅如此。以太坊不仅仅是一种加密货币,还是一种全球化去中心计算基础设施,能够执行智能合约与程序代码进而控制数字资产。在以太坊平台之上,开发者可以自行构建去中心化应用。我对去中心化应用开发非常感兴趣,因此我并没有花很多时间阅读以太坊黄皮书,去理解其具体构建原理。
我在Devconv期间开始阅读以太坊黄皮书的时候,我不仅明白了为什么以太坊是第二代区块链,而且被这些最终将奇妙观念化为现实的伟大思想打动。
让我们深入了解一下几个主要的部分:
数据结构
区块结构
交易
以太坊中Gas&比特币中交易费
状态&账户类型
数据结构
比特币使用了Merkel树,而以太坊使用了改良的MerkelPatricia树。如果你想更深入地了解,可以观看该视频。
插播:
Medium不支持下标格式,如果你想阅读本文含有黄皮书中某些符号的版本,请查看该文档。
数据:币安总资产并无明显减少,主要因加密货币价格下跌导致过去一周减少约13%:6月11日消息,据 Lookonchain 监测,根据币安公开地址,总资产并没有明显减少。过去一周,币安总资产减少约 13%,这主要是由于加密货币价格下跌导致的。大多数资产在过去 7 天下跌了 6% 至 38%。0x66b8 基金在过去 14 小时一直从币安存入并提取稳定币,似乎在从事某种套利活动,总共交易 1.13 亿美元稳定币。[2023/6/11 21:29:20]
区块
让我们来看一下以太坊区块结构。
-来源:
解读以太坊黄皮书-区块包含:
区块头:
请注意,比特币区块头中只有1棵Merkel树,以太坊区块头中有4棵。以太坊区块头包含:
parentHash:父块区块头哈希值。
ommersHash:当前区块的叔块列表的哈希值。
beneficiary:矿工用于接收交易费的以太坊的地址。
stateRoot:在本区块及其交易执行完成后,状态树的根节点哈希值。
transactionsRoot:由区块交易列表中全部交易构成的交易树的根节点哈希值。
receiptsRoot:由交易列表中每笔交易的收据构成的收据树的根节点哈希值。每一条交易收据都存储在键值索引的收据树中,树的根节点哈希值存储在区块头中。这对生成零知识证明或是索引与搜索都非常有用。交易收据R是以下四项的元组:
Amber Group前美国首席执行官Raazi宣布加入EDG并担任美国战略负责人:金色财经报道,Enhanced Digital Group?(EDG) 招聘 Amber Group 的美国首席执行官 Cactus Raazi 担任美国战略负责人,主要将被结构化产品的流行传统金融 (TradFi) 工具带入加密货币领域,
Cactus Raazi此前在 TradFi 的职业生涯长达数十年,包括在高盛和野村任职。[2023/4/4 13:43:01]
R
u:交易执行后包含该交易收据的区块累计消耗gas量。
R
l:交易执行期间所产生的日志集合。
R
b:依据日志信息构建的Bloom过滤器。
交易状态码。
logsBloom:该字段用于存储以太坊事件,可依据日志记录器地址或日志主题进行索引。
difficulty:本区块的难度水平,根据前一个区块难度水平及时间戳计算得来。
number:所有先前区块的个数,创世区块的number字段为0;
gasLimit:当前区块允许的最大gas消耗量。
gasUsed:当前区块内所有交易所消耗的gas总量。
timestamp:区块初始化时的Unix时间。
extraData:可供矿工添加任意数据的字节数组
mixHash:用于验证区块是否被正确处理的哈希值。
nonce:用于验证区块是否被正确处理的哈希值。
区块体包含:
叔区块头列表
交易序列:本区块中交易列表。
Aave取消BUSD稳定币借贷提案得到DAO成员支持:金色财经报道,Aave去中心化自治组织 (DAO) 成员以压倒性优势支持取消Binance的BUSD稳定币的借贷。该提案旨在大幅提高借入 BUSD 的成本,同时减少其贷方应计收入。这些行动旨在抑制对BUSD的使用。投票之际,越来越多的市场参与者在监管不确定性的情况下放弃了BUSD。该提案作者Zeller在提案中写道,BUSD 的流通供应量将“随着时间的推移趋向于零”,因此有必要将其下架。
截至发稿时,Aave 从借贷方那里持有近 1100 万美元的 BUSD 流动性,并借出了 760 万美元的稳定币。[2023/3/10 12:53:07]
整体有效性:要确定一个区块的有效性,当且仅当其满足以下几个条件:区块的叔区块列表哈希、交易区块哈希以及给定交易内部一致
打包区块的过程包括四个阶段:
验证叔区块列表:
一个区块必须指定一个父区块,并且必须指定0个或多个叔区块
区块B中包含的叔区块必须具有以下性质:
a.区块B的叔区块必须是区块B第k代祖先区块的直接子块,其中2<=k<=7。b.区块B的叔区块不能是区块B的祖先。c.叔区块的区块头必须有效,但是无需被验证也无需是有效区块。
d.叔区块必须与先前区块打包的叔区块以及本区块的其他叔区块不同。
交易验证:区块头中gasUsed的数值必须与最后一笔交易打包后区块累计的gas消耗量一致。
申请奖励:如果存在叔区块,则叔区块可用于增加本区块受益人与产生叔区块的受益人的账户余额。当同一区块高度有多个有效区块时,叔区块机制有助于激励矿工维护网络正常运行。叔区块奖励划分规则:叔区块获得其基础奖励的87.5%,包含该叔区块的主链区块获得基础奖励的3.125%。不过,叔块受益人和侄块受益人都不能得到叔块中的交易手续费。
Binance:BNB Chain的存取款服务现已恢复:10月7日消息,Binance 官方在社交媒体上发文表示,BNB Chian 已恢复运行,Binance 平台上BNB Chain存取款服务已恢复。[2022/10/7 18:41:46]
验证状态以及区块nonce。通过检查最终状态是否与区块头中stateRoot一致即可检验。
而比特币中区块结构如下
-来源:5minuteblockchain-
区块包含:
区块头:
timestamp:区块初始化时的Unix时间。
nonce:用于PoW算法的计数器。
Version:用于追踪软件或协议升级的版本号。
Previous:链上父区块哈希值。
MerkelRoot:本区块中交易所构造的Merkel树树根的哈希值。
Difficulty:产生该区块所必须的难度值,该值在挖矿过程中根据该区块前一定数量的区块产生所用时间动态调整。
区块体包含:
交易序列:本区块中包含交易的列表
交易
以太坊交易T
以太坊中包含两类交易:消息调用与合约创建。每笔交易的执行都将引起机器状态μ的变化。每笔交易包括以下字段:
加密矿企HIVE因财报推迟要求加拿大监管机构禁止高管交易其股票:金色财经报道,加密矿企HIVE Blockchain Technologies 要求加拿大的证券监管机构禁止高管交易该公司的股票,原因是其财务报表延迟。HIVE预计将在 7 月 15 日之前提交其本财年的年度申报,而不是最初预计的6月29日。由于延迟,HIVE要求加拿大所有省和地区的监管机构发布一项临时命令,禁止董事、高级职员和内部人员交易HIVE股票。一旦文件最终确定,对公司员工的禁令有望解除。
数据显示,HIVE的股价当天从4.42加元(3.43 美元)跌至4.01加元(3.01 美元),跌幅超过 10%。(blockworks)[2022/6/30 1:40:43]
nonce:发送方先前发出的交易总数量。
gasPrice:单位gas消耗需支付给网络的以太币数量。
gasLimit:该交易执行过程中能够消耗的最大gas数量。
to:消息调用接收方地址。
value:发送方转移给消息接收方的以太币数量。
v,r,s:交易签名相关字段。
Init:不限制大小的字节数组,包含合约创建所需的EVM字节码。
data:不限制大小的字节数组,用于指定消息调用交易的输入数据。
比特币交易
-来源:gomedici-
交易头
比特币协议版本
输入数量
输出数量
区块锁定时间
一个或多个输入
先前交易的哈希值
先前交易的输出的索引号。
解锁脚本以及解锁脚本长度,用于证明该UTXO的所有权。
一个或多个输出
发送方给接收方发送的比特币数量。
锁定脚本以及锁定脚本长度。‘scriptPubKey’是一个条件公钥脚本。任何可以满足公钥脚本条件的人都可以花费该UTXO中的比特币。
以太坊的?Gas&比特币的交易费
EthereumGas
由于以太坊是图灵完备的系统,为了避免计算资源被滥用,以太坊中所有编程计算操作都要收取交易费。计算就要投入成本,需要的计算资源越多则与之对应的交易费就越高。用于购买gas的以太币被转入受益者地址。如果账户余额地址不能支付gas的费用,那么该交易就被认为是无效的。在以太坊平台中,只有执行交易的过程中才涉及gas消耗。
每笔交易都有一个与之关联的具体gas消耗量。gasLimit与gasPrice也在交易中指定。
gasLimit:发送方愿意支付用于交易执行的gas最大数量。gasLimit的存在,有助于解决交易陷入无限循环而无法退出的情况。在交易执行之后,如果仍有gas剩余,那么这些gas将返回给发送方。但是,如果交易因为某种原因执行失败,gas就不再退回。
gasPrice:gasPrice是指“你想支付多少以太币来购买一单位gas”。交易发送方可以任意指定gasPrice的具体数值,然而,矿工也可以自由忽略一些gasPrice不符合他们需求的交易。
比特币交易费
比特币交易费是由矿工收取的一小笔款项。比特币交易费并不是必须的,但由于矿工可以自由忽略任意交易,添加手续费则可以激励矿工将你的交易打包进区块链中。比特币交易费的数值等于交易输入减去输出所得到的差值。
状态&账户类型
比特币
比特币地址是一个ECDSA公钥,该地址的余额并不保存在比特币区块链中。如果你想要知道如何查看比特币余额,个人钱包应用通过扫描区块链数据库,计算出与某一具体地址相关的所有UTXO,进而求出该地址的比特币余额。
以太坊
以太坊区块链始终维护一个世界状态?
σ?,其中包含了地址与账户状态的映射。
以太坊包含两种类型的账户:
由私钥控制的外部持有账户
由智能合约控制的合约账户。
账户状态?
σ:
账户状态存储在区块链之外的改良版MerklePatriciaTrie树中。如果你想更深入的了解状态数据库中MPT树是如何存储的,请观看该视频。账户状态包含四个字段:
nonce:包含合约创建交易在内的由该地址发出的所有交易数量。
balance:该地址持有的以太币数量。
storageRoot:编码账户存储内容的MerkelPatricia树的根节点哈希。
codeHash:存储在状态数据库中EVM字节码的哈希值。与其他字段不同,该字段是不可变的。
有兴趣看看黄皮书么?!
我确信你一定非常希望通过阅读黄皮书了解更多有关以太坊的设计细节,上文所提到的比特币与以太坊的不同仅是我的个人观点。但是,如果你真的下决心去读,可以参考我的经验,因为这并不是一件容易的事情。
我记得当我告诉一个朋友我要开始阅读黄皮书并写一些相关博客的时候,他跟我说:
“天呐!不可能的:D。虽然很有教育意义,但是依旧是不可能的!”
他是对的,我阅读以太坊黄皮书的目的是写一篇总结,就像我读完比特币白皮书一样,但是当我第一遍读完黄皮书的时候,写总结简直太难了。为了写一篇黄皮书总结,我断断续续读了4遍:D
我第一遍读完黄皮书之后,我只能掌握大概50%-60%的内容,因为在阅读数学推导的时候我遇到了很大困难。但是,通过多次阅读黄皮书,我更深入地理解了以太坊的设计原理以及我先前在以太坊上开发去中心化应用时所遇到的一些Bug。总的来说,我还是非常满意的。
以下是当时对我帮助很大的一些文章链接:
这是我读过的最棒的解释黄皮书的文章(编者注:中译本在此《
以太坊的工作原理》)。
特别感谢我在devcon学者项目的同事@shaqueilla.seale,她发给我了解读以太坊黄皮书系列文章
以太坊中数据是如何存储的
对我而言,黄皮书中最难理解的部分是:
代数符号,这个答案给了我很多帮助
约定部分,这个?gist?给了我很多帮助
原文链接:
https://medium.com/ethereum-foundation-devcon-scholars/the-mystery-behind-ethereums-shine-76f9011deb8a
作者:?EmanHerawy
翻译&校对:?stormpang?&阿剑
标签:以太坊GAS比特币NCE以太坊最新价格行情价0xGasless比特币交易手续费怎么算France Rev Finance
以太坊2.0升级的启动,带动了公链共识机制由PoW向PoS转型的风潮,这种转向究竟是否是发展趋势尚未有定论,但业界已经出现了抵制的声音。日前,在北京举办的某开发者大会上,币印矿池、蚂蚁矿池与OK矿池的负责人同台展开了一场大辩论.
1900/1/1 0:00:00译者注:提前说明以下信息,也许可以帮助读者更好地理解本文的内容以及我们在翻译用词上的选择:在以太坊2.0中,验证者的职责之一是提交attestation,可以理解为投票;但在一条attestation中,验证者投票的内容却有三项.
1900/1/1 0:00:00据路透社报道,不明来路或者来源有问题的黄金正在扰乱全球黄金行业,市场愈发迫切地需要一种易于验证的价值存储——比如,比特币。 “假”黄金流入黄金供应市场“假”金条正在渗透到全球最大金融机构的金库中.
1900/1/1 0:00:00写在前面的话:2017-2018年间,区块链展现了前所未有的繁荣,成百上千亿美金被投入市场,上千项目立项。如今,潮水褪去,行业陷入低迷:二级市场币价持续走低,技术落地为艰.
1900/1/1 0:00:00以太坊创始人VitalikButerin对明年初启动以太坊扩展项目Ethereum2.0的0阶段“非常有信心”,但对推动人们使用区块链的激励机制则信心不足.
1900/1/1 0:00:00据Coindesk8月22日报道,如果超级账本开源联盟技术指导委员会批准采纳ConsenSys的Pantheon项目,以太坊可能成为超级账本的首个公链.
1900/1/1 0:00:00