什么是智能合约-以太坊-ERC20标准

智能合约

传统合约,就是双方或者多方共同协议做或者不做某事来换取某些东西。合同中的每一方必须信任彼此能够履行义务。
智能合约是由代码定义,并自动执行且无法干预。智能合约一旦编写好就可以被用户信赖,合约条款不能被篡改,不需依赖第三方执行合约,消除了中间人,大大减少了花费在合约上的金钱和时间。

以太坊

以太坊(Ethereum)是一个能够在区块链上实现智能合约、开源的底层开发平台,每个人都可以利用以太坊开发出自己的虚拟货币体系。
在2013年年底由Vitalik Buterin 所提出的技术。以太坊和比特币相似,是一个开源的,基于区块链技术的分布式计算平台,它强调自己是一个智能合约系统。为了支持这个系统,Vitalik Buterin和他的团队在2014年的7月至8月,针对公众销售了他们自己的以太坊系统上的货币 —— 以太币( Ether , 简称 ETH )

ERC20标准

以太坊是一个分布式的智能合约平台,可以分发代币(Token)。如果代币的标准不统一,众筹的人没法检查代币分发的是否合理,也没办法做到多种钱包的兼容。
ERC20标准就是以太坊代币的标准,所有以太坊代币都要遵循这个标准发行。

标准接口:https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md

ERC20是一段代码,主要有6个功能,分别是名称,简写,以及可以支持的最大位数以及定义查询方法等等。从ERC20发币的开源代码可以看出,如果一旦你要发币,首先就是要确定名称,代币简称,总量,代币精确小数点后多少位等等。

ERC20 标准在2015年11月份提出,使用这种规则的代币,表现出一种通用的和可预测的方式。简言之,任何 ERC-20 代币都能立即兼容以太坊钱包(几乎所有支持以太币的钱包,包括Jaxx、MEW、imToken等,都支持 ERC-20的代币),由于交易所已经知道这些代币是如何操作的,它们可以很容易地整合这些代币。这就意味着,在很多情况下,这些代币都是可以立即进行交易的,为资金流动提供了极大的方便。

参考链接:https://www.jianshu.com/p/7d4ec438076b

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的ERC20智能合约示例: ```solidity pragma solidity ^0.8.0; contract ERC20Token { string public name; string public symbol; uint256 public totalSupply; mapping(address => uint256) public balanceOf; mapping(address => mapping(address => uint256)) public allowance; constructor(string memory _name, string memory _symbol, uint256 _totalSupply) { name = _name; symbol = _symbol; totalSupply = _totalSupply; balanceOf[msg.sender] = _totalSupply; } function transfer(address _to, uint256 _value) public returns (bool success) { require(balanceOf[msg.sender] >= _value, "Insufficient balance"); balanceOf[msg.sender] -= _value; balanceOf[_to] += _value; emit Transfer(msg.sender, _to, _value); return true; } function approve(address _spender, uint256 _value) public returns (bool success) { allowance[msg.sender][_spender] = _value; emit Approval(msg.sender, _spender, _value); return true; } function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) { require(balanceOf[_from] >= _value, "Insufficient balance"); require(allowance[_from][msg.sender] >= _value, "Insufficient allowance"); balanceOf[_from] -= _value; balanceOf[_to] += _value; allowance[_from][msg.sender] -= _value; emit Transfer(_from, _to, _value); return true; } event Transfer(address indexed _from, address indexed _to, uint256 _value); event Approval(address indexed _owner, address indexed _spender, uint256 _value); } ``` 该合约包括以下功能: - `name`:代币名称 - `symbol`:代币符号 - `totalSupply`:代币总量 - `balanceOf`:每个地址的代币余额 - `allowance`:允许其他地址花费的代币数量 该合约实现了ERC20标准中的以下函数: - `transfer`:从调用者的地址向另一个地址发送代币 - `approve`:允许另一个地址花费指定数量的代币 - `transferFrom`:从一个地址向另一个地址发送代币,前提是已经获得了允许 该合约还定义了两个事件: - `Transfer`:代币发送时触发 - `Approval`:允许花费代币时触发 要部署这个合约,你需要使用Solidity编译器将其编译为字节码,然后将字节码发送到以太坊网络上。你可以使用Remix或Truffle等工具来编译和部署智能合约
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值