以太坊是有账户的,每个用户都可以开设账户,账户余额是我们拥有的以太币或其他基于 ERC20 标准的通证。账户的设计使得以太坊与比特币不同,根据之前的讨论我们知道,比特币只有钱包地址和未使用的交易输出。

以太坊的两种账户:外部账户和合约账户

以太坊有两种账户,如下图所示:

外部账户(externally owned accounts),里面只有当前的以太坊钱数,由我们手中的私钥控制,可以发起转账交易。
合约账户(contract accounts),不仅有以太坊钱数,还有程序代码,代码的执行是由交易触发的,每当收到相应的消息,这些代码就会被执行,这个智能账户就是智能合约的载体,由智能合约的代码控制。

图1:以太坊的两种账户

以太坊的账户包括四个字段:一个随机数、账户的余额、合约代码(如果有的话)、存储(通常为空)。

只有合约账户才有代码,其中存储的是 codeHash(这个账户的以太坊虚拟机代码的哈希值)。这个字段在生成后是不可修改的,这意味着智能合约代码是不可修改的。

外部账户可以触发交易,而合约账户不能主动发起交易,只能在被触发后按预先编写的智能合约代码执行。

合约账户可以设置多重签名(multisign),比如一个简单示例是:现有一个合约账户,它要求一个转账由发起转账的人(Alice)和另一个人(Charles)签名均可。因此,当 Alice 通过这个合约向 Bob 转账 20 个 ETH 时,合约会通知 Charles 签名,在他签名后,Bob 才可以收到这 20 个 ETH(见图2)。

以太坊合约账户的多重签名

图2:以太坊合约账户的多重签名

以太坊的交易和它的区块中存的是什么
和比特币一样,以太坊的区块中存储的也是交易(transaction),它包括的字段主要有:接受者(接受的账户)、发送者的签名、发送者发给接受者的以太币金额等。

与比特币的区块中存储的是交易不同,以太坊的区块中以梅克尔帕特里夏树(Merkle Patricia Tree,MPT)形式存储的是相应的以太坊账户的状态。

以太坊的交易是所谓的状态转换函数,一个交易触发它的执行,它将相应的账户从一个状态转变成新状态,然后新状态被存储在区块链的数据区块中

【问链财经-区块链基础知识系列】 第三十八课 以太坊智能合约账户全解析相关推荐

  1. 【问链财经-区块链基础知识系列】 第十八课 区块链应用于贷款结算

    编者按:在金融业务中,企业或个人向金融机构进行借贷,产生贷款业务,贷款结算是当贷款所有本金.利息和费用都收回后,贷款即告结清.贷款结清是信贷资金的风险已不存在,贷款安全回收,并为银行带来了收益.那结合 ...

  2. 【问链财经-区块链基础知识系列】 第二十八课 区块链如何助力万亿规模的供应链金融蛋糕

    编者按:我国经济已由高速增长阶段转向高质量发展阶段.赊销项下的账期占压给实体经济的发展带了很大的束缚,国家近两年来多次发文鼓励和推动应收账款融资的发展.但传统应收类供应链金融模式,如保理.应收账款质押 ...

  3. 【问链财经-区块链基础知识系列】 第二十二课 贸易金融区块链平台的技术机理与现实意义

    简介:贸易金融区块链平台的技术机理.模式.优势与现实意义都有哪些?对湾区贸易金融区块链平台的未来建设有何展望?本文将进行详述. 小微企业贡献了我国60%以上的GDP.50%以上的税收以及80%的城镇就 ...

  4. 【问链财经-区块链基础知识系列】 第十九课 区块链应用于电子存证

    编者按:在传统的具有法律效益的存证需要第三方权威公证处进行公证,并且需要绑定时间戳和相关信息,步骤繁琐,进度比较慢,后来存证电子化后一定程度上提高了效率.节省了成本,但也会有一些其他的问题,比如第三方 ...

  5. 【问链财经-区块链基础知识系列】 第三十九课 EOS与ETH体系结构比较全解析

    以太坊理解成为一个在其上可以开发运作各种去中心化的应用(Dapps)的去中心化平台,同时它有一个优势在于,它确保了它的用户在运行这些应用程序(Dapps)时不受任何第三方的约束. EOS将是一个区块链 ...

  6. 【问链财经-区块链基础知识系列】 第二十六课 隐私保护方法:多方安全计算和区块链

    编者按:私密计算是解决区块链无法保护隐私的问题.因为区块链上的数据天然是全公开的,任何人都可以查看.假如一个人知道了你的钱包地址,就可以看到你的余额.你所有的转账记录.设想一下买保险的场景,买保险需要 ...

  7. 【问链财经-区块链基础知识系列】 第二十九课 区块链的世界:中国向左 美国向右

    世界有两大互联网生态,一个是美国构筑的,当中的互联网公司有苹果.谷歌.亚马逊.脸书.雅虎等:另一个是中国构筑的,当中互联网公司有阿里.腾讯.百度.京东.今日头条等.这两大生态占据了全球互联网十强. 其 ...

  8. 【问链财经-区块链基础知识系列】 第二十四课 摩根币来了,Ripple们该怎么办?

    编者按:2019 年 2 月 14 日,美国最大的商业银行摩根大通宣布发行加密货币 JPMCoin,主要用来实现跨银行和跨境即时支付,消息一经发布,一时激起千层浪,各种银行业纷纷磨拳擦掌,跃跃欲试,而 ...

  9. 【问链-区块链基础知识系列】 第十五课 数字货币交易所的前世、今生和未来(二)

    编者按:在上一篇文章中,我们介绍了数字货币交易平台的概念,那么今天我们就来重点聊聊数字货币交易平台的技术.如果你有过设计或实现传统金融交易系统的经验,那么你阅读本篇就会更加容易. 由于中心化交易所是主 ...

最新文章

  1. 输入法按照选字频率排序的C语言程序算法,算法与数据结构之选择排序(C语言)...
  2. ASP.NET Core 网站在Docker中运行
  3. 企业如何建设BI商业智能系统
  4. 第10 章继承映射(InheritanceMappings)
  5. Sqlmap使用教程--Sqlmap安装
  6. Xutils-Android中数据存储和网络传输的框架
  7. 统计fasta序列条数
  8. 网络API接口的使用
  9. 《智慧工地单点解析系列(四)—— 安全管理》
  10. 有备而来! 解密DEVELOP德凡为何进入中国市场?
  11. blender 长度单位设置
  12. Project build error: Non-resolvable parent POM
  13. 推荐几个免费好用的毕业论文(设计)文献查找网站包括外文文献(亲测有用)
  14. waylandweston
  15. 房企买房送车位的涉税风险
  16. C++八股文分享---数据结构其二---哈希表
  17. allure测试报告怎么清除历史记录的数据,只展示当前运行结果内容
  18. oracle常用的约束条件类型,oracle数据库的5种约束类型
  19. flume 多chanel配置
  20. 谁在抢占「低代码」高地?

热门文章

  1. android翻页实现原理
  2. 软件测试工程师笔试试题
  3. 笔记本在Win7下使用wubi安装Ubuntu10.04 双系统
  4. Python 应用领域
  5. 迫零响应法用于MIMO系统
  6. 5月份升级鸿蒙系统的华为手机名单,鸿蒙OS前三批升级名单曝光,华为荣耀手机可升级,幸福来得太突然...
  7. 【Python】判断列表 list 是否为空
  8. 【SVM最后一课】详解烧脑的Support Vector Regression
  9. 大话数据结构:线性表(2)
  10. C语言const使用