前言:公链是区块链发展的前提基础,也是区块链行业未来发展的核心保障。而目前区块链的发展现状是,底层公链的性能尚未发展起来,在其上构建的各类DApp严重受限于性能,各种共识算法都有不完美之处。以太坊是一个建立在区块链技术之上,去中心化应用平台。它允许任何人在平台中建立和使用通过区块链技术运行的去中心化应用。在以太坊上发行最广泛的即是同质化代币——ERC20Token,作为一种预发行的通用代币,它构建了几乎市面上绝大多数通证经济的基础。而ERC721是以太坊智能合约更加完善的体现,它可以把各种不同特征的事物进行具象化定义,并求得完全非同质的解。本文将浅析同质化代币的抽象共识,非同质化代币的映射理念,并以此提出对于多链体系的非同质化构思。
很多开发者已经跃跃欲试参与到区块链开发事业当中,但往往会感到有点力不从心。因为公链的底层逻辑虽不复杂但也是一个浩大的工程,在公链/项目未上线前的人力物力成本也是十分巨大的。以太坊智能合约为区块链开发者们打开了新思路,他们通过构建一种同质化的token,非常轻松的就能将自己项目的权益预发放出去,同时获得早期的资金。
也许你经常看到ERC20和代币一同出现,ERC20是以太坊定义的一个代币标准。要求我们在实现代币的时候必须要遵守的协议,如指定代币名称、总量、实现代币交易函数等,只有支持了协议才能被以太坊钱包支持。
一个典型的ECR20代币有如下基础变量和函数:
name:代币名称
symbol:代币符号
decimals:代币小数点位数,代币的最小单位,18表示我们可以拥有0.0000000000000000001单位个代币。
totalSupply():发行代币总量。
balanceOf():查看对应账号的代币余额。
transfer():实现代币交易,用于给用户发送代币。
动态 | 英国金融时报:各国央行应学习中国纳入数字支付 而非发行数字货币:金融时报周二刊文称,中央银行不应发行数字货币,因为其没有能力与个人客户打交道,并且还涉及合规性检查等问题。中央银行不应急于与Facebook、Tether和微信这样的公司竞争或是直接禁止它们,而是最好向中国人民银行那样将数字支付纳入中央银行业务并将重点放在他们最擅长的方面:管理稳定性。这之后,如果稳定币变得受欢迎,以至于其储备开始成为贷款的限制,中央银行就可以开始对这些储备收取负利率,同时可以决定向客户收取多少费用。[2019/9/18]
transferFrom():实现代币用户之间的交易。
allowance():控制代币的交易,如可交易账号及资产。
approve():允许用户可花费的代币数。
ERC20合约的TOKEN一直以来被视以一种单纯的链上资产来看待,它一直“活的”像是被映射在Ethereum上的Coin,而社群标签&价值共识是本来ERC20运行的一个深层含义。
形似余额但并不是为了度量余额,熟悉比特币和以太坊区别的朋友可能都会有所了解,ETH是账户机制的设计而BTCOIN是未花费输出的设计。从技术层狭义的理解就是重隐私性到侧重空间性能的不同,但是更深的一层哲学理解便是通货的度量和共识的度量。可以简单的说,UTXO模拟了掏出不同面值的货币并获得找零的流程,模拟了各式货币的流通,应用在通货资产定义的比特币上非常的合适。而ETH的账户设计其实不能简单理解为我们最常联想到的您在银行里的那个账户,从普通人角度去看银行账户是一个管理自己存下来的钞票的地方,而Ethereum的账户的非常重要的一部分意义其实是对每一个账户背后共识度量的集合。
在今年4月至5月份,BEC、SMT等曝出的无限刷代币量漏洞,明显提升了大家对ERC20“资产”的认识,就是在合约中看见那个总供给量上限并不会真正限制前供给量,这次事件中它们的当前供给量一飞冲天“直逼月球”。其实在以太坊上TotalSupply只起到了一个告知作用,对currentTotalSupply并没有强制的约束,这正是对通货度量和共识度量的区别的一个体现。度量通货则总攻击力必须要对当前供给量有绝对的限制,而度量共识则合约本身包括这份“告知书”就是共识的内容之一,"履约"并不是强制的因为"违约"也可以是共识。所有Token的持有者共同的认知,微妙的支撑着各种ERC20Token的价值,持有者也便在悄然组成一个个或紧密或松散共识社群。
声音 | 扎克伯格:在Libra正式启动之前仍有许多事情需要学习 我们将找到最佳的前进方式:今日,Facebook创始人扎克伯格(Mark Zuckerberg)在其个人Facebook主页上发文表示:今天,Facebook和世界上27个组织一起成立了非营利性的Libra Association,并创造了一种名为Libra的新货币。Libra的使命是建立一个简单的全球金融基础设施,为世界各地数十亿人提供动力。它由区块链技术提供动力,计划在2020年发布。 隐私和安全将融入(Libra项目的)每一步。例如,Calibra将有一个专门的风险管理专家团队,专注于防止人们出于欺诈目的使用Calibra。我们会提供保护,所以如果你丢失了Libra货币,我们会提供退款。我们也相信,让人们有选择是很重要的,所以你有机会在Libra网络上使用许多第三方钱包。 在Libra正式启动之前,还有很多需要学习和做的事情。我们知道这是一项重大的任务和责任,我们致力于把它做好。我们一直在与金融包容、经济、安全、隐私和区块链等领域的政策制定者和专家合作,我们将继续听取他们的反馈,以找出最佳的前进方式。我们感谢他们的合作,感谢Libra Association的所有企业、组织和学术机构。[2019/6/18]
每一个ERC20Token持有者们就像是一个群,持有的份额分布正是从“群管理”到“群新人”的自治分布。对应的持有的Token越多与这个群体关系越紧密,相应的拥有更高的话语权,持有的越少越边缘,越相对事不关己,话语权也越微不足道。Erc20Token正是每一个社群的标签,共识价值与每一个成员都不同程度的息息相关,这种Token更是它的复合载体。
当然这并不是Erc20Token唯一胜任的事情,对于普通币民来说它们现在更多的是被视作一种仅仅是背着各种故事&用途的资产,像自己买的股票一样在交易所里面当码子使用。不过随着广大投资者的认知逐步提升,这其中更多的理解将被更广泛的接受,就像对各种Erc标准其术业更专攻的认识。譬如说现在更多的人知道有时锚定某一特定的事物,Erc721才是更好的选择。
周鸿祎:年前开始学习区块链,在3点钟群没表达看法因一些东西没看懂:今日360集团创始人兼CEO周鸿祎在采访节目中表示,“从年前开始,我自己也在努力学习区块链的东西。 我在3点钟群里没怎么表达看法,是因为确实还没怎么看懂一些东西。 ”但周鸿祎表示,“但在安全上我们是专家,所以在17年年底18年年初,实际上我们就已经在关注区块链安全,开始研究区块链技术和相关的安全问题。”他还表示,在过程中,和业内很多项目也都有过接触沟通和交流,之后还是会继续深入研究区块链安全问题,也会继续保持开放心态,欢迎大家来交流合作。[2018/5/30]
什么是ERC-721?现在我们看到的各种加密猫猫狗狗都是基于ERC-721创造出来的,每只都是一个独一无二的ERC-721代币,不过ERC-721在区块链世界远不止猫猫狗狗,它更大的想象空间在于将物理世界的资产映射到区块链上。
ERC721是由DieterShirley在2017年9月提出。DieterShirley正是加密猫CryptoKitties背后的公司AxiomZen的技术总监。因此加密猫也是第一个实现了ERC721标准的去中心化应用。之前,该标准仍虽已被广泛使用,但在官方一直处于草稿阶段,直到6月,ERC721号提议才正式被以太坊作为标准接受。
那怎么理解非同质代币呢?非同质代表独一无二,以加密猫为例,每只猫都被赋予拥有基因,是独一无二的,猫之间是不能置换的。这种独特性使得某些稀有猫具有收藏价值,也因此受到追捧。
ERC20代币是可置换的,且可细分为N份,而ERC721的Token最小的单位为1,无法再分割。
如果同一个集合的两个物品具有不同的特征,这两个物品是非同质的,而同质是某个部分或数量可以被另一个同等部分或数量所代替。
非同质性其实广泛存在于我们的生活中,如图书馆的每一本,宠物商店的每一只宠物,歌手所演唱的歌曲,花店里不同的花等等,因此ERC721合约必定有广泛的应用场景。通过这样一个标准,也可建立跨功能的NFTs管理和销售平台,使生态更加强大。
ERC721最为一个合约标准,提供了在实现ERC721代币时必须要遵守的协议,要求每个ERC721标准合约需要实现ERC721及ERC165接口。
一个典型的ECR721代币有如下基础变量和函数:
balanceOf():返回由_owner持有的NFTs的数量。
ownerOf():返回tokenId代币持有者的地址。
approve():授予地址_to具有_tokenId的控制权,方法成功后需触发Approval事件。
setApprovalForAll():授予地址_operator具有所有NFTs的控制权,成功后需触发ApprovalForAll事件。
getApproved()、isApprovedForAll():用来查询授权。
safeTransferFrom():转移NFT所有权,一次成功的转移操作必须发起Transer事件。
ERC721定义的一些函数使其和ERC20代币标准存在一致的地方。这样做的目的在于更加方便现有钱包展示有关于代币的简单信息。这些函数使符合该标准的智能合约表现得像诸如比特币或以太坊之类的普通加密货币,方式在于定义使用户执行诸如将代币发送给其他人和核实账户余额等动作的函数。这些函数定义了合约处理代币所有权的方式以及转移所有权的方式。其中最值得注意的函数为takeOwnership和transfer,分别担任提取和发送功能,且对用户之间转移代币来说必不可少。
函数ownerOf返回某代币的所有者的地址。由于每个ERC721代币都是非同质且因此独一无二的,其在区块链上通过一个唯一的ID被查询。我们可以利用其ID判断代币的所有者。
函数approve批准或授予另一个实体代表所有者转移代币的权利。例如,如果Alice拥有1个MyNFT,她可以为朋友Bob调用approve函数。调用成功后,Bob稍后就可以代表Alice获得该代币的所有权或对该代币进行操作。关于所有权转移的更多内容可参见函数takeOwnership和transfer。
函数transfer,转移代币的下一个方法就是使用该函数。函数transfer让代币所有者将其代币发送给另一个用户,与独立加密货币类似。然而,只有收款账户事先被打款账户授予获得代币的权利,转账才能开始。
非同质化代除了表示你拥有某种东西,然后,这个所有权反过来能证明关于你自身的某个状态。可收藏的对象并不限于电子猫。人类一直以来有收藏东西的历史;这没什么新鲜的。从物理货币到神奇宝贝卡,人们喜爱收集。这是一种出于对稀缺物品的独特兴趣而形成的习惯。商品价值与其稀缺程度有关,与此类似的是,收藏物对于收藏者的价值与其和其它物品相比起来的稀罕程度相关。
比如,你参加某个社团活动,然后社团会给参与者一个token,然后,当你在自己的朋友圈晒这个token时,朋友圈里的任何人其实都可以通过区块链验证你是否拥有这个token,并且这也将是一个非常强烈的社交信号。且当这个社团的象征意义越大,或者在越来越多的人心中形成共识时,这个token所代表的信息量就越大和明确。
我们能够将以太坊代币看作稀有且具有收藏价值的物品,并且其中每个代币都遵循以太坊社区内被称为ERC721的标准。以太坊代币标准721,或称ERC721,是DieterShirley在2017年底引入的一项以太坊改进计划。这项提议标准让智能合约能够像ERC20一样按照可交易代币进行操作。ERC721代币是独一无二的,原因在于这些代币是非同质的。
再想想,其实我们的学位、信用额度是不是都有类似的功能?许多银行的信用卡额度都是据你所拥有的信用卡最高额度来审批给你的额度,现在也有许多单位会要求你出示芝麻信用分。如果你是某一产品或设备的极热Fans,比如音响设备、手表,你拥有东西本身,就同时在向接触到你的人传达了许多你特有的信息。
当你把所有的东西都平权化,所有人都拥有平等的接入某一个东西的权利,这时,每个人其实反过来是丧失了自己的个性化。
所以,非同质化的token,是个人化的,个性化的,包含你自己独特人格烙印的东西。它可能成为现在这个时代的一种自我表达,这个自我表达比其他任何的语言和媒体更有分量、更有意义。
“非同质”本身是一个挺奇怪的概念。金钱和股份是同质化的。比如我有500块钱,我可以把里面的100块钱转给你,到底是转哪一部分的100块并不重要。但对一件T恤来说,你没办法这么做。所以,对钱和股份这些同质化的东西来说,唯一重要的是它的数量。
但生活中绝大部分的事物是非同质化的。你和我就是非同质化的。比特币一开始是解决钱的问题,所以大家可能就都往同质化的代币方向走。比如货币、股份、资产等等。那么,我们设想,有没有可能把一个公链体系做成既有既定框架,有一定体系,但又可以按需定制,独一无二的多链系统呢?
我们EKT的多链,采用“多链分而治之”的新方案重新设计了一个保障每个合约都能正常运行的公链,其中就使用到了一套非同质化的定制,拥有现成框架,且不可分割的多链构架。这一创新极大程度上简化了架构,降低了数据处理压力,确保一条链上流量激增不会影响到另一条链的效率,在链上进行的任何业务都不会收到其他业务干扰,有效实现了资源隔离。
其实EKT解决的一个核心问题是,目前Dapp的开发难度的问题如果使用以太坊的Solidity开发,需要学习以太坊的一整套逻辑,在复杂应用开发的时候需要考虑各种优化方案,同一个功能使用传统C/S结构一天写完的,用以太坊可能要写几周时间,对开发者来说很不友好。这一套流程若要Dapp/公链开发者写出来,势必在真正开发区块链功能之前就已经被这些繁琐但其实通用的步骤耗费过多精力和资源。
所以,这一点对所有其他搭建在区块链上的应用和产品都是一样的。比如我要是在区块链上做了一个Minecraft游戏,那么任何人也可以在Minecraft游戏上开发新的游戏。只要接入区块链,所有的游戏、所有的dapp就天然拥有了这种潜在的扩展能力和开放性。
默认就是拥有这种扩展能力的,这也是dapp最自然的开放理念。如果有人不希望有这种开放性的话,他完全可以通过自己搭建私有服务器的中心化的方式来做。区块链平台会为所有的应用统一提供这种开放性和可扩展性。在EKT中,坚持了这样一个理念,一个货币系统中不需要图灵完备的开发语言,不同的应用间尽可能实现隔离的原则。因此我们在设计的时候,把token的处理和DApp的处理分开了,也就是说在EKT上存在两种类型的链:token链和DApp链。
token链就是专门用于处理token交易的一条链,鉴于ERC20代币不断曝出的各种漏洞,在EKT上内置了token对象,开发者只需要定义自己要发的token的数量即可。另外,EKT的token链是一个多链多共识的结构,也就是说不同的token可以放在不同的token链上进行打包,多链并行极大提高交易处理速度。
EKT的DApp链是供不同开发者开发DApp的一条链。我们从智能合约开发语言、数据存储、效率三个方面进行了优化。EKT的DApp链基本上可以实现与现在的互联网应用相同甚至更快的开发速度,可实现的功能性也与互联网应用没有太大差异,最重要的是,我们可以实现大部分事件的1秒执行和确认,安全性要求比较高的事件可以实现3秒的确认。
EKT的中心思想就是设计一个社区的机制,让开发者可以轻易的开发一个可以承载DAPP的主链,其他的交给EKT来处理,EKT的“一链一主币,多链多共识”的机制为后来的区块链项目开发提供了很大的便利,可以使用于任何区块链适用的应用场景。正如DieterShirley对erc721协议的定义一样,我们推出的多链只能是一个最低的标准。就是说,你可以认为一个产品最小化的版本是需要包括哪些功能的,然后你可以在上面衍生其他新的功能和新的玩法,如果你只有这些最小化的功能,那这个产品肯定就没什么意思了。
EKT提供了一套底层的区块链机制,其他的区块链项目可以很容易的基于EKT的主链代码部署一套自己的主链,然后按照需求做一些定制化的设定,比如选择共识机制等。在EKT上编写的区块链项目将无需过于担心安全性问题,因为每一个接口都是非常简单并且在许多条并行主链上部署和运行的。部署主链时可以灵活的发行自己主链的代币以及选择共识算法。新部署的主链也可以加入到EKT多链技术的整个生态,共享EKT生态的用户资源,代币也可以和EKT主币以及其他主链的代币进行交换和流通。
以上就是我对区块链同质化与非同质化思维的一些思考,和一些在设计EKT的多链多共识时对建设非同质化多链底层的考虑。欢迎大家提出疑问,共同探讨。
参考阅读:
20170119区块链-比特币的共识机制
20171120以太坊是什么
20180214教程|剖析ERC721——了解非同质以太坊代币
20180414详解“多链多共识”机制
20180426社群标签&价值共识-ERC20的一个深层的奥义
《EIP721:Non-fungibletokenimprovementproposal.》
《BTCwhitepaper》
《EKTwhitepaper》
摘要:大盘从昨日出现回调,部分资金高位获利,比特币的相对表现有所变强,场外资金流入放缓,短时震荡调整为主.
之前的一篇《硬件钱包-开源还是安全芯片?》文章引起了广泛的讨论,虽然我们已经用非常清晰的逻辑说明了“为什么说开源是硬件钱包的前提条件?”“以及”安全芯片的目的是什么?”.
今天是周六,但该水还是得水一篇,就聊一聊最近在股市资讯中经常看到"区块链50指数"这个词,它代表了什么含义、投资它是在投资什么呢? 胡说扒道 在股票市场中.
近期加密货币市场波澜不惊,但是美国的金融市场实际上已经暗流涌动。美国金融市场和全球经济变化息息相关,大家应该还记得2008年美国次贷危机时导致的全球性金融危机.
2020年的2月14日,对所人来说都是一个特殊的情人节,COVID-19疫情当前,如你我这般的普通人,能做得实在太有限.
区块链产业指有关区块链技术的各类参与方,其涵盖领域众多,大致可以分为五大版块。根据火币研究院在今年2月份发布的《全球区块链产业全景与趋势年度报告》,区块链产业的五大版块分别是:一,硬件和基础设施.