用比特币也能发币?一文看懂代币演进史

2019-09-05 02:30:10

既然要谈代币,就必须先厘清代币的定义。用比喻来说明的话,我们现实世界中有各国发行流通的法币,如:美金(USD)。然而,有些公司为了便于平台管理或流通便利性等因素,会发行在平台流通的「代币」,如:Line Points。

区块链的世界里,其实也存在类似的概念,在公链上流通的加密货币如:比特币BTC)、以太币ETH),就像是各国的法币,普遍被称之为「协议代币」(在比特币/以太坊协议下流通的代币)。

然而,在以太坊上我们可以透过智慧合约客制化来创造出类似于代币性质的产物,可称之为「自定义代币」,透过智能合约来赋予代币功能,类似我们传统上理解的代币。

「协议代币」与「自定义代币」我们都称为加密货币(Cryptocurrency)。而「协议代币」往往有自己的区块链或类似的分散式帐本技术,不需要任何其它区块链就能独立运作。而「自定义代币」则是利用现有的区块链(绝大多数是Ethereum),透过智能合约或其它方式来发行及运行。

本文主要是以「自定义代币」为主题来介绍。

2017 年的ICO 浪潮开启了大发币时代,人人都能在以太坊区块链上发行自己的代币。但其实在以太坊上线之前便已有区块链代币(以下简称代币)的存在。

区块链代币的起源:染色币(Colored Coin)

代币的历史最早可以溯及到比特币上的染色币。但比特币没有智能合约,要如何发币呢?当时铸造Token的做法是:我们把1 Satoshi 重新定义为1 USD。

如此一来,1 Bitcoin (100 Million Satoshi )的价值便变成了100M USD。然而这样的做法必须具有公信力,因此铸造的机构应该要抵押 100M的USD来担保这100M的Satoshi具有等值100M USD的价值(但没有机制保证铸造机构真的有抵押)。

于是我们会说这些比特币被染色了,因为它代表的不再是比特币的帐面价值,而被赋予了新的价值意义,只是这个Token 透过比特币的区块链网络来进行流通。我发送给你100 Satoshi,其实是发送给你100 USD。

但这100M的染色币要怎么跟其它比特币来区隔呢?于是许多铸造商会再利用一个比特币外部的帐本来追踪这100M Satoshi的交易纪录,如此来确认谁手上具有这些被「染色」的Satoshi,他们有权利可以用这些Satoshi兑换为美金。

此外,在比特币UTXO 的架构下,若是同时交易了染色币与比特币,该怎么区分哪些是有染色的Satoshi 呢?一种可能的做法是:一笔交易的Output 中在前的钱堆是染色币;在后的钱堆则是比特币。

用比特币也能发币?一文看懂代币演进史

– 染色币交易示意图–

以上,便是最古早铸造的Token的作法。这个作法主要的缺点是:当你把这1颗Bitcoin染色,也代表你失去了这1 Bitcoin(因为这1 Bitcoin被当作其它的用途了)。

并且当你要交易300美金( 300 Satoshi )给别人时,却必须付出远大于300 Satoshi的手续费给矿工,所以其实很少人这样子铸造。在2017年币价突破天际后,便几乎没人再这样铸造了。

USDT 与Omni Layer

接下来的作法,便是由Tether 公司发行,赫赫有名的第一代USDT。第一代USDT 是建构在比特币上,采用Omni Layer 的技术,做法是在比特币上发送交易,然而交易本身不是重点,重点是在交易的OP_RETURN 中写下讯息。

如:地址A给地址B <10 USDT>,地址B便可以再给地址C <4 USDT>、给地址D <2 USDT>。如此不断的接续下去,就像是把比特币当作便条纸来使用一般,仅是利用比特币的OP_RETURN内容会永久存在区块链上的特性来记录USDT的流通。

然而,若是一个地址A并没有持有USDT,但他却写下了给B <10 USDT>,这样具有效力吗?于是,Omni Layer便另外建立了一个Explorer来追踪这些所有Bitcoin交易上OP_RETURN内的Omni讯息,借以得知每个地址持有的USDT。若是有地址写下了无效的交易讯息将被自动滤掉。

用比特币也能发币?一文看懂代币演进史

– 含有omni 讯息的交易OP_RETURN –

以太坊ERC-20 Token

以上便是在比特币上发行Token 常见的作法。接下来进入到以太坊的世界,由于智能合约功能的出现,一切都变得简单了些。ERC-20 Token 是至今最常见的代币,那么ERC-20 是什么?ERC-20 Token 是怎么铸造出来的呢?

ERC-20是以太坊上发行代币的协定规范,约定发行的代币必须包含的资讯(如发行几颗)以及代币具有的功能(如发送与接收)和限制(如一定时间内能从钱包提领的上限)等,并且会在以太坊上建立资料库来记录每个地址持有的代币数量。

举例来说,我今天想要发行一个ERC-20 Token,取名叫Pelith Token。假设想发行一百万颗,要怎么做到呢?

用最直白的方式来说,就是要写一个ERC-20 代币发行规范的智能合约,并在发行量这段程式码中写一百万颗,接着把这个智能合约放入一笔交易的Input Data 中,交易的接收地址填为0x0,被矿工执行部署完成后,一百万颗Pelith Token 便诞生了。

所以说,代币的创造在技术上是非常容易的,无论想要发行一百万颗、一亿颗、十亿颗,其实都只是智能合约内改个数字的差别,发行量的变动成本趋近于零。

所以2017 年的ICO 浪潮,才会出现这么多各式各样的shitcoin,只要写个智能合约和白皮书,一个代币就此诞生了,可以开始圈钱。啊!不是,是募资。

真正的难处往往是代币发行后实际的应用场景搭建和社群行销营运,让这个代币被认可、让人愿意持有及应用才是最大的困难点和成本之所在。

结论

「协议代币」往往有自己的区块链或类似的分散式帐本技术,而「自定义代币」则是利用现有的区块链来发行及运行。

早期比特币上常见的代币有改变单位定义的染色币与把比特币作为便条纸的Omni Layer 两种做法。

以太坊与智能合约的出现让发行代币在技术门槛上变得更简易且更有统一的规范,然而应用场景搭建与社群行销营运才是真正难处。

 来源:blocktempo

OKEX下载欧易下载OKX下载

okex交易平台app下载

下五篇