以太坊(ETH):修订间差异
创建页面,内容为“'''以太坊'''(Ethereum)是一个去中心化、开源并且具备智能合约功能的公共区块链平台,以太币(ETH)是以太坊的原生加密货币。截至2024年3月,以太币是加密市场市值第二高的加密货币,仅次于比特币,市值为3.2兆人民币,同时以太坊也是目前用户使用最多的区块链之一。截至2024年6月,以太坊主网已拥有378,000名活跃用户,该数量几乎是2020年的九倍…” |
无编辑摘要 |
||
(未显示1个用户的8个中间版本) | |||
第1行: | 第1行: | ||
'''以太坊'''(Ethereum)是一个 | '''以太坊'''(Ethereum)是一个开源的、具有智能合约功能的公共区块链平台,它通过其专用加密货币以太币(Ether,简称“ETH”)提供去中心化的服务 。以太坊被视为比特币的“2.0版”,采用了与比特币不同的区块链技术,支持智能合约的实现 。它是一个开放、无需许可的数字货币和应用程序平台,支持创造者在线上获取收入和用户享受去中心化金融、资产互联网等服务 。截至2024年3月,以太币是加密市场市值第二高的加密货币,仅次于比特币,市值为3.2兆人民币,同时以太坊也是目前用户使用最多的区块链之一。截至2024年6月,以太坊主网已拥有378,000名活跃用户,该数量几乎是2020年的九倍。 | ||
以太坊的核心特点是支持智能合约 。智能合约是一段写在区块链上的代码,可以在满足某些条件的情况下自动执行合约内容 。例如,可以用来管理数字资产、执行投票、管理供应链等 。基于以太坊的智能合约,开发者可以创建各种去中心化应用(DApp),这些应用可以解决现实世界中的许多问题,如供应链融资、数字身份验证、预测市场等 。 | |||
以太坊的工作原理包括以下几个关键环节 : | |||
# '''以太币(Ether)''':以太坊的货币是以太币(Ether),它用于支付交易费用和奖励矿工 。在以太坊上,智能合约的执行需要消耗以太币作为 燃料 。 | |||
# '''账户''':在以太坊中,每个账户都有一个与之关联的公钥和私钥。公钥用于接收以太币和创建智能合约,而私钥用于签署交易并授权智能合约的 执行 。 | |||
# '''交易''':当一个账户想要发送以太币给另一个账户时,它会创建一个交易。交易必须经过矿工的验证和打包才被加入到区块链中 。 | |||
# '''共识机制''':以太坊使用基于工作量证明(Proof of Work)的共识机制来确保网络安全 。节点必须不断进行计算以找到满足预定条件的nonce值,这需要大量的能源和时间 。 | |||
# '''区块与链''':所有的交易都被打包成区块,并按照时间顺序链接成一条链 。每个区块都包含前一个区块的哈希值,这确保了区块链的唯一性和不可篡改性 。 | |||
# '''GAS机制''':在以太坊中,执行智能合约需要支付Gas费用。Gas是用于衡量执行智能合约所需的工作量或计算量的单位 。当智能合约执行完毕后,会根据实际使用的Gas量来自动扣除相应的以太币 。 | |||
以太坊的发展包括了从工作量证明(PoW)到权益证明(PoS)的转变,这一转变旨在提高以太坊的可扩展性、安全性和可持续性 。这一转变通过“合并”(The Merge)完成,将共识机制从PoW升级为PoS,降低了能耗 。 | |||
以太坊的愿景是创建一个无法停止,抗屏蔽(审查)和自我维持的去中心化世界计算机 。它提供了一个平台,允许用户搭建各种模块化的应用,类似于提供了建造房子所需的墙面、屋顶、地板等模块 。以太坊通过一套图灵完备的脚本语言(Ethereum Virtual Machinecode,简称EVM语言)来建立应用 ,这使得开发者可以使用类似C语言、Python、Lisp等高级语言进行编程,再通过编译器转成EVM语言 。 | |||
总的来说,以太坊是一个多功能的区块链平台,它不仅支持加密货币交易,还支持智能合约和去中心化应用的开发,为去中心化金融(DeFi)和其他区块链应用提供了强大的基础设施 | |||
2013至2014年间程序员维塔利克·布特林受比特币启发,首次提出以太坊概念,大意为“下一代加密货币与去中心化应用平台”,并在2014年通过ICO众筹得以开始发展。该网络于2015年6月30日上线,以该网络为基础的去中心化金融(DeFi)应用程序让用户可以不直接依赖经纪人、交易所或银行等金融中介机构,通过自身持有的加密货币就可以抵押借款或将其借出以获取利息。 | 2013至2014年间程序员维塔利克·布特林受比特币启发,首次提出以太坊概念,大意为“下一代加密货币与去中心化应用平台”,并在2014年通过ICO众筹得以开始发展。该网络于2015年6月30日上线,以该网络为基础的去中心化金融(DeFi)应用程序让用户可以不直接依赖经纪人、交易所或银行等金融中介机构,通过自身持有的加密货币就可以抵押借款或将其借出以获取利息。 | ||
第8行: | 第25行: | ||
2024年7月23日凌晨,据美国 SEC 官方信息显示,其已正式批准9份 ETF 发行商的 S-1 申请,以太坊现货 ETF 正式获批上市交易,发行商包括:BlackRock、Grayscale、21Shares、Bitwise资产管理公司、贝莱德、 Franklin Templeton、富达(Fidelity Investments)、VanEck以及Invesco。在美国公开上市交易首日,九只以太坊ETF合计成交量超10亿美元,其中Grayscale发行的以太坊ETF成交量最高,接近4.58亿美元,占总交易量的近一半。 | 2024年7月23日凌晨,据美国 SEC 官方信息显示,其已正式批准9份 ETF 发行商的 S-1 申请,以太坊现货 ETF 正式获批上市交易,发行商包括:BlackRock、Grayscale、21Shares、Bitwise资产管理公司、贝莱德、 Franklin Templeton、富达(Fidelity Investments)、VanEck以及Invesco。在美国公开上市交易首日,九只以太坊ETF合计成交量超10亿美元,其中Grayscale发行的以太坊ETF成交量最高,接近4.58亿美元,占总交易量的近一半。 | ||
以太坊的智能合约因其自动化和去中心化的特性,在多个领域中有着广泛的实际应用案例: | |||
# '''金融服务''':智能合约在金融服务领域的应用包括自动化支付、贷款发放、保险理赔等。例如,众筹平台Kickstarter利用智能合约来自动向项目创建者分配资金 。 | |||
# '''供应链管理''':智能合约可以提高供应链的透明度和效率。通过智能合约,可以实现在货物到达特定节点时自动支付给供应商,或者在产品不符合质量标准时自动退款给买家 。 | |||
# '''身份验证''':在身份验证领域,智能合约可以用于自动化访问控制和身份核实,如在线投票系统可以通过智能合约来确保每位选民只能投票一次 。 | |||
# '''医疗行业''':BurstIQ的大数据区块链合约帮助患者和医生安全地传输敏感的医疗信息。智能合约确定了可以共享哪些数据的参数,甚至显示每个患者的个性化健康计划的详细信息 。 | |||
# '''音乐产业''':MediaChain使用智能合合约帮助音乐家们获得他们应得的钱。通过签订分散、透明的合约,艺术家可以得到更高的版税,并按时足额获得报酬 。 | |||
# '''房地产''':Propy是一个全球房地产市场,拥有分散的产权登记系统。在线市场使用区块链即时发布标题,甚至提供可以使用加密货币购买的房产 。 | |||
# '''临床试验''':在医疗领域,智能合约支持专业人士在行业中无缝共享数据,同时区块链技术有助于数据的认证,确保数据的准确性 。 | |||
# '''版权保护''':在版权保护方面,智能合约可以用来自动执行版权费用的支付和版权使用授权,确保创作者的权益得到保护 。 | |||
# '''去中心化应用(DApp)''':以太坊上的DApp开发允许创建各种去中心化应用,如去中心化金融(DeFi)应用、游戏、社交网络等 。 | |||
# '''预测市场''':预测市场如Polymarket利用智能合约来实现更开放和透明的市场预测,提高市场效率和参与度 。 | |||
这些应用案例展示了智能合约在不同行业中的实际价值和潜力,它们通过自动化和去中心化的方式提高了效率、降低了成本,并增加了透明度和安全性 | |||
{| class="wikitable" style="float:right; margin-left: 10px;" | {| class="wikitable" style="float:right; margin-left: 10px;" | ||
|+以太坊(以太币) | |+以太坊(以太币) | ||
第49行: | 第83行: | ||
* 智能合约:存储在区块链上的程序,由各节点执行,需要执行程序的人支付手续费给节点的矿工或权益人。 | * 智能合约:存储在区块链上的程序,由各节点执行,需要执行程序的人支付手续费给节点的矿工或权益人。 | ||
* 分布式应用程序:以太坊上的分布式应用程序不会停机,也不能被关掉。 | * 分布式应用程序:以太坊上的分布式应用程序不会停机,也不能被关掉。 | ||
* 代币(tokens):智能合约可以创造代币供分布式应用程序使用。分布式应用程序的代币化让用户、投资者以及管理者的利益一致。代币也可以用来进行首次代币发行。 | * 代币(tokens):智能合约可以创造代币供分布式应用程序使用。分布式应用程序的代币化让用户、投资者以及管理者的利益一致。代币 也可以用来进行首次代币发行。 | ||
* 权益证明:相较于工作量证明更有效率,可节省大量在挖矿时浪费的电脑资源,并避免特殊应用集成电路造成网络中心化。2022年9月15日与主链合并。 | * 权益证明: 相较于工作量证明更有效率,可节省大量在挖矿时浪费的电脑资源,并避免特殊应用集成电路造成网络中心化。2022年9月15日与主链合并。 | ||
* 燃料(gas):由交易手续费的概念扩展,在执行各种运算时需计算燃料消耗量,并缴交燃料费,包括发送以太币或者其他代币也被视为一种运算动作。 | * 燃料(gas): 由交易手续费的概念扩展,在执行各种运算时需计算燃料消耗量,并缴交燃料费,包括发送以太币或者其他代币也被视为一种运算动作。 | ||
* 原丹克分片(Proto-Danksharding):在部分节点上暂存资料,以提升效率(尚未实现)。 | * 原丹克分片(Proto-Danksharding): 在部分节点上暂存资料, 以提升效率(尚 未实现)。 | ||
* 叔块:此功能在转为权益证明后已停用。原本功能是使用有向无环图的相关技术,将因速度较慢而未及时被收入母链的较短区块链并入,用以提升交易量。 | * 叔块: 此功能在转为权益证明后已停用。 原本功能是使用有向无环图的相关技术,将因速度较慢而未及时被收入母链的较短区块链并入,用以提升交易量。 | ||
=== 第二层功能 === | === 第二层功能 === | ||
第78行: | 第112行: | ||
* 状态通道(state channels):原理同比特币的闪雷网络,将时常交易的一些结点之间的交易给果打包后再把最终结果写入主链。实现的例子包括雷电网络(Raiden)、Connext、Kchannels等。 | * 状态通道(state channels):原理同比特币的闪雷网络,将时常交易的一些结点之间的交易给果打包后再把最终结果写入主链。实现的例子包括雷电网络(Raiden)、Connext、Kchannels等。 | ||
* 支链:用较小的分支或平行的区块链执行一部分的运算,只将一部分的资料写入主链,以减轻主链的负担 | * 支链:用较小的分支或平行的区块链执行一部分的运算,只将一部分的资料写入主链,以减轻主链的负担 | ||
** 平行链:可能使用完全不同的区块链接构和验证机制,只在开头和结尾用双向桥接和主链相连。实现的例子 | ** 平行链:可能使用完全不同的区块链接构和验证机制,只在开头和结尾用双向桥接和主链相连。实现的例子有 Skale、 xDai、POA等。 | ||
** Plasma 和 Validium支链:将大部分的合约执行和运算都移到支链上进行,只将最后交易结果写入主链。此方案由于交易资料未写入主链,安全性较差,但扩容效果较佳。实现的例子包括OMG、Polygon、Starkware、Loopring等。 | ** Plasma 和 Validium支链:将大部分的合约执行和运算都移到支链上进行,只将最后交易结果写入主链。此方案由于交易资料未写入主链,安全性较差,但扩容效果较佳。实现的例子包括OMG、Polygon、Starkware、Loopring等。 | ||
** Rollup支链:将链上资料复制一份,在链外用以太坊虚拟机(EVM)执行合约并确认后,将交易数据压缩再写入主链。主链上另有一系列合约可以验证结果正确,可再分为Optimistic和零知识证明两种验证方式。 | ** Rollup支链:将链上资料复制一份,在链外用以太坊虚拟机(EVM)执行合约并确认后,将交易数据压缩再写入主链。主链上另有一系列合约可以验证结果正确,可再分为Optimistic和零知识证明两种验证方式。 | ||
第230行: | 第264行: | ||
=== 家园(2016年) === | === 家园(2016年) === | ||
参考条目:[[以太坊经典]] | |||
2016年春季进行了第二次分叉,发布了第一个稳定版本,称作“家园”(Homestead)。 | 2016年春季进行了第二次分叉,发布了第一个稳定版本,称作“家园”(Homestead)。 | ||
2016年6月,以太坊上的一个分布式自治组织The DAO被骇,造成市值五千万美元的以太币被移动到只有该黑客可以控制的“分身DAO”。因为程序不允许黑客立即提取这些以太币,以太坊用户有时间讨论如何处理此事,考虑的方案包括取回以太币和关闭DAO,而DAO去中心化的本质也表示没有中央权力可以立即反应,而需要用户的共识。最后在2016年7月20日,以太坊进行硬分叉,做出一个向后不兼容的改变,让所有的以太币(包括被移动的)回归原处,而不接受此改变的区块链则成为以太坊经典。这是第一次有主流区块链为了补偿投资人,而透过分叉来更动交易记录。 | 2016年6月,以太坊上的一个分布式自治组织The DAO被骇,造成市值五千万美元的以太币被移动到只有该黑客可以控制的“分身DAO”。因为程序不允许黑客立即提取这些以太币,以太坊用户有时间讨论如何处理此事,考虑的方案包括取回以太币和关闭DAO,而DAO去中心化的本质也表示没有中央权力可以立即反应,而需要用户的共识。最后在2016年7月20日,以太坊进行硬分叉,做出一个向后不兼容的改变,让所有的以太币(包括被移动的)回归原处,而不接受此改变的区块链则成为以太坊经典。这是第一次有主流区块链为了补偿投资人,而透过分叉来更动交易记录。 | ||
在分叉以前就持有以太币的人会同时持有以太币和以太币经典(Classic Ether, ETC),存在交易所或在线钱包中的以太币也不例外。这些在线服务大多选择只支持其中一种以太币,并让用户领回另一种以太币。在这次分叉之后,造成了在两个区块链之间进行重放攻击的可能,加上其他网络攻击,让以太坊和以太坊经典又各自进行了数次分叉来避免攻击。其中2016年11月底的分叉因为沟通疏失,短暂造成以太坊的两个主要客户端程序 Parity 和 Geth 失去共识而产生意外的分叉,但问题在数小时内即被找出并修正。 | 在分叉以前就持有以太币的人会同时持有以太币和以太币经典(Classic Ether, ETC), 存在交易所或在线钱包中的以太币也不例外。这些在线服务大多选择只支持其中一种以太币,并让用户领回另一种以太币。在这次分叉之后,造成了在两个区块链之间进行重放攻击的可能,加上其他网络攻击,让以太坊和以太坊经典又各自进行了数次分叉来避免攻击。其中2016年11月底的分叉因为沟通疏失,短暂造成以太坊的两个主要客户端程序 Parity 和 Geth 失去共识而产生意外的分叉,但问题在数小时内即被找出并修正。 | ||
=== 都会(2017~2019年) === | === 都会(2017~2019年) === | ||
第244行: | 第280行: | ||
=== 宁静(2020~至今) === | === 宁静(2020~至今) === | ||
以太坊2.0,也被称为“宁静”(Serenity),是一系列升级的总称,旨在将以太坊网络从工作量证明(PoW)转换为权益证明(PoS),并开发第二层扩容方案以提高网络的可扩展性和效率。这个升级过程分为多个阶段,每个阶段都有其特定的目标和改进。 | |||
# '''柏林(Berlin)''':这是以太坊1.x系列升级的一部分,已于2021年4月15日激活,它引入了新的交易类型和费用调整。 | |||
# '''伦敦(London)''':紧随柏林之后,于2021年8月5日激活,伦敦升级包括了EIP-1559,改变了交易手续费的计算方式,引入了手续费燃烧机制。 | |||
# '''双链合并(The Merge)''':这是从PoW向PoS过渡的关键步骤,已于2022年9月15日完成。这一步骤标志着以太坊网络停止了挖矿,完全转为权益证明。 | |||
在完成双链合并后,以太坊2.0的路线图包括以下五个阶段: | |||
# '''涌升(The Surge)''':这一阶段将专注于提升网络的交易处理能力,包括引入分片链以提高吞吐量。 | |||
# '''祸害(The Scourge)''':这一阶段将解决以太坊中的MEV(矿工可提取价值)问题,提高网络的公平性和效率。 | |||
# '''边界(The Verge)''':旨在通过实现无状态客户端来提高以太坊共识机制的效率。 | |||
# '''清除(The Purge)''':将通过减少不必要的数据和提高节点性能来优化网络。 | |||
# '''挥霍(The Splurge)''':将包括一系列较小的改进,如更好的Gas定价和交易格式的优化。 | |||
这些阶段的实施将逐步提升以太坊的性能,目标是实现每秒处理超过100,000笔交易(TPS),同时保持去中心化和安全性。随着这些升级的推出,用户将受益于更快的交易和更低的费用,而开发者可以构建更具创新性的去中心化应用(dApp) | |||
权益证明所需的信标链在2020年12月1日上线,并允许权益证明的抵押,但尚不能提领。至2021年11月,已有8百万以太币加入权益证明的抵押,约占总发行量的7%。2021年进行了柏林和伦敦分叉,并升级了信标链,为未来转换至权益证明作准备,并透过销毁手续费和降低区块奖励的方式控制总发行量。 | 权益证明所需的信标链在2020年12月1日上线,并允许权益证明的抵押,但尚不能提领。至2021年11月,已有8百万以太币加入权益证明的抵押,约占总发行量的7%。2021年进行了柏林和伦敦分叉,并升级了信标链,为未来转换至权益证明作准备,并透过销毁手续费和降低区块奖励的方式控制总发行量。 | ||
第254行: | 第304行: | ||
2023年7月31日,产生了以太坊历史上一些最大的MEV奖励区块。 | 2023年7月31日,产生了以太坊历史上一些最大的MEV奖励区块。 | ||
2024年6月25日,美国证券交易委员会(SEC)主席 Gary Gensler 表示,推出以太坊 ETF 现货的过程进展顺利,但不知道具体时间表。 | 2024年6月25日, 美国证券交易委员会(SEC)主席 Gary Gensler 表示,推出以太坊 ETF 现货的过程进展顺利,但不知道具体时间表。 | ||
2024年7月23日,获得美国证券交易委员会(SEC)批准的以太坊现货 ETF 正式上市交易。The Block数据显示,9只以太坊现货ETF在美国交易所上市首日累计交易量超10.19亿美元。其中灰度以太坊信托(ETHE)以4.56亿美元的交易量占总交易量的近一半。 | 2024年7月23日,获得美国证券交易委员会(SEC)批准的以太坊现货 ETF 正式上市交易。The Block数据显示,9只以太坊现货ETF在美国交易所上市首日累计交易量超10.19亿美元。其中灰度以太坊信托(ETHE)以4.56亿美元的交易量占总交易量的近一半。 | ||
第296行: | 第346行: | ||
以太坊区块链上的代币称为以太币(Ether),代码为ETH,可在许多加密货币的外汇市场上交易,它也是以太坊上用来支付交易手续费和运算服务的介质 。以太币的总发行量不明,因为权益证明的具体运作方式仍在研究中,而虽然难度炸弹限制了工作量证明的挖矿的区块数量上限,但因为叔块也有奖励,而且叔块的数量并不一定,造成确切数量难以估算。 | 以太坊区块链上的代币称为以太币(Ether),代码为ETH,可在许多加密货币的外汇市场上交易,它也是以太坊上用来支付交易手续费和运算服务的介质 。以太币的总发行量不明,因为权益证明的具体运作方式仍在研究中,而虽然难度炸弹限制了工作量证明的挖矿的区块数量上限,但因为叔块也有奖励,而且叔块的数量并不一定,造成确切数量难以估算。 | ||
以太币对其他实体货币的汇率可能在短时间内大幅变化,例如2016年The DAO被骇时,对美元的汇率从 $21.50 跌至 $15,而2017年初到2018年初的的一年间从大约10美金涨到1400美元。 | 以太币对其他实体货币的汇率可能在短时间内大幅变化, 例如2016年The DAO被骇时, 对美元的汇率从 $21.50 跌至 $15,而2017年初到2018年初的的一年间从大约10美金涨到1400美元。 | ||
2016年4月,维塔利克出售了其持有的四分之一以太币,引发一些人质疑,而他本人则说这是理财上很合理的分散风险,并引用前比特币开发员 Gavin Andresen 说这一切都还只是一场实验,仍有失败的可能。 | 2016年4月,维塔利克出售了其持有的四分之一以太币,引发一些人质疑,而他本人则说这是理财上很合理的分散风险,并引用前比特币开发员 Gavin Andresen 说这一切都还只是一场实验,仍有失败的可能。 | ||
第308行: | 第358行: | ||
智能合约的许多细节仍在研究中,包括如何验证合约的功能。微软研究院的报告指出要写出完善的合约可能非常困难,讨论了微软开发的一些可以用来验证合约的工具,并提到如果大规模分析各个已发布的合约,可能发现找出大量的漏洞。报告也说可以证明Solidity程序和以太虚拟机编码的等同性。 | 智能合约的许多细节仍在研究中,包括如何验证合约的功能。微软研究院的报告指出要写出完善的合约可能非常困难,讨论了微软开发的一些可以用来验证合约的工具,并提到如果大规模分析各个已发布的合约,可能发现找出大量的漏洞。报告也说可以证明Solidity程序和以太虚拟机编码的等同性。 | ||
以太坊智能合约是运行在以太坊区块链上的程序,它们是在特定条件下自动执行的合约条款 。智能合约为开发者提供了在区块链上创建任意复杂去中心化应用的能力 。以下是以太坊智能合约的一些关键特点和技术进展: | |||
# '''图灵完备的编程语言''':以太坊内置了图灵完备的编程语言,如Solidity和Vyper,允许开发者编写复杂逻辑的智能合约 。 | |||
# '''自动执行''':智能合约的特点是它们在条款得到满足时自动执行,无需外界干预 。 | |||
# '''安全性''':以太坊设计了多种机制确保网络的安全,包括经济激励、交易费机制、以及针对恶意行为的惩罚措施 。 | |||
# '''应用场景''':智能合约的应用场景广泛,包括金融服务、供应链管理、身份验证、医疗行业、版权保护、去中心化应用(DApps)和去中心化金融(DeFi)等 。 | |||
# '''架构''':智能合约的架构包括程序设计、代码生成、部署与执行等多个阶段 。 | |||
# '''以太坊虚拟机(EVM)''':智能合约运行在以太坊虚拟机上,这是一个在每个以太坊节点上运行的虚拟环境 。 | |||
# '''共识机制''':以太坊最初采用工作量证明(PoW)作为共识机制,但计划向权益证明(PoS)过渡,以提高效率、降低能耗 。 | |||
# '''安全性与挑战''':智能合约面临的挑战包括网络拥堵、交易成本上升以及如何平衡去中心化、安全性和可扩展性之间的关系 。 | |||
# '''开发工具''':以太坊提供了多种开发工具,如Remix IDE、Truffle框架、web3.js库等,以支持智能合约的开发、测试和部署 。 | |||
# '''智能合约的编写与部署''':开发者可以使用Solidity等语言编写智能合约,并通过以太坊客户端如Geth或Parity部署到区块链上 。 | |||
智能合约的最新动态包括以太坊2.0的升级,这将引入权益证明(PoS)共识机制,提高网络的可扩展性和安全性 。此外,智能合约的安全审计和正式验证也是当前研究的热点,以减少因编码错误导致的安全漏洞 | |||
=== 编程语言 === | === 编程语言 === | ||
以太坊智能合约可以使用多种编程语言编写,其中最常用的有以下几种: | |||
以太坊 | # '''Solidity''': | ||
#* '''简介''':Solidity 是以太坊智能合约开发中最流行的语言,它是一种静态类型的编程语言,专门为编写智能合约而设计。 | |||
#* '''特点''':Solidity 语言语法类似于 JavaScript,易于学习。它提供了丰富的库和工具,支持复杂的合约编写。 | |||
#* '''用途''':适合编写复杂的智能合约,是目前使用最广泛的以太坊智能合约语言。 | |||
# '''Vyper''': | |||
#* '''简介''':Vyper 是一种相对较新的以太坊智能合约编程语言,由 Python 编程语言的开发者 Guido van Rossum 创建。 | |||
#* '''特点''':Vyper 旨在提高智能合约的安全性和简洁性。它是一种 Pythonic 的语言,语法简洁,易于理解。 | |||
#* '''用途''':适合编写安全性要求较高的智能合约,但由于是较新的语言,其生态系统和工具支持相对较少。 | |||
# '''Yul''': | |||
#* '''简介''':Yul 是以太坊的中间级语言,它是低级的,但比直接编写 EVM 字节码要简单。 | |||
#* '''特点''':Yul 旨在作为智能合约的中间表示,可以被编译成 EVM 字节码。它提供了更接近底层的操作,使得优化和分析更加容易。 | |||
#* '''用途''':适合需要精细控制 EVM 执行的高级开发者,或用于编写编译器和优化工具。 | |||
# '''LLL (Low-Level Language)''': | |||
#* '''简介''':LLL 是以太坊的低级语言,它允许开发者直接编写 EVM 字节码。 | |||
#* '''特点''':LLL 提供了直接与 EVM 交互的能力,但编写复杂且容易出错。 | |||
#* '''用途''':适合需要极高性能或特定优化的合约,通常不推荐普通开发者使用。 | |||
# '''Rust''': | |||
#* '''简介''':Rust 是一种系统编程语言,以其安全性和并发性而闻名。 | |||
#* '''特点''':Rust 语言本身不是以太坊原生支持的,但有一些项目(如 ewasm 和 Parity 的 Substrate)正在探索将 Rust 用于智能合约。 | |||
#* '''用途''':适合需要高性能和安全性的复杂系统,目前尚处于探索阶段。 | |||
# '''其他语言''': | |||
#* 还有一些其他语言和工具,如 Serpent、Fe、Wood 等,但它们的使用和支持范围相对较小。 | |||
'''选择建议''': | |||
* '''Solidity''' 是最常用的智能合约语言,拥有最大的社区和最丰富的资源,适合大多数智能合约项目。 | |||
* '''Vyper''' 适合对安全性有特别高要求的项目,但可能需要更多的学习和资源搜索。 | |||
* '''Yul''' 和 '''LLL''' 适合高级开发者,用于优化和分析智能合约的底层执行。 | |||
开发者应根据自己的项目需求、团队技能和资源情况选择合适的编程语言。 | |||
=== 运行效率 === | === 运行效率 === | ||
以太坊智能合约的运行效率是区块链技术中的一个关键考量因素,它直接影响到交易成本、网络拥堵情况以及用户体验。以下是一些关于以太坊智能合约运行效率的关键点和进展 : | |||
# '''编程语言的选择''':以太坊智能合约可以使用多种编程语言编写,包括Solidity、Vyper和Yul。每种语言都有其特定的优势和局限性。例如,Solidity因其与Ethereum生态系统的无缝集成和强大的安全特性而广受欢迎 ,而Vyper则因其简洁性和安全性而受到推崇 。Yul作为一种低级语言,允许开发者更精细地控制合约的执行,从而优化性能和安全性 。 | |||
# '''性能优化''':智能合约的编写需要考虑性能和效率。使用Yul语言,开发者可以通过更低级别的控制来优化gas使用,从而减少交易成本 。此外,Solidity和Vyper也在不断改进,以提高智能合约的性能 。 | |||
# '''编译器和工具''':以太坊提供了多种开发工具,如Remix IDE、Truffle框架、web3.js库等,这些工具支持智能合约的开发、测试和部署,有助于提高开发效率和合约性能 。 | |||
# '''Gas优化''':在以太坊中,执行智能合约需要消耗Gas,因此优化Gas使用是提高效率的关键。Yul语言允许开发者通过更直接的方式节省Gas 。 | |||
# '''并行处理''':以太坊的顺序执行交易是网络吞吐量的瓶颈。一些新的区块链技术,如Rust语言支持的并行处理,可以提高交易处理速度 。 | |||
# '''安全与效率的平衡''':智能合约的安全性是最重要的考虑因素之一。Solidity和Vyper都提供了内置的安全特性,如函数修饰符、访问控制和异常处理,以确保合约的安全性 。 | |||
# '''技术进展''':以太坊2.0的升级,包括从工作量证明(PoW)到权益证明(PoS)的转变,旨在提高网络的可扩展性、安全性和效率 。 | |||
# '''社区和资源''':Solidity拥有庞大的开发者社区,提供了大量资源、教程和库,促进了社区内的协作和知识共享,这对于提高智能合约的运行效率至关重要 。 | |||
综上所述,以太坊智能合约的运行效率受到多种因素的影响,包括编程语言的选择、开发工具的使用、Gas优化策略以及网络的共识机制等。随着技术的不断进步和社区的共同努力,以太坊智能合约的运行效率有望进一步提高。 | |||
== 实现 == | == 实现 == | ||
第337行: | 第442行: | ||
=== 客户端软件 === | === 客户端软件 === | ||
以太坊 | 以太坊智能合约客户端软件是用于与以太坊区块链交互、部署和执行智能合约的软件。以下是一些流行的以太坊智能合约客户端软件及其特点: | ||
# '''Geth (Go Ethereum)''': | |||
#* '''开发语言''':Go | |||
#* '''界面''':命令行界面 | |||
#* '''适用平台''':Windows、Linux、macOS | |||
#* '''功能和特点''':Geth 是以太坊的官方客户端,支持智能合约的创建和部署,提供 JSON-RPC 接口,允许开发者使用各种编程语言与以太坊区块链交互。它还支持插件和模块,具有很好的可扩展性。 | |||
# '''Besu''': | |||
#* '''开发语言''':Java | |||
#* '''界面''':命令行界面 | |||
#* '''适用平台''':Windows、Linux、macOS | |||
#* '''功能和特点''':Besu 是一个企业级的以太坊客户端,适用于公共和许可网络。它由 ConsenSys 提供支持,提供全面的监控和商业级支持。Besu 支持所有以太坊主网功能,包括追踪和 GraphQL。 | |||
# '''Erigon''': | |||
#* '''开发语言''':Go | |||
#* '''界面''':命令行界面 | |||
#* '''适用平台''':Windows、Linux、macOS | |||
#* '''功能和特点''':Erigon,前称 Turbo-Geth,是一个针对速度和磁盘空间效率优化的以太坊客户端。它的目标是提供一个更快、更模块化、更优化的以太坊实现。 | |||
# '''Nethermind''': | |||
#* '''开发语言''':C# | |||
#* '''界面''':命令行界面 | |||
#* '''适用平台''':Windows、Linux、macOS | |||
#* '''功能和特点''':Nethermind 是一个使用 C# .NET 技术栈创建的以太坊实现,提供优化的虚拟机、状态访问和网络功能。它还支持 Prometheus/Grafana 仪表盘和丰富的特性。 | |||
# '''Reth (Rust Ethereum)''': | |||
#* '''开发语言''':Rust | |||
#* '''界面''':命令行界面 | |||
#* '''适用平台''':Windows、Linux、macOS | |||
#* '''功能和特点''':Reth 是一个以太坊全节点实现,注重用户友好、高度模块化、快速和高效。Reth 适合用于关键任务环境,如质押或高可用性服务。 | |||
# '''EthereumJS''': | |||
#* '''开发语言''':TypeScript | |||
#* '''界面''':命令行界面 | |||
#* '''适用平台''':Windows、Linux、macOS | |||
#* '''功能和特点''':EthereumJS 执行客户端由多个包组成,包括核心以太坊原语和核心客户端组件。它提供了对 Ethereum Virtual Machine (EVM) 的实现和 DevP2P 网络堆栈。 | |||
这些客户端软件各有特点,开发者可以根据项目需求、团队熟悉的编程语言和资源情况选择合适的客户端软件。 | |||
==== 企业软件 ==== | ==== 企业软件 ==== |
2024年12月26日 (四) 01:50的最新版本
以太坊(Ethereum)是一个开源的、具有智能合约功能的公共区块链平台,它通过其专用加密货币以太币(Ether,简称“ETH”)提供去中心化的服务 。以太坊被视为比特币的“2.0版”,采用了与比特币不同的区块链技术,支持智能合约的实现 。它是一个开放、无需许可的数字货币和应用程序平台,支持创造者在线上获取收入和用户享受去中心化金融、资产互联网等服务 。截至2024年3月,以太币是加密市场市值第二高的加密货币,仅次于比特币,市值为3.2兆人民币,同时以太坊也是目前用户使用最多的区块链之一。截至2024年6月,以太坊主网已拥有378,000名活跃用户,该数量几乎是2020年的九倍。
以太坊的核心特点是支持智能合约 。智能合约是一段写在区块链上的代码,可以在满足某些条件的情况下自动执行合约内容 。例如,可以用来管理数字资产、执行投票、管理供应链等 。基于以太坊的智能合约,开发者可以创建各种去中心化应用(DApp),这些应用可以解决现实世界中的许多问题,如供应链融资、数字身份验证、预测市场等 。
以太坊的工作原理包括以下几个关键环节 :
- 以太币(Ether):以太坊的货币是以太币(Ether),它用于支付交易费用和奖励矿工 。在以太坊上,智能合约的执行需要消耗以太币作为 燃料 。
- 账户:在以太坊中,每个账户都有一个与之关联的公钥和私钥。公钥用于接收以太币和创建智能合约,而私钥用于签署交易并授权智能合约的 执行 。
- 交易:当一个账户想要发送以太币给另一个账户时,它会创建一个交易。交易必须经过矿工的验证和打包才被加入到区块链中 。
- 共识机制:以太坊使用基于工作量证明(Proof of Work)的共识机制来确保网络安全 。节点必须不断进行计算以找到满足预定条件的nonce值,这需要大量的能源和时间 。
- 区块与链:所有的交易都被打包成区块,并按照时间顺序链接成一条链 。每个区块都包含前一个区块的哈希值,这确保了区块链的唯一性和不可篡改性 。
- GAS机制:在以太坊中,执行智能合约需要支付Gas费用。Gas是用于衡量执行智能合约所需的工作量或计算量的单位 。当智能合约执行完毕后,会根据实际使用的Gas量来自动扣除相应的以太币 。
以太坊的发展包括了从工作量证明(PoW)到权益证明(PoS)的转变,这一转变旨在提高以太坊的可扩展性、安全性和可持续性 。这一转变通过“合并”(The Merge)完成,将共识机制从PoW升级为PoS,降低了能耗 。
以太坊的愿景是创建一个无法停止,抗屏蔽(审查)和自我维持的去中心化世界计算机 。它提供了一个平台,允许用户搭建各种模块化的应用,类似于提供了建造房子所需的墙面、屋顶、地板等模块 。以太坊通过一套图灵完备的脚本语言(Ethereum Virtual Machinecode,简称EVM语言)来建立应用 ,这使得开发者可以使用类似C语言、Python、Lisp等高级语言进行编程,再通过编译器转成EVM语言 。
总的来说,以太坊是一个多功能的区块链平台,它不仅支持加密货币交易,还支持智能合约和去中心化应用的开发,为去中心化金融(DeFi)和其他区块链应用提供了强大的基础设施
2013至2014年间程序员维塔利克·布特林受比特币启发,首次提出以太坊概念,大意为“下一代加密货币与去中心化应用平台”,并在2014年通过ICO众筹得以开始发展。该网络于2015年6月30日上线,以该网络为基础的去中心化金融(DeFi)应用程序让用户可以不直接依赖经纪人、交易所或银行等金融中介机构,通过自身持有的加密货币就可以抵押借款或将其借出以获取利息。
以太坊还允许用户创建和交换不可替代的代币(NFT),这些代币可以与独特的数字资产(例如图像)相关联。此外,许多其他加密货币在以太坊区块链之上利用 ERC-20 代币标准,进行首次代币发行。在众多用户眼中,以太坊亦被称为“第二代的区块链平台”,仅次于比特币。
2022年9月15日,以太坊在称为“合并”的升级过程中将其共识机制从工作量证明(PoW)过渡到权益证明(PoS),此举使以太坊的能源使用量减少了99%。
2024年7月23日凌晨,据美国 SEC 官方信息显示,其已正式批准9份 ETF 发行商的 S-1 申请,以太坊现货 ETF 正式获批上市交易,发行商包括:BlackRock、Grayscale、21Shares、Bitwise资产管理公司、贝莱德、 Franklin Templeton、富达(Fidelity Investments)、VanEck以及Invesco。在美国公开上市交易首日,九只以太坊ETF合计成交量超10亿美元,其中Grayscale发行的以太坊ETF成交量最高,接近4.58亿美元,占总交易量的近一半。
以太坊的智能合约因其自动化和去中心化的特性,在多个领域中有着广泛的实际应用案例:
- 金融服务:智能合约在金融服务领域的应用包括自动化支付、贷款发放、保险理赔等。例如,众筹平台Kickstarter利用智能合约来自动向项目创建者分配资金 。
- 供应链管理:智能合约可以提高供应链的透明度和效率。通过智能合约,可以实现在货物到达特定节点时自动支付给供应商,或者在产品不符合质量标准时自动退款给买家 。
- 身份验证:在身份验证领域,智能合约可以用于自动化访问控制和身份核实,如在线投票系统可以通过智能合约来确保每位选民只能投票一次 。
- 医疗行业:BurstIQ的大数据区块链合约帮助患者和医生安全地传输敏感的医疗信息。智能合约确定了可以共享哪些数据的参数,甚至显示每个患者的个性化健康计划的详细信息 。
- 音乐产业:MediaChain使用智能合合约帮助音乐家们获得他们应得的钱。通过签订分散、透明的合约,艺术家可以得到更高的版税,并按时足额获得报酬 。
- 房地产:Propy是一个全球房地产市场,拥有分散的产权登记系统。在线市场使用区块链即时发布标题,甚至提供可以使用加密货币购买的房产 。
- 临床试验:在医疗领域,智能合约支持专业人士在行业中无缝共享数据,同时区块链技术有助于数据的认证,确保数据的准确性 。
- 版权保护:在版权保护方面,智能合约可以用来自动执行版权费用的支付和版权使用授权,确保创作者的权益得到保护 。
- 去中心化应用(DApp):以太坊上的DApp开发允许创建各种去中心化应用,如去中心化金融(DeFi)应用、游戏、社交网络等 。
- 预测市场:预测市场如Polymarket利用智能合约来实现更开放和透明的市场预测,提高市场效率和参与度 。
这些应用案例展示了智能合约在不同行业中的实际价值和潜力,它们通过自动化和去中心化的方式提高了效率、降低了成本,并增加了透明度和安全性
原作者 | 加文·伍德 |
---|---|
开发者 | 以太坊基金会、超级账本、Nethermind、OpenEthereum、EthereumJS |
当前版本 | Gei Hinnom (v1.14.12)(2024年11月19日;稳定版本[1]) |
源代码库 | github.com/ethereum |
编程语言 | C++、Go、JavaScript、Python、Java、node.js |
操作系统 | Linux, Windows, macOS, POSIX(客户端) |
平台 | x86-64, ARM |
文件大小 | 694.37 GB [GETH客户端] (2022-05-09), 636.82 GB [OpenEthereum客户端] (2022-05-09) |
类型 | 去中心化计算 |
许可协议 | 开源许可证 |
网站 | ethereum.org |
特点[编辑 | 编辑源代码]
相较于大多数其他加密货币或区块链技术,以太坊的特点包括以下几点:
- 智能合约:存储在区块链上的程序,由各节点执行,需要执行程序的人支付手续费给节点的矿工或权益人。
- 分布式应用程序:以太坊上的分布式应用程序不会停机,也不能被关掉。
- 代币(tokens):智能合约可以创造代币供分布式应用程序使用。分布式应用程序的代币化让用户、投资者以及管理者的利益一致。代币 也可以用来进行首次代币发行。
- 权益证明: 相较于工作量证明更有效率,可节省大量在挖矿时浪费的电脑资源,并避免特殊应用集成电路造成网络中心化。2022年9月15日与主链合并。
- 燃料(gas): 由交易手续费的概念扩展,在执行各种运算时需计算燃料消耗量,并缴交燃料费,包括发送以太币或者其他代币也被视为一种运算动作。
- 原丹克分片(Proto-Danksharding): 在部分节点上暂存资料, 以提升效率(尚 未实现)。
- 叔块: 此功能在转为权益证明后已停用。 原本功能是使用有向无环图的相关技术,将因速度较慢而未及时被收入母链的较短区块链并入,用以提升交易量。
第二层功能[编辑 | 编辑源代码]
主链验证机制 | 交易资料写入主链 | 交易资料不写入主链 |
---|---|---|
双向通道 | 平行链 | |
Optimistic 诈骗证明 | Optimistic Rollup | Plasma |
零知识有效证明 | zk Rollup | Validium |
除了在主链上执行的各种功能,为了支持智能合约所需的高运算量以及资料容量,以太坊也积极开发第二层功能来减轻主链的负担、提升交易速度、扩展其实用规模。第二层功能大多在2019~2021年发展成形,目前的主要方案包括以下:
- 状态通道(state channels):原理同比特币的闪雷网络,将时常交易的一些结点之间的交易给果打包后再把最终结果写入主链。实现的例子包括雷电网络(Raiden)、Connext、Kchannels等。
- 支链:用较小的分支或平行的区块链执行一部分的运算,只将一部分的资料写入主链,以减轻主链的负担
- 平行链:可能使用完全不同的区块链接构和验证机制,只在开头和结尾用双向桥接和主链相连。实现的例子有 Skale、 xDai、POA等。
- Plasma 和 Validium支链:将大部分的合约执行和运算都移到支链上进行,只将最后交易结果写入主链。此方案由于交易资料未写入主链,安全性较差,但扩容效果较佳。实现的例子包括OMG、Polygon、Starkware、Loopring等。
- Rollup支链:将链上资料复制一份,在链外用以太坊虚拟机(EVM)执行合约并确认后,将交易数据压缩再写入主链。主链上另有一系列合约可以验证结果正确,可再分为Optimistic和零知识证明两种验证方式。
开发历史[编辑 | 编辑源代码]
名称 | 激活日期 | 激活区块 | 概要 |
---|---|---|---|
边境 | 2015-07-30 | 0 | |
冰期 | 2015-09-08 | 200,000 | 加入挖矿难度炸弹 |
家园 | 2016-03-15 | 1,150,000 | 智能合约扩增功能 |
DAO 分叉 | 2016-07-20 | 1,920,000 | 撤销DAO攻击 |
橙哨 | 2016-10-18 | 2,463,000 | 提高交易成本反制DoS攻击 |
假龙 | 2016-11-23 | 2,675,000 | 修正DAO分叉造成的重放攻击 |
拜占庭 | 2017-10-16 | 4,370,000 | 加密算法扩增、难度炸弹延后、挖矿奖励减少 |
君士坦汀堡/圣彼德堡 | 2019-02-28 | 7,280,000 | 智能合约功能扩增和优化、难度炸弹延后、挖矿奖励减少 |
伊斯坦布尔 | 2019-12-08 | 9,069,000 | 各种优化和新功能 |
缪尔冰川 | 2020-01-01 | 9,200,000 | 难度炸弹延后 |
ETH 2.0第0期 | 2020-12-01 | (信标链)0 | 信标链激活,允许权益证明的抵押(staking) |
柏林 | 2021-04-15 | 12,244,000 | 新增交易方式、调整交易成本 |
伦敦 | 2021-08-05 | 12,965,000 | 交易手续费改由系统计算并且会销毁而非交给矿工 |
牛郎星 | 2021-10-28 | (信标链)74240 | 信标链升级,奖惩机制微调 |
艾罗冰河 | 2021-12-08 | 13,773,000 | 难度炸弹延后 |
格雷冰河 | 2022-06-30 | 15,050,000 | 难度炸弹延后 |
参宿五 | 2022-09-06 | (信标链)144,896 | 信标链预备和区块链接合 |
巴黎 | 2022-09-15 | 15,537,394 | 区块链停止挖矿,完全转为权益证明 |
五车二 | 2023-04-13 | (信标链)194048 | 可提领权益证明中抵押的以太币 |
上海市 | 2023-04-13 | 17,034,871 | 可提领权益证明中抵押的以太币 |
坎昆 | 2024-03-13 | 269,568 | 提升 Layer 2 网络的可扩展性和模块化,增强以太坊网络的安全功能,并改进整体可用性 |
祸害 | 未定 | 未定 | 将验证过程拆分成提议和建造区块链 |
边界 | 未定 | 未定 | 利用零知识证明进一步简化验证过程 |
清除 | 未定 | 未定 | 利用零知识证明减少区块链的资料量 |
挥霍 | 未定 | 未定 | 各种优化 |
起源[编辑 | 编辑源代码]
以太坊最初由维塔利克·布特林在2013年提出。维塔利克本是一名参与比特币社群的程序员,曾向比特币核心开发人员主张比特币平台应该要有个更完善的编程语言让人开发程序,但未得到他们的同意,因此决定开发一个新的平台作此用途。维塔利克认为很多程序都可以用类似比特币的原理来达成进一步的发展,在2013年写下了《以太坊白皮书》,说明了建造去中心化程序的目标。然后2014年透过网络公开募资得到开发的资金,投资人用比特币向基金会购买以太币。
2014年1月,以太坊在迈阿密举行的北美比特币会议上正式推出。会议期间,Gavin Wood、Charles Hoskinson和Anthony Di Iorio(项目融资人)与Vitalik Buterin在迈阿密租了一套房子,共同探讨以太坊的发展及未来。
据 Anthony Di Iorio 介绍,以太坊于 2013 年 12 月由 Vitalik Buterin、Anthony Di Iorio、Charles Hoskinson、Mihai Alisie 和 Amir Chetrit(最初的 5 人)创立。2014 年初,Joseph Lubin、Gavin Wood 和 Jeffrey Wilcke 加入了创始人行列。Buterin 在浏览维基百科上的科幻元素列表后选择了“以太坊”这个名字。他说:“我立刻意识到,‘以太’这个词是我迄今为止看到的最佳选择,它指的是一种假设的、遍布宇宙并允许光传播的不可见介质。”这一点,与Buterin 希望以太坊平台成为在其上运行的应用程序的底层和不可察觉的介质的初衷类似。
最初以太坊程序是由一间位在瑞士的公司Ethereum Switzerland GmbH开发,之后转移至一个非营利机构“以太坊基金会”(Ethereum Foundation)。在平台开始发展的最初,有人称赞以太坊的科技创新,但也有人质疑其安全和可扩展性。
以太坊的开发项目,主要分为四个阶段:边境(Frontier,也有“前锋”的意思)、家园(Homestead)、都会(Metropolis)、宁静(Serenity)。
边境(2015年)[编辑 | 编辑源代码]
以太坊的公共区块链在2015年7月30日启动,最初的版本称为“边境”,用的是工作量证明(proof-of-work)的算法,但未来预期会转换成权益证明(proof-of-stake)。激活后不久进行了第一次分叉,调整未来挖矿的难度,确保未来的用户会有转换至权益证明的动机。边境最初只能挖矿,主要功能是让用户有时间加入以太链,过了几天后才能交易和使用智能合约。
家园(2016年)[编辑 | 编辑源代码]
参考条目:以太坊经典
2016年春季进行了第二次分叉,发布了第一个稳定版本,称作“家园”(Homestead)。
2016年6月,以太坊上的一个分布式自治组织The DAO被骇,造成市值五千万美元的以太币被移动到只有该黑客可以控制的“分身DAO”。因为程序不允许黑客立即提取这些以太币,以太坊用户有时间讨论如何处理此事,考虑的方案包括取回以太币和关闭DAO,而DAO去中心化的本质也表示没有中央权力可以立即反应,而需要用户的共识。最后在2016年7月20日,以太坊进行硬分叉,做出一个向后不兼容的改变,让所有的以太币(包括被移动的)回归原处,而不接受此改变的区块链则成为以太坊经典。这是第一次有主流区块链为了补偿投资人,而透过分叉来更动交易记录。
在分叉以前就持有以太币的人会同时持有以太币和以太币经典(Classic Ether, ETC), 存在交易所或在线钱包中的以太币也不例外。这些在线服务大多选择只支持其中一种以太币,并让用户领回另一种以太币。在这次分叉之后,造成了在两个区块链之间进行重放攻击的可能,加上其他网络攻击,让以太坊和以太坊经典又各自进行了数次分叉来避免攻击。其中2016年11月底的分叉因为沟通疏失,短暂造成以太坊的两个主要客户端程序 Parity 和 Geth 失去共识而产生意外的分叉,但问题在数小时内即被找出并修正。
都会(2017~2019年)[编辑 | 编辑源代码]
“都会”的开发遇到许多延迟,升级分成了三次分叉,2017年10月的“拜占庭”、2019年2月的“君士坦丁堡”和“圣彼德堡”、以及2019年12月的“伊斯坦布尔”。这些升级主要改善智能合约的编写、提高安全性、加入难度炸弹以及一些核心架构的修改,以协助未来从工作量证明转至权益证明。安全性升级包括让以太坊可以使用零知识证明的zk-SNARKs和zk-STARKs,也能和Zcash链互通。
在使用方面,2017年以太坊和比特币首次进行了原子交换(atomic swap),用智能合约让不同链上的加密货币互相交易。ERC-20也在2017年成为标准,成千上万个项目透过以此进行集资,称作“首次代币发行”(Initial Coin Offering, ICO)。2019年DeFi和MakerDAO等金融商品成为以太链上最大的产业。据悉,包括三星手机、Opera浏览器以及微软在内的多家企业均开发了以太坊的相关程序。
在以太币的价格方面,2017年从年初的10美金开始暴涨,至2018年初涨到1400美元。然而在2018年,人们对区块链的热潮慢慢退却,至年底价格又跌至85美元。截至2024年4月初,以太坊价格徘徊在3000美元附近。
宁静(2020~至今)[编辑 | 编辑源代码]
以太坊2.0,也被称为“宁静”(Serenity),是一系列升级的总称,旨在将以太坊网络从工作量证明(PoW)转换为权益证明(PoS),并开发第二层扩容方案以提高网络的可扩展性和效率。这个升级过程分为多个阶段,每个阶段都有其特定的目标和改进。
- 柏林(Berlin):这是以太坊1.x系列升级的一部分,已于2021年4月15日激活,它引入了新的交易类型和费用调整。
- 伦敦(London):紧随柏林之后,于2021年8月5日激活,伦敦升级包括了EIP-1559,改变了交易手续费的计算方式,引入了手续费燃烧机制。
- 双链合并(The Merge):这是从PoW向PoS过渡的关键步骤,已于2022年9月15日完成。这一步骤标志着以太坊网络停止了挖矿,完全转为权益证明。
在完成双链合并后,以太坊2.0的路线图包括以下五个阶段:
- 涌升(The Surge):这一阶段将专注于提升网络的交易处理能力,包括引入分片链以提高吞吐量。
- 祸害(The Scourge):这一阶段将解决以太坊中的MEV(矿工可提取价值)问题,提高网络的公平性和效率。
- 边界(The Verge):旨在通过实现无状态客户端来提高以太坊共识机制的效率。
- 清除(The Purge):将通过减少不必要的数据和提高节点性能来优化网络。
- 挥霍(The Splurge):将包括一系列较小的改进,如更好的Gas定价和交易格式的优化。
这些阶段的实施将逐步提升以太坊的性能,目标是实现每秒处理超过100,000笔交易(TPS),同时保持去中心化和安全性。随着这些升级的推出,用户将受益于更快的交易和更低的费用,而开发者可以构建更具创新性的去中心化应用(dApp)
权益证明所需的信标链在2020年12月1日上线,并允许权益证明的抵押,但尚不能提领。至2021年11月,已有8百万以太币加入权益证明的抵押,约占总发行量的7%。2021年进行了柏林和伦敦分叉,并升级了信标链,为未来转换至权益证明作准备,并透过销毁手续费和降低区块奖励的方式控制总发行量。
2022年9月15日,以太坊合并完成,主网与PoS共识层信标链(Beacon链)结合、将此前PoW工作量证明机制转变为PoS权益证明机制,宣布以太坊正式进入2.0时代。此举意味着,以太坊将告别大规模矿机挖矿时代,持有者通过质押以太坊代币(ETH)即可挖矿,质押门槛为32个ETH。
2023年7月30日,以太坊主网上线8周年,总交易数已超20.5亿Txns,总地址数达2.96亿个,合约地址数达6161万个,总交易量达到99.3亿ETH。
2023年7月31日,产生了以太坊历史上一些最大的MEV奖励区块。
2024年6月25日, 美国证券交易委员会(SEC)主席 Gary Gensler 表示,推出以太坊 ETF 现货的过程进展顺利,但不知道具体时间表。
2024年7月23日,获得美国证券交易委员会(SEC)批准的以太坊现货 ETF 正式上市交易。The Block数据显示,9只以太坊现货ETF在美国交易所上市首日累计交易量超10.19亿美元。其中灰度以太坊信托(ETHE)以4.56亿美元的交易量占总交易量的近一半。
以太币[编辑 | 编辑源代码]
以太币 | |
---|---|
使用地区 | |
使用地 | 全球 |
发行历史 | |
始发时间 | 2015年7月30日 |
货币单位 | |
1 | 以太(Ether) |
10−3 | 芬尼(finney) |
10−6 | 萨博(szabo) |
10−18 | 维(wei) |
货币符号 | Ξ, ETH |
货币估值 | |
货币供给 | 不明 |
以太坊区块链上的代币称为以太币(Ether),代码为ETH,可在许多加密货币的外汇市场上交易,它也是以太坊上用来支付交易手续费和运算服务的介质 。以太币的总发行量不明,因为权益证明的具体运作方式仍在研究中,而虽然难度炸弹限制了工作量证明的挖矿的区块数量上限,但因为叔块也有奖励,而且叔块的数量并不一定,造成确切数量难以估算。
以太币对其他实体货币的汇率可能在短时间内大幅变化, 例如2016年The DAO被骇时, 对美元的汇率从 $21.50 跌至 $15,而2017年初到2018年初的的一年间从大约10美金涨到1400美元。
2016年4月,维塔利克出售了其持有的四分之一以太币,引发一些人质疑,而他本人则说这是理财上很合理的分散风险,并引用前比特币开发员 Gavin Andresen 说这一切都还只是一场实验,仍有失败的可能。
智能合约[编辑 | 编辑源代码]
主条目:智能合约
以太坊最重要的技术贡献就是智能合约。智能合约是存储在区块链上的程序,可以协助和验证合约的谈判和执行。以太坊的智能合约可以通过数种图灵完备的编程语言写成。纽约时报称以太坊平台是一台公共电脑,由众多用户构成的网络来运转,通过以太币来分配和支付这台电脑的使用权。经济学人则说明智能合约可以让众多组织的数据库得以用低廉的成本交互,并且让用户写下精密的合约,功能之一是产生去中心化自治组织,也就是一间只是由以太坊合约构成的虚拟公司。
因为合约内容公开,合约可以证明其宣称的功能是真实的,例如虚拟赌场可以证明它是公平的。另一方面,合约的公开性也让合约中的漏洞可以被任何人看到,虽然从发现到修正的过程可能会需要一些时间。比如The DAO 就是一个例子,虽然及时发现了,但无法立即阻止。
智能合约的许多细节仍在研究中,包括如何验证合约的功能。微软研究院的报告指出要写出完善的合约可能非常困难,讨论了微软开发的一些可以用来验证合约的工具,并提到如果大规模分析各个已发布的合约,可能发现找出大量的漏洞。报告也说可以证明Solidity程序和以太虚拟机编码的等同性。
以太坊智能合约是运行在以太坊区块链上的程序,它们是在特定条件下自动执行的合约条款 。智能合约为开发者提供了在区块链上创建任意复杂去中心化应用的能力 。以下是以太坊智能合约的一些关键特点和技术进展:
- 图灵完备的编程语言:以太坊内置了图灵完备的编程语言,如Solidity和Vyper,允许开发者编写复杂逻辑的智能合约 。
- 自动执行:智能合约的特点是它们在条款得到满足时自动执行,无需外界干预 。
- 安全性:以太坊设计了多种机制确保网络的安全,包括经济激励、交易费机制、以及针对恶意行为的惩罚措施 。
- 应用场景:智能合约的应用场景广泛,包括金融服务、供应链管理、身份验证、医疗行业、版权保护、去中心化应用(DApps)和去中心化金融(DeFi)等 。
- 架构:智能合约的架构包括程序设计、代码生成、部署与执行等多个阶段 。
- 以太坊虚拟机(EVM):智能合约运行在以太坊虚拟机上,这是一个在每个以太坊节点上运行的虚拟环境 。
- 共识机制:以太坊最初采用工作量证明(PoW)作为共识机制,但计划向权益证明(PoS)过渡,以提高效率、降低能耗 。
- 安全性与挑战:智能合约面临的挑战包括网络拥堵、交易成本上升以及如何平衡去中心化、安全性和可扩展性之间的关系 。
- 开发工具:以太坊提供了多种开发工具,如Remix IDE、Truffle框架、web3.js库等,以支持智能合约的开发、测试和部署 。
- 智能合约的编写与部署:开发者可以使用Solidity等语言编写智能合约,并通过以太坊客户端如Geth或Parity部署到区块链上 。
智能合约的最新动态包括以太坊2.0的升级,这将引入权益证明(PoS)共识机制,提高网络的可扩展性和安全性 。此外,智能合约的安全审计和正式验证也是当前研究的热点,以减少因编码错误导致的安全漏洞
编程语言[编辑 | 编辑源代码]
以太坊智能合约可以使用多种编程语言编写,其中最常用的有以下几种:
- Solidity:
- 简介:Solidity 是以太坊智能合约开发中最流行的语言,它是一种静态类型的编程语言,专门为编写智能合约而设计。
- 特点:Solidity 语言语法类似于 JavaScript,易于学习。它提供了丰富的库和工具,支持复杂的合约编写。
- 用途:适合编写复杂的智能合约,是目前使用最广泛的以太坊智能合约语言。
- Vyper:
- 简介:Vyper 是一种相对较新的以太坊智能合约编程语言,由 Python 编程语言的开发者 Guido van Rossum 创建。
- 特点:Vyper 旨在提高智能合约的安全性和简洁性。它是一种 Pythonic 的语言,语法简洁,易于理解。
- 用途:适合编写安全性要求较高的智能合约,但由于是较新的语言,其生态系统和工具支持相对较少。
- Yul:
- 简介:Yul 是以太坊的中间级语言,它是低级的,但比直接编写 EVM 字节码要简单。
- 特点:Yul 旨在作为智能合约的中间表示,可以被编译成 EVM 字节码。它提供了更接近底层的操作,使得优化和分析更加容易。
- 用途:适合需要精细控制 EVM 执行的高级开发者,或用于编写编译器和优化工具。
- LLL (Low-Level Language):
- 简介:LLL 是以太坊的低级语言,它允许开发者直接编写 EVM 字节码。
- 特点:LLL 提供了直接与 EVM 交互的能力,但编写复杂且容易出错。
- 用途:适合需要极高性能或特定优化的合约,通常不推荐普通开发者使用。
- Rust:
- 简介:Rust 是一种系统编程语言,以其安全性和并发性而闻名。
- 特点:Rust 语言本身不是以太坊原生支持的,但有一些项目(如 ewasm 和 Parity 的 Substrate)正在探索将 Rust 用于智能合约。
- 用途:适合需要高性能和安全性的复杂系统,目前尚处于探索阶段。
- 其他语言:
- 还有一些其他语言和工具,如 Serpent、Fe、Wood 等,但它们的使用和支持范围相对较小。
选择建议:
- Solidity 是最常用的智能合约语言,拥有最大的社区和最丰富的资源,适合大多数智能合约项目。
- Vyper 适合对安全性有特别高要求的项目,但可能需要更多的学习和资源搜索。
- Yul 和 LLL 适合高级开发者,用于优化和分析智能合约的底层执行。
开发者应根据自己的项目需求、团队技能和资源情况选择合适的编程语言。
运行效率[编辑 | 编辑源代码]
以太坊智能合约的运行效率是区块链技术中的一个关键考量因素,它直接影响到交易成本、网络拥堵情况以及用户体验。以下是一些关于以太坊智能合约运行效率的关键点和进展 :
- 编程语言的选择:以太坊智能合约可以使用多种编程语言编写,包括Solidity、Vyper和Yul。每种语言都有其特定的优势和局限性。例如,Solidity因其与Ethereum生态系统的无缝集成和强大的安全特性而广受欢迎 ,而Vyper则因其简洁性和安全性而受到推崇 。Yul作为一种低级语言,允许开发者更精细地控制合约的执行,从而优化性能和安全性 。
- 性能优化:智能合约的编写需要考虑性能和效率。使用Yul语言,开发者可以通过更低级别的控制来优化gas使用,从而减少交易成本 。此外,Solidity和Vyper也在不断改进,以提高智能合约的性能 。
- 编译器和工具:以太坊提供了多种开发工具,如Remix IDE、Truffle框架、web3.js库等,这些工具支持智能合约的开发、测试和部署,有助于提高开发效率和合约性能 。
- Gas优化:在以太坊中,执行智能合约需要消耗Gas,因此优化Gas使用是提高效率的关键。Yul语言允许开发者通过更直接的方式节省Gas 。
- 并行处理:以太坊的顺序执行交易是网络吞吐量的瓶颈。一些新的区块链技术,如Rust语言支持的并行处理,可以提高交易处理速度 。
- 安全与效率的平衡:智能合约的安全性是最重要的考虑因素之一。Solidity和Vyper都提供了内置的安全特性,如函数修饰符、访问控制和异常处理,以确保合约的安全性 。
- 技术进展:以太坊2.0的升级,包括从工作量证明(PoW)到权益证明(PoS)的转变,旨在提高网络的可扩展性、安全性和效率 。
- 社区和资源:Solidity拥有庞大的开发者社区,提供了大量资源、教程和库,促进了社区内的协作和知识共享,这对于提高智能合约的运行效率至关重要 。
综上所述,以太坊智能合约的运行效率受到多种因素的影响,包括编程语言的选择、开发工具的使用、Gas优化策略以及网络的共识机制等。随着技术的不断进步和社区的共同努力,以太坊智能合约的运行效率有望进一步提高。
实现[编辑 | 编辑源代码]
智能合约的潜在应用很多。彭博社商业周刊称它是“所有人共享但无法篡改的软件”。更高阶的软件有可能用以太坊建立网络商店。
区块链程序[编辑 | 编辑源代码]
以太坊可以用来建立去中心化的程序、自治组织和智能合约,据纽约时报的报导,在2016年5月已经有数十个可用的程序。预期的应用目标涵盖金融、物联网、农田到餐桌(farm-to-table)、智能电网、体育赌博等。去中心化自治组织有潜力让许多原本无法执行或成本过高的营运模型成为可能。目前较知名的应用有:
- 游戏:CryptoKitties让玩家繁殖及交易虚拟猫。
- 类庞氏骗局的赌局游戏:Fomo 3D,不同于传统的庞氏骗局,最后一位加入赌局中的人可获得总资金盘中的48%
- 游戏道具交易平台:FreeMyVunk。
- 去中心化创业投资:The DAO用以太币资金创立,目标是为商企业和非营利机构建立新的去中心化营业模式、The Rudimental让独立艺术家在区块链上进行群众募资。
- 社会经济平台:Backfeed。
- 去中心化预测市场:Augur。
- 物联网:Ethcore(一间以太坊公司)研发的客户端、Chronicled(一间区块链公司)发表了以太坊区块链的实物资产验证平台;芯片公司、物理IP创建者和生产者可以用植入的蓝牙或近场通信进行验证。Slock.It开发的智能锁可以在付费后自动开启,让用户在付费后可以帮电动车充电、或是打开租屋的房门。
- 著作权授权:Ujo Music平台让创作人用智能合约发布音乐,消费者可以直接付费给创作人。伊莫珍·希普用此平台发布了一首单曲。
- 智能电网:TransActive Grid让用户可以和邻居买卖能源。
- 去中心化期权市场:Etheropt。
- 钉住汇率的代币:DigixDAO提供与黄金挂钩的代币,在2016年四月正式营运。Decentralized Capital提供和各种货币挂钩的代币。
- 移动支付:Everex让移工汇款回家乡。
客户端软件[编辑 | 编辑源代码]
以太坊智能合约客户端软件是用于与以太坊区块链交互、部署和执行智能合约的软件。以下是一些流行的以太坊智能合约客户端软件及其特点:
- Geth (Go Ethereum):
- 开发语言:Go
- 界面:命令行界面
- 适用平台:Windows、Linux、macOS
- 功能和特点:Geth 是以太坊的官方客户端,支持智能合约的创建和部署,提供 JSON-RPC 接口,允许开发者使用各种编程语言与以太坊区块链交互。它还支持插件和模块,具有很好的可扩展性。
- Besu:
- 开发语言:Java
- 界面:命令行界面
- 适用平台:Windows、Linux、macOS
- 功能和特点:Besu 是一个企业级的以太坊客户端,适用于公共和许可网络。它由 ConsenSys 提供支持,提供全面的监控和商业级支持。Besu 支持所有以太坊主网功能,包括追踪和 GraphQL。
- Erigon:
- 开发语言:Go
- 界面:命令行界面
- 适用平台:Windows、Linux、macOS
- 功能和特点:Erigon,前称 Turbo-Geth,是一个针对速度和磁盘空间效率优化的以太坊客户端。它的目标是提供一个更快、更模块化、更优化的以太坊实现。
- Nethermind:
- 开发语言:C#
- 界面:命令行界面
- 适用平台:Windows、Linux、macOS
- 功能和特点:Nethermind 是一个使用 C# .NET 技术栈创建的以太坊实现,提供优化的虚拟机、状态访问和网络功能。它还支持 Prometheus/Grafana 仪表盘和丰富的特性。
- Reth (Rust Ethereum):
- 开发语言:Rust
- 界面:命令行界面
- 适用平台:Windows、Linux、macOS
- 功能和特点:Reth 是一个以太坊全节点实现,注重用户友好、高度模块化、快速和高效。Reth 适合用于关键任务环境,如质押或高可用性服务。
- EthereumJS:
- 开发语言:TypeScript
- 界面:命令行界面
- 适用平台:Windows、Linux、macOS
- 功能和特点:EthereumJS 执行客户端由多个包组成,包括核心以太坊原语和核心客户端组件。它提供了对 Ethereum Virtual Machine (EVM) 的实现和 DevP2P 网络堆栈。
这些客户端软件各有特点,开发者可以根据项目需求、团队熟悉的编程语言和资源情况选择合适的客户端软件。
企业软件[编辑 | 编辑源代码]
企业软件公司也正测试用以太坊作为各种用途。已知有兴趣的公司包括微软、IBM、摩根大通。
- 德勤和ConsenSys在2016年宣布成立数字银行Project ConsenSys。
- R3公司在Microsoft Azure上执行私人以太坊区块链,将11间银行连接至一本分布式帐薄(distributed ledger)。
- Microsoft Visual Studio提供程序开发者使用Solidity编程语言。
- 英国政府中负责推动创新的机构Innovate UK提供了近25万英镑给Tramonex用以太坊发展跨国支付系统。
认许制记账[编辑 | 编辑源代码]
目前有许多方案正在研究使用以太坊建立认许制的区块链。
- 摩根大通打算用以太坊上建立一个私人区块链“Quorum”。其功能是洗乱派生性金融产品及其交易纪录来保护交易者的隐私,但同时符合金融管制单位在信息公开上的要求,以期在保障隐私和信息公开之间找到平衡。
- 苏格兰皇家银行用以太坊的分布式记账和智能合约平台建立了一个结算交割机制(Clearing and Settlement Mechanism, CSM),可以达成每秒100笔交易、模拟六间银行,平均每个trip在3到8秒间完成,这些数值用在于全国的支付系统是可接受的。
采用[编辑 | 编辑源代码]
2016年五月,纽约时报指出以太坊的采用仍在初期阶段,并可能遇到让成长率减缓的技术或法律问题。许多比特币支持者认为以太坊比比特币复杂,所以可能需要面对更多的安全问题。报导也指出这个系统复杂到熟知这个系统的人也很难用普通人的语言来描述它。
微软和ConsenSys合作,在 Microsoft Azure上提供第三方开发的区块链工具,包括交易股票和跨境支付等用途。
卢森堡交易所在2016年10月开始提供用以太坊产生的数字签名来证明文件的真实性。
新加坡金融管理局使用以太坊将新加坡元数字化。
交易以外的用途[编辑 | 编辑源代码]
因区块链不可篡改的技术特性,部分人会运用加密货币上传资料以免被他人删改。2018年4月,在北大岳昕事件中,有用户把岳昕的公开信上传到以太坊的交易记录,以免被校方删除。
2019年6月,部分香港警察的个人资料被示威者上传到以太坊的交易记录,令有关当局难以追查上传者身份及删除资料。
外部链接[编辑 | 编辑源代码]
参考链接[编辑 | 编辑源代码]
- ↑ Releases · ethereum/go-ethereum