波卡“以太坊”Moonbeam的技术创新之路

作者:Vic Xu from SharkTeam

一、Moonbeam与以太坊异同之处

目前Moonbeam在努力实现兼容以太坊,但是Moonbeam相对于以太坊还存在一些区别。

1.1 账户余额

以太坊中将账户划分为两类:外部账户(EOAs)和合约账户(contract account),虽然二者功能有所区分,但是却都使用相同的地址空间。

外部账户(external owned accouts):用工具生成一个私钥作为账户的密码,谁掌握这个私钥,谁就可以控制这个账户。在持有这个私钥之后,通过椭圆曲线算法生成一个公钥,然后通过keccak256(public key)得到结果后再取后40位得到。外部账户的核心就是私钥,创建的外部账户具有以下特点:

  1. 拥有以太余额

  2. 能发送交易,包括转账和执行合约代码

  3. 被私钥控制

  4. 没有相关的可执行代码

合约账户:含有合约代码的账户,被外部账户或者合约创建,合约在创建时被自动分配到一个账户地址,用于存储合约代码以及合约部署或执行过程中产生的存储数据。因为没有私钥,所以没有人可以拿合约账户当做外部账户使用,只能通过外部账户来驱动合约账户执行合约代码。其具有如下特点:

  1. 不能发送交易

  2. 合约账户接收到外部账户发来的交易以后可以通过Message调用其他合约账户

  3. 合约账户存储了合约代码和合约状态

但不论账户类型为何,私钥的拥有者可以使用账户进行转账和查询余额,余额的计算使用Wei计算,1ETH = 1*1018 Wei。

在Moonbeam中,账户是一个拥有Token余额(Token种类取决于网络)的实体账户。账户可以由用户(用私钥签署)或智能合约控制。Moonbeam的账户类型和以太坊一样,但是额外多了代理账户,该代理账户是用来代表另一个帐户执行有限数量的操作。在余额方面,Moonbeam账户有五种不同的余额类型:

  1. Free:指在Substrate API内可使用(未锁定/冻结)的余额。 free余额的概念取决于要执行的操作。 例如,民主投票不会从free余额中减少分配给投票的余额,但Token持有者将无法转移该余额

  2. Reducible:指通过Moonbeam上的以太坊API可使用(未锁定/冻结)的余额。 例如,MetaMask显示的余额是真正的可支出余额,是所有可被民主治理锁定的余额(在Polkadot.js中显示为可转移)

  3. Reserved:指由于链上要求而持有的余额,可以通过执行一些链上操作来释放。 例如,用于创建代理账户或设置链上身份的绑定会显示为reserved balance。这些资金在被释放之前不能通过以太坊API访问

  4. Misc frozen:指在提取资金时free余额可能不会低于的余额,交易费除外。 例如,用于对治理提案进行投票的资金会显示为misc frozen。 这些资金在被释放之前不能通过以太坊API访问

  5. Fee frozen:指在专门支付交易费时free余额可能不会低于的余额。 这些资金在被释放之前不能通过以太坊API访问

以太坊和Moonbeam上账户余额的主要区别在于Moonbeam中锁定和保留余额的概念。账户仍然拥有这些Token,但不能用来交易。

1.2 共识和确定性

在以太坊中,采用的是权益证明 (PoS)。权益证明是区块链用来达成分步式共识的一种共识机制。 在工作量证明共识机制中,矿工通过消耗能源来证明他们拥有资本以应对风险。 而在权益证明共识机制中,验证者明确地通过以太币将资本质押到以太坊上的智能合约中。 质押的以太币随后将作为抵押品,如果验证者表现出不诚实或懒惰,就可以销毁这些以太币。 之后,验证者负责检查在网络上传播的新区块是否有效,并偶尔自己也创建和传播新区块。与工作量证明体系相比,权益证明有许多改进:

  1. 能效更高:无需在工作量证明计算中使用大量能源

  2. 门槛更低、硬件要求下降:无需购买高性能硬件以便获得创建新区块的机会

  3. 中心化风险降低:权益证明应该可以增加保护网络安全的节点

  4. 由于能源需求低,发行较少的以太币就可以激励大家参与

  5. 与工作量证明相比,对不当行为的经济处罚让 51% 攻击的代价呈指数级增加

  6. 如果 51% 攻击是为了攻破加密经济的防御,那么社区可以求助于诚实链的社会恢复

一个交易在分布式网络具有“最终确定性”是指,该交易是区块的一部分且无法改变,除非燃烧掉大量以太币。 在权益证明以太坊上,通过“检查点”区块来管理确定性。 每个时段中的第一个区块是检查点。 验证者为他们认为有效的“检查点对”投票。 如果一对检查点获得至少达到质押以太币总数三分之二的投票,那么这两个检查点会升级。 这两个检查点中较新的一个会变成“合理”状态。 较旧的一个检查点已经是合理状态,因为它是上一个时段中的“目标”。 现在,这个检查点会升级为“已确定”状态。 要回滚已确定区块,攻击者将承担至少相当于质押以太币总数(目前约价值 $10,000,000,000)三分之一的损失。

在Moonbeam中,主要基于委托权益证明(NPoS)模式,是PoS模式的变种。在 NPoS 中,委托者被称为提名者。提名者在候选列表中提名验证器,并锁定一定数量的标代币来支持它们。在 NPoS 中,验证程序的数量受治理的限制,并且这些验证器是根据它们在网络中的总质押量来选择的。与验证器不同,提名者可以有无数的参与者。提名者被激励不断寻找可靠的新候选人。有了这两个角色,NPoS 可以让所有代币持有者持续参与网络。因此,它保持有限验证器数量的同时,保持了高级别的安全性。Moonbeam的最终确定性的策略如下:

  1. 您查询网络最新终结区块的哈希

  2. 您使用哈希截取区块编号

  3. 您使用区块编号对比您的交易,如果您的交易被包含在先前区块当中代表它已经被确认

  4. 进行安全检查,按编号检索区块,并验证给定的交易哈希被包含在该区块当中

1.3 转账API

在以太坊中,简单余额转账依赖于eth_sendRawTransaction JSON RPC。这可以直接从一个账户到另一个账户,或通过智能合约。

在Moonbeam中,有两种方式启动Moonbeam的余额转账功能。

  1. 用户可以通过MetaMask、MathWallet或其他任何使用以太坊JSON-RPC的工具等应用程序来使用以太坊API

  2. 用户可以通过Polkadot.js App网站使用Substrate API或直接使用Substrate RPC

当然要注意的是,Token持有者可以利用这两类API来转移原生代币。例如Moonriver或Moonbeam EVM中基于ERC-20的资产,这些资产的转移只能通过以太坊API完成,因为需要与智能合约交互。

1.4 RPC 支持

在Moonbeam中,Moonbeam团队与Parity密切合作开发Frontier。Frontier是基于Substrate的以太坊兼容层,它允许开发人员运行未经修改的以太坊dApp。Moonbeam致力于兼容以太坊Web3 API和EVM,但是并不是所有JSON-RPC方法都支持。

二、以太坊合并是否影响Moonbeam

以太坊合并是将以太坊的底层共识机制从PoW 变为PoS。 升级后的以太坊网络虽变成了PoS共识机制,但其中EVM和相关的执行API都和合并前一样。但是,目前以太坊PoW和PoS链之间已经出现分叉。这样的情况对于部署在Moonbeam并且有业务在以太坊网络的项目方来说,项目方需要考虑支持哪条链。其实,不管是支持那条链。对于Moonbeam愿景来说,都是在预期范围内。

因为Moonbeam在过去是Polkadot网络上的以太坊兼容智能合约平台,为原生互操作应用程序的开发提供便利。现在,Moonbeam是一个智能合约平台,用于构建跨链互连应用程序,能够访问任何链上的用户、资产和服务。通过将来自以太坊、Cosmos、波卡等功能整合到一个平台中,Moonbeam解决了当今用户体验碎片化的问题,解锁了真正的互操作性,并为下一代应用程序奠定基础。

Moonbeam平台使用集成的跨链信息传递,允许开发者创建访问多个远程区块链服务的智能合约。通过此方式结合Moonbeam的开发者友好型EVM平台、各类工具支持和Substrate架构,为构建互连应用程序提供理想化的开发环境。因此,以太坊合并对Moonbeam影响很小。

三、合约安全与链上安全分析

Moonbeam非常重视开发者社区的建设和发展,也非常重视生态的安全和项目的安全,这一点是非常重要的。因为一方面全面兼容以太坊的将带来以太坊、BNBChain上以solidity开发的项目迁移到Moonbeam上时会带来合约和业务安全风险,另一方面跨链因为技术的复杂性和细节性本来就是安全事件高发业务容易遭到黑客攻击。

SharkTeam将在链上安全角度为Moonbeam社区做出贡献,参与保护Moonbeam上的合约安全和链上安全。SharkTeam的愿景是全面保护Web3世界的安全。团队成员分布在北京、南京、苏州、硅谷,由来自世界各地的经验丰富的安全专业人士和高级研究人员组成,精通区块链和智能合约的底层理论,提供包括智能合约审计、链上分析、应急响应等服务。已与区块链生态系统各个领域的关键参与者,如Polkadot、Moonbeam、polygon、OKC、Huobi Global、imToken、ChainIDE等建立长期合作关系。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【优质项目推荐】 1、项目代码均经过严格本地测试,运行OK,确保功能稳定后才上传平台。可放心下载并立即投入使用,若遇到任何使用问题,随时欢迎私信反馈与沟通,博主会第一时间回复。 2、项目适用于计算机相关专业(如计科、信息安全、数据科学、人工智能、通信、物联网、自动化、电子信息等)的在校学生、专业教师,或企业员工,小白入门等都适用。 3、该项目不仅具有很高的学习借鉴价值,对于初学者来说,也是入门进阶的绝佳选择;当然也可以直接用于 毕设、课设、期末大作业或项目初期立项演示等。 3、开放创新:如果您有一定基础,且热爱探索钻研,可以在此代码基础上二次开发,进行修改、扩展,创造出属于自己的独特应用。 欢迎下载使用优质资源!欢迎借鉴使用,并欢迎学习交流,共同探索编程的无穷魅力! 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值