以太坊-核心概念

1.智能合约

智能合约(Smart Contract)是以太坊中最为重要的一个概念,即以计算机程序的方式来缔结和运行各种合约。

以太坊支持通过图灵完备的高级语言(包括Solidity、Serpent、Viper)等来开发智能合约。

智能合约作为运行在以太坊虚拟机(Ethereum Virual Machine,EVM)中的应用,可以接受来自外部的交易请求和事件,通过触发运行提前编写好的代码逻辑,进一步生成新的交易和事件,可以进一步调用其他智能合约。

智能合约的执行结果可能对以太坊网络上的账本状态进行更新。这些修改由于经过了以太坊网络中的共识,一旦确认后无法被伪造和篡改。

2.账户

比特币:在设计中并没有账户(Account)的概念,而是采用了UTXO模型记录整个系统的状态。任何人都可以通过交易历史来推算出用户的余额信息。

以太坊:直接用账户来记录系统状态。每个账户存储余额信息、智能合约代码和内部数据存储等。

以太坊支持在不同的账户之间转移数据,以实现更为复杂的逻辑。

以太坊账户分为两种类型:合约账户(Contracts Accounts)和外部账户(Externally Owned Accounts,或EOA):

·合约账户:

存储执行的智能合约代码,只能被外部账户来调用激活;

·外部账户:

以太币拥有者账户,对应到某公钥。账户包括nonce、balance、storageRoot、codeHash等字段,由个人来控制。当合约账户被调用时,存储其中的智能合约会在矿工处的虚拟机中自动执行,并消耗一定的燃料。燃料通过外部账户中的以太币进行购买。

3.交易

交易(Transaction)在以太坊中是指从一个账户到另一个账户的消息数据。消息数据可以是以太币或者合约执行参数。以太坊采用交易作为执行操作的最小单位。

每个交易包括如下字段:

·to:目标账户地址;

·value:可以指定转移的以太币数量;·nonce:交易相关的字串;

·gasPrice:执行交易需要消耗的Gas价格;·startgas:交易消耗的最大Gas值;·signature:签名信息。

类似于比特币网络,在发送交易时,用户需要缴纳一定的交易费用,通过以太币方式进行支付和消耗。

5.燃料

燃料(Gas)控制某次交易执行指令的上限。每执行一条合约指令会消耗固定的燃料。当某个交易还未执行结束,而燃料消耗完时,合约执行终止并回滚状态。

你可能感兴趣的:(以太坊-核心概念)