火星链 火星链
Ctrl+D收藏火星链
首页 > BNB > 正文

VIN:以太坊启动之前的故事

作者:

时间:1900/1/1 0:00:00

作者: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都会投入资金,然后他们后来他们会根据合约中指定的某些公式获取资金。脚本语言并不完整。

以太坊信标链超75%拜占庭行为未受到slash惩罚:2月16日消息,芝加哥大学Zhiguo He与乔治梅森大学Jiasun Li发表论文《合约执行与去中心化共识:Slashing案例,(Contract Enforcement and Decentralized Consensus: The Case of Slashing)》。论文表示,许多新的区块链应用依赖“质押和slash”机制来调整激励。论文指出,这种“契约”问题的设计不能脱离去中心化共识形成过程的细节。论文对以太坊2.0进行了实证研究,发现超过75%的拜占庭(Byzantine)行为都逃避了惩罚(Slashing),突出表明slashing可能没有人们普遍认为的那么有效。

以太坊社区表示,这是信标链(Beacon Chain)的bug,不是客户端bug,问题相当复杂,将尽快解决。

据悉,Slash是从节点中质押的32枚ETH中收取罚款。 Slash的任何金额都无法替换,并且如果节点由于Slash的罚款累积而降至16枚ETH以下,则该节点会自动从网络中退出。

以太坊2.0依赖于拜占庭容错阈值,必须保证网络中三分之二的验证者是诚实参与者。[2022/2/17 9:58:52]

Mastercoin团队印象深刻,但他们对放弃他们正在做的一切朝着这个方向发展并不感兴趣,我越来越相信这是正确的选择。因此,这里是12月2日的版本2:

https://web.archive.org/web/20131219030753/http://vitalik.ca/ethereum.html

在这里,你可以看到一个实质性的重新研究的结果,这主要是由于我意识到智能合约有可能完全概括的旧金山长途旅行的结果。与其仅仅是描述两方之间关系条款的一种脚本语言,不如说合约本身是完整的帐户,并且有能力持有,发送和接收资产,甚至保持永久存储。该语言从基于堆栈的计算机转变为我自己的意志的基于寄存器的计算机;除了看起来更复杂的情况外,我对此几乎没有争论。

EthHub联合创始人:目前唯一的替代金融系统是以太坊而非比特币:EthHub联合创始人Eric Conner发推称,看着人们宣扬比特币是另一种“金融体系”是一件很滑稽的事。金融系统包括借款者、放款人和投资者,这些都无法在比特币上实现。目前唯一的替代金融系统是以太坊。[2021/1/23 16:49:48]

此外,请注意现在有一种内置的费用机制:

在这一点上,以太实际上是气体。在每个计算步骤之后,交易所要求的合约的余额将有所下降,如果合约用完了货币执行,则会停止。请注意,此“接收者付费”机制意味着合约本身必须要求发件人向合约支付费用,并在不存在此费用的情况下立即退出;该协议分配了16个免费执行步骤的津贴,以允许合约拒绝非付费交易。

这是以太坊协议完全是我自己的创建的时候。但是,从这里开始,新参与者开始加入折叠。到目前为止,该协议方面最突出的是Gavin·伍德,他在2013年12月向我接触。

GO客户的首席开发人员JeffreyWilcke也伸出了大约同一时间,尽管他的贡献更多地在客户开发方面而不是协议研究。

“嘿,Jeffrey,很高兴看到你对以太坊感兴趣……”

Gavin的最初贡献是两倍。首先,你可能会注意到,初始设计中的合约调用模型是异步的:尽管合约A可以为合约B创建“内部交易”,直到第一个交易的执行完全完成后,内部事务的执行才会启动。这意味着交易不能使用内部交易作为从其他合约中获取信息的一种方式;唯一的方法是ExtroOpCode,随后在Gavin和其他人的支持下也将其删除。

在实施我的初始规格时,Gavin自然地同步实施了内部交易,甚至没有意识到意图是不同的-也就是说,在Gavin的实施中,当合约呼叫另一个合约时,内部交易立即执行,一旦执行完成,则一旦执行,VM返回到创建内部交易的合约,并继续进行下一个OPCODE。在我们俩看来,这种方法似乎是优越的,因此我们决定将其作为规格的一部分。

以太坊建议Gas费用为37.38Gwei,环比下降15.91%:金色财经报道,据欧科云链OKLink数据显示,截至下午2时,以太坊2.0存款合约地址已收到60928.0ETH,距离524288枚ETH启动以太坊2.0创世区块的最低要求已完成11.62%。

以太坊24h链上活跃地址数逾66.37万,环比下降3.35%;链上交易量近329.23万ETH,环比下降4.51%;链上交易笔数逾110.23万笔,环比上升2.18% 。当前以太坊建议Gas费用为37.38Gwei,环比下降15.91% 。[2020/11/13 14:13:18]

其次,他和我本人之间的讨论交易费用模型从“合约付款”方法转向“发送者付费”方法,还切换到“燃气”架构。交易发件人并没有立即夺走每个单独的交易步骤,而是为了分配了一些“气体”,而计算步骤则从这种气体的津贴中获取。如果一笔交易用尽了汽油,则汽油仍将被没收,但整个处决将被恢复;这似乎是最安全的事情,因为它删除了整个课程”

Gavin也可以在很大程度上归功于从将以太坊视为建造可编程资金平台的远见卓识,并具有基于区块链的合约,可以持有数字资产并根据预设的规则转移它们,再到通用计算平台。这始于重点和术语的细微变化,后来随着对“Web3”合奏的越来越重视,这种影响变得更加强大,该合奏将以太坊视为一组分散的技术,其他两个是耳语和蜂拥而至。

其他人建议在2014年初左右也进行了更改。在安德鲁·米勒和其他人提出这个想法之后,我们最终回到了基于堆栈的建筑。

查尔斯·霍斯金森建议从比特币的SHA256转换为新的SHA3。尽管有一段时间的争议,但与Gavin,安德鲁和其他人的讨论导致确定堆栈上的价值大小应限于32个字节。考虑的另一种替代方案是无限尺寸的整数,存在一个问题,即难以弄清楚多少天然气,添加,乘法和其他操作。

Chainlink今年在生态系统开发的投资将比以太坊多2500万美元:根据Flipside Crypto的最新报告,Chainlink预计今年在生态系统开发方面的投资将比以太坊多2500万美元。Chainlink每月花费一百万个LINK奖励节点运营商,每月支出500万美元,而Ethereum基金会预计今年将投资3000万美元。分析称,这种大手笔的投资使该公司实现了一些重要里程碑,比如与中国区块链服务网络和Tezos (XTZ)的整合,以及引入可验证的链上随机性。(Cointelegraph)[2020/7/2]

我们想到的最初的采矿算法早在2014年1月,是一种名为Dagger的装置:

https://github.com/ethereum/wiki/blob/master/Dagger.md

Dagger以“定向无环图”命名,该算法中使用的数学结构。这个想法是,每个n个块,一个新的dag都会是从种子中生成的伪随机,而dag的底层将是一系列节点的集合,这些节点需要数个千兆字节才能存储。但是,在DAG中生成任何个人值都需要计算几千个条目。“Dagger计算”涉及在此底部数据集中的随机位置中获得一些值,然后将它们放在一起。这意味着有一种快速的方法来进行Dagger计算-已经将数据存储在内存中,而不是记忆密集型的方法-从你需要从头开始获得的每个值。

该算法的目的是具有与当时流行的算法相同的“记忆力”属性,例如Scrypt,但仍然是轻客户友好的。矿工会使用快速的方式,因此他们的采矿将受到内存带宽的限制,但是Light客户可以可以使用无内存但较慢的版本进行验证。快速的方法可能需要几微秒,并且不含内存的方式缓慢而无需毫秒,因此对于轻型客户来说,它仍然非常可行。

分析 | 以太坊对比特币汇率持续回升?30天ROI表现有一定改观:据 TokenGazer 数据分析显示,截止至 9?月 9 日 11 时,以太坊价格为$178.92,总市值为$19,264.84M,主流交易所交易量约为$131.19M,增量明显;以太坊对比特币汇率持续上升,目前仍年内低点附近波动;基本面方面,以太坊链上交易量有一定下滑,活跃地址数、算力保持稳定,链上DApp交易量有一定增长;以太坊 30 天开发者指数约为 2.24;以太坊与 BTC 180 天关联度有轻微下滑,目前约为0.789;以太坊 30 天 ROI 有一定反弹;ERC20 代币总市值约为以太坊总市值的 69.28%,有一定下滑。[2019/9/9]

从这里开始,在以太坊开发过程中,该算法会发生多次变化。我们经历的下一个想法是“自适应的工作证明”。在这里,工作证明将涉及执行随机选择的以太坊合约,并且有一个聪明的理由如何预期这将是抗ASIC的:如果开发了ASIC,那么竞争的矿工将有动机创建和发布许多合约,说明这些合约的说明ASIC不擅长执行。这个故事就没有用于通用计算的ASIC之类的东西,因为这只是CPU,因此我们可以使用这种对抗性激励机制来做出基本上是执行一般计算的工作证明。

之所以失败,原因很简单:远程攻击。攻击者可以从区块1开始一条链,只用他们可以为其创建专用硬件的简单合约填充它,并迅速超越主链。所以......回到绘图板。

下一个算法是称为“随机电路”,在此Google文档中描述,由我自己和VladZamfir提出,并由MatthewWampler-Doty等人进行了分析。这里的想法也是为了模拟采矿算法中的通用计算,这次是通过执行随机生成的电路。没有什么难以证明的,基于这些原则是行不通的,但是我们在2014年与之联系的计算机硬件专家往往对此非常悲观。MatthewWampler-Doty本人建议基于SAT解决的工作证明,但最终也被拒绝了。

最后,我们以一种称为“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日发布。

标签:以太坊ETHASHVIN以太坊币价格今日行情价格ethnographyinbusinessBitcoin Cash ABCVINA价格

BNB热门资讯
DAO:晚报 | Babel Finance 在自营交易中损失超过 2.8 亿美元;周鸿祎谈 Web3 和元宇宙

整理:念青,链捕手“过去24小时都发生了哪些重要事件”?1、OasisLabs与Meta建立合作.

1900/1/1 0:00:00
WEB3:每周要闻精选 | Nomad 跨链桥被盗超 1.9 亿美元;Solana 钱包大规模被盗,超七千地址受影响

整理:润升,链捕手重要资讯1、币安合规团队:已花费数十亿美元实行KYC和反政策以阻止犯罪活动8月1日消息.

1900/1/1 0:00:00
以太坊:坚守 PoW 的逻辑:以太坊 Merge 硬分叉合法性与可行性分析

作者:ThePrimedia研究员Spike?编辑:ThePrimedia发起人Jerry去中心化的初心不应该被群嘲,尤其是这事关Web3世界的灵魂,决定着加密生态建设的未来.

1900/1/1 0:00:00
LIT:a16z:为什么 NFT 创作者要选择 cc0?

原标题:《WhyNFTCreatorsAreGoingcc0》作者:Flashrekt&ScottDukeKominers.

1900/1/1 0:00:00
CRYP:晚报 | Crypto.com 放弃欧冠联赛 4.95 亿美元赞助;Arbitrum One 主网已迁移至 Nitro

整理:润升,链捕手“过去24小时都发生了哪些重要事件”?1、Crypto.com放弃欧洲冠军联赛4.95亿美元赞助Crypto.com退出了与欧洲冠军联赛的大规模赞助协议.

1900/1/1 0:00:00
TOR:每周要闻精选 | 美国财政部将 Tornado Cash 列入黑名单; Hotbit 宣布暂停充提及交易功能

整理:胡韬,链捕手重要资讯1、美国财政部将TornadoCash列入黑名单,禁止美国公民使用8月8日消息,美国财政部将TornadoCash添加到受制裁名单.

1900/1/1 0:00:00