北京大学肖臻老师《区块链技术与应用》公开课笔记

以太坊账户篇,对应肖老师视频:click here
全系列笔记请见:click here
About Me:点击进入我的Personal Page

BTC系统是基于交易的账本,系统中并未显示记录账户有多少钱,只能通过UTXO进行推算。但实际中,使用起来较为别扭。
A转给B钱的时候,需要说明币的来源。实际中只需要存钱说明来源,花钱则不用。此外,账户中的钱在花的时候,必须一次性全部花出去。

如图1,B收到A的10个BTC,他想要给C3个BTC,如果按照1中方式,其余7个比特币会以交易费的形式给挖出区块的矿工。
因此,为了避免这种情况,便吸引采用2中方式,将3个BTC转给C,将剩余7个BTC转到自己的另一账户D上面。

以太坊系统则采用了基于账户的模型,与现实中银行账户相似。系统中显示记录每个账户以太币的数量,转账是否合法只需要查看转账者账户中以太币是否足够即可,同时也不需要每次全部转账。同时,这也也天然地防范了双花攻击。
当然,以太坊发这种模式也存在缺点,这种模式存在重放攻击的缺陷。A向B转账,过一段时间,B将A的交易重新发布,从而导致A账户被扣钱两次。

为了防范重放攻击,给账户交易添加计数器记录该账户交易过多少次,转账时候将转账次数计入交易的内容中。
系统中全节点维护账户余额和该计数器的交易数,从而防止本地篡改余额或进行重放攻击。

以太坊系统中存在两类账户:外部账户合约账户

  1. 外部账户:类似于BTC系统中公私钥对。存在账户余额balance和计数器nonce
  2. 合约账户:并非通过公私钥对控制。(不能主动发起交易,只能接收到外部账户调用后才能发起交易或调用其他合约账户)其除了balance和nonce之外还有code(代码)、storage(相关状态-存储)

创建合约时候会返回一个地址,就可以对其调用。调用过程中,代码不变但状态会发生改变。

为什么要做以太坊,更换为基于账户的模型而不是沿袭BTC系统?
比特币中支持每次更换账户,但以太坊是为了支持智能合约,而合约签订双方是需要明确且较少变化的。尤其是对于合约账户来说,需要保持稳定状态。

北京大学肖臻老师《区块链技术与应用》公开课笔记16——ETH账户篇相关推荐

  1. 北京大学肖臻老师《区块链技术与应用》公开课笔记15——ETH概述篇

    北京大学肖臻老师<区块链技术与应用>公开课笔记 以太坊概述篇,对应肖老师视频:click here 全系列笔记请见:click here About Me:点击进入我的Personal P ...

  2. 肖臻老师区块链公开课笔记

    前段时间,区块链大火,出现了很多种基于区块链技术的政务应用.之前通过零散的网页信息和讲座,自我感觉理解了block chain原理,当看到各种区块链技术广泛应用时,自己以技术理解,反而对之不屑.当然, ...

  3. 《区块链技术与应用》学习笔记10——ETH数据结构

    在以太坊中,有三棵树的说法,分别是状态数.收据树和交易树. 一.引入 我们要实现从账户地址到账户状态的映射.在以太坊中,账户地址为160位,表示为40个16进制数.状态包含了余额(alance).交易 ...

  4. 北京大学肖臻老师《区块链技术与应用》公开课笔记8——BTC挖矿篇

    北京大学肖臻老师<区块链技术与应用>公开课笔记 比特币挖矿篇,对应肖老师视频:click here 全系列笔记请见:全系列笔记请见:click here About Me:点击进入我的Pe ...

  5. 北京大学肖臻老师《区块链技术与应用》公开课笔记23——ETH挖矿难度调整篇

    北京大学肖臻老师<区块链技术与应用>公开课笔记 以太坊挖矿难度调整,对应肖老师视频:click here 全系列笔记请见:click here About Me:点击进入我的Persona ...

  6. 北京大学肖臻老师《区块链技术与应用》公开课笔记:以太坊原理(一):以太坊概述、账户、状态树、交易树和收据树

    1.ETH-以太坊概述 比特币和以太坊是两种最主要的加密货币,比特币被称为区块链1.0,以太坊被称为区块链2.0 以太坊在系统设计上针对比特币运行过程中出现的问题进行了改进,比如: 出块时间,比特币的 ...

  7. 北京大学肖臻老师《区块链技术与应用》公开课笔记17——ETH数据结构篇1(状态树1)

    北京大学肖臻老师<区块链技术与应用>公开课笔记 以太坊数据结构篇1--状态树1,对应肖老师视频:click here 全系列笔记请见:click here 以太坊数据结构篇1--状态树2请 ...

  8. 北京大学肖臻老师《区块链技术与应用》公开课笔记:以太坊(四):The DAO、反思、美链、总结

    10.ETH-The DAO 1).The DAO 比特币实现了去中心化的货币,以太坊实现了去中心化的合约,有人想既然去中心化这么好,为什么不把所有的东西都改成去中心化呢?有人提出口号:let's d ...

  9. 北京大学肖臻老师《区块链技术与应用》公开课笔记25——ETH智能合约篇1

    北京大学肖臻老师<区块链技术与应用>公开课笔记 以太坊智能合约,对应肖老师视频:click here 全系列笔记请见:click here 智能合约是以太坊的精髓所在,也是其与比特币系统最 ...

最新文章

  1. 你可能没那么了解 JWT
  2. SVD(奇异值分解)+NMF(非负矩阵分解)
  3. Java NIO.2 Files类的常用方法
  4. php和mysql的版本区别_MySQL各个版本区别_MySQL
  5. android volley post 参数,android – 使用Volley POST传递参数
  6. java 语言章节_2020知到Java语言程序设计章节答案
  7. 教你如何用 lib-flexible 实现移动端H5页面适配
  8. (38)FPGA面试题Verilog设计计数器
  9. 风力涡轮机巨头维斯塔斯遭网络攻击
  10. Oracle数据库基本知识
  11. 宠物领养平台的分析与实现
  12. Java自定义类创建对象数组并赋值
  13. cdr怎么抠图轮廓线条_CDR怎么抠图?CorelDRAW快速抠图方法
  14. Android蓝牙通信
  15. 2023金三银四应届生求职面试指南
  16. zblog mysql修改_zblog数据库批量替换https的方法
  17. 纳米光触媒车用空气净化器给你驾车好心情!
  18. Maven手动安装ojdbc7.jar
  19. 推荐一些高效率的PC软件
  20. 丹佛斯变频器FC300 开环提升参数设置

热门文章

  1. c语言信息加密hikl,数据结构课程设计-家谱的实现与设计1.docx
  2. zephyr-双向链表
  3. Java多线程(6)——Thread类中的一些方法(传智播客毕老师视频讲解)
  4. Android自定义View实现QQ气泡效果
  5. 范成法加工matlab_齿轮范成程序MATLAB代码
  6. echarts图表鼠标滑过页面抖动
  7. Python采集去哪儿旅游攻略(爬虫+数据分析),快过年了,这不得全家一起出去玩一次
  8. 一个非常好用的桌面备忘录
  9. Java 设计模式(适配器模式与外观模式)
  10. windows7安装android软件,装酷神器怎么用 安卓手机上安装体验电脑Win7系统方法