以太零(EtherZero)区块链智能合约开发平台
以太零拓展了以太坊的Gas机制,在其基础上拓展了Power概念,赋予每个账户与其持币数量正相关的网络资源使用权限和这种权限被使用后的回复速度。从而安全实现了零交易手续费的特性。
同时,以太零在DASH Coin的Masternode+ Pow双层网络与社区自治架构、ETH的Clique共识算法的基础上,搭建了mPos (Masternode+Pos) 共识机制。此共识机制中,持有约定数量的以太零币并搭建性能上符合要求的服务器后,任何人均可以参与到以太零网络交易处理和社区自治中。基于mPos共识和恰当设置的出块时间等网络参数,以太零已经在数以千计的主节点架构上实现高度的去中心化以及1400TPS以上的交易处理能力。
以太零定位自己为区块链技术的融合者,推广者,落地者。
融合指的是现在的大部分创新技术还在实验阶段,彼此之间割裂严重,应用场景定位不清,需要一个组织站在旁观者的角度,研究这些技术在真实的应用场景中的整合可能性,并向开发者提供一个容纳各项技术,面向应用层的的操作系统 。以太零在完成主节点开发任务后,将使用私募资金招纳各项新区块链技术人员进行现有技术的整合,长期将以生产网络和实验网络并行的方式促进技术向实用场景的转化。
推广和落地针对的是真实的应用场景。任何一项技术必须有真实的可用场景,并对原有的技术体系产生了经济效益上的突破才会成为主流。我们会组织一个专门的行业应用工作组,团队成员由传统行业专家,区块链技术人员,产品化和策划人员组成,以穷举的方式对当前社会各行各业进行产业调研和场景可行性研究,以期完成区块链革命的深化和普及。
太多的概念和技术对于普通用户来说已经成为了解和享受区块链带来的红利过程中的一大障碍,我们希望通过一种认知和技术上的融合来避免用户直接接触复杂的概念,向用户输出一种成熟的产品。我们会竭尽所能引导社区开发者开发真实可触的产品。
通用应用平台的需求
这种杀手级的应用需要构建在这样一个平台上:
基础操作零交易手续费
:为了能够支持更广泛意义上的去中心应用的开发和业务运营,各类基础操作,如注册,登陆,收藏,浏览,搜索,分享及各类逻辑操作不应该收取费用。
超高的并发性和扩展性
:能够满足全球范围的用户同时操作区块链上的合约和数据无疑是一件堪称恐怖的事情,所以这种应用平台还需要拥有足够的扩展性能够随着用户和应用的增长而成比例的扩张。
即时反馈
:用户绝大多数的操作在安全允许的情况下都应该是实时反馈的,这是去中心化应用具有与传统应用可比性的基础要求。
版本系统
:应用版本系统帮助开发者能够快速完成 bug 的修复,方便开发商完成 A/B 测试等给类用户研究。
平台进化
:社区提案系统和主节点投票可以帮助完成以太零的社区驱动进化,便于各类技术迭代和平台规则的共识快速达成。
至关重要的组件功能
:去中心化存储如 IPFS 协议,安全的程序热修复规程,通用底层服务如身份认证,匿名通信,通知系统等。
以太零关键完成特性
零手续费
以太零拓展了以太坊的Gas机制,在其基础上完善了Power机制,赋予每个账户与其持币数量正相关的网络资源使用权限和这种权限被使用后的回复速度。从而安全实现了零交易手续费的特性。交易发起者只需要持有,而不必再消耗网络的基础币。
极速交易
在新的以太零网络中,业务方可以自行定义交易确认所需的验证区块数量。由于出块时间缩短到1s,周期内获得出块授权的主节点数量为21个,因此即使出于安全性考虑,所有的交易通常都可以在3s内获得99%以上的确定性,在最长15s的时间内获得最终的确定性。
高吞吐量
基于MPOS共识,并设置恰当的出块时间等参数,以太零已经在数以千计的主节点架构上实现了1400TPS 以上的交易处理能力。
开放的去中心化社区自治
以太零在DASH Coin的Masternode+ Pow双层网络与社区自治架构、ETH的Clique共识算法的基础上,搭建了MPOS (Masternode+Pos) 共识机制。此共识机制中,持有约定数量的以太零币并搭建性能上符合要求的服务器后,任何人均可以参与到以太零网络交易处理和社区自治中。
同时,由于在每个约1小时的投票周期内从数千个主节点中选择21个主节点,这就提供了超高的开放的去中心化程度。
基于主节点为投票者的提案决定与预算分发功能已经开发完毕并集成到以太零主网之中。
零交易手续费的智能合约开发平台
1.零交易手续费的必要性
以太零已经实现的特性中最具说服力的便是-零交易手续费用。
以一个最简单的分布式协作Todolist,也就是待办事项应用为例,其去中心化的实现可以应用在一个全球性分散协作的团队进行任务分解的过程中,这个过程需要项目的各个参与者了解其他陌生成员的任务,每个人任务的确认都是团队的共识结果,具有一定的可追溯,去信任的需求。
该应用会涉及成员的注册,任务的增删改查等需求。按照以太坊开发要求,这些所有的操作都是需要消耗 gas,并最终折算为 ETH 向用户收费,这对于应用的使用者来说,无论是经济上还是用户体验上都是不合理的。
而在以太零中,交易发起频率与智能合约的执行步数将与账户中拥有的余额正相关。这在满足免费的同时也考虑到了对于网络资源的合理使用,并限制了恶意攻击者发起 DDOS 攻击需要较高的资本投入。这种从经济层面考量的股权类免费概念将会真正的引领去中心化应用进入生活场景。
2.Gas 机制
在以太坊中,由交易发起者付出的 gas 最终会以 ETH 货币的价值计算并付给矿工作为手续费,也就是:Gas cost = Gas Used * Gas Price。
Gas 和 ETH 在以太坊中的作用表现为:
• 一种衡量操作对网络计算资源使用情况的工具
• 折价为手续费,作为对矿工打包和验证区块的奖励
• 折算为手续费,作为抵抗 DOS 类攻击的一种经济手段
在以太零中,仍然保留着 Gas 作为计算资源计量工具的用途,但对于其手续费相关的用途是通过 Power 机制替代并拓展的。Gas 和 Power 机制共同为以太零安全地实现零手续费奠定了坚实的基础。
3 Power 机制
Power 事实上是为持有 ETZ 的用户动态发行的一种不能交易只能消耗的权益货币,代表了网络资源(计算、存储、带宽等)使用权力。每持有一个 ETZ 就会被分配一定的 Power,而每一个 Power 代表的是 1 份网络资源股份。
也就是说,零手续费并不代表不需要付出任何代价就可以使用网络,用户仍然需要付出持有有价货币 ETZ 的时间成本。用户持有的币数量越多,则拥有更多的 Power,于是能够使用的网络资源,比如每次交易消耗的最大 Power 值、Power 被消耗后的回复速率也就越大。
形象的对 Power 的理解就是:在一个游戏中,由力量值决定角色的最大血量和血量恢复速度,在与怪物对打时必须消耗一定的血量才能杀死某种怪物,怪物越厉害必然需要消耗更多的血量才能将之杀死。对于 Power 机制来说,持有的ETZ 就是力量值,最大血量就是账户的 Power Max,血量恢复速度就是 Power Speed, 杀死不同类型怪物的任务就是执行交易或部署合约等不同类型的操作。
Power 不同于 ETH 中的 Gas:
• 对于每一个账户来说,在账户余额一定时,其 Power 最大值是固定的
• Power 是会恢复的,恢复速度与持 ETZ 币的数量正相关
• Power 的消耗是一种权力减少过程,而在 ETH 中,通过 Gas 计算手续费是一个累加过程
在以太零中消耗 Power 的操作与在 ETH 中消耗 Ga瀆 的操作类型相当:
• 发送交易需要消耗账户 Power
• 交易的时候携带的 Data 数据量越大,消耗的 Power 越多
• 数据在合约中进行的计算复杂度越高,消耗的 Power 越多
• 交易池中的排序按照 Gas Price 由高到低进行排序
4.Power 的数学解释
所有余额大于或等于 0.01eez 的账号,都会随着区块的增长持续产出 Power,直到达到此账户 Power 上限。
Console 中查询自己的可用 Power:
• eth.getPower("your address")
• web3.fromWei(eth.getPower("your address"), "ether")
主节点与 MPOS 共识
1.主节点
1.1 什么是主节点
主节点,概念源于达世币的一种全节点服务器,是为了保证区块链提供一定服务和基础性能而存在的必要服务设施。Dash 网络中,主节点以 POS(服务量证明)机制运行,并和负责完成 POW(工作量证明) 的矿工节点共同构成概念上的双层网络。而成为 Dash 币主节点的要求是搀定 1000 个 DASH 币,同时根据要求搭建服务器。
不同于 DASH 币,以太零的主节点更类似于 EOS 的超级节点。在 MPOS 共识机制下,主节点群体替代了 POW 机制中的矿工角色,共同处理交易验证,打包和广播工作。以太零的主节点服务器要求不需要像 EOS 一样达到数据中心的级别,一般的云服务即可满足 ,而较低的节点服务器要求允许网络更去中心化,更开放地运行。
1.2 主节点职责
主节点的职责包括:
• 交易验证与打包:验证交易的签名、账户余额、Nounce 值等,执行交易和智能合约,对合法交易进行打包出块。
• 社区自治:拥有对提案的投票权,提案会反映社区的讨论趋势和焦点,将涉及到以太零发展的方方面面,包括不限于技术迭代方向,运营计划调整,成员纠纷决议,经济运行参数变更等。
1.3主节点权益
主节点的搭建和维护需要投入财力,时间,精力,技术来为全链的用户提供体验越来越优秀的服务。
以太零出块奖励的 75%会奖励给主节点。 由于共识算法中,性能较差的主节点产生的区块容易被丢弃,所以性能和网络条件更好的主节点所产出的区块被认可的概率更高,也就能更多地获得奖励。
1.4运营一个主节点
成为以太零的主节点有两个要求
• 持有 2 万个 ETZ
• 部署一台云服务器,服务器应当具备独立的 IP 地址,至少应当具备 16G内存和 1TB 的硬盘空间,具体的建议配置请参考社区的搭建指南
2.MPOS 共识机制
2.1 出块与验证
要解释 MPOS 算法的实现逻辑需要首先介绍下以太坊的两种传统的出块方法。
第一种是将所有的交易和区块从创世块开始一个接一个地连接起来。这种方式已经被证实在以太坊这种复杂的网络中非常耗费计算资源。
第二种是只有授权的机器才拥有出块权,节点之间通过投票的方式来授权或者解除授权,这些额外的投票机制被记录在了区块 extaa data 字段中。采用这种方式降低了网络的出块难度和维护成本,节点只需下载区块头并验证它们的有效性,此后可以从网络上下载一个任意的最近的状态并检查最近的 header,这种共识机制目前运行在以太坊的测试网络中名叫 Cliquee。
以太零的 MPOS 共识算法,正是基于第二种想法,即块只能由可信签署人完成,而且各个节点看到的每个块都可以与可信任的见证者列表进行匹配。这里面临的挑战是如何维护一个可以即时轮换的授权见证者列表,这一点我们是采用的系统智能合约来保障,维护每一轮次的授权见证者列表的协议包含在区块中,同时在区块头的 ExtraData 部分,我们将节点的签名放进去。 这将允许任何获得一个区块的节点可以根据授权见证者的名单对其进行验证。 同时它也使得区块头中的矿工地址的字段作废。这也从另外一个角度增加了主节点账户的安全。
2.2 区块构成
下图解释了以太零的区块数据结构:
2.3 授权策略
为了保证授权见证者的列表是动态随机变化的,我们采用了区块的 Hash 值来和主节点 ID 进行计算并根据计算结果进行排序,这样就保证了见证者列表的不可预估和随机性,也能保证所有节点计算出来的结果是一样的,达成共识的一致。
只要见证者符合上述规范,他们可以授权和分配他们认为合适的块, 通过采用
以下策略减少网络流量和分叉:
• 计算下一个块的最佳签名时间(父+ BLOCK_PERIOD)。
• 若轮到了,等待准确的时间到达,立即签名和广播。
• 若未轮到,则延迟 Random(SIGNER_COUNT * 500ms)的时间签名。 这个的策略将确保当前轮到的见证者对签名和传播相较外转见证者有稍微的优势。
3.极速交易
每个为期 1 小时的投票周期中,通过随机授权算法选择出的 21 个主节点轮流出块,出块时间为 1s。一旦一笔交易经不同的 15 个确认,也就是经过 15 个不同出块者的验证之后,这笔交易便被认为是具备完全的最终性,是不可更改的。
但在实际的处理中,业务方可以灵活地自定义要求的确认区块数量。对于重要性较低,实时性要求高的交易,可以最低地设置区块确认数量为 3 个。事实上一笔交易经过 3 个区块的确认,其最终性已经达到了 99%以上。
4.高拓展性
正是基于 1s 的出块时间,安全而高效的一致性算法,在当前正常运行的以太零主网中,实际的 TPS 已经可以达到 1400。
5.如何防止攻击
5.1对于 51%攻击
主节点门槛值的存在使得发起基于构建大量节点的攻击方式变的极其昂贵 。以太零中,当主节点总数为 3000 时,为了获得 1.72%的攻击成功率,黑客需要控制或创造 2000 个主节点,即购买 4 千万个 ETZ,将近 ETZ 总发行量的 1/5,在这么小的概率下付出巨大的经济成本攻击网络绝对得不偿失的。加之搀定的ETZ 降低了整体的流动性,这种攻击操作起来就变得更加不现实。
其中,n 为主节点仲裁链的长度;t 为当前网络中的激活的主节点数量;r 为攻击者控制的坏节点数量,其值≥ n。
5.2 双花问题
比特币通过 POW 和区块确认数来防止双花问题,由于设计的自身限制,一个交易的确认需要等待很长的时间。
以太零采用和 ETH 相同的拒绝双花交易的方案-Nouce 值,这种方案描述的是一个账户的的交易在网络中是按照交易发起顺序执行的,同时这种方案也为撤消长期未处理的 Pending 交易提供了实现的可能,也就是可以通过设置更高的Gas Price 替换正在 Pending 的同 Nounce 值的交易。
5.3 女巫攻击
指通过在网络上创建多账户获益的一种攻击方式。 Power 机制构造的单账户交易能力衰减特性将导致只能通过大量持有 ETZ 才能实施较为有效的女巫攻击,而交易池在交易拥堵时的依据 Gas Poice 进行交易排序的方案也将更进一步降低这种攻击的影响。
5.5 Finney 攻击
Finney 攻击由比特币的第一个用户 Hal Finney 定义, 它是一种利用比特币中未确认交易来欺诈接受比特币支付的商家的一种攻击,是双花攻击的一种变种。该攻击的前提条件是:商家信任未确认交易,并且在收到未确认交易后便立即发货,且无法撤揿。
这实际上是利用了 BTC 等高延迟交易确认类支付服务的时间差,在以太零中,接近实时的交易极大降低了这种攻击的操作空间。
技术与经济参数
1.技术架构
2 共识参数
·共识机制: MPOS
·签名算法: Secp256k1
·哈希算法: Sha256
·投票周期: 1小时左右
·出块节点数量: 21个,每个投票周期从全部主节点中根据算法随机轮换
·最终确认所需不同出块主节点/数量:15个
3 区块参数
·出块时间: 1s
·出块奖励: 0.45个ETZ
·奖励分配: 75%平均分配给在线主节点; 25%作为社区预算
4 主节点参数
·锁定 2 万个 ETZ
·搭建的基本要求:内存大于 16G,硬盘不小于 1TB,8 核 CPU
技术路线
1.技术思考
影响以太坊性能的另外-一个因素:我们目前的出块时间是1s,需要进一-步考虑以太坊EVM在执行智能合约时的状态读取速度,以及影响以太坊性能的核心问题。在比特币体系中,在比特币网络的交易延迟问题上从来不会考虑比特币脚本的执行时间,主要是因为比特币脚本是非图灵完备的,且非常短, 自然实现的功能就非常单一了。而以太坊是采用的账户模型,其本身是一个状态机并支持图灵完备的智能合约,相较下比特币脚本非常强大,以太坊底层用WorldState采用MPT(Merkle Patricia tree)记录整个以太坊状态的变迁。 以太坊的EVM在执行智能合约时很大一部分耗时是花费在读取WorldState上面。下面这张图描述了MPT状态树根散列的存储情况:
由于这种独特的数据结构会随着记录的交易量的增加,每读取一个特定的值与底层数据库交互次数会以0(n)的次数增加,这些访问不是顺序存储,而是离散随机存储,底层leveldb在面对这样大量的读取时,性能表现十分低下。
而目前以太坊的矿工为了保证出块率, 更多是关注于HashRate, 但这一块是由GPU来完成,故不太关心上面所讲到的关于智能合约执行时对状态读取的整体性能。解决这个问题,给网络的处理速度和稳定性进一步的提升, 将是我们团队下一步的目标。
2.工作安排
平台的技术特性迭代将会对应生态的渐进式发展规划,在不同的时期基于不同的特性引导开发者和用户关注相应特性支撑的杀手应用。从发展的角度看待生态的壮大。
应用场景和市场预期
1.通用应用
区块链的核心任务是信任无关,也即是无论交易对手方是谁,己方无需对其产生任何信任即可直接进行交易,这种信任无关是通过智能合约实现的。以一个比赛结果对赌合约为例,其简化代码大概如下:
以此考虑,现实中哪些服务是需要双或多方参与的,需要中间人的存在来消弭信任的,那么这些服务都可以通过在区块链上部署智能合约代替中间人的职责。
事实上基于以太坊的智能合约本身也是通用的,但其消耗手续费的特性使得开发者编写的复杂智能合约在成本上支撑不起较大的用户量。
而以太零去除其手续费系统后,使得合理使用智能合约服务的用户不会付出任何成本,保证了大型去中心化应用在经济上的可行性和可持续性,也使得DAPP 天然的的具有了根据账户余额差异化服务的能力。
2.行业落地
以太零作为一个底层应用开发平台,事实上是不限于合作的行业的,但有必要对一些成熟的思考做出表述,这种思考是我们未来一段时间将会着手落地的的应用。
2.1 游戏道具内容协作和交易平台
一只猫搅翻了整个以太坊,也让人们认识到了区块链在一个游戏细分领域的巨大潜力:道具的唯一性在道具交易市场的重要性。
我们将设计一个内容型的去中心化道具外包和交易平台,连接设计师与编剧,数值系统设计师,游戏厂商,玩家等人群,各角色的用例如下:
• 游戏厂商:发布需求,向智能合约搀定 ETZ 币作为预付款
• 设计师和编剧:领取任务, 根据游戏厂商的游戏概念设计道具;被认可后接受合约付款
• 数值系统设计师:设计爆率,道具效果,爆出条件,变异条件,变异规则等;被认可后接受智能合约的付款。
• 玩家:投票给道具设计;交易唯一道具
通过这样的生态环路实现创意的表达,传播和变现。
2.2 行业代币支付解决方案
行业研讨会会深入各个行业,和专家讨论在这些行业内建立独立的基于以太零代币的经济体系的必要性和可行性。并探讨大数据技术和分布式记账,匿名记账技术的结合点,并基于大量可信的数据为行业的人工智能应用提供充分的养分。
2.3 中心化组织的映射
社会需要各种组织形式,社会自身的包容性和多样性正是社会自由程度的一种表现。我们计划在以太零内实现一种现实组织的虚拟映射, 相对 DAO 组织,我们称这种映射为 MRO(Map of Real world Organization),这种实现可以涵盖匿名和实名,能帮助现有的企业快速应用区块链技术实现企业管理和商业关系管理。