美文网首页
以太坊(二)设计理念

以太坊(二)设计理念

作者: 李孝伟 | 来源:发表于2018-11-09 16:24 被阅读9次

    运行环境

    以太坊采用以太坊虚拟机作为智能合约的运行环境。以太坊虚拟机是一个隔离的轻量级虚拟机环境,运行在其中的智能合约代码无法访问本地网络、文件系统或其它进程。

    对同一个智能合约来说,往往需要在多个以太坊虚拟机中同时运行多份,以确保整个区块链数据的一致性和高度的容错性。另一方面,这也限制了整个网络的容量

    开发语言

    以太坊为编写智能合约设计了图灵完备的高级编程语言,降低了智能合约开发的难度。

    目前 Solidity 是最常用的以太坊合约编写语言之一。

    智能合约编写完毕后,用编译器编译为以太坊虚拟机专用的二进制格式(EVM bytecode),由客户端上传到区块链当中,之后在矿工的以太坊虚拟机中执行。

    交易模型

    出于智能合约的便利考虑,以太坊采用了账户的模型,状态可以实时的保存到账户里,而无需像比特币的 UXTO 模型那样去回溯整个历史。

    UXTO 模型和账户模型的对比如下。

    特性                UXTO 模型        账户模型
    
    状态查询和变更       需要回溯历史       直接访问
    存储空间            较大              较小
    易用性              较难处理          易于理解和编程
    安全性              较好             需要处理好重放攻击等情况
    可追溯性            支持历史          不支持追溯历史
    

    (!!!所以发token做代币的一定要自己实现防重放攻击)

    共识

    以太坊目前采用了基于成熟的 PoW 共识的变种算法 Ethash 协议作为共识机制。

    为了防止 ASIC 矿机矿池的算力攻击,跟原始 PoW 的计算密集型 Hash 运算不同,Ethash 在执行时候需要消耗大量内存,反而跟计算效率关系不大。这意味着很难制造出专门针对 Ethash 的芯片,反而是通用机器可能更加有效。

    虽然,Ethash 相对原始的 PoW 进行了改进,但仍然需要进行大量无效的运算,这也为人们所诟病。

    社区已经有计划在未来采用更高效的 Proof-of-Stake(PoS)作为共识机制。相对 PoW 机制来讲,PoS 机制无需消耗大量无用的 Hash 计算,但其共识过程的复杂度要更高一些,还有待进一步的检验。

    降低攻击

    以太坊网络中的交易更加多样化,也就更容易受到攻击。

    以太坊网络在降低攻击方面的核心设计思想,仍然是通过经济激励机制防止少数人作恶:

    • 所有交易都要提供交易费用,避免 DDoS 攻击;
    • 程序运行指令数通过 Gas 来限制,所消耗的费用超过设定上限时就会被取消,避免出现恶意合约。

    这就确保了攻击者试图消耗网络中虚拟机的计算资源时,需要付出经济代价(支付大量的以太币);同时难以通过构造恶意的循环或不稳定合约代码来对网络造成破坏。

    相关文章

      网友评论

          本文标题:以太坊(二)设计理念

          本文链接:https://www.haomeiwen.com/subject/kqeoxqtx.html