从某些协议功能的处理方法上来说,以太坊与常见密码学货币运行方式仍有许多不同。
原文的写作时间不确定,但可将其视为一个原点,反思以太坊的设计理念以及以太坊在这几年间的演化。既是反思其创新,也是反思其有欠考虑的地方。
尽管以太坊的许多理念在早先的密码学货币(如比特币)上已经运用并测试了5年之久,但从某些协议功能的处理方法上来说,以太坊与常见方式仍有许多不同。而且,以太坊可用于开发全新的经济工具,因为它具有其他系统不具备的许多功能。本文会详细描述以太坊所有的潜在优点,以及在构建以太坊协议过程中某些有争议的地方。另外,也会指出我们的方案及替代方案的潜在风险。
原则
以太坊协议的设计遵循以下几点原则:
三明治复杂模型(亦可译为 “复杂度分层模型” ):我们认为以太坊的底层协议应尽可能的简单,接口设计应易于理解(不论是面向开发者的高级编程语言接口,还是面向用户的使用接口)。那些不可避免的复杂部分应放入中间层。中间层不作文核心共识的一部分,且对最终用户不可见,它包含:高级语言编译器、参数序列化和反序列化脚本、存储数据结构模型、leveldb 存储接口以及联网协议等。当然,区分的界线不是绝对明确的,有时候需要酌情调整。
自由:不应限制用户使用以太坊协议,也不应试图优先支持或不支持某些以太坊合约或交易。这一点与 “网络中立” 概念背后的指导原则相似。比特币交易协议就 没有 遵循这一原则:比特币交易协议并不鼓励区块链的 “非常规用途(off-labal purpose)” (如,数据存储,元协议)(校对注:off-labal 的原意为将药物用在其经过批准的适应症之外的症状上,例如使用止咳药来治疗头痛。此处意译为 “非常规用途” );而且,有时候还有人用 准-协议层 的变更(例如将 OP_RETURN 字段的长度限制在 40 字节)来攻击以 “未经授权” 的方式使用区块链的应用(校对注:此处是在讽刺比特币的社区有审查比特币区块链用法的倾向)。因此,在以太坊,我们坚定支持仅使用交易手续费来达成大体激励相容的办法 —— 用户消耗整个网络越多资源,需要付出的代价就越高,也即使其自己承担成本(即庇古税)。
泛化:以太坊协议的特性和操作码应最大限度地体现低层次的概念(就像基本粒子一样),以便它们可以随意组合,包括组合出今天看来没什么用、但未来可能有用的东西。而且,通过剥离那些不需要的功能,低层次的概念可以更加高效。遵循这一原则的例子是,我们选择 LOG 操作码作为向 dapp 提供信息的方式,而不是像之前那样记录下所有交易和消息。在早先,“消息(message)” 的概念完完全全是多种概念的集合,它包含 “函数调用(function call)” 和 “外在观察者感兴趣的事件信息(event)” ,而两者是完全可以分离开来的。
(责任编辑:admin) |