作者:VitalikButerin
原标题:《APrehistoryoftheEthereumProtocol》
发表时间:2017年9月14日
尽管当前以太坊协议背后的想法已经基本稳定了两年,但以太坊并没有一下子出现,在目前的概念中并完全形成。在区块链启动之前,该协议经过了许多重大的发展和设计决策。本文的目的是浏览该协议从头开始启动的各种演变;在诸如Geth,Cppethereum,Pyethereum和Ethereumj之类的协议实施方面所做的无数工作,以及以太坊生态系统中的应用和业务历史,是故意超出范围的。
Casper和ShardingResearch的历史也出现了。虽然我们当然可以发表更多的博客文章,讨论弗拉德,Gavin,我本人和其他人的所有想法,包括“工作证明”,“轮辐链”,“超级立法”,影子链,链纤维和Casper的各种迭代,以及弗拉德(Vlad在一个帖子中,我们现在将其遗漏。
让我们首先从最终变成以太坊的最早版本开始,当时它甚至没有被称为以太坊。当我在2013年10月访问以色列时,我与万事币团队一起度过了很多时间,甚至为他们提供了一些功能。花了几次思考他们在做什么之后,我向团队发送了一个建议,以使协议更加普遍,并支持更多类型的合约,而无需添加同样大而复杂的功能:
https://web.archive.org/web/20150627031414/http://vbuterin.com/ultimatescripting.html
请注意,这与以太坊的后来更广泛的愿景相去甚远:它纯粹是Mastercoin试图专门研究的,即两党合约,当事人A和B都会投入资金,然后他们后来他们会根据合约中指定的某些公式获取资金。脚本语言并不完整。
NFTScan:以太坊网络上NFT钱包地址数突破4000万:3月1日消息,据 NFTScan 浏览器的统计数据,以太坊上的 NFT 资产相关交互钱包地址数量已经突破 4000 万,现为40,018,792个。NFT 资产发行数量为 4571万枚,平均每个钱包地址持有 1.14 枚 NFT 资产。[2022/3/1 13:28:28]
Mastercoin团队印象深刻,但他们对放弃他们正在做的一切朝着这个方向发展并不感兴趣,我越来越相信这是正确的选择。因此,这里是12月2日的版本2:
https://web.archive.org/web/20131219030753/http://vitalik.ca/ethereum.html
在这里,你可以看到一个实质性的重新研究的结果,这主要是由于我意识到智能合约有可能完全概括的旧金山长途旅行的结果。与其仅仅是描述两方之间关系条款的一种脚本语言,不如说合约本身是完整的帐户,并且有能力持有,发送和接收资产,甚至保持永久存储。该语言从基于堆栈的计算机转变为我自己的意志的基于寄存器的计算机;除了看起来更复杂的情况外,我对此几乎没有争论。
此外,请注意现在有一种内置的费用机制:
在这一点上,以太实际上是气体。在每个计算步骤之后,交易所要求的合约的余额将有所下降,如果合约用完了货币执行,则会停止。请注意,此“接收者付费”机制意味着合约本身必须要求发件人向合约支付费用,并在不存在此费用的情况下立即退出;该协议分配了16个免费执行步骤的津贴,以允许合约拒绝非付费交易。
这是以太坊协议完全是我自己的创建的时候。但是,从这里开始,新参与者开始加入折叠。到目前为止,该协议方面最突出的是Gavin·伍德,他在2013年12月向我接触。
以太坊网络难度达到5.74P的历史新高:据欧科云链OKLink数据显示,当前以太坊网络难度达到5.74P,全网算力约合435.5 TH/s,近一周分别上升5.32%和5.7%,均刷新历史新高。今年以来,以太坊网络挖矿难度持续刷新历史新高,当前难度较年初已上升54.3%。[2021/3/18 18:55:41]
GO客户的首席开发人员JeffreyWilcke也伸出了大约同一时间,尽管他的贡献更多地在客户开发方面而不是协议研究。
“嘿,Jeffrey,很高兴看到你对以太坊感兴趣……”
Gavin的最初贡献是两倍。首先,你可能会注意到,初始设计中的合约调用模型是异步的:尽管合约A可以为合约B创建“内部交易”,直到第一个交易的执行完全完成后,内部事务的执行才会启动。这意味着交易不能使用内部交易作为从其他合约中获取信息的一种方式;唯一的方法是ExtroOpCode,随后在Gavin和其他人的支持下也将其删除。
在实施我的初始规格时,Gavin自然地同步实施了内部交易,甚至没有意识到意图是不同的-也就是说,在Gavin的实施中,当合约呼叫另一个合约时,内部交易立即执行,一旦执行完成,则一旦执行,VM返回到创建内部交易的合约,并继续进行下一个OPCODE。在我们俩看来,这种方法似乎是优越的,因此我们决定将其作为规格的一部分。
其次,他和我本人之间的讨论交易费用模型从“合约付款”方法转向“发送者付费”方法,还切换到“燃气”架构。交易发件人并没有立即夺走每个单独的交易步骤,而是为了分配了一些“气体”,而计算步骤则从这种气体的津贴中获取。如果一笔交易用尽了汽油,则汽油仍将被没收,但整个处决将被恢复;这似乎是最安全的事情,因为它删除了整个课程”
逾7.2万枚ETH在以太坊链上转移 价值2254.1万美元:Whale Alert数据显示,北京时间07月27日00:25,72208.4枚ETH从0xe8f0c9开头地址转至以0xed344开头地址。按当前价格计算,价值约2254.1万美元。[2020/7/27]
Gavin也可以在很大程度上归功于从将以太坊视为建造可编程资金平台的远见卓识,并具有基于区块链的合约,可以持有数字资产并根据预设的规则转移它们,再到通用计算平台。这始于重点和术语的细微变化,后来随着对“Web3”合奏的越来越重视,这种影响变得更加强大,该合奏将以太坊视为一组分散的技术,其他两个是耳语和蜂拥而至。
其他人建议在2014年初左右也进行了更改。在安德鲁·米勒和其他人提出这个想法之后,我们最终回到了基于堆栈的建筑。
查尔斯·霍斯金森建议从比特币的SHA256转换为新的SHA3。尽管有一段时间的争议,但与Gavin,安德鲁和其他人的讨论导致确定堆栈上的价值大小应限于32个字节。考虑的另一种替代方案是无限尺寸的整数,存在一个问题,即难以弄清楚多少天然气,添加,乘法和其他操作。
我们想到的最初的采矿算法早在2014年1月,是一种名为Dagger的装置:
https://github.com/ethereum/wiki/blob/master/Dagger.md
Dagger以“定向无环图”命名,该算法中使用的数学结构。这个想法是,每个n个块,一个新的dag都会是从种子中生成的伪随机,而dag的底层将是一系列节点的集合,这些节点需要数个千兆字节才能存储。但是,在DAG中生成任何个人值都需要计算几千个条目。“Dagger计算”涉及在此底部数据集中的随机位置中获得一些值,然后将它们放在一起。这意味着有一种快速的方法来进行Dagger计算-已经将数据存储在内存中,而不是记忆密集型的方法-从你需要从头开始获得的每个值。
动态 | Bitfinex交易所最具流动性 比特币的流动性是以太坊的4倍:据The Block研究团队对48家交易所的分析,Bitfinex上的比特币、以太坊和XRP交易对流动性最高。除了Bitfinex外,Coinbase、Kraken、Bitstamp、币安和FTX在BTC、ETH和XRP方面的流动性最强。比特币的流动性是以太坊的4倍,是XRP的9倍以上。[2019/12/7]
该算法的目的是具有与当时流行的算法相同的“记忆力”属性,例如Scrypt,但仍然是轻客户友好的。矿工会使用快速的方式,因此他们的采矿将受到内存带宽的限制,但是Light客户可以可以使用无内存但较慢的版本进行验证。快速的方法可能需要几微秒,并且不含内存的方式缓慢而无需毫秒,因此对于轻型客户来说,它仍然非常可行。
从这里开始,在以太坊开发过程中,该算法会发生多次变化。我们经历的下一个想法是“自适应的工作证明”。在这里,工作证明将涉及执行随机选择的以太坊合约,并且有一个聪明的理由如何预期这将是抗ASIC的:如果开发了ASIC,那么竞争的矿工将有动机创建和发布许多合约,说明这些合约的说明ASIC不擅长执行。这个故事就没有用于通用计算的ASIC之类的东西,因为这只是CPU,因此我们可以使用这种对抗性激励机制来做出基本上是执行一般计算的工作证明。
之所以失败,原因很简单:远程攻击。攻击者可以从区块1开始一条链,只用他们可以为其创建专用硬件的简单合约填充它,并迅速超越主链。所以......回到绘图板。
下一个算法是称为“随机电路”,在此Google文档中描述,由我自己和VladZamfir提出,并由MatthewWampler-Doty等人进行了分析。这里的想法也是为了模拟采矿算法中的通用计算,这次是通过执行随机生成的电路。没有什么难以证明的,基于这些原则是行不通的,但是我们在2014年与之联系的计算机硬件专家往往对此非常悲观。MatthewWampler-Doty本人建议基于SAT解决的工作证明,但最终也被拒绝了。
动态 | 以太坊钱包MyCrypto发布新功能 可提前安排ETH交易:据CNN消息,MyCrypto发布了一项功能,能够使以太坊用户提前安排ETH交易。任何以太坊钱包用户都可以使用MyCrypto上的ETH交易调度功能,只需将他们现有的钱包与MyCrypto连接即可。[2018/9/18]
最后,我们以一种称为“DaggerHashimoto”的算法来完善电路。“dashimoto”有时被称为“dashimoto”,从hashimoto那里借了许多想法,Hashimoto是ThaddeusDryja的工作证明算法,它率先提出了“I/O的工作证明”的概念,其中挖掘速度的主要限制因素是不是每秒哈希,而是每秒RAM访问的大型范围。但是,它将其与Dagger的轻客户端友好型DAG生成的数据集相结合。在我自己进行了许多调整之后,Matthew,Tim和其他人,这些想法终于融合到了我们现在称为ethash的算法中。
到2014年夏天,该协议已经大大稳定了,除了工作证明算法外,该协议直到2015年初才能达到Ethash阶段,并且以Gavin的黄皮书的形式存在半正式规格。
2014年8月,我开发并介绍了叔块机制,该机制使以太坊的区块链具有较短的区块时间和更高的容量,同时减轻集中化风险。这是作为POC6的一部分引入的。
与Bitshares团队的讨论导致我们考虑将堆添加为一流的数据结构,尽管由于缺乏时间,我们最终没有这样做,而后来的安全审核和DOS攻击将表明,实际上它比我们的难度要困难得多。当时想到安全执行此操作。
9月,我和Gavin计划了协议设计的接下来的两个重大更改。首先,在状态树和事务树旁边,每个块还包含一个“收据树”。收据树将包括交易创建的日志的哈希以及中间状态根。日志将允许交易创建保存在区块链中的“输出”,并且可以通过光线客户端访问,但是未来状态计算无法访问。这可以用来允许分散的应用程序轻松查询事件,例如令牌转移,购买,创建和填写的交换订单,开始拍卖等等。
还有其他考虑的想法,例如,从整个交易的整个执行痕迹中制造出默克尔树,以证明任何事物。选择日志是因为它们是简单性和完整性之间的妥协。
第二个是“预编译”的想法,解决了允许复杂的加密计算在EVM中可用的问题,而无需处理EVM开销。我们还经历了关于“本地合约”的更多雄心勃勃的想法“如果矿工可以优化某些合约的实施,他们可以为这些合约的打包费用“投票”,因此大多数矿工可以更快执行的合约自然会降低gas价格;但是,所有这些想法都被拒绝了因为我们无法提出一种加密经济上安全的方法来实施此类事情。攻击者总是可以创建一份合约,该合约执行某些陷阱的加密操作,将陷阱门分配给自己和朋友,以使他们更快地执行此合约,然后再执行此合约,然后对加油的投票并将其用于网络。相反,我们选择了雄心勃勃的方法,即简单地在协议中指定的较小数量的预编译,用于诸如哈希斯和签名方案之类的常见操作。
Gavin也是开发“协议抽象”概念的关键初始声音-移动协议的许多部分,例如以太余额,交易签名算法,nonces等作为合约本身,并具有达到达到的理论最终目标可以将整个以太坊协议描述为将函数调用到具有某些原始状态的虚拟机中的情况。这些想法没有足够的时间进入最初的前沿版本,但是预计原则将通过一些君士坦丁堡的变化,卡斯珀合约和分片规范开始缓慢地集成。
这一切都是在POC7中实施的;在POC7之后,该协议并没有发生太大变化,除了未成年人以外,尽管在某些情况下很重要,但通过安全审核会得出的细节...
2015年初,JuttaSteiner等人组织了发出的预发行安全审计,其中包括软件代码审核和学术审核。该软件审核主要是由GavinWood和JeffreyWilcke领导的C++和GO实施,尽管我的Pyethereum实施中也有较小的审计。在这两项学术审核中,一项是由IttayEyal进行的,另一个由AndrewMiller和其他最低权威进行。EYAL审计导致了较小的协议更改:链的总难度不包括叔叔。权限最少的审计更专注于智能合约和天然气经济学以及帕特里夏树。该审核导致了几个协议更改。一个小的是将sha3和sha3用作trie键而不是直接地址和键的使用;这将使对Trie进行最糟糕的攻击变得更加困难。
警告可能比它的时代有点太远了...
我们讨论的另一个重要的事情是气体限制投票机制。当时,我们已经担心比特币大小辩论中缺乏进展,并希望在以太坊中具有更灵活的设计,并且可以根据需要随时间进行调整。但是挑战是:最佳限制是什么?我最初的想法是建立动态限制,针对实际使用气体使用的长期指数移动平均值,因此从长远来看,平均块将是满的。但是,Andrew,这在某些方面是可利用的-特别是,想要提高限制的矿工只会在自己的块中包括交易,这些交易消耗大量的气体,但要花费很少的时间来处理,因此总是创造出来整个块无需花钱。因此,至少在向上的方向上,安全模型相当于简单地让矿工对gas限制进行投票。
我们没能想出一个不太可能打破的gas限制策略,因此Andrew推荐的解决方案是简单地让矿工对gas限制进行明确投票,并将默认投票策略设置为EMA规则。原因是我们离设定最大gas限制的正确方法还有很长的路要走,任何特定方法失败的风险似乎都大于矿工滥用投票权的风险。因此,我们不妨干脆让矿工对gaslimit进行投票,并接受限额过高或过低的风险,以换取灵活性的好处,以及矿工协同工作以非常快速地调整的能力根据需要向上或向下限制。
在Gavin,Jeff和我本人之间进行了小型黑人马拉松之后,POC9于3月推出,并打算成为概念发布的最终证明。使用打算在Livenet中使用的方案,并建立了以太坊的长期计划,使用了四个月的测试网跑了四个月。VinayGupta撰写了一篇博客文章“以太坊启动过程”,其中描述了以太坊Livenet开发的四个预期阶段,并给了他们当前名称:Frontier,Homestead,Mesropolis和Serenity。
黑客马拉松跑了四个月。在最初的两个月中,在各种实现中发现了许多错误,发生了共识失败,除其他问题外,但是在6月左右,该网络明显稳定。7月,决定制作代码冻结,然后发布发布,并于7月30日发布。
作者:VitalikButerin原标题:《HardForks,SoftForks,DefaultsandCoercion》发表时间:2017年3月14日在区块链的相关话题讨论中,有一个非常重要的讨论是关于:在协议升级机制中.
1900/1/1 0:00:00链捕手消息,跨链流动性协议Synapse宣布将推出基于以太坊的OptimisticRollup「SynapseChain」,通过利用Synapse的通用跨链消息传递系统和代币桥.
1900/1/1 0:00:00链捕手消息,新公链Aptos在推特上公布了一系列加入其生态系统的早期项目:1.Econia:一种超并行的CLOB协议,用于提供对市场的平等全球访问;Blast现已添加对APTOS网络支持:11月3日,据官方公告.
1900/1/1 0:00:00链捕手消息,加密货币交易所Zipmex宣布,其律师已于7月22日根据新加坡《2018年破产、重组和解散法》第64条代表Zipmex集团的几个实体提交了五份申请。Zipmex将继续运营其TradeWallet、NFT平台和其他产品.
1900/1/1 0:00:00作者:羊尔,无界版图? 自NFT诞生以来,Metaverse热潮持续升温。作为元宇宙中最被大众所熟知的概念,NFT俨然已是大家进入元宇宙世界的一条要道.
1900/1/1 0:00:00链捕手消息,据Forkast报道,币安交易所和信托公司Paxos公布了未经审计的BUSD储备金明细报告,截至6月30日,BUSD有7.38亿美元的现金支持,占总准备金的4.21%,以及106亿美元的期限在90天以内的美国国库券.
1900/1/1 0:00:00