Ver 2022.1
Derek 周朝晖
🐦 @zhous98 | 👋 DAism.io
1️⃣ 比特币:区块链 1.0
2️⃣ 钱包:区块链的入口
3️⃣ 以太坊:区块链 2.0
4️⃣ 通证标准的进化与应用
5️⃣ 去中心化交易与支付
6️⃣ 以太坊改进提案
7️⃣ 区块链发展:激励式开源协作
初学者每个幻灯的自学时间预计不低于30分钟
1️⃣ 比特币:区块链 1.0
2️⃣ 钱包:区块链的入口
3️⃣ 以太坊:区块链 2.0
4️⃣ 通证标准的进化与应用
5️⃣ 去中心化交易与支付
6️⃣ 以太坊改进提案
7️⃣ 区块链发展:激励式开源协作
Token一词源自古英格兰的盎格鲁-撒克逊(Anglo-Saxon)语言:
总的来说,通证(token)的原意是以一样东西代表或者象征另一样东西,后者可以是物质的也可以是精神的,可以是实实在在的也可以是虚拟的。
在区块链行业,通证可以在以太坊中表示很多东西:
比特币没有次生通证。
以太坊之上可以用智能合约语言自由开发去中心化应用(dApp/Dapp)。譬如你可以用智能合约语言写个小dApp来发币……
以太坊上面有多个智能合约标准,可以发行多种通证,其中目前最常用的智能合约标准为 ERC-20,可以让任何人使用它发行出新通证。如UNI、CRV、OMG、ENJ等等。我们常常称它们为 ERC20 代币。
道易程开发了超越 ERC-20 的新的通证标准:
EIP-3712: 多种批量同质化通证标准
非同质性物品(不可替代物品)具有与同质物品定义相反的特征。 这些特征是:
故宫博物馆的每件藏品,则都属于非同质性物品。
非同质性物品:艺术作品、人、游戏角色、房地产……
同质性物品和非同质性物品,到了区块链领域,就对应衍生出同质通证和非同质通证,同质资产和非同质资产。
同质通证标准:ERC-20、EIP-3712
非同质通证标准:ERC-721、EIP-3664
半非同质通证标准:ERC-3525
多重通证标准:ERC-1155
ETH、BTC——公链原生代币。
ASR、OG、GMT——遵循ERC-20标准用智能合约发行的代币。
NFT (非同质通证)——遵循ERC-721、ERC-1155、ERC-3525、EIP-3664标准发行 。
1️⃣ 制定代币总供应量
2️⃣ 获得账户余额
3️⃣ 转让代币
4️⃣ 批准花费代币,即批准一个帐户中一定的代币金额由第三方帐户使用。
A.概述
ERC20是token的一种标准接口。
B.摘要
本标准允许在智能合约中部署token的标准API。 该标准提供了转移token的基本功能,并允许token被批准,以便链上其它第三方可以使用它们。
C.动机
这一标准接口可以让以太网上的任何token可以被其他应用程序再利用:从钱包到去中心化的交易所。
D.技术参数
方法
function name() public view returns (string)
function symbol() public view returns (string)
function decimals() public view returns (uint8)
function totalSupply() public view returns (uint256)
function balanceOf(address _owner) public view returns (uint256 balance)
function transfer(address _to, uint256 _value) public returns (bool success)
function transferFrom(address _from, address _to, uint256 _value) public returns (bool success)
function approve(address _spender, uint256 _value) public returns (bool success)
/* 这就是我们常说的“授权”操作:设置某个地址可从操作此方法的地址那里获得的最高金额,此方法可以多次调用。
function allowance(address _owner, address _spender) public view returns (uint256 remaining)
事件
event Transfer(address indexed _from, address indexed _to, uint256 _value)
event Approval(address indexed _owner, address indexed _spender, uint256 _value)
E.实施
在以太坊网络上已经部署了大量符合ERC20标准的代币。从节省gas到提高安全性,不同权衡的团队已经编写了各种不同的合约方案。
F.历史
……省略
G.版权
版权和相关权利通过CC0许可协议放弃。
就像 Java 里面的接口一样,应用时,我们要根据以上标准实现接口定义的方法,同时也可以在实现类里面进行其他功能的扩展。譬如:
/* This notifies clients about the amount burnt */
event Burn(address indexed from, uint256 value);
/* This notifies clients about the amount frozen */
event Freeze(address indexed from, uint256 value);
/* This notifies clients about the amount unfrozen */
event Unfreeze(address indexed from, uint256 value);
顾名思义,这三个事件分别对应:
我们仔细审视 ERC-20 通证标准的技术细节,就会发现除了用它发行代币,我们还可以用它发行积分,或者发行一个项目的股份,等等。
因此通过 ERC-20 通证标准发行的通证,可以不是代币!
没有专业知识,在区块链行业是很容易迷路、撞车、踩坑甚至三连的。
ERC-20 通证标准可以让任何都发行代币,这无异于人人都可以印钞。
ICO是 Initial Coin Offering 的简称,就是区块链项目方以初始产生或首批公开发行的代币作为回报的一种众筹方式。
ICO在很大程度上借鉴了证券业的 Initial Public Offering(首次公开发行,IPO),但它的效率远远高于 IPO。
与 IPO 对比,ICO简直无敌:
通证带来的特色 | 智能合约带来的特色 |
ERC721通证是不能相互置换的,亦即ERC721的每个通证都是唯一的,且还是不可分割的,它的最小单位就是1 。
非同质通证可以代表区块链资产的所有权或债务:
虚拟收藏品——收藏卡片、游戏道具;ERC721通证标准使得我们能够开发出可证明的集稀缺性、可编程性和抗审查三种特性于一体的区块链产品。
“负值”资产——贷款、债务和其它财务责任。
ERC721非同质通证标准定稿于2018年3月13日,其应用爆发于2017年11月。
思考题:
ERC721能够代表有形资产,如房产、梵高的作品等等?
2017年11月28日登陆以太坊,引发 NFT 狂潮!
/// @notice A distinct Uniform Resource Identifier (URI) for a given asset.
/// @dev Throws if `_tokenId` is not a valid NFT. URIs are defined in RFC
/// 3986. The URI may point to a JSON file that conforms to the "ERC721
/// Metadata JSON Schema".
function tokenURI(uint256 _tokenId) external view returns (string);
}
This is the “ERC721 Metadata JSON Schema” referenced above.
{
"title": "Asset Metadata",
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Identifies the asset to which this NFT represents"
},
"description": {
"type": "string",
"description": "Describes the asset to which this NFT represents"
},
"image": {
"type": "string",
"description": "A URI pointing to a resource with mime type image/* representing the asset to which this NFT represents. Consider making any images at a width between 320 and 1080 pixels and aspect ratio between 1.91:1 and 4:5 inclusive."
}
}
}
ERC-721 将整个行业带入歧途!
我的团队于2019年开发,2020年3月发布:
核心:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg id="cofbe" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200" width="300px" height="300px"><name id="ncofme">Certificate of Blockchain Essential</name><desc id="dcofme">A course certificate.</desc><issuer class="icofme">周朝晖,谭粤飞</issuer><honoree class="hcofme">李权庭、張汀語、王三帅、卓永泰、李懿城、钟伟、黄浴昕、刘倍麟、唐婷婷、黎兆、周朝晖、谭粤飞、黄烁萍、曾洁玲、Tung Sau Chun Queena</honoree><artist>Derek Zhou and Tung Sau Chun Queena</artist><defs><style>.cofmea{fill:#fff;stroke:#16338e;stroke-width:5;}.cofmeb,.cofmed{fill:#16338e;}.cofmec{fill:none;stroke:#16338e;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.25px;}.cofmed{font-size:11px;font-family:'Arial Black',sans-serif,Helvetica;font-weight:bold;}.cofmee{font-family:Georgia,serif,'Helvetica Neue',Helvetica;font-size:15px;text-anchor:middle;fill:#3D1D0C;}.cofmef{font-size:6px;text-anchor:middle;fill:#3D1D0C;}.cofmeg{fill:#ffda00;}.cofmeh{fill:#ffb000;}.cofmei{font-family:sans-serif,'Helvetica Neue',Helvetica;font-size:8px;text-anchor:middle;fill:#3D1D0C;}.cofmej{font-family:STKaiti;font-size:15px;text-anchor:middle;fill:#3D1D0C;}</style></defs><rect class="cofmea" width="200" height="200"></rect><circle class="cofmeb" cx="17.64" cy="182.41" r="1.57"></circle><circle class="cofmeb" cx="180.81" cy="182.41" r="1.57"></circle><path class="cofmec" d="M44,33H13V175s11-1,11,11H174s-1-11,12-11V33H151" transform="translate(0 0)"></path><a href="https://u.naturaldao.io/be" target="_blank"><text transform="translate(39 76.23)"><tspan class="cofmed">Certificate of Honor</tspan><tspan x="59" y="30" class="cofmee">Blockchain Essentials</tspan><tspan x="59" y="44" class="cofmej">区块链概论和技术入门</tspan><tspan x="59" y="68" class="cofmei">周朝晖 谭粤飞</tspan><tspan x="59" y="80" class="cofmei">Shenzhen University</tspan><tspan x="59" y="90" class="cofmef">2019.11.19</tspan></text></a><path class="cofmeb" d="M147.77,23.31a.64.64,0,0,0-.71.2l-2,2.5a.62.62,0,0,0-.12.57.67.67,0,0,0,.39.43l.39.14c-.08.19-.16.38-.24.54l-.79.95a3.4,3.4,0,0,0-1-.28,1.84,1.84,0,0,0-.41,0,1.55,1.55,0,0,0-1.72,1.36A1.55,1.55,0,0,0,143.24,31h0v1.6h0a14.55,14.55,0,0,1-3.12-.35,16.9,16.9,0,0,0-2.63-.36,2.24,2.24,0,0,1,2.15-1.61.63.63,0,0,0,.6-.43.66.66,0,0,0-.19-.71,1.69,1.69,0,0,1-.63-1.5A5.79,5.79,0,0,1,142,23.81l.12-.08a.64.64,0,0,0-.7-1.07l-.13.09c-2,1.35-3,2-4.2,2-.41,0-1.16,0-1.16-2.24a.64.64,0,0,0-.4-.59.65.65,0,0,0-.7.14l-4.76,4.77a4.6,4.6,0,0,0-1.18,2.89v.72a1.53,1.53,0,0,1-1.53,1.52h-2.24V24.18l.54-.53a.64.64,0,0,0-.91-.91l-.53.53h-3.34a.64.64,0,0,0-.45.19l-2.69,2.69h-1.18a2.09,2.09,0,0,1-.79-.15l-1.3-1.3a2.26,2.26,0,0,1-.15-.79.64.64,0,0,0-1.28,0,3.52,3.52,0,0,0,3.52,3.52h5.09a5.34,5.34,0,0,1-.87,2.21A7.45,7.45,0,0,0,119.55,34v.63l-1.89-.69-1.15-1V31.27l.65-1.31a.65.65,0,0,0-.28-.86.64.64,0,0,0-.86.29l-.15.29-.51-1a.64.64,0,1,0-1.14.57l.67,1.35.18,2.85-.49,1a.64.64,0,0,0,.28.86.63.63,0,0,0,.86-.29l.25-.49,2.58,3.62a2.27,2.27,0,0,0,1.64.83h1.13l-1.52,3h-1.62l-1.3-.65a.64.64,0,1,0-.57,1.14l.29.15-1,.51a.64.64,0,0,0,.29,1.21.59.59,0,0,0,.29-.07l1.35-.67,2.85-.18,1,.49a.64.64,0,1,0,.57-1.14l-.65-.33,3.51-3.5h4.56l1.88,1.4L130.56,42H129l-1.31-.65a.65.65,0,0,0-.86.28.64.64,0,0,0,.29.86l.29.15-1,.51a.63.63,0,0,0-.29.86.64.64,0,0,0,.57.35.59.59,0,0,0,.29-.07l1.35-.67,2.85-.18,1,.49a.64.64,0,0,0,.86-.28.63.63,0,0,0-.29-.86l-.64-.33,2.64-2.64,1,.51a.59.59,0,0,0,.29.07.63.63,0,0,0,.57-.36.63.63,0,0,0-.29-.85l-1.39-.7a1.2,1.2,0,0,1-.64-1.22,1.59,1.59,0,0,1,.86-1.1,8.2,8.2,0,0,0,4.46,1.91l1.3,3.92h-1.12l-1.31-.65a.63.63,0,0,0-.85.28.64.64,0,0,0,.28.86l.3.15-1,.51a.64.64,0,0,0,.29,1.21.58.58,0,0,0,.28-.07l1.35-.67,2.86-.18,1,.49a.64.64,0,1,0,.58-1.14l-1.09-.55V37.55l1.23.62a.59.59,0,0,0,.29.07.64.64,0,0,0,.29-1.21l-2.17-1.09-1.17-.58h2.33a3.53,3.53,0,0,0,3.52-3.52,3.48,3.48,0,0,0-.52-1.81s0-.06,0-.08l0,0a3.79,3.79,0,0,0-.31-.39,9.11,9.11,0,0,0,1.06-1.92l.4.14a.54.54,0,0,0,.22,0,.62.62,0,0,0,.37-.11.65.65,0,0,0,.27-.53V23.91A.63.63,0,0,0,147.77,23.31ZM123,39l-.44.44.22-.44Zm18.19-.74v.48l-.16-.49Z" transform="translate(0 0)"></path><path class="cofmeb" d="M81.7,23.27a.64.64,0,0,0-.64.64,2.26,2.26,0,0,1-.15.79L79.61,26a2.09,2.09,0,0,1-.79.15H77.64L75,23.46a.64.64,0,0,0-.45-.19H71.16l-.53-.53a.64.64,0,0,0-.91.91l.54.53v7.74H68a1.53,1.53,0,0,1-1.53-1.52v-.76a4.64,4.64,0,0,0-1.2-2.88L60.55,22a.65.65,0,0,0-.7-.14.64.64,0,0,0-.4.59c0,2.24-.75,2.24-1.16,2.24-1.22,0-2.17-.61-4.2-2L54,22.66a.64.64,0,0,0-.7,1.07l.12.08A5.77,5.77,0,0,1,56,27.68a1.69,1.69,0,0,1-.63,1.5.66.66,0,0,0-.19.71.63.63,0,0,0,.6.43,2.24,2.24,0,0,1,2.15,1.61,16.9,16.9,0,0,0-2.63.36,14.55,14.55,0,0,1-3.12.35V31a1.55,1.55,0,0,0,1.72-1.36,1.55,1.55,0,0,0-1.72-1.36,1.84,1.84,0,0,0-.41,0,3.4,3.4,0,0,0-1,.28l-.79-.95c-.08-.16-.16-.35-.25-.54l.4-.14a.67.67,0,0,0,.39-.43.62.62,0,0,0-.12-.57l-2-2.5a.64.64,0,0,0-.71-.2.63.63,0,0,0-.43.6v3.24a.65.65,0,0,0,.27.53.62.62,0,0,0,.37.11.54.54,0,0,0,.22,0l.4-.14a9.11,9.11,0,0,0,1.06,1.92,3,3,0,0,0-.31.39l0,0s0,.06,0,.08a3.47,3.47,0,0,0-.51,1.81,3.53,3.53,0,0,0,3.52,3.52H54.5l-1.18.58L51.16,37a.64.64,0,0,0,.29,1.21.59.59,0,0,0,.29-.07L53,37.55v4.69l-1.09.55a.64.64,0,0,0,.58,1.14l1-.49,2.86.18,1.35.67a.58.58,0,0,0,.28.07.66.66,0,0,0,.58-.35.64.64,0,0,0-.29-.86l-1-.51.3-.15a.64.64,0,0,0,.28-.86.63.63,0,0,0-.85-.28L55.62,42H54.5l1.3-3.92a8.2,8.2,0,0,0,4.46-1.91,1.59,1.59,0,0,1,.86,1.1,1.2,1.2,0,0,1-.64,1.22l-1.39.7a.63.63,0,0,0-.29.85.63.63,0,0,0,.57.36.59.59,0,0,0,.29-.07l1-.51,2.64,2.64-.64.33a.63.63,0,0,0-.29.86.65.65,0,0,0,.86.28l1-.49,2.85.18,1.35.67a.59.59,0,0,0,.29.07.64.64,0,0,0,.57-.35.63.63,0,0,0-.29-.86l-1-.51.29-.15a.64.64,0,1,0-.57-1.14L66.42,42H64.85l-.66-1.64L66.07,39h4.56l3.51,3.5-.65.33a.64.64,0,1,0,.57,1.14l1-.49,2.85.18,1.35.67a.59.59,0,0,0,.29.07.64.64,0,0,0,.29-1.21l-1-.51.29-.15a.64.64,0,1,0-.57-1.14l-1.3.65H75.61l-1.52-3h1.16a2.26,2.26,0,0,0,1.63-.86l2.56-3.59.25.49a.63.63,0,0,0,.86.29.64.64,0,0,0,.28-.86l-.49-1,.18-2.85.67-1.35a.64.64,0,1,0-1.14-.57l-.51,1-.15-.29a.64.64,0,0,0-.86-.29.65.65,0,0,0-.28.86l.65,1.31V33l-1.15,1-1.89.69V34a7.45,7.45,0,0,0-1.26-4.36,5.34,5.34,0,0,1-.87-2.21h5.09a3.52,3.52,0,0,0,3.52-3.52A.64.64,0,0,0,81.7,23.27Zm-27.45,15h.16l-.16.49ZM72.66,39l.22.44L72.44,39Z" transform="translate(0 0)"></path><rect class="cofmeg" x="93.69" y="27.25" width="8.04" height="1.49"></rect><path class="cofmeg" d="M97.68,30.13h-1c-.3,1.22-.82,1.28-.82,2.62a3.71,3.71,0,0,0,1.78,2.93h0a3.71,3.71,0,0,0,1.77-2.93,3.39,3.39,0,0,0-.56-1.89,3.62,3.62,0,0,1-.25-.73Z" transform="translate(0 0)"></path><path class="cofmeg" d="M95.75,30.13h-.93a2.53,2.53,0,0,1-1.4.36,4.33,4.33,0,0,1-2.51-.8,2.41,2.41,0,0,0,1.93,2.61,3.36,3.36,0,0,0,3.88-2.17Z" transform="translate(0 0)"></path><path class="cofmeg" d="M104.76,20.21a6.73,6.73,0,0,0-5.56,3.94c.47-1.09,1.08-2.14,1.59-3.16a10.88,10.88,0,0,0,1-2.5,5.54,5.54,0,0,0,.1-1c0-3.13-4.16-7.49-4.16-7.49h0s-4.16,4.36-4.16,7.49c0,2.15,1.61,4.27,2.62,6.59a6.65,6.65,0,0,0-5.49-3.88c-2.39,0-4.55,1.2-4.55,3.91S89.74,27,89.74,27v0L90,27a8.07,8.07,0,0,1-.55-2.16c0-.75.46-1.52,2.1-1.58,1.18.06,2.63,1.23,3.49,2.47h5.29c.87-1.24,2.32-2.41,3.49-2.47,1.65.06,2.11.83,2.11,1.58A7.71,7.71,0,0,1,105.4,27l.27,0v0s3.63-.19,3.63-2.9S107.15,20.21,104.76,20.21Z" transform="translate(0 0)"></path><path class="cofmeg" d="M104.19,29.88h0c-.09.07-.19.11-.28.17a4.24,4.24,0,0,1-1.92.45,2.53,2.53,0,0,1-1.4-.36H98.65c.92,2.78,3.92,2.17,3.92,2.17a2.41,2.41,0,0,0,1.93-2.61Z" transform="translate(0 0)"></path><path class="cofmeh" d="M90.1,32.79a7.46,7.46,0,0,0-.88.16,6.44,6.44,0,0,0-3.13,2,9.63,9.63,0,0,0-2,3.44,11.16,11.16,0,0,0-.47,2.19,13.31,13.31,0,0,0,0,2.6A8.36,8.36,0,0,0,85.89,48a6,6,0,0,0,3.51,1.86,8,8,0,0,0,1.38,0c1.77-.19,3.3-1.21,4.76-3.16a18,18,0,0,0,1.55-2.54l.12-.25.34.5c1.72,2.6,3.36,4.29,5,5.1a4.57,4.57,0,0,0,2.86.54,6.54,6.54,0,0,0,4.52-2.79,9.81,9.81,0,0,0,2-5.25,14,14,0,0,0,0-1.83,8.68,8.68,0,0,0-1.36-4.09,6.63,6.63,0,0,0-4-3,5.27,5.27,0,0,0-1.32-.13,4.24,4.24,0,0,0-1.32.15,6,6,0,0,0-2.21,1.13,13.42,13.42,0,0,0-1.32,1.3,16.52,16.52,0,0,0-1.92,3l-.2.37-.27-.4q-3.51-5.26-6.63-5.73A9.32,9.32,0,0,0,90.1,32.79Zm15.13,2.93a3.53,3.53,0,0,1,2.17,1A5.49,5.49,0,0,1,109,41.2a7.07,7.07,0,0,1-.48,2.32A4.36,4.36,0,0,1,106.33,46a2.11,2.11,0,0,1-1,.19,1.28,1.28,0,0,1-.58-.07c-1-.35-2.23-1.48-3.85-3.51-.41-.52-1.49-2-1.49-2a13.63,13.63,0,0,1,.9-1.52,11.46,11.46,0,0,1,1.51-1.9,5.4,5.4,0,0,1,1.51-1.13A3.2,3.2,0,0,1,105.23,35.72Zm-14.73,1a4,4,0,0,1,2.23,1.43,46.94,46.94,0,0,1,3,3.8l.23.32-.12.21A17.25,17.25,0,0,1,94.15,45a11.18,11.18,0,0,1-1.25,1.24,4.18,4.18,0,0,1-1.7.85,2.68,2.68,0,0,1-.66.05,3.09,3.09,0,0,1-.62,0,3.6,3.6,0,0,1-1.94-1,5.2,5.2,0,0,1-1.49-3,11.05,11.05,0,0,1,0-1.74,6.23,6.23,0,0,1,1.43-3.59A2.85,2.85,0,0,1,90.5,36.71Z" transform="translate(0 0)"></path></svg>
ERC-1155通证标准是用于多种通证管理的合约标准接口。 单个部署的合约可以包括同质化通证、非同质化通证或其它配置(如半同质化通证)的任何组合。
是管理多种通证类型的合约的标准接口。单个智能合约可以涵括同质通证、非同质通证或其它配置的任意组合(如半同质通证)。而ERC-20和ERC-721等等,每个智能合约只能发行一种单一类型的通证。
ERC-1155多重通证标准允许每个通证ID代表一种新的可配置的通证类型,它可以有自己的元数据,供应总量和其它属性。
ERC-1155允许合约的参与者,而非管理者,任意发行自己的通证。
EIP-3664 extends ERC-1155, divides game NFT attributes into four categories:
特色:
项目网站:https://solv.finance
从应用效率和超低的手续费两方面挑战 ERC-20。