什么是元交易Meta-Transaction?迈向完美区块链使用体验
前大多数的区块链应用,使用起来有许多艰涩繁琐的地方。其中有些是因为开发者和设计师的便宜行事,有些则是因为区块链本身运作机制与现在主流中心化架构有根本上的差异。无论如何,如果要让使用者能够轻松上手、简单使用区块链应用,我们必须要消除这些艰涩繁琐的操作流程。
其中一个优化的关键,就是这篇文章要介绍的元交易(Meta-Transaction)。
这篇文章不需要你对区块链有任何背景知识。本文会用很浅显的方式,快速介绍区块链的原理,解释为什么区块链难用还有为什么我们需要Meta-Transaction。读完这篇文章,你会对区块链的历史和运作机制有一个概略的了解。如果你本来就很懂区块链历史和运作机制了,你可以跳过前面几段科普。
区块链的诞生
2007–2008年的全球金融危机,使得许多人对于既有的金融体系失去信任。其中一些人就开始构思:如何可以建立一个不需要以银行为中心的金融系统。2008年中本聪(化名)发表了比特币白皮书(英文、简体中文);2009年一月,比特币网络正式上线运行。
在比特币网络中,所有的运作机制都是基于密码学、经济学和共识演算法。怎么转帐、怎么记帐、怎么验证⋯⋯都是依照一套公开且明确的逻辑在运行。你不需要信任这个系统里面的任何人,你甚至不需要信任发明比特币的中本聪,你只需要信任程式逻辑。只要整个系统里面超过一半的人都是正直的、照着规则运作,整个系统就会继续正常运行。
于是,一个去中心化的金融系统诞生了。
区块链的运作原理
比特币网络和银行系统主要有几项最大差异:
比特币网络没有一个中心领导人,而是由一大群记帐员(俗称矿工,基本上就是一个专门负责处理记帐、验证交易的电脑程式)共同营运。这些记帐员彼此之间会互相监督验证,确认大家纪录的帐都是正确有效的;记帐员之间也会运行一套共识机制,确认大家纪录的帐本都是一致的。
因为这些记帐员记帐时需要消耗电、消耗运算资源,所以也会收取一些手续费,作为营运比特币网络的报酬。 比特币网络的帐户是由使用者自己保管。每个使用者手上都有一把密钥,每当使用者要发送交易的时候,就是用这把密钥进行签章。记帐员会验证这个签章,确认交易是不是来自原本的密钥持有人。
然而,这个系统只认密钥,不认人。如果使用者遗失了他的密钥,就再也没办法动用他的资产;反过来说,如果其他阿猫阿狗拿到了使用者的密钥,阿猫阿狗也可以任意动用这名使用者的资产。
比特币之后的其他区块链(例如以太坊Ethereum),也都是以类似的去中心化架构运行,也都有一群记帐员,帐户系统也都是由使用者自行管理。但是这些新一代的区块链透过智能合约(Smart Contract)提供更广泛的应用,而不只局限在转帐上。
例如谜恋猫CryptoKitties就是建构在以太坊上面的一款智能合约游戏。CryptoKitties里每只猫都是以太坊网络上的一枚代币,你可以买别人的猫、让两只猫交配产生拥有父母基因的小猫、再把生出来的小猫拿去卖给别人。以上所有的机制都是以智能合约运作在以太坊上。
区块链的使用体验
区块链在追求去中心化的同时,也造成了几个使用体验上的致命缺陷:
速度慢、成本高:比起传统中心化系统直接处理交易资料,区块链系统中的记帐员之间需要一套共识机制来同步大家的帐本,造成额外的沟通成本。结果是比特币网络平均每秒只能处理7笔交易,一笔交易从送出到纪录上链需要大约十分钟;以太坊平均每秒只能处理20笔交易,一笔交易从送出到纪录上链需要大约30秒。 私钥管理责任落在使用者身上:区块链系统的帐户密钥由使用者自行负责保管。这对追求极致权限自主的进阶用户来说是一件好事,但对普通用户来说造成很大的不便与压力。一般人难免会忘记密码,在中心化系统只要提供一些额外身分资讯证明就能重设密码,但在区块链系统中,密钥遗失就永远无法挽救了。 使用者付费:既然区块链系统没有主人,那他怎么支付这些记帐员的电脑成本、电费成本答案就是使用者自己付费。每当使用者发送交易,无论是直接转帐或是和智能合约互动,都要自行支付一笔交易手续费。想像你每次使用即时通讯软件发送讯息,或是每次在社群媒体上面发文,都会跳出信用卡付款页面,要求你支付个0.1台币,这是多么恼人的体验。
第1点的区块链效能瓶颈,现在已经逐渐被解决了。这几年出来了很多侧链、Layer 2解决方案,提升区块链处理交易讯息的速度;台湾团队开发的区块链Tangerine Network也藉由提升共识演算法效率,提供每秒大约15,000笔交易的效能,每笔交易送出之后,一秒内就能纪录上链。现在的区块链效能已经能够承载实际运行服务需要的用量了。
Tangerine Network
第2 点私钥管理的问题,我以后会再另外发一篇文章讨论。这篇文章主要着重在第3 点使用者付费的问题。
使用者付费,有什么问题
使用者付费没问题。问题出在他不该是这么简单粗暴的方式。
现在的所有中心化软件服务,无论是把服务架在自己机房的伺服器上,或是运作在Google、Amazon 的云端伺服器上面,都有各自的营运成本。所有企业都是自行吸收这些营运成本,再透过各自的商业模式从使用者身上获利,来支付营运成本。这些商业模式五花八门:
免费服务,藉由提供服务时搜集获得的使用者资料,了解使用者喜好和行为模式,再把这些分析资料卖出赚钱。 免费服务,藉由掌握流量和使用者的注意力,卖广告赚钱。 免费游戏,吸引大量玩家加入,其中有一定比例会为了获得竞争优势或是获得更大的优越感,花钱买点数买道具。 订阅制(月费制或年费制)软件服务 买断制软件服务
最近几年,使用者越来越习惯免费的服务或是免费增值( Freemium、基本免费但是可以透过付费获得进阶功能)的服务。即使是订阅制或买断制的服务,通常也都提供一段时间免费试用。这些设计都是为了要降低使用者进入障碍,才能更有效地吸引更多使用者。
如果使用者还没对服务产生依赖,甚至连服务内容还不清楚,就要叫使用者付钱,大部分的使用者会直接选择离开。
偏偏现在的区块链使用体验就是这样:无论你想使用什么区块链应用,你都需要先买一些虚拟货币,用来支付与区块链互动的手续费。这道限制,让大多数的潜在使用者却步,区块链应用因此而难以推广。
终于轮到今天的主角Meta-Transaction 出场!
先讲结果:透过Meta-Transaction,使用者不需要本身持有虚拟货币,不需要自行支付手续费,也能和区块链互动。
Meta-Transaction机制是由Austin Griffith于2018年提出。
在一般的区块链交易中,交易讯息经过使用者密钥签章之后发上链,这笔交易与其他智能合约互动产生的手续费,由使用者自己的帐户支付。
而在Meta-Transaction 中,使用者签章完成之后,交由Relayer 发上链,并由Relayer 支付交易手续费。在Meta-Transaction 架构中,使用者帐户本身也是一个智能合约,这个智能合约会验证使用者本身的签章是否正确,如果正确的话才会跟最后的目标智能合约互动。
Relayer 只作为一个转发交易上区块链,并帮忙代付手续费的服务。交易本身还是要经过帐户持有人密钥签章过才有效。
Meta-Transaction 机制,催生了更灵活的手续费收费模式。举例来说,区块链应用方可以与Relayer 合作,达成以下几种体验:
完全由区块链应用方支付使用者的手续费,区块链应用方自己设计其他的商业模型来从使用者身上赚钱。 如果区块链应用本身是一个存款、提款性质的服务,可以在「使用者存款进智能合约」时向使用者收取手续费,但在「使用者从智能合约提款」时由应用方代付手续费。 如果使用者是要进行其他ERC20 代币的转帐,区块链应用可以收取一部分的ERC20 代币作为手续费。
目前,Meta-Transaction已经成为区块链使用者体验的显学。Dapper Labs和Open Zeppelin都有提出各自的Meta-Transaction实作。
Blocto钱包更进一步整合Apple与Google的内购服务(In-App Purchase),提供更便捷的使用体验。除了可以提供上述由区块链应用方代付手续费的模式之外,Blocto钱包本身也提供一些新手体验额度,让使用者可以免费体验区块链应用。如果使用者用完了新手体验额度,也可以透过内购轻松获得Blocto点数,并用来支付区块链上的手续费。
坐而言不如起而行,你可以试试看透过Blocto使用区块链应用DETT(区块链版PTT),就能体会Meta-Transaction的使用体验了。
声明:本站所提供的资讯信息不代表任何投资暗示, 本站所发布文章仅代表个人观点,仅供参考。