6月10号,ICPLeague联合社区开发者举办了第三期的开发者电话会,邀请了DFinance项目的开发者共同探讨了如何在DFINITY上发行代币,以及类似ERC-20代币标准的设计思路。点击“阅读原文”可以查看视频回放。
本期亮点:
ICP本身就是DFINITY的第一个代币,是以智能合约的形式部署在链上的,因此可以作为实现标准的参考;
在DFINITY上实现类ERC-20标准时,与以太坊不同,DFINITY的区块链上不会保留交易的massage,因此需要在代币标准下记录交易记录;
因为有限的容器空间中需要保存交易记录,因此代币合约存在扩容问题;
DFINITY使用了反向gas模型,用户使用无需消耗gas,因此为了避免大量垃圾交易攻击,需要在代币标准中写入转账扣费或手续费;
ICP代币的实现
在以太坊网络中,ETH代币是区块链底层的原生代币,其挖矿、转账、与合约交互、支付gas等交易事件也被打包放在区块中,与区块链耦合;而在DFINITY上,ICP代币实际上搭建在网络上被称为“Ledger”的智能合约,ICP代币的查询、转账、交易管理与质押等功能是现在智能合约中。
由于DFINITY的智能合约更类似于互联网微服务下的容器,而智能合约的状态是保存在Ledger容器内部。实际上,ICP的所以交易记录是保存在智能合约内部的,需要使用该合约的函数进行查询。
Jules Urbach :RNDR 如何成为引领NFT加密艺术浪潮的GPU计算平台:JulesUrbach:RNDR如何成为引领NFT加密艺术浪潮的GPU计算平台3月29日,在以《RNDR渲染网络:引领NFT加密艺术浪潮的GPU计算平台》为主题的AMA中,HuobiGlobalNFT板块项目RNDRNetwork发起人JulesUrbach表示,NFT是实现开放去中心化的虚拟世界的重要基石,而开放去中心化的虚拟世界是RNDR网络自2017年推出以来的愿景。JulesUrbach介绍RNDR将会面向艺术家推出一些新的工具,包括在RNDR网络上铸造带有深度场景图验证的NFT,将ORBX格式的文件变成NFT、生成式艺术(GenerativeArt)等。JulesUrbach还表示,NFT拥有在今天的数字艺术之外的巨大潜力。增强现实、全息显示和实时的沉浸式流媒体将让我们能够在几年后创作出如今只有在科幻小说中才会出现的NFT内容。NFT将可以与物理空间绑定,记录在区块链上的虚拟物体将日益成为人们的日常生活的一部分。[2021/3/29 19:26:18]
实际上,只有DFINITY的gas代币cycles是链上唯一的底层原生代币,而只有通过燃烧ICP才能获取cycles。
所有操作都记录为Ledger容器内的交易,同时DFINITY在Ledger容器中记录账本时使用了区块链式的数据结构。注意,这里的区块链只是存账本数据的格式,并不是我们理解的有共识的区块链。以下是实现的状态。
北冥社区创始人北冥:数字资产价格走势无法提前预知,核心在于如何应对:6月19日19:00,MXC抹茶特邀分析师,北冥社区创始人北冥做客MXC抹茶社区进行分享。北冥表示:“交易是对认知的变现,通过数字资产交易获取收益,离不开技术分析。均线缠论系统,有助于远离盲目多空。“中枢”一词源自《缠论》第108课,《缠论》作者禅师通过归纳演绎等数学方法,对任何走势进行统一的定义和分类,并给出一个较为合理的解决方案,《缠论》最厉害的地方就是“完全分类“,大部分走势都是无法提前被预知的,核心就在于应对。缠者,价格重叠区间也,买卖双方阵地战之区域也;禅者,破解之道也。以阵地战为中心,比较前后两段之力度大小。大者,留之,小者,去之。”[2020/6/19]
因此,ICP可以看成DFINITY上第一个代币规范,他的代码已经开源,在实现类似ERC-20标准时最好沿用ICP代币的设计,开源链接:https://github.com/dfinity/ic/tree/master/rs/rosetta-api/ledger_canister。
声音 | 海尔集团董事局主席:如何利用区块链改变企业未来:海尔集团董事局主席、首席执行官张瑞敏在近期参加的活动时提出:产品会被场景替代,行业将被生态覆盖。海尔以区块链为载体,以分布式账本彼此间分享基于物联网的数据资源,一方面不断优化用户体验,一方面所有生态攸关方均得到增值,多方共赢。海尔依据自身优势在区块链领域展开了3个方向的探索:第一,以先发优势,参与制定区块链标准;第二,以延伸效应,赋能产业生态;第三,以区块链思维,变革组织结构。(IT168)[2019/11/19]
沿用ERC-20的代币标准
访问https://github.com/dfinance-tech/ic-token/blob/main/simple-erc20/src/token.mo,可以查看DFinance沿用ERC-20的DFINITY代币标准的源码,使用了官方开发的语言Motoko编写。
owner_表示token创建者,一般是容器的部署者;name_表示名称;decimals_表示代币的精确位数;symbol_是代币的标志;totalSupply_是代币的总供应量。以上是一些基础。
但其实表示代币位数的decimals_可以考虑删除,在以太坊合约中需要这个参数是因为以太坊使用的solidy无法支持浮点数的计算,但是DFINITY的语言是可以支持浮点数运算的。
声音 | 罗玫:金融机构非常重视如何对加密货币进行计量:据数字金融资产研究中心微信公众号消息,清华经管数字金融资产研究中心主任罗玫称如何对加密数字货币进行计量是国际国内证券监管机构、税务和会计准则制定机构都非常重视的领域,国际会计准则和美国GAAP都没有对加密数字货币的会计计量和确认制定单独准则。建立新的财务报告规范需要会计准则制定委员会的参与,也需要和正在经历变化的加密数字货币的证券规范、以及税务规范同时融合更新。[2018/11/27]
balances是一个数据库下的类型,表示一个账户对应的余额是多少。这里使用了DFINITY的持久化数据库HashMap,在账户与余额间建立了联系。allowance记录的是Approve,这在以太坊中经常使用,允许一个账户或智能合约使用你的余额。
这个实现沿用了ERC-20的transfer、transferFrom、balanceOf、allowance、approve这些操作。关于代币的铸造与销毁功能,在以太坊上很多项目会选择直接把代币转入0x0地址进行销毁,因为不可能有人能逆向算出0x0地址的私钥,所以再也无法转出。但在DFinance的标准下并没有这么操作,因为DFINITY目前还没有公认的销毁地址,因此实现了一个burn方法,在数据库中直接减去余额。
韩国政府正在考虑如何兑现没收得来的加密货币:韩国政府正在考虑如何兑现最近没收所得来的加密货币。作为一起刑事案件罚款,政府没收了网站运营商“安恩”(Ahn)的191.32333418个比特币。韩国最高法院此前判定,加密货币是政府可以没收的财产。最有可能的选择是通过政府所有的拍卖平台进行拍卖。[2018/6/10]
更符合DFINITY的代币标准
从DFINITY上线后官方开源的了ICP的实现代码,在沿用ERC-20的情况下更贴近了官方的做法,尽量实现兼容,也变得更为复杂,开源代码:https://github.com/dfinance-tech/ic-token/tree/ledger/src。
DFINITY的ICP实现用中,账户使用的是accountID,而在该实现中使用的是PrincipalID,关于两者区别我在《对DFINITY的去中心化身份、账户与钱包介绍,开发者能如何利用?》中有过介绍,关于两者的选择社区也不同的意见。
最大的区别在于增加了记录转账历史消息的数据库:因为代币同样也是DFINITY上的智能合约的实现,因此和ICP存在同样的问题,即以数据最终一致性为先,而区块上查不到交易信息。因此必须在容器内建立数据结构来保存message。在核心代码下找到OpRecord.mo,每一次转账、铸造、销毁、approve的操作都以一条OpRecord的记录,一条OpRecord下有详尽的相关信息,方便用户日后查询。
在此前我们多次聊过扩容问题,同样在代币标准中又出现了。因为现在的需要在智能合约中保存代币的转账记录,这将是非常庞大的数据,而DFINITY目前只支持最大4GB的容量。
实际上所有DFINITY的应用都会遇到容器容量限制的问题,终极解决方案是实现一套自动扩容的数据库基础设施,它会会在一个容器容量消耗殆尽前,把数据划分到新的容器里。
这个基础设施相当于一个标准化的数据库中间层,上层DApps可以直接调用数据库中间层的接口,而数据库容器的扩容问题由中间层。目前虽然有尝试去实现数据库引擎的sudograph,但他目前更多是方便开发者自定义数据类型,还没有去尝试自动扩容。
当然短期内,也可以定期打包一些交易历史到外部静态存储中去,然后删掉DFINITY容器内的历史,只保留一段时间。而且DFINITY的WASM可能会支持64位,这样可以扩大单个容器的内存。
手续费抵抗垃圾交易攻击
在《为什么说是下一代区块链,DFINITY的8大核心优势!》中介绍过,DFINITY使用了反向的gas模型,以太坊上用户为自己的发送的交易付gas,而DFINITY上由部署合约的支付gas,普通用户不需要付手续费就能享受合约的服务,当然包括代币转账。
但可能会遭受潜在的攻击,如果有人恶意发出一大堆垃圾交易,或者不停地调用合约,又或者在你的合约里面塞满垃圾数据,消耗合约的存储空间与gas,就会出现宕机。在代币合约上的直接表现就是所有人都无法转账,甚至可以利用这种DDOS攻击阻止大家交易,从而操纵市场。
DFINITY的ICP代币在实现时考虑到了这一点,每次调用转账都需要扣去手续费,现在一笔操作回固定扣走0.0001,来防止攻击。而代币合约在设计时,可以衍生出更多有意思的设计:
1、转什么币,扣什么币手续费。代币合约的每次转账、铸造等操作,都扣取或销毁一定的数量或比例的代币,这种方案非常简单,听起来很像以太坊上的通缩代币设计。
2、转币扣ICP当手续费,类似ICP自身的实现。
3、在以太坊上每个计算操作都有固定的gas消耗数量,开发者可以去估算一个操作消耗的gas数量。目前在DFINITY上还么有这样的接口,但是是可以实现的。而且DFINITY的gas是使用稳定价格的cycles支付。因此可以先估算操作需要消耗多少cycles来计算操作的单价,然后根据交易所中cycles与该代币的交易对,来扣取对应数量的该代币,实现手续费完全覆盖交易处理成本。
进一步优化?去掉Approve
以太坊网络中因为ETH与ERC-20标准之间的差异,并且为了避免重入攻击,导致了approve这么一个额外的操作。但在DFINITY中,有人提议可以去掉approve功能,来提升使用体验,并提出来“订阅”的替代方案。并且这样也能防止攻击,因为在DFINITY模型下的approve,攻击者可以发送一大堆approve来占满容器的内存让其宕机。当让也有一些人提出来反对意见,具体社区讨论可以查看:https://forum.dfinity.org/t/thoughts-on-the-token-standard/4694/4。
使用PrincipalID节省空间
在《对DFINITY的去中心化身份、账户与钱包介绍,开发者能如何利用?》中我们介绍来DFINITY的PrincipalID和AccountID两种类似的ID:PrincipalID被用于容器的使用,而AccountID被用于账本,两者同源。目前DFINITY的ICP实现中使用的是?AccountID,但社区也有人提出希望在代币合约中使用PrincipalID。因为PrincipalID更短,可以节省25%的空间。
语言选择
官方在AMA中表示,建议开发者使用Rust来编写对安全性要求更高的代码,比如代币合约。
管理合约控制者
因为DFINITY的合约允许升级,因此合约的控制者具备较大权力,甚至可以增发代币,回滚业务,因此需要更好的去管理控制者。可以把控制者分配给零地址让合约永远无法升级,也可以把控制者替换为一个DAO,由社区集体管理。
关于DFinance
感谢DFinance开发者的分享,DFinanace正在建立DFINITY的代币标准,并帮助用户一键发行代币,并建立swap等金融基础。可以通过关注https://twitter.com/DFinance_AI获取他们的消息,也可以通过后续的测试链接铸造自己的第一个代币。
前言——UniswapV3不仅自身原理构造复杂,其LP做市特征也更为不可预测。我们选取分析了一些职业量化做市商在V3上的实践思考和经验,探寻影响LP做市行为的因子以及高级做市策略的演进.
1900/1/1 0:00:00备受瞩目的伦敦硬分叉升级于昨日在以太坊Ropsten测试网上线,而据watchtheburn.com的数据显示,在短短24小时内,网络已销毁了8万多ETH.
1900/1/1 0:00:00目前,数字人民币正在全国“10+1”地区及场景进行测试。与形形色色的虚拟货币相比,数字人民币有何不同?接下来,要如何进一步完善数字人民币生态系统?“以比特币、天秤币为代表,目前全球虚拟货币的数量.
1900/1/1 0:00:00本文来自?The?Block,原文作者:FrankChaparro摘要:AndreessenHorowitz正式推出了第三只加密基金?CryptoFundIII。该基金规模超过?22?亿美元.
1900/1/1 0:00:00金色财经区块链6月26日讯?2021年无疑是属于NFT的一年。就在如今较为低迷的数字货币市场环境中,非同质化代币NFT却在依旧疯狂生长.
1900/1/1 0:00:00迈阿密一个以海滩闻名的旅游城市正在迅速的转变为一个新的加密商业科技中心。迈阿密市长弗朗西斯·苏亚雷斯发起的比特币运动掀起了新一波潮流,表明他极力支持将迈阿密转变为下一个加密货币城市.
1900/1/1 0:00:00