1. 智能合约相关

  • 合约账户和外部账户分开

  • 合约账户对外部账户一律平等,即使是发起该合约创建请求的外部账户也没有对合约账户的特殊权限。

  • 合约只有在交易调用时才会运行:使用地址对象或者msg对象来调用合约或者合约中的函数,并将输入作为参数输入合约。

  • 调用方式既可以是外部账户的交易调用合约,也可以是合约调用另一个合约。

  • 合约不能“独立运行”或者“后台运行”,通常情况下合约处于休眠状态,只有被调用触发时才会执行。

  • 合约的数据来源于该合约被调用时的参数输人,或者调用其他合约时的返回值。

2. 以太坊智能合约的流程

2.1 合约创建

step1. 用户通过Solidity等编程语言编写合约代码并广播到网络中
step2.节点接收到交易,验证交易是否有效,格式是否正确、签名是否合法,同时判断用户余额是否能够扣除最大交易费。
step3. 如果这些验证都成功,节点会将交易存放到交易池中并广播给其他节点。

2.2 合约部署

step1. 每个节点都会各自从本地的交易池中取出一批交易打包进行hash 计算
step2. 如果该节点获得记账权且打包区块中存在创建合约请求的交易,会根据交易中的合约代码创建合约账户
step3. 节点在账户空间中部署合约,合约账户地址在创建合约交易确认后发送给发起该笔交易的用户。
step4. 节点将区块广播给其他节点,这些节点接收到区块并对区块和区块中的交易验证成功后,同样会创建合约账户。

2.3 合约执行

如果有合约调用的交易,节点在获得记账权并将其打包到区块的时候,会在EVM中执行调用的合约并修改本地区块链中的数据,如果执行失败则回滚到代码执行前的状态。

最后把区块广播给其他节点,这些节点重复上述执行操作。

2.4 合约升级

  • 在以太坊中,部署到区块链上的代码是不可改变的。
  • 部署一个拥有调用转发功能的智能合约,将接收到的调用转发给另外一个包含逻辑功能的合约地址,当合约进行升级时.只需要部署一个新的合约并修改转发的目标地址以指向新的合约。

2.5 合约销毁

可以将代码删除及其内部状态(存储)以留下空白账户。

  • 要销毁合约.需要调用合约中的自毁函数,这个函数是合约作者编写的加果没有则不能删除智能合约。

智能合约重构社会契约(7)以太坊总结相关推荐

  1. 智能合约重构社会契约 (5)比特犬模型实现智能合约

    1. 设计思想 针对法律.司法执法应用场景,将智能合约的许多问题简化, 在智能合约的自然语言处理.形式化方法.软件测试方面,突出智能合约的核心功能,降低使用智能合约的门槛,使其可靠且高效. 2.模型驱 ...

  2. 智能合约重构社会契约 (2)雅阁项目智能合约

    1. 雅阁项目有三个主要思想 文本合同到可计算合同:主要目的是从静态的文本合同,以自然语言和文件为主,到动态,数字化,电子文档和证据集成的系统.电子签名仅仅是向本合同迈进的开始. 合同高科技:雅阁项目 ...

  3. 智能合约重构社会契约 (1)李嘉图合约

    1. 定义 智能合约是机器可读的指令集,而李嘉图合约是指明智能合约所遵循的指令意图的文件. 1.1 李嘉图合约前面的部分看起来像普通的软件合同. 1.2 由于加密签名,李嘉图合约极其安全.每个李嘉图合 ...

  4. 智能合约重构社会契约(8)以太坊分片

    1. 定义 使用场景:以太坊的同构链跨链需求 分片定义:将所有节点分配到多条区块链中,每条区块链只需要处理网络中工作的部分. 分片效果:提高了以太坊的处理效率 分片问题:增加了链与链之间信息交互的困难 ...

  5. 智能合约重构社会契约(12)天秤币

    1. 定义 一种稳定的数字加密货币,并将全部使用真实的资产储备进行担保.与大多数加密货币波动剧烈不同,天秤币将使用低波动性的资产作为抵押来保证天秤币价值的稳定 账户规模数十亿 需要极高的交易吞吐量和低 ...

  6. 智能合约重构社会契约(11)天德区块链智能合约系统

    智能合约是可以运行在区块链上的合约代码,是一种运行在区块链之上的电子协议,它允许在没有第三方的情况下进行可信执行. 1. 设计原则 智能合约数据来源于链上. 智能合约的输人是从区块链的数据库里出来的. ...

  7. 智能合约重构社会契约(10)超级账本之跨链Hyperledger Lab

    1. 定义 Hyperledger Lab定义了一种通信模型,允许许可链生态系统独立于平台交换任何链上数据或者自定义资产.它为每个可互相操作的区块链网络引人了"互操作性验证者"(i ...

  8. 智能合约重构社会契约(9)Fabric

    1. Docker Docker 是一个开源的应用容器引擎, 开发者可以将他们的应用及依赖包打包到一个可移植的镜像中,也可以实现虚拟化. 完全使用沙箱机制,相互之间不会有任何接口. 在超级账本中,智能 ...

  9. 智能合约重构社会契约(6)赛迪智能合约安全标准

    1. 安全实施框架 根据运行机制可分为运行与规划.合约创建.安全审计.合约触发.合约运行.合约废止六个阶段. 2. 编译部署安全要求 区块链系统应校验智能合约的编译实体.写入策略和签名内容. 区块链系 ...

最新文章

  1. 女朋友分手那天,女朋友说闺蜜老公收入是我 5 倍!还不去这些公众号学习?...
  2. 送你一份 Kubernetes 实用命令速查表
  3. yolov5剪枝开源分享
  4. IOS -- UICollectionView里面的cell点击,点击一个cell改变其他cell的状态
  5. Chrome新的语言API,让您的浏览器说话
  6. Ubuntu 查看默认软件安装位置
  7. linux系统安装如何设置raid,在RAID磁盘阵列下如何搭建Linux系统
  8. MYSQL中5.7.10ROOT密码及创建用户
  9. csdn 博客代码块显示复制按钮
  10. Python编程之输出素数
  11. 产品读书《关键对话:如何高效能沟通》
  12. Java线程强制执行
  13. Spring Boot默认异常处理BasicErrorController源码解读
  14. Android 获取手机设备信息:名称、型号、系统版本号、厂商、设备制造商、SDK版本、系统语言等等
  15. MFC 根据圆心和半径画圆
  16. linux命令 dmesg_如何在Linux上使用dmesg命令
  17. 中国企业去除oracle,去IOE浪潮之下,Oracle再次大规模裁员,企业全面上云成大趋势...
  18. python26章_44G-26章节Python盖世修炼最新实战 全新升级版Python全栈架构师高级课程 从零实战...
  19. EXCEL描述统计输出详解:标准误、置信度、偏度、峰度和JB检验
  20. div添加阴影(盒子阴影)box-shadow各参数含义

热门文章

  1. Python 命令pip install pygame安装报错
  2. 如何成为一名数据中心运维工程师?
  3. 市电中断时,数据中心机房如何保证持续供电?
  4. 人工智能时代的数据中心该怎么建?腾讯给出了自己的答案
  5. python pil保存图片_python爬取百度图片并保存到本地
  6. php xml 增删改查,PHP实现对xml进行简单的增删改查(CRUD)操作示例
  7. Python语言编程学习:numpy中的array格式数据切片与pandas中的dataframe格式数据切片、相互转换
  8. 成功解决未授予用户在此计算机上的请求登录类型图文教程
  9. ML之NB:利用NB朴素贝叶斯算法(CountVectorizer/TfidfVectorizer+去除停用词)进行分类预测、评估
  10. 成功解决Remix Mock compiler: Source not found