比特币和以太坊是加密世界用户量最大的两个加密货币,今天给大家介绍下比特币和以太坊账户体系的不同点。
BTC不使用账户
BTC使用UTXO,ETH使用账户余额值。
UTXO(Unspent Transaction Output):指未花费的交易输出。它是比特币交易生成和交易验证的一个核心概念。
每笔比特币交易都有输入和输出,别人付给你的钱是“交易输入”,你收到的钱是“交易输出”。未花费的输出——即UTXO。
所以,比特币网络中,并没有账户的概念,没有比特币余额的说法,只有遍布全网区块链的UTXO。
UTXO的主要目的就是,记录和跟踪交易的输入和输出。
ETH选择了账户
ETH使用图灵完备语言,提供智能合约,能运行DAPP,为了运行DAPP,ETH放弃了UTXO,选择了账户。
账户能节省大量的空间,每笔交易只有一个输入、一个输出、和一个签名。
账户有更大的可替代性、编码简单,以及轻客户端。
账户有什么用?
V神说:区块链就是一台任何人都可以上传程序,并且程序能够自动执行的神奇电脑。每个程序的当前状态和过去状态都是公共可见的。
在以太坊系统中,状态是由被称为“账户”的对象和在两个账户之间转移价值和信息的状态转换构成的。
简单说,所有账户的状态,就是以太坊网络的状态。以太坊网络和每个区块一起更新,达成共识。账户在以太坊中发挥着中心作用。
什么是账户?
每个以太坊的账户,都由一对 公钥和私钥构成。
账户使用公钥对交易进行加密,所以EVM(以太坊虚拟机)能确保交易发起者安全有效。账户的地址,是通过公钥末尾的20字节生成的。
账户以地址作为索引,每一个私钥/地址对都被编码为加密文件。
这一点和BTC一样:转账时,公钥就像收款人账号。地址就像收款人姓名。而私钥就像签名。
和BTC不同的是,以ETH账户里存储的,不再是UTXO(找零)。
ETH账户存储如下四个部分:
随机数,用于确定每笔交易只能被处理一次的计数器
账户目前的ETH余额
账户的合约代码,如果有的话
账户的存储(默认为空)
ETH账户分类
ETH账户分为两种:
外部账户(由私钥控制)
合约账户(由合约代码控制)
外部账户,包含余额状态,不包含代码,只能用于转移ETH等ERC20代币。
合约账户,不仅包含余额状态,还包含代码。当收到消息后,智能合约的内部的代码就会被激活,可以对账户内部的存储进行读写,可以进行发送其它消息等操作。
账户和钱包的关系
钱包的功能是管理:接收,存储和转出ETH。
一个钱包,可以存放多个账户。
打个比方:钱包好像支付宝账号。(只是打个比方,支付宝是中心化的,想象成去中心化的支付宝吧),ETH账户就像银行卡。
一个支付宝账号可以绑定多张银行卡。(一个钱包可以存放多个ETH账户)
同时,ETH账户这张银行卡,是多币银行卡,可以存 美元、人民币、欧元等等。
ETH账户,可以存放多个符合ERC20协议的代币,可以存ETH、KIN、等等等等。
哈哈哈,ETH,钱包,账户,不再傻傻分不清楚啦!
责任编辑:ct
评论
查看更多