草庐IT

钻石合约

全部标签

【学习笔记】智能合约引擎

图片来源:https://www.researchgate.net/publication/336453428_Detecting_nondeterministic_payment_bugs_in_Ethereum_smart_contracts/figures?lo=1智能合约是区块链技术的核心。我们可以根据以下公式定义智能合约智能合约=事务处理和保存机制+完备的状态机智能合约的事务主要包含需要发送的数据,事件是描述数据的信息;智能合约的运行需要可信任的执行环境和系统。虚拟机或者Docker为智能合约提供计算资源和运行容器。今天为大家总结智能合约引擎的一些内容,包括功能结构,设计原则,比较不

智能合约 -- 常规漏洞分析 + 实例

 1.重入攻击漏洞分析攻击者利用合约漏洞,通过fallback()或者receive()函数进行函数递归进行持续取钱。刚才试了一下可以递归10次,貌似就结束了(version:0.8.20)。直接看代码:银行合约:有存钱、取钱、查看账户余额等函数。攻击合约:攻击、以及合约接受以太币就触发的receive()函数。分析:攻击者通过Attack合约调用attack()接口,先存钱,后进行取钱;那么Bank会向该合约发送以太币,进而触发Attack合约的receive()函数,然后又进行取钱操作,由于形成递归操作,Bank合约的withdraw()接口的,账户置0操作无法执行,从而形成无限递归。//

solidity实现账户地址向合约账户转账

一个合约最多有一个receive函数,声明函数为:receive()externalpayable{…}不需要function关键字,也没有参数和返回值并且必须是 external 可见性和 payable修饰.它可以是virtual的,可以被重载也可以有修改器modifier。在对合约没有任何附加数据调用(通常是对合约转账)是会执行receive函数. 例如 通过.send()or.transfer()如果receive函数不存在, 但是有payable 的fallback回退函数那么在进行纯以太转账时,fallback函数会调用.如果两个函数都没有,这个合约就没法通过常规的转账交易接收以太

2023安全与软工顶会/刊中区块链智能合约相关论文

2023安全与软工顶会/刊中区块链智能合约相关论文前言软工顶会ISSTAFSEASEICSE软工顶刊TOSEMTSE安全顶会S&PUSENIXSecurityCCSNDSS前言主要整理了2023年四大安全顶会、四大软工顶会和两个软工顶刊中,有关区块链智能合约的相关论文。搜索方式是:在dblp中该顶会的页面列表直接使用Ctrl+F搜索block、smartcontract,所以如若名字中没有,可能会有遗漏。搜集包含有:软工顶会:ISSTA、FSE、ASE、ICSE软工顶刊:TOSEM、TSE安全顶会:S&P、USENIXSecurity、CCS、NDSS软工顶会ISSTA1、ItyFuzz:Sn

猿创征文 | Solidity 智能合约技术成长之路

Solidity智能合约入门Solidity是链上智能合约的开发语言,链上智能合约相当于传统行业的后端,链上应用基本都是由合约+前端组成的,虽然不推荐,但部分链上应用也会加入后端进行数据存储,以降低用户的使用成本。Solidity这门开发语言并不复杂,只需要您稍微有一点儿编程基础,英文词汇量达到中学生水平,都能看懂基本的合约代码逻辑即可。最开始强烈推荐先入门ERC20和ERC721,理解之后,再去看关联的ERC1155、ERC4907等以太坊标准,都不会觉得有什么理解上的太大压力。除此之外,以太坊标准ERC为开发者提供了大量开源的合约接口,开发者可轻松用于构建各类链上实用功能。Solidity

区块链智能合约代码示例

        以下是一个简单的区块链智能合约代码示例:pragmasolidity^0.4.17;contractSimpleContract{uintpublicmyData;functionsetMyData(uintnewData)public{myData=newData;}}该合约具有以下功能:定义了一个名为SimpleContract的合约。定义了一个名为myData的公共整数变量。定义了一个名为setMyData的公共函数,该函数接受一个uint类型的参数newData,并将其设置为myData的新值。在Solidity编写智能合约时,需要注意以下几点:合约必须包含pragma

【区块链Solidity】智能合约与Solidity介绍

目录智能合约Solidity语言简介 Solidity语言特性智能合约智能合约的英文是SmartContract最早是尼克丶萨博在1995年就提出了智能合约的概念~就是将法律条文写成可执行代码VitalikButerin(V神)把它引入到以太坊中,表示以太坊程序能自动执行及无法被干预的特点。以太坊是区块链与智能合约的完美结合,通过编写智能合约可以实现强大的功能,实现去中心化的应用开发。 现在智能合约已经扩展到所有的区块链平台,很多时候人们把超级账本Hyperledger,EOS等区块链平台的程序也称为‘智能合约’智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转智能合约本身

【区块链Solidity】智能合约与Solidity介绍

目录智能合约Solidity语言简介 Solidity语言特性智能合约智能合约的英文是SmartContract最早是尼克丶萨博在1995年就提出了智能合约的概念~就是将法律条文写成可执行代码VitalikButerin(V神)把它引入到以太坊中,表示以太坊程序能自动执行及无法被干预的特点。以太坊是区块链与智能合约的完美结合,通过编写智能合约可以实现强大的功能,实现去中心化的应用开发。 现在智能合约已经扩展到所有的区块链平台,很多时候人们把超级账本Hyperledger,EOS等区块链平台的程序也称为‘智能合约’智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转智能合约本身

智能合约--如何实现可升级的智能合约

一. 什么是智能合约智能合约通俗点说就是写在区块链上面的代码,代码里面编写着严谨完善的规则,一旦某个用户满足了合约里面的规则条件,就会触发里面的代码,执行某个方法。  二. 为什么要使智能合约达到可升级智能合约的特点之一就是部署到链上之后不能修改,这一机制使得合约的交互方都可以信任合约。但也带来了一系列的问题,并且如果已部署的合约发现漏洞,也是无法修复的。假如发现了bug,致命性的,必须修复,那如何处理?就是使用合约达到可升级优化才能满足需求 三. 升级合约的机制原理 什么是合约升级使已经部署上链的合约做到可优化可更改,例如链上的业务逻辑代码和状态变量达到可增删改的功能.  2. 合约升级的实

智能合约--如何实现可升级的智能合约

一. 什么是智能合约智能合约通俗点说就是写在区块链上面的代码,代码里面编写着严谨完善的规则,一旦某个用户满足了合约里面的规则条件,就会触发里面的代码,执行某个方法。  二. 为什么要使智能合约达到可升级智能合约的特点之一就是部署到链上之后不能修改,这一机制使得合约的交互方都可以信任合约。但也带来了一系列的问题,并且如果已部署的合约发现漏洞,也是无法修复的。假如发现了bug,致命性的,必须修复,那如何处理?就是使用合约达到可升级优化才能满足需求 三. 升级合约的机制原理 什么是合约升级使已经部署上链的合约做到可优化可更改,例如链上的业务逻辑代码和状态变量达到可增删改的功能.  2. 合约升级的实