17611538698
webmaster@21cto.com

区块链技术给工程师带来哪些机会?数字货币和ICO浅析

资讯 0 2213 2017-09-02 12:01:59
blockchain.jpeg

我们正处在变革的路口,基于区块链价值网络的数字资产正在掀起经济革命。数字货币拥有世界范围流通性,极高价值存储能力,是现有货币系统不能解决的。

ICO (首次代币发售,详见内文)基于区块链网络,提供了一种平等的、低门槛的方式,让普通民众参与到经济活动中,高可用架构后花园组织了区块链技术中以数字货币和 ICO 为主的内部分享,本文是分享的精华内容。

数字货币

货币自出现到现在的几千年时间中经历了多种形态。从最初的贝壳,金属货币、到金银,再到银票,近现代的金本位货币,再到现代的法币。可以看出在货币发展的历程中,有很大一部分努力是在解决流通性问题。金银作为货币虽然很好体现了货币的价值,但是实在不好传播。难以想象如果要拿金锭去北京上海买房是个什么场景。银票的出现大大降低了价值传输成本,但是还是以区域为限制。后来的金本位货币,在国家范围内做到了货币统一,但是也并没有解决世界范围内流通的问题。

这里我特意没有提法币(Fiat)。目前法币作为政府信用背书的产物,不和任何价值挂钩,本身就是废纸一张,不能算作货币。法币是 Currency(通货),货币才是 Money。

说一个题外话:本来金本位货币跟黄金挂钩,有多少黄金储备才能发行多少货币。二战时美国以贷款拿到各国的储量黄金,但是美元是大量超发的,后来各国赎回黄金时,美国国库黄金储备已经不够用了,后来就宣布不再兑换黄金。那一刻之前各国货币与美元挂钩,美元与黄金挂钩,之后各国货币都成了 Currency。这个故事也告诉我们金银作为货币的优势:政府能印法币,但是不能造金银。

那所以让我们总结一下,货币有如下几个特点:

一种交换媒介。物品与物品之间的交换通过货币完成。

一种记账单位。物品的价值通过货币的数量代表。

价值存储。货币在长时期内都能保持自身价值。

易携带

耐用

可分割

可互换

有了对货币的认识,我们再来看 Bitcoin (比特币)之类的区块链资产。在维基百科上,比特币的定义是这样的:
 
 

比特币(英语:Bitcoin)是一种用区块链作为支付系统的加密货币。以一种被称为挖矿的方法产生,任何人都可以参与。由中本聪在 2009 年基于无国界的对等网络,用共识主动性开源软件发明创立,通过加密数字签名,不需通过任何第三方信用机构,解决了电子货币的一币多付和交易安全问题从而演化成为一个超主权货币体系。比特币的问世是人们憎恨商品经济中国家主权货币超发、以及货币政策干预、向往礼物经济中社区共识货币自主的结果;比特币的汇率是全球投资者增加或者减少的反应;比特币的价值是其底层技术区块链,得到各行各业广泛地认可和使用的体现。目前流通中比特币约一千六百多万个,而最终发行量将在 2100 万个。


 首先是高价值存储能力。Bitcoin 依托的区块链,其实本质上是一个 P2P 网络。所以理论上只要互联网存在,Bitcoin 网络就不能被摧毁。另外 Bitcoin 使用的 PoW 共识协议,也能保证自身的安全性。想要攻击 Bitcoin 网络至少需要全网算力的51% 以上,所以基本上可以认为是不可能的。这些特点决定了 Bitcoin 可以在很长时间内存在且不可被攻击,可以作为一种可靠的价值存储介质。

另外一个重点是 Bitcoin 总量一定,不会超发,也保证了自身价值稳定。

此外基于区块链的价值传输网络,让交易没有了地域、国家的限制,秒级结算,速度极快,成本极低。

所以拥有以上特点的数字资产看起来是一种很不错的货币形式。大家就把 Bitcoin、Zcash 等具有货币属性的区块链资产称作数字货币。
在区块链上还有一类资产称为数字代币(Digital Token)。ETH、SC、SNT 等 Token 作为某一种区块链应用或服务的价值载体而存在。可以将它们比做区块链世界的“石油”。

数字货币和数字代币合起来就是我们的数字资产(Digital Assets)

ICO

ICO 的全称是 Initial Coin Offering,即首次代币发售。根据维基百科的定义:
 
 

首次代币发售(英语:Initial Coin Offering,简称 ICO)也称为区块链众筹,是用区块链把使用权和加密货币合二为一,来开发、维护、交换相关产品或者服务的名称。从证券界的 IPO(Initial Public Offering),即首次公开募股一词演变而来。太师币是在 2013 年发行的第一个 ICO,被称为风险投资革命。2016 年后,ICO 开始在全球流行,至少有 18 个网站专门提供 ICO 发售的消息和论坛。加拿大社交媒体看客 Kik 表示将在 2017 年内预售看代币(Kin)。
与以盈利为目的、需要证券监管机构审批的企业 IPO 不同,企业行为有国界、有分红、有股权,能用现金流、资产实力和盈利模式评估。然而,在区块链上发售 ICO 是社区行为,很难用现金流、资产实力和盈利模式评估,无需证券监管机构审批,其目的是建立一个无需法制、高效便捷、轻所有权、重使用权的共识共享社区。


 
 在区块链上首次公开预售代币,所得收益用来开发、维护、交换相关产品或者服务。

ICO 的优点如下:

1 通过 ICO 降低了 公司融资的成本,好的项目不会再看风投脸色,好的Idea也不会再胎死腹中。

2 普通用户也可以用方便的方式(ICO 品台)、较低的成本(一般 ICO 的门槛都非常低,几百元就可以参与)参与到项目的运营中去。用户 ICO 获得的Token,不仅可以带来实际的经济效益,而且也可以在项目的演进过程中通过投票等方式决定项目的发展方向。

不过 ICO 是社区行为,很难用现金流、资产实力和盈利模式评估,而且发起 ICO 无需监管机构审批。ICO 行为没有法律效力,不受法律保护,有很大的风险。目前的 ICO 运作都是基于信任和对区块链行业的认可。

目前可作为 ICO 平台的区块链有两个:Ethereum (以太坊)和 Bitshares(比特股)。这两种技术能作为 ICO 平台是因为它们拥有成熟的代币技术,用户可以方便在之上发行自己的货币。由于很多应用都是基于 Ethereum 技术研发,所以大部分 ICO 还是选择在 Ethereum 网络中进行。

在以太坊上发行代币是通过一种叫做 Smart Contract (智能合约)的技术。Smart Contract 同时也是区块链上开发去中心化应用(DAPP)的技术基础。

智能合约可以理解为一种合同。这个合同一旦发布就不可修改。每个人运行智能合约需要付费(支付 GAS)。合约越复杂,需要支付的费用就越高。当然用户可以为自己的交易设置 GAS Limit,超过限额则合约执行失败。这个 GAS 就是一般意义上的矿工费。

合约同时可以存储数据,数据会存储在每个以太坊网络全节点的内存中。后续的版本会带来数据分片的功能,减轻全节点的内存压力。
目前开发智能合约使用的是 Solidity 语言。Solidity 是在 java 语言基础上做的修改。合约代码会编译成字节码发布到以太坊网络,在 Ethereum Virtual Machine (EVM) 中执行。

开发智能合约主要用到两个框架:

1 Truffle Framework [1], truffle 提供了一整套部署测试的工具,可以方便和 web3js(以太坊提供的 NodeJS SDK) 结合使用。
2 dapphub [2] 提供了很多实用的合约,比如数学运算、权限验证等。

数字代币就是符合 ERC20 标准的智能合约。ERC20 标准定义了代币代号,精度,发行总量等变量,以及查询持有人余额、转账等方法。开发者还可以在其基础上添加自定义的逻辑,比如代币锁定,转账授权等功能。

我们来看下 标准 ERC 20 合约是什么样子。
/uploads/fox/02020937_1.jpg
这个合约在部署到以太坊网络之后就保存了跟此代币相关的一切信息(账户余额等)。与此代币相关的一切操作都是通过调用这个合约完成。

有好多人以为查询代币余额是以太坊本身的功能。其实这些信息都是存在对应的合约中的。用户想要查自己的某种代币余额还是需要调用该代币合约的 banlanceOf 方法查询。

提一下安全问题,目前合约安全问题一般都是通过限制敏感操作只能由合约创建者或者其他有权限的用户执行。原理上都是比对调用合约者和被授权者的地址是否相符。

下面是重头戏 — ICO 合约。分享一段价值数千万美元的代码:

/uploads/fox/02020937_2.jpg
没有开玩笑,去掉各种验证逻辑,ICO 核心逻辑就这么多。就靠这样的代码,好多项目众筹到几亿人民币。一会儿大家可以拿这个代码,然后再写个白皮书就可以 ICO 了。一天时间都不要。

稍微解释下,24 行匿名函数是合约的默认入口。任何人转账到此合约地址,都会调用这个方法。25 行 token 是在合约部署时通过构造函数传入的合约地址(20 行)。传入的代币合约是提前部署到网络上的。用户转账过来是 ETH,需要根据比例换算成对应的代币,然后发放给用户地址。

ICO 策略分析

我分析了几个典型的 ICO 项目,将 ICO 策略分成了几大类。

无限制(BANCOR、BAT)
无限制型 ICO 是早期 ICO 的形式。这类 ICO 对交易 GAS 和 ICO 进度没有做限制,导致资本方可以通过支付大额 GAS 的方式让矿工优先打包自己的交易,进而获得优先购买权。如果资本方一下吃进很多额度,就导致其他参与者不能公平的参与 ICO。

块限制 (Status)
有了之前 ICO 的经验, Status 对 ICO 策略进行了调整。 首先限制 GAS ,最大 GAS 不能超过一定数量,否则退回。避免通过大额 GAS 作弊。另外每一块设置了软顶曲线,每一个区块内的交易仅能购总量的一部分,这样拉长了 ICO 的时间,让更多用户有机会参与,同时通过设置软顶,限制资本方一次参投过多。

时间窗口(EOS)
EOS 采用了不同的策略。EOS的 ICO 是 定量均分。EOS 将 Token 均分为 n 份, 每天为一个时间窗口,当天收入的 ETH 均分定量的 Token。也就是说投的ETH越多分的的 Token 越少。通过这样分流,避免因为抢购导致以太坊网络堵塞。同时长达一年的 ICO 给项目不断造血,保证项目推进。

资产限制(IPFS)
IPFS 的 ICO 规则限制参与者的固定资产需超过100万美元,或者提供20万美元的年收入证明。通过这种方式可以挑选有资金实力的机构或者公司,对其进行价值投资。避免投机用户参与过多,对 Token 的市值产生负面影响,保证自身生态健康发展。

Q&A

提问:示例代码很简单,是运行的环境很完备吗?
余长洪:示例代码只展示了核心的逻辑。在实际操作的过程中,还需要实现安全控制等方面的功能。另外简单与否还要看 ICO 逻辑的复杂程度。如果只是做 Token 分发,以上代码就可以做到。
提问:一份合约总代码量能有多少?
余长洪:看自己的 ICO 策略的复杂程度。 如 EOS 的策略大概在几千行。
提问:一般而言,ICO 发型策略是以上提到的几种策略中应用单一策略还是使用组合策略?
余长洪:ICO 发型策略是根据自己项目需求而定。如果简单可以使用一种,如果有复杂的控制那可能就要多种组合了。我们可以看到社区在 ICO 这件事情上的进步。为了体现公平性、保护以太坊网络, 大家都在不断完善众筹策略。
提问:ICO 可以针对不同融资阶段,发行相应的新版本的合约吗?
余长洪:如果有新的 ICO 需求还是需要部署新的 ICO 合约的。旧的合约因为不能修改,所以不一定满足新的需求。
提问:ICO 投资者如何退出呢?
余长洪:现在都是在交易所交易作为退出方式。
提问:以太坊 和 ETH 是什么关系, 以太坊上所有的项目都是智能合约型吗?
余长洪:ETH 是以太坊网络的石油,所有操作需要消耗 ETH。 目前链上开发的应用上都是以合约形式存在的。
提问:EOS ICO 不允许美国人参与,说明什么?
余长洪:不只 EOS 还有 Status 等别的几个 ICO 都屏蔽美国 IP。BM 也承认是因为法律风险。 在美国,只有经过认可的投资者才可以提供私人投资的证券, 而 ICO 团队需要确保只有经过认可的投资者才能参与。屏蔽美国 IP 是自我保护,规避以后的风险。个人赞同支持对 ICO 的监管。

相关链接

1.Truffle Framework http://truffleframework.com
2.dapphubhttps://github.com/dapphub/dapp
 
 

/uploads/fox/02020937_0.jpg
余长洪 
华信区块链研究院技术研究员

作者简介
余长洪,华信区块链研究院技术研究员。多年一线互联网从业经验,关注区块链、高可用架构等方向。
相关声明
 
 

    本文来自 高可用架构后花园 内部分享,讲师余长洪,转载请注明出处,关注公众号并回复『VIP』(不带括号)可以更多了解 高可用架构后花园。技术原创及架构实践文章,欢迎通过公众号菜单「联系我们」进行投稿。


    评论