账户与令牌的波粒二象性
账户与令牌,英文是 Account 和 Token,最近出镜率比较高。 尤其是令牌,又被翻译成代币,或者是通证,在财经科技类媒体上真是红得发紫。 这两个词成网红,当然是因为虚拟货币、数字货币,还有数字经济这些热门话题。 不过,红是红了,半懂不懂的人们追赶潮流,说起这些词来很带劲,但实际上还是糊涂不清,没几个真能说明白的。别说星巴克里那些操作笔记本的气氛组了,即便在专家学者的文章中,也并不那么清晰。
数字经济蓬勃发展,中国央行数字货币也正在试验,进入千家万户为时不远。所以,必须要花点时间,把这两个词给掰扯清楚。
什么是账户
账户,英文是 account,基本词义是会计学上的概念,意指一个会计记账单位,例如资产、负债等,用于记录、归集、统计价值。Account 的词根是 count,本意就有计算、计数的意思,而 account 账户就是一个计数的单位或类目。从7000年前人类发明了数字,学会了抽象,就开始使用账户的概念了。家里有5只羊、2头牛,那么羊这个账户上的数字就是 5,而牛这个账户上的数字就是 2,牲口账户上的数字就是 7。
而银行账户, bank account,则来源于会计的记账账户。通常我们所说银行账户,指根据银行经营业务,比如活期、定期、贷款等业务,为个人、企业所创建的记账单位。
不论是账户,还是银行账户,其基本作用都是两个:
价值归集的容器,就像一个瓶子、袋子一样,把价值的数量装进去。我们提起银行账户,就仿佛是口袋和保险柜,但实质上账户里存的不过是个数字
交易来源和去向目标,是价值流动的坐标系。我们收款、支付都不用个人姓名,而用我们的账户
作为价值归集的容器,账户上一般只记录总额,这就是余额制。而交易,则是与账户关联的价值流动和转移的明细。交易是过程,而账户余额则是结果。
在纸质记账时代,有明细账本,用于记录每一笔明细交易;而总账,则记录每个账户单位的余额,也即当前的最终结果。
到了计算机的时代,数据库替代了纸质账本,但还是模仿了纸质记账的数据结构,一摸一样。
什么是令牌
令牌的英文是 Token,说的是在计算机和网络中用于访问系统、声明权限的字符串凭证。 另外词面上还有一种含义,指代币,例如游戏机所用的那种塑料片,这些代币在有限场所使用,且不是政府发行的法定货币,所以称之为代币。
在提及数字货币时,有时用 coin,有时用 token。有人建议将 token 翻译为代币,指非官方发行的数字货币,有人建议将其翻译为通证,有点借鉴字符串凭证的意思,用于指在某个场所或者虚拟社区中使用的价值凭证。这些关于如何翻译的争议和讨论,多针对货币学和金融学的范畴展开,译者和拥护者都具有鲜明的立场和站位,很少是针对中立技术角度的。当然,更不是关于文字的,谁还会关心“信达雅” 呢。
Token 在数字货币领域的真正流行,起源于以太坊社区。 2015 年以太坊出现后,因提供强大的智能合约编程能力,一举成为区块链 2.0 的代表。后以太坊推出 ERC 20 的 Token 标准,由此加密货币社区中,将 “区块链上的数字资产” 称之为 Token,将 “在区块链上对资产做数字化描述” 称之为 Tokenized。在此之前比特币等虚拟货币都称之为 Coin,所以以太坊上的 Ether 作为区块链上的原生币,也被称之为 Coin,以区别于智能合约中的 Token。
虽然并无权威和官方的明晰定义,但随着加密学货币、数字货币的产生和流行,又诞生了一个概念: token-based,即基于令牌的数字货币,与之对立的则是 account-based。
从对词语含义的直觉判断,在 token-based 中,token 指货币有一个实体的字符串(与塑料代币、计算机系统访问凭证字符串类比),而 account-based 则是一个容器,代表余额制。这种直觉上的判断,实际上与当前区块链技术设计上的定义是一致的。
令牌和账户 - 古老的历史
古代,人们用的是白银、铜钱,随身携带的都是沉甸甸的贵金属,去酒楼、店铺里消费,掏出来的都是黄的,白的。这白银、铜钱就是 Token。
这种方式对于普通百姓没所谓,统共没有二两银子,但对于大富豪就很麻烦,要从北京运10万两银子去南京,就很麻烦,而且途路很凶险。
后来,总算有聪明人看到了机会,对这个刚需下了手,开始创业,搞出了票号、钱庄什么的。有钱人只需把十万两白银交给票号、钱庄,票号和钱庄给有钱人在账本上开个户头,记上存款金额,然后开一张存折,或者开一张银票。之后,有钱人可以用银票消费,也可以用银票或者存折到票号和钱庄提白银。这种模式下,存折就是 account,银票则如今天的纸钞一样还是 token。所以这种模式,是 Account + Token 复合模式。
不管是用存折还是银票,这种模式下,支付和结算时已经没有 Token 实物的转移。当张三给李四支付一张 10 万两的银票,票号和钱庄并不需要在库房里把张三保险柜里的十万两搬到李四的保险柜。这种模式,已经与今天的银行模式类似。
这多省事?
更省事的是,把银票也废掉吧。但废掉银票容易,废掉 Token 确不容易。
到后来,现代银行出现,银行所用的工具有两种,一种现金,一种是存折、支票这样的工具,现金还是 Token,但存折和支票不再是价值 Token,而仅仅是用来验证用户身份的工具。提款、支付、转账的时候,银行验明身份后,对支付方和接收方的余额做个增减就齐活了。在电子化银行出现之前,银行账户仅仅在存款、提款、转账的时候才做账户增减,而日常消费依然以 Token - 现金为主。
最终到了电子银行时代,银行和用户彻底摆脱了 Token,每一次转账、小额支付都直接增减双方的余额即可。这是账户的鼎盛时代,而 Token 就真的快要废掉了。
数字的历史 - Token 的回归
从词语直觉和技术上的定义看,第一个 token-based 的货币,人们往往以为是比特币,实际并非如此。按照这种定义,token 代表实体,则这个头筹当归 e-cash。 1982 年密码学家乔姆发明盲签名算法,1994年基于盲签名他设计出了第一个密码学货币,e-cash。
e-cash 的应用原理,是结合了银行账户(account-based)与基于令牌(token-based)两种模式。用户在银行开设账户,用于结算,账户中记录余额。用户可通过系统访问银行账户“取款”,这里的取款是数字化的,即从银行获得代表货币的字符串,这些字符串由银行作盲签名,同时从银行账户扣款。当消费的时候,商家获得银行盲签名的字符串,并提交给银行,银行收到字符串后,为商家的账户增加余额。
e-cash 结算还需要依赖银行账户,而比特币则彻底摆脱了银行这样的中心化机构。比特币在支付、结算、发行三个环节,都不再依赖银行,所以比特币彻底摆脱了账户结构,是完全的 token-based 的数字货币。
但比特币的数据形态,与e-cash并不相同。e-cash系统中有一个字符串代表一定金额的价值,而在比特币中,是以 UTXO 代表价值的持有。比特币系统中并不存在一个代表比特币的字符串。
可以这样想象比特币系统:在一个银行账户系统中,去掉银行账户的余额,只保留交易数据。
比特币的交易与传统银行账户系统的交易不同,比特币采用了复式记账的模式,交易左边是多个输入,右边是多个输出,两边金额平衡。右边的输出,在未花费之前,即构成 UTXO。
所以,可以称比特币为 token-based,但这种 token,是交易数据字符串,或者认为是 UTXO 也可以。
以太坊则再次改变,恢复到了传统的账户余额制。以太坊在链上通过简单的交易达成共识,然后所有的节点根据交易写入账户数据库,获得账户的最新状态。以太坊的交易,是传统账户体系下的交易,并不构造左边的输入和右边的输出。 以太坊的智能合约,以及账户余额,都存储在账户数据库中。
中国的 DCEP 是中心化发行和结算的,是一种密码学货币。DCEP 综合应用了 account-based、Token-based 模式,这种应用模式与乔姆的 e-cash 最为相近。 DCEP 中存在一个代表人民币的字符串,这个字符串可以存储在用户各自的钱包中,又在银行的中心化结算系统中登记所有权,而银行的中心化结算系统基于现有的银行账户。
优劣分析
基于账户的记账方式,最合乎人们的直觉,对一种资产、负债的计数、汇总,人人都能理解,都能接受。发生交易,则根据交易记录,对账户余额做增减。虽然看似理所当然,细想,账户的模式与人们用金银、纸钞区别巨大。使用金额和纸钞支付,并不存在对余额做增减的操作。所以,账户的操作模式,是人们对物理货币支付模式的一次抽象,而非简单的模拟。
乔姆的 e-cash 是为了保护交易隐私,他的盲签名技术,实现了对物理货币的模拟,在支付环节无需账户的支持,只对加密字符串做转移,而在结算环节,依然要对账户余额做增减。本质上还是账户模式。
比特币采用的 UTXO,是一种 token-based 模式,在比特币系统中,可以找到一个字符串,代表了对价值的拥有。
但为何比特币要采用 UTXO 模式?
对这个问题的回答,主流的说法有两种。
一种说 UTXO 是并行的,所以可扩展性好。所谓并行,就是说 UTXO 仿佛黄金和纸钞,你收一张 100 元钞票进钱包,并不影响你同时抽出一张 10 元的支付别人。而账户余额制则不可以,每一笔交易都必须顺序执行。账户必须先执行了 100 元收进来,再执行 10 元付出去。
但这种并行优势,其实只是针对传统中心化数据库时代的账户余额制才有,对于区块链上的设计,并没有优势意义。就是说,区块链上,采用 UTXO 还是采用账户余额制,并行的速度都差不多。因为,说到底是区块的出块节奏在决定速度,交易并行不并行的,区别不大。所以,以太坊为了提供强大的智能合约,就不用 UTXO,而是回归账户余额制。
另一种答案说 UTXO 能够保护隐私,这个说法很值得商榷。 比特币鼓励使用多地址,一次交易一个地址,这样就能隐藏身份。但若是用账户余额制,一样能够做到一次交易一个账户,一样可以起到保护隐私的效果。
有技术文章争议说 UTXO 的多地址效率更高,因为 UTXO 数据库中只存储未花费的,而账户模式需要查询所有账户,系统开销更大,这个似乎也是说不通。账户模式下,也可以在数据库中只保存尚有余额的账户,而剔除掉已无余额的账户,一样可以节省系统查询开销。
UTXO 无可争议的优势就是可追溯,通过交易成链,有来源有去处,哪怕最小份额的货币都可以找到去源头(细究 UTXO,其实只能追到多个源头,并不能绝对定位),这正是 Token 的优势。
UTXO 确实有真正的、无可争议的弱点,这个弱点听起来有点绕: UTXO 的面值对于其上的脚本是不可拆分的。
比特币上的脚本,是写在 UTXO 上的,如同在一张100元钞票上写了备注,这个备注只能针对整个100元,无法对 100 元进行拆分。以太坊白皮书中就对 UTXO 的这个弱点作了批评。
另外 UTXO 是无状态的,这个听起来也比较技术。 一个UTXO就是一个未花费的收入记录,一旦被花费,则这个 UTXO 就消失了,不存在任何中间状态。而金融领域常用的场景需求就没法实现,比如对一笔资金做冻结,UTXO 就没法实现。
由于有这些弱点,以太坊就没有使用 UTXO 模式,而是回归了账户余额制。一个账户,记录这个账户地址的余额,交易发生后,则增减余额。 智能合约的脚本也存储在账户上,这个就与比特币脚本存储在交易上不同。
账户与令牌的定义,并无定论
前面几节对 account-based 和 token-based 的分析,是从词语直觉和技术角度的定义来分析,但账户与令牌的定义并非只有技术角度,在不同的社群和不同的领域,定义并不相同,尚无定论,实际上也难以定论。
如前所述,在比特币早期时代,加密学社区中称虚拟货币为 Coin,例如 Bitcoin。后以太坊出现,在其智能合约中可以用代码开发 ERC 20 格式的代币,以太坊社区称呼这种 “区块链上的数字资产” 为 Token。ERC 20 是同质(fungible,很多文章中翻译为“可转换的”,并不准确)的 Token,所谓 “同质”,即相同单位的 Token 都一样,就如一个一元硬币与另一个一元硬币完全相同。后又发布 ERC 721 标准的 Token,这是非同质的 Token,每一个 Token 都不一样,不可替换,其实就是一种单品管理模式。
以太坊链上原生的以太币,则可称之为 Coin,以示区别。当然,有些文章并不区分 Coin 和 Token。
如果从技术角度细究的话,以太坊上智能合约中的 ERC 20 实际上还是余额制,即某个地址上所持有的资产总量是通过余额表现的。 以太坊本身的 Coin 以太币也是余额制的。所以,虽然是以太坊定义并宣传了 Token,但从技术角度看,以太坊是账户余额制的。
2009,两位货币学者Kahn和Roberds在论文中定义了Token-based和Account-based两种模式。他们的定义更多是从业务模式角度所做判断。Account-based就是“交易需要验证持有人身份”的模式,而Token-based就是“交易需要验证Token对象真伪”的模式。
银行账户当然是 Account-based,因为每笔支付交易,都要验证用户身份,证实确是此人在发出支付指令。
Kahn和Roberds所说的Token-based的则指黄金和纸钞法币,用户在使用时要辨别Token的真伪。
Kahn 和 Roberds 所给出的定义,在 2009 年是清晰的、无歧义的。那时候,比特币刚刚上线运行,以太坊还有 5 年才会出现。等到这些加密学货币出现,再套以 Kahn 和 Roberds 的定义,解释起来就不那么容易,甚至无法划分一个加密学货币到底属于哪一种模式。
按照 Kahn 和 Roberds 的定义,比特币就是账户制的,因为比特币要验证数字身份,也就是公私钥,符合 “交易需要验证持有人身份” 的特征。但比特币并非余额制,而是基于 UTXO 的。
至于Kahn 和 Roberds 定义的 Token-based,则要看到,在数字世界中,辨别数字对象的真伪是根据数字签名、哈希值、Merkle Tree、UTXO、区块链等技术。从这个角度说,eCash、比特币、DCEP 等都可以算是 Token-based 的,甚至以太坊的 Coin 和 Token 虽然采用余额制,也可以算作 Token-based,因为交易中也要验证以太币、Token 交易字符串格式的正确性以判断真伪。
到这里就已经看到,如果想按照定义在Account-based和Token-based之间划分一条清楚的鸿沟是很难的,account-based和token-based并不是非此即彼,而是可能兼容的。
如果根据技术角度的定义方式,account-based 是汇总余额,不论在纸质上,还是在数据库中,余额都是对价值的汇总,更抽象。余额的这种特点,导致对价值的来龙去脉无法追踪。 例如,收到 10 元汇款,余额为 10,再收 10 元,余额为 20,此时支付 5 元,则余额为 15,但系统无法判断支付的 5 元来自第一笔10元,还是第二笔10元。余额是个池子,所有流进来的、流出去的水,都无法区分。
而 token,则以黄金、白银、硬币、纸币、无记名票据为代表,其特性为存在价值实体。 那么将此概念扩展到数字世界,可以认为 token-based 指存在数字实体,也就是一个具体的字符串代表价值。从这个角度来看,以太坊的设计就是 account-based,而不是 token-based,以太坊上以智能合约开发的 ERC 20,也不再是一种 token,但 ERC 721则是一种 token。比特币的设计则不是 account-based 的,其 UTXO 可算为一种 token。
所以,加密货币社区、货币金融行业对 account 和 token 的定义并不一致,甚至是冲突的。 在各种定义中,要清楚划分一个具体的货币、支付方式到底是 account 还是 token,并不那么简单。
账户与令牌含义的详细分析
如果非此即彼的分类不是那么有效,那么在分类学上,我们就只好继续深入,分析账户和令牌这两个名词背后所可能隐藏的含义。请注意,我们说 “可能”,即指承认存在的各种定义。下表列出在不同维度的特性下,账户与令牌所指的内涵。
特性账户令牌
特性一:价值载体物理实体、实际债权债务关系等数字实体、物理实体、实际债权债务关系等
特性二:资产记录模式余额记账持有物理或数字实体
特性三:持有方式托管他人自己持有
特性四:验证身份验证实体真伪验证
特性五: 转移方式中心化记账点对点转移
特性六:加密学社区的习语无智能合约中的资产
特性七:数字技术余额制加密字符串
价值载体
开设账户,是为了核算黄金、货币等实物资产的数量,或者记录债权债务等现实中的经济关系。账户中只记录这些实体或者关系的抽象数量。而令牌则是现实中的物理实体,例如纸钞、黄金或者计算机上的一个字符串。
如果令牌是计算机上的字符串,这个字符串可以是原生的,与现实或者物理没有关联,也可以代表实体黄金或者现实中的经济关系。例如比特币 UTXO 就是原生的,自有价值,与现实和任何物理实体都没有关系,而以太坊上发行的 DGX(一个 DGX 代表一克黄金)则代表实体黄金。
资产记录模式
在多数账户体系中,只记录价值的总额、余额。而令牌则具有实际的物理实体或者数字实体。
持有方式
银行账户中,资产的持有方式是托管,即账户拥有者将黄金、货币等价值托付到他人,比如银行等,然后通过指令做价值转移,银行等为账户拥有者维持可信的账簿记录。而在令牌体系中,拥有者自己持有资产的物理实体,例如黄金、纸钞。
在这个特性维度上,比特币会存有争议,比特币所有者在自己的钱包中存有的是私钥,而私钥是一种身份,并非价值,价值是 UTXO,存在于所有的矿机服务器上。所以似乎比特币是托管到矿机,更符合托管特性。但还要考虑到比特币是数字原生的,除了共享账本上的 UTXO 之外并无实体,所以比特币的持有方式也可归入自己持有。
验证
在账户体系下,交易时需要验证账户所有者的身份,例如银行账户需要用户名、密码或者刷脸认证。 而令牌体系下,则无需所有者身份的验证,只需检验令牌本身的真伪。在黄金、纸钞时代验证的就是黄金和纸钞本身的真伪,而在数字时代,则要验证加密字符串的真伪,包括字符串的格式以及数字签名。在这一点上,数字令牌的验证与账户的验证有重叠之处,例如比特币交易的验证本身就包括数字签名的验证,此时,账户的身份验证与令牌的真伪验证叠加,成为一件事。
转移方式
账户体系下,价值转移无需实体转移,只需账户管理者改变账户余额即可,是最便捷的交易模式。而令牌模式下,则多是物理实体转移,且转移直接发生在个体对个体之间,例如纸钞的递交。在数字令牌模式中,也可能伴随着数字字符串的转移,例如在 eCash 和 DCEP 中,就有数字字符串的转移。数字令牌模式,当然可以点对点,但也可在账户托管模式下进行。 DCEP 就是既有断网状态的点对点支付,也有中心化账户模式的结算。
加密学社区的习语
在区块链开发者的语境中, Token 就指的智能合约中所开发的数字资产。此处的 Token 并非 account 的对立面,仅仅指代区块链时代带来的新发明。
数字技术
在区块链开发者提及账户的时候,则指账户余额制,例如以太坊的设计中,为了突破比特币UTXO的局限,回归账户余额制,这样智能合约才更加灵活。 智能合约中实现的 ERC20 也是账户余额制的。 与账户余额制对应的,则是 UTXO,并不是 Token。但 ecash 和 dcep 则非常明显是一种 token,具有实体加密字符串。如果我们把 UTXO 也算作一种 token,那么从数字技术上的定义,可以清楚的区分 account 和 token。
综合以上各种维度的特性,下表列出可能属于 Token 的各种货币,并分析其特性。
Token 类型价值防伪物理形态转移方式
黄金、白银内在价值金属特性实物个人对个人 P2P
银票票号债务印刷防伪实物个人对个人 P2P
法币 - 纸钞、钱币 央行债务印刷防伪实物个人对个人 P2P
eCash银行债务盲签名数字 P2P +中心账户结算
比特币内在价值,非债务区块链数字P2P
DCEP央行债务数字签名+账户+实名身份数字中心结算 + 碰一碰
综合以上各种维度的特性,下表列出可能属于 account 的各种货币,并分析其特性。
账户类型用途模式验证物理形态
票号户头票号为客户所设立的记账单位余额+Token银票纸质
会计账户企业内经济核算的分类载体余额+明细无纸质或数字化
银行账户银行为客户所设立的结算单位余额身份实名验证数字化
比特币账户即持有 UTXO 的公私钥地址UTXO数字签名验证数字化
以太坊存储地址、余额、状态、代码的数据库记录余额数字签名验证数字化
DCEP账户即银行账户,以及依赖银行账户的 DCEP 钱包地址Token -数字化字符串身份实名验证+数字签名验证数字化
从以上两表可以看到,在传统的金融货币体系下,账户与令牌是可以清晰划开的,而到了数字货币时代,就很困难。 账户与令牌的特性纠缠一起,不同维度和语境下,账户与令牌的所指也不同。比特币、以太坊、DCEP 都不好简单的说其是账户还是令牌。数字化时代的货币,在账户和令牌的各种定义上,就如同光呈现出波粒二象性,这些数字货币呈现出账户令牌二象性。
结论
账户模式与令牌模式的定义,并不是统一的、清晰的,在不同的社区和行业中,人们对这两个词有着不同的定义。这些不同的定义中,账户与令牌代表着很多个维度的特性。不论在文章中,还是在讨论中,提及账户与令牌,需要考虑语境,并仔细分析词语真正的含义。
在加密货币社区中,令牌代表着区块链上的数字资产,这是 Token 一词走热的源头。加密社区中并没有试图将 account 放置在 token 的反面,当他们提及 account 的时候,反而指的是一种技术上的模式,即账户余额制,而账户余额制的对立面是 UTXO。
在传统货币金融领域,尤其是央行的学术环境中,账户与令牌有了权威的定义,账户指基于用户身份验证的模式,而令牌则指基于对象真伪检查的模式。
考虑到账户与令牌在很多语境下已经形成了对立的两个概念,这就有必要在不同语境下,对这两个概念做出确切的定义,以方便讨论。
在业务层面(金融、货币、央行),账户指财富托管模式、中心化结算、交易基于身份验证的模式。令牌则指财富自我持有(非托管模式)、去中心化结算、交易基于对象真伪检查的模式。
而在技术层面,账户简单的只指代账户余额制。令牌则指非账户余额制,例如 UTXO、加密字符串等模式。
在业务层面,在计算机时代之前,以令牌模式为主流。后信息化和互联网出现,账户模式渐成是主流,甚至有消除令牌的趋势。数字货币出现后,令牌再次归来,以数字化的形式,呈现了新的生命力。
令牌的归来,是加密学货币、数字化经济浪潮中的一个趋势。
而在技术层面,账户与令牌这两种设计模式将长期共存,在不同的场景下,不同的设计者偏好不同的设计。
数字时代出现的数字货币,在到底是账户还是令牌这个问题上,呈现出波粒二象性。那么在具体的讨论中,我们就得借用爱因斯坦的教导:
“好像有时我们必须用一套理论,有时候又必须用另一套理论来描述(这些粒子的行为),有时候又必须两者都用。我们遇到了一类新的困难,这种困难迫使我们要借助两种互相矛盾的的观点来描述现实,两种观点单独是无法完全解释光的现象的,但是合在一起便可以。”
参考:
See, Kahn, Charles M., and William Roberds, "Why pay? An introduction to payments economics,"Journal of Financial Intermediation, Volume 18(1), January 2009,https://www.sciencedirect.com/science/article/pii/S1042957308000533.
Vitalik Buterin A NEXT GENERATION SMART CONTRACT & DECENTRALIZED APPLICATION PLATFORM
D. Chaum “Untraceable Electronic Cash,” A. Fiat, & M. Naor, Advances in Cryptology CRYPTO '88, S. Goldwasser (Ed.), Springer-Verlag, pp. 319-327.
Satoshi Nakamoto, Bitcoin: A Peer-to-Peer Electronic Cash System, Satoshi Nakamotosatoshin@gmx.comwww.bitcoin.org
Token based - account based无法区分。比特币两种都是
https://libertystreeteconomics.newyorkfed.org/2020/08/token-or-account-based-a-digital-currency-can-be-both.html
https://setl.io/blog/token-or-account-based-cbdc/
加密社区与央行,对token的歧义
https://www.federalreserve.gov/econres/notes/feds-notes/tokens-and-accounts-in-the-context-of-digital-currencies-122320.htm
网友评论