以太坊,作为当今世界上规模最大的区块链生态,他为什么能迅速超越比特币称为一哥的地位,让许多人不得其解,今天就为大家盘点一下以太坊。
以太坊是怎么诞生的?
从比特币在互联网上崭露头角后,他的一些缺点也随之而来。比特币缺少图灵完备的语言,例如不支持循环语句等,且可表达的状态少,只能是未花费和已花费状态。并且比特币的UTXO不可分割,也就是常说的价值盲,也无法看到具体的区块链数据,区块链盲。
为了解决以上比特币存在的众多问题,以太坊也就应运而生了。
以太坊是什么?
以太坊,一个开源的具有智能合约功能的基于公共区块链的分布式账本。一个可编程的区块链,允许用户创建他们自己的任意复杂的操作,成为了多种不同类型去中心化区块链的平台,包括但是不限于密码学货币。
并且以太坊还可以用来编程、分散、担保和交易任何事物,包括投票、金融交易所、众筹、公司管理甚至是合同或知识产权。
以太坊定义了自己的去中心化应用平台,核心是以太坊虚拟机(EVM),EVM可以执行任意复杂度的代码,内置图灵完备编程语言,以太坊使得任何人都可以创建智能合约和去中心化应用,并在其中设立自定义的所有权规则、交易方式。状态转换函数。
比特币采用一个分布式的共识状态机,用于跟踪比特币及其所有权的状态,交易会导致一次全局范围的状态转换,改变了比特币的所有权。
而以太坊同样采用分布式的共识状态机,但跟踪的是一个通用目的的数据存储的状态转变,并且可以把代码加载进状态机,运行这些代码,并把状态转换的结果保存在区块链上。
以太坊的优点
支持智能合约,不再是支持单一的虚拟币应用,通过对智能合约及虚拟机的实现来支持开放与灵活的各类区块链应用。
交易信息内容扩展。所记录的交易信息内容有了较大的扩展,不仅包括转账信息,还包括智能合约代码信息、输入及计算结果数据等。
账户状态跟踪。跟踪每个账户的状态,区块链上的状态改变就是账户之间相关数值和信息的传输
支持信息加密。可以通过智能合约对发送和接收的信息进行自定义加密和解密。
\
接下来为大家介绍以太坊的多个核心概念,正是这些概念才组成了以太坊。
一.以太坊账户
账户分为外部账户和合约账户。合约账户中有账户余额和代码,且能被触发执行智能合约代码,在智能合约创建后自动运行,但无法触发交易。
外部账户中有账户余额没有代码,但可以触发交易(转账或执行智能合约),且由私钥控制。
而所有账户中都包含以下几个组成部分:
1.随机数(nonce)
如果是外部账户,nonce代表从此账户地址发送的交易序号;而在合约账户中则代表此账户创建的合约序号。
2.账户余额(balance)
代表此地址拥有Wei的数量,一Ether=10^18Wei。
3.合约代码(codeHash)
合约账户中表示存储此账户智能合约代码的哈希值,外部账户中则是一个空字符串的哈希值。
4.存储(storageRoot)
Merkle Patricia树的根节点哈希值,默认为空值
二.智能合约
智能合约是存储在区块链节点中的一段代码,代码的逻辑定义了合约的规则。智能合约运行在分享的、复制的账本上,可以处理信息,接收、存储和发送价值,区块链存储的是状态,智能合约是区块链用于状态转换的方式。
三.以太坊虚拟机
EVM是一种基于栈的虚拟机,用于编译、执行智能合约
EVM的作用是将智能合约编译成可在以太坊上执行的机器码,并提供智能合约的运行环境
EVM是图灵完备的(具有无限存储能力的通用物理机器或编程语言)
EVM是一个完全隔离的环境,在EVM中运行的代码不能访问网络、文件系统和其他进程,甚至智能合约之间的访问也是受限的。
智能合约以字节码的格式(EVM bytecode)存在于区块链上
智能合约通常以高级语言(Solidity)编写,通过EVM编译器编译为字节码,最终通过客户端上载部署到区块链网络中。
四.交易、消息
消息是不同账户之间交换的数据和值,是可以表示智能合约的确定性操作,或者经过加密安全签名的交易
交易是由外部账户签名后的一段数据,有两种交易类型,表示一条消息调用或者一个合约的创建。
五.消息调用
从一个账户发送消息到另一个账户的行为,外部账户到外部账户的交易只能是转账,而外部账户到合约账户的可以激活各种操作,智能合约可以通过消息调用的方式来调用其他合约,或发送以太币到外部账户。
六.Gas和费用
费用是由以太坊网络上的交易而产生的,每一次计算都会产生费用,以Gas来支付
Gas则是用来衡量在一个具体计算中要求的基本单位
Gas Price:愿意在每个Gas上花费Ether的数量,以gwei进行衡量。
以上便是关于以太坊的全部基础内容,看完不要忘了点赞收藏哦