LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 币圈百科 > 挣脱数字货币的枷锁:以太坊

挣脱数字货币的枷锁:以太坊

2019-12-10 币迷 来源:区块链网络

比特币的出现是一场全球数字货币启蒙的开端,之后,中本聪的继承者们不断改进虚拟币,有的改进大,有的改进小,比如LTC,只是小参数上的调整,比如BCH,区块大小的调整,对其改进最大的当属ETH。人们常说,以太坊挣脱了数字货币枷锁,把我们带进了区块链2.0时代,那么,以太坊到底有那些重大改进,让其地位如此不可撼动?

1、基于账户的交易模式,为支持更复杂逻辑奠定基础

我们知道,比特币是没有账户概念的,只有钱包地址和未使用的交易输出,它采用的UTXO模型记录整个系统数据的状态,任何人都可以通过交易历史推算出用户的余额信息,但不能显式的看出每个地址下一共有多少比特币,这种模式被业内称为“基于交易”的账本,这种模式的好处是隐私保护比较好,你有多少比特币可能连你自己都得算半天,更别说别人了。但是,基于这种记账模式,UTXO状态是不稳定的,因交易历史处于不断变动中。

以太坊是有账户的,而且是双账户,它的账户模型跟银行的个人账户模型是比较相似的,即像银行账户一样显式地记录每个账户中一共有多少个以太币,像银行账户一样,每个用户都可以开设账户,用账户来记录系统状态,存储余额信息,支持在不同的账户之间转移数据,存储智能合约代码等。

具体来看,有两种账户类型:

UmkmEju4I9rp6Mt5IRyQPnpuRFbAxO2i93h8MIjt.png

外部账户:以太币拥有者账户地址,即对应到某公钥地址,管理权是利用公私钥控制。其存储的字段有账户余额(balance)、计数器(nonce)、存储(通常为空)。

合约账户:存储待执行的智能合约代码,只能被外部账户调用激活。其中存储的codeHash是这个账户的以太坊虚拟机代码的哈希值,这个字段在生成后是不可修改的,这意味着智能合约代码是不可修改的。

以太坊协议规定:所有的交易只能由外部账户发起,合约账户不能主动发起交易,但合约账户可以发送一个message来调用另外一个合约。

以太坊放弃比特币的基于交易的账本模型,而选择和银行账户雷同的基于账户的模式,主要是因为以太坊实现智能合约功能的需要。

因为,对于一个合约来讲,它需要参与者有一个稳定的账户状态,不然,若签合约时账户主体时张三,签完合约身份变为李四,合同纠纷发生时,将如何追责?!所以,在以太坊中,稳定的账户状态,无论是外部账户还是合约账户,是智能合约的运行的基础。

2、智能合约的自动化和可编程特性,使得各种去中心化的应用成为可能。

智能合约可以简单理解为一段满足一定条件后可以自动触发执的区块链程序,通常指的是支持执行图灵完备程序的以太坊区块链智能合约,其实,比特币上也能写智能合约,但比特币能支持的语法仅与交易有关,能做的事情只能局限于资金转移,这与现实需求差距太大。

整个智能合约系统的核心在于智能合约以事物和事件的方式经由智能合约模块的处理,输出一组事物和事件,基本处理为:输入事物及事件--->经由智能合约模块—>更新资源状态—>触发智能合约状态机判断--->触发条件满足——>状态机根据预设信息选择合约自动执行。

可以看出,智能合约只是一个事物处理模块和状态机构构成的系统,它不产生智能合约,也不修改智能合约,它的存在只是为了让一组复杂的,带有触发条件的数字化承诺能够按照参与者意志正确执行。

智能合约取代纸质合约已愈来具有可行性和现实意义,合约层作为区块链的核心层,不仅能为静态的底层区块链数据(如数据层、网络层、共识层、激励层)赋予灵活可编程的机制和算法,而且智能合约的自动化和可编程特性使得各种去中心化的应用成为可能,也就是说,在合约层可以根据需要嵌入各种基于区块链的应用场景,如我们常说,区块链可以应用在证券,银行,保险、版权等多个领域,可以说,没有区块链智能合约,区块链应用将无法迎来百花齐放。

920y5qCOtSVtOuQsLPZwGzIqWxN8XuYZ6qeQagqA.jpeg

小结:

君子和而不同,基于比特币网络的核心思想,除了上述所说的支持图灵完备的智能合约、基于账户的交易机制外,还有gas机制、叔块激励机制等,共同成就了以太坊,基于它,用户不再受限于仅能使用基于比特币脚本所能支持的简单逻辑,而是可以自行设计任意复杂的合约逻辑,这为构建多样化的上层应用开启了大门,挣脱了只能进行资产交易的数字货币枷锁,人类由此进入区块链2.0时代。

—————————————

币迷,写于北京,每周一到周五,静候您的光临。

—-

编译者/作者:币迷

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...