原文标题:《BlockchainNetworksandtheHumanFactor:HowtoKnowWhetherThey’reAccessible》
作者:
DieterShirley;
BenjaminEbner
翻译:Raye,Flow技术大使,CataLabs中国负责人。
随着区块链技术快速盛行,大家仍然在讨论与网络可扩展性有关的技术话题--例如每秒交易量、交易时延和吞吐量。然而,为了更好地建立消费者的体验,开发人员必须跳出系统性能指标的桎梏,更多考虑人的因素:易用性。易用性意味着系统是不是可以被轻松地上手使用,无论是专业的加密货币开发者,还是新加入的用户。而好的易用性也是能将区块链真正普及开来的关键因素。只有那些早期致力于易用性设计的项目才能长久地赢得大众的青睐。易用性比可扩展性更难量化。本文提供了一个系统框架,使组织和个人能够可靠地衡量和评估区块链项目的易用性。别总盯着可扩展性
在很长一段时间里,人们都在谈论可扩展性,认为它是大规模应用的一个必要前提。我们都知道,2017年,DapperLabs创建了CryptoKitties——加密猫,引入了第一个非同质化代币标准,ERC-721。虽然CryptoKitties预示着消费级区块链应用给整个行业所带来的巨大潜力,但它也对以太坊当时的技术限制给出了当头一棒。
而最大的争论很快就变成了可扩展性--以太坊和其他区块链如何才能在不堵塞并且不那么昂贵的前提下容纳越来越多的用户?
可扩展性问题最终导致了像Flow、Solana、Avalanche和WAX这些年轻的一层网络的出现,以及像zkSync、Optimism或Polygon这样的二层网络或侧链解决方案的出现。(注:作者来自DapperLabs——Flow的发明者。)而以太坊本身也正专注于使用分片和各种升级的更高可扩展性。
但区块链能够被真正普及不仅仅是可扩展性的问题。接下来,我们会分享从CryptoKitties和Flow构建过程中获得的经验教训,并分享一个框架,帮助构建者关注易用性——这无关于协议或应用本身。
为什么&谁应当关心易用性
可访问性描述了区块链网络以无摩擦方式被大众使用的能力。用户越容易参与一个项目的应用、协议或生态系统,那么这个区块链的易用性就越高。易用性不仅适用于终端用户,也适用于开发者、创造者、产品所有者以及与网络互动的其他各方。
谁应该考虑易用性?那些构建和管理区块链应用的开发者、架构师和高管,在选择区块链时应进行易用性分析。而任何利用区块链生态系统现有服务的人——包括创作者、艺术家和知识产权持有人——都应该考虑特定项目的易用性,因为这将决定网络上现有受众的规模和特点。
这两个群体不应仅仅玩数字游戏,而是需要正视这个问题:生态系统的文化是什么样子的?什么类型的人在这里建设?建立在其上的项目所提供的数字商品是什么?其上的经济如何发展?而最重要的是:这一切对大众来说是否容易使用?
这些问题应该从功能经济和技术的角度来看待,这也引出了我们这里所提出的框架,包括任何渴望成为主流的加密货币建设者所关心的问题。(点击展开图表,继续阅读)
功能易用性——你能用它吗?
功能易用性描述了区块链及其生态系统提供简单的使用引导和良好用户体验的能力,从而使用户与协议或应用程序的交互的方式能够足够简单并且高效。这是任何评估的一个重要开端。
■使用引导
每个用户的旅程都是从使用引导开始的:用户交互的第一阶段,包括账户的建立和充值,直到第一次网络交易。这个阶段应该尽可能地无摩擦,只需要有限的步骤,最好是没有技术门槛。
而那些需要用户在一些尚未集成好的服务中执行繁杂手续的引导则说明了易用性很差。例如一个常见的情况是:用户注册一个应用程序,下载一个浏览器插件钱包,写下一个12个字的助记词,访问一个外部交易所购买加密货币,等待交易所进行KYC,然后返回应用程序进行重新认证,这样才能继续进行实际想做的操作,例如交换代币或购买NFT-这里面至少包含了跨越三个不同服务的六个步骤。
相反地,有一些集成好的并且精简的流程,从用户那里抽离出大部分的复杂性,以获得易用性极佳的体验。例如用户可以同时注册应用程序和钱包,而通过iFrame整合的支付平台供应商则不需要访问外部交易所来为账户提供资金。
在这两种极端情况之间有多种应用和服务,它们部分地包含了这些过程,例如不依赖于浏览器插件钱包或在某些部分整合了法币到加密货币的支付通道。
一些应用程序能代表他们的用户管理他们的私钥。虽然这种保管人架构可以通过消除对外部钱包的需求来减少入职过程中的摩擦,但它的代价是更高的技术复杂性和法律要求。这些影响超出了本文的范围--选择托管架构的团队应该对这种模式的权衡进行彻底研究。
易用性分析的一个好的起点是为特定的区块链确定三种最常见的引导路线,从用户的角度重新创建这些场景,并将所采取的步骤收集到单独的文件中。因为一个单一的协议通常有多种上手体验,这取决于用户选择的具体应用或钱包,这个过程应该涵盖所有常见的场景和用户类型。
■?钱包
使用引导涵盖了用户与协议的最初交互。对于日常使用,用户交易的签署和提交是非常重要的。出于这个原因,在给定的区块链上可用的钱包成为易用性分析的一个重要部分。
任何区块链交易都需要由给定的用户用数字签名来验证——这可以防止恶意行为者的未授权行为。为了创建这个签名,需要用户的私钥。由于私钥发挥着这一极其重要的作用,但不能仅仅把它存在我们的记忆中,它们需要以一种安全而方便的方式来存储。这正是区块链钱包提供的功能,同时往往也提供了一个向网络发送交易的接入点。
为了实现功能上的易用性,用户交易的签名必须可以通过给定区块链的钱包轻松实现。如果用户不得不下载一个外部插件或手动设置他们愿意为某项交易支付多少费用的参数,那么随之而来的每笔交易都会涉及更多的摩擦。这表明用这个框架分析易用性是具备关联性和广泛性的。只有这样的整体方法才能考虑到指定链上可用的钱包的用户体验。
为了获得最大的易用性,钱包不仅要易于使用,而且要在项目的生态系统中的各种应用中被广泛接受。如果用户需要从多个供应商那里设置多个钱包来访问不同的应用程序,易用性的水平就会大大降低。例如,如果一个NFT市场不支持用户在去中心化交易所交易代币时使用的钱包,那么用户基本上需要为另一个钱包重新做上机程序,并在未来保持这个账户的跟踪。
这个问题直接关系到应用程序的开发。在大多数情况下,开发人员需要在他们的应用程序中添加供应商特定的代码,以支持一个新的钱包。这引入了技术上的开销,阻碍了多个钱包供应商在应用程序中的整合和可用性。
Maskbook推出新功能,允许用户通过Gitcoin Grants资助加密项目:隐形插件项目Maskbook已推出一项新功能,允许用户通过Gitcoin Grants为基于以太坊的初创公司提供加密货币资助。(Decrypt)[2020/6/21]
■?法币支付的进出通道
虽然有一定比例的用户将几乎完全在加密货币生态系统内进行交易,但大规模采用将要求非加密货币的传统用户能够轻松地将加密货币收入转移到更熟悉的货币。那么,功能易用性也包括最终用户从网络中存入或提取价值的便利性。法币支付的进出通道对此至关重要,允许用户使用信用卡或其他方便的支付方式,直接用法币购买一定数量的加密货币。虽然外部交易所当然可以用于这一目的,但专门的集成服务确保用户不必离开给定的应用程序来进行支付上的操作,这大大增加了整体的易用性。
而这部分分析的一个起点是能够粗略地筛选网络代币在主要中心交易所的上线情况。在这样做的时候,你可能想包括在给定网络上的稳定币的列表。下一步是系统地检查生态系统的主要钱包是否集成了这些发币支付工具,因为一些用户友好型钱包已经集成了这些功能。例如,多链钱包Blocto利用依靠支付供应商Moonpay,允许用户直接在钱包中使用信用卡等简单的支付方式为其加密货币充值。
最后,你可以检查一些最常用的网络应用的法币支付选项,并注意提供服务的供应商。这种综合分析将描绘出一幅详细的图画来说明对终端用户来说,进出网络的价值流是多么容易获得。
综合所有这些功能易用性的要素,这些是开发者在决定在哪个区块链上构建时应该问的主要问题:
使用引导平均包括多少个步骤?完成它们需要多少知识或技术背景?用户需要多少个步骤来签署交易,需要多少知识或技术背景来完成它们?钱包的整合是否与用户体验无缝衔接,它们是否普遍适用于各种应用程序?用户在链上转移法币需要多少个步骤?是否存在法币支付的进出通道?区块链的原生代币和项目的稳定币在中心化交易所的上线情况如何?经济易用性-你是否能买得起?
经济易用性是基于协议和建立在其上的数字产品的普遍可负担性。
■?交易费用
区块链是公共资源,交易费可以防止过度使用网络的能力,有助于避免公地悲剧的发生。它们还可以保护底层网络免受拒绝服务攻击形式的垃圾邮件。
交易费用可以是固定的--例如,在提交交易时需要提供打包费的形式--或者,它们可以是动态的,随着特定请求的复杂性而增加。大多数流行的区块链协议都使用这些费用类型中的一种,或者它们的组合。
交易费用是功能和经济易用性重叠的地方。在日常使用中,交易费用必须足够低,以便每个人都能参与,但又要足够高,以确保网络稳定。另外,这些费用的可预测性也起着很高的作用。如果交易费用有很高的不可预见的波动性,这将使装备较差的用户不敢向网络发送交易。因此,任何易用性分析不仅需要考虑平均交易价格,还需要考虑它们在日常基础上的决定机制。
在以太坊上,交易费用是以一种叫做gas的专用单位来表示的,以便将费用与基础代币的价格波动脱钩。对于每笔交易,用户必须包括两个规格:gaslimit,它描述了用户愿意花费的最大gas量;以及gasprice,它表示用户愿意为一个单位的gas支付的价格。
Gas限额必须根据请求的计算复杂性来选择。对于简单的以太币交易,该值为21,000个gas单位,或按目前的gas价格约6美元。如果gas限额设置得不够,交易将耗尽gas并退回。
Gas价格可以自由选择。然而,由于网络验证者选择他们想要包括在下一个区块中的交易,较高的gas价格大多会得到更快的执行速度。这个过程本质上类似于拍卖,用户为他们的交易被纳入下一个区块而投标,并且一些网站如EthGasStation已经发展到交易定价的目标。
这种交易费用模式有几个问题。
在需求旺盛的时候,拍卖方案可能会导致交易费用暴涨;例如,曾经有一段时间,在以太坊上,一个简单的代币转让就相当于50美元左右的gas费用。由于gas价格波动很快,正确定价交易费用并非易事。虽然最近采用的EIP-1559定价机制和一些用户友好型钱包可能会规避其中的一些问题,但复杂机制的高交易费用会阻碍项目的普遍易用性。由于一层区块链网络和二层解决方案通常提供更高的吞吐量,交易费用显著降低。这正是这些解决方案通常具有更高的易用性的原因。然而,应用架构师必须密切识别权衡,因为在某些情况下,更快的吞吐量是以降低去中心化为代价的。
■?应用层产品
除了交易费,经济易用性还涉及区块链项目的应用层提供的产品。一个主要的例子是某一生态系统的NFT收藏品的地板价指标。地板价类似于一个收藏品的最低价格,这个指标经常与总体数量一起使用,以分析一个收藏品的估值。
高地板价实际上构建了一个只有富人才能进入的高冷的生态系统,这阻碍了真正的社区建设,从而减少了未来广泛应用的机会。虽然巨大的交易量对区块链来说肯定是好的,但人们总是要把眼光放远,看看数字意味着什么:如果巨大的交易量大多伴随着高额的地板价,那么有可能只有少数富有的用户推动生态系统的经济活动。
有些人可能会讨论分片式NFT的概念,即NFT的所有权被分割给许多所有者。这一概念也将在长期内规避上述问题。然而,这是以工程开销、增加用户的复杂性和缺乏法律明确性为代价的。
■?运行节点
最后,经济上的可及性也是节点运营商所关心的问题。只有当网络节点的运行在硬件要求和最低质押金额方面是可行的,才会有足够数量的验证者被激励参与到网络中,也只有这样才能确保其去中心化和完整性。
比特币和以太坊都是拥有大量节点操作者的网络,这说明了协议可靠性和安全性的良好水平。然而,对易用性的分析必须采取更有区别的观点。例如,运行一个比特币节点的要求相当低,但大量的区块是由拥有专业设备的矿池而不是由个人矿工开采的,这使得运行自己的比特币节点不太可行,也不具备易用性。
虽然以太坊的设计在很大程度上阻止了专业设备的使用,但采矿仍然发生在集中式矿池中,硬件要求明显高于比特币。由于以太坊存储的数据比比特币多得多,一个新的节点需要明显更长的时间来赶上这些数据量——今天,建立一个完整的以太坊节点大约需要17小时。由于时间和硬件资源是有成本的,这些因素降低了这些协议对节点运营商的经济易用性。
在寻找替代品时,人们也应该密切关注节点运营商的其他非技术因素。例如,如果一个网络计划对谁有资格成为节点操作员进行永久的规则和规定,这使得那些不符合这些标准的操作员无法获得协议,这可能是网络去中心化程度较低的一个指标。
经济分析的关键问题:
平均交易费用有多高,用户能不能提前预测到它们?该项目应用层在一级和二级市场提供的流行产品的地板价是多少?谁是该协议整体交易量背后的主要推动者?是只有几个大的实体,还是有大量价值较小的交易?对节点运营商的硬件要求和最低质押余额的要求有多高?技术易用性-你能在其上搭建应用吗?
技术易用性描述了开发者在给定的链上构建应用程序的容易程度。这个概念也被称为开发者工学。
■?编程概念
一个团队是否能够快速产出一个支持区块链的产品,很大程度上取决于项目的技术易用性状况。首先要检查的是一般的编程概念。只有当它们能够被合理地快速理解时,开发人员才能够上手它们并开始快速构建。理想的情况是,编程范式扎根于已有的技术中,以使开发人员顺利上岗。
一个好的起点是分析区块链的主要客户端实现。区块链客户端是协议在特定语言上的实现,或者简单地说,节点管理员为区块链提供动力而运行的实际程序。一些区块链可能有更多的实现方式,而这一般来说是易用性不错的表现;然而,更重要的是最常用的客户端的开发语言。确保这是一种广为人知、使用和维护的语言,可以假定相当数量的开发人员已有的知识,例如C++、Golang、Rust或Python。这将保证这些客户端的持续开发和维护的可能性。
下一个重要考虑因素是智能合约编程语言。一些区块链如Solana使用现有的语言,而其他网络如Ethereum或Flow已经创建了自己的语言。当然,使用一种成熟的语言可以方便那些有经验的程序员使用;然而,对于新手来说,这可能是以学习整个通用编程语言的所有细节为代价的,这对于像C++这样的低级语言来说尤其耗费时间。在这里,学习一种轻量级的新语言可能更容易上手,这种语言在设计时就考虑到了智能合约编程。
在新的编程语言的情况下,分析该语言是否存在众所周知的和既定的编程概念和范式。例如,Solidity在很大程度上受到JavaScript和Java的启发,而Cadence则从Swift和Rust中借用了许多概念。
此外,还要考虑一种语言为其开发者提供了哪些抽象概念。就像底层协议一样,一种语言应该在不牺牲安全性或可定制性的前提下,尽可能多地从开发者那里抽象出复杂的东西。例如,Cadence使用新颖的资源数据模型自动对数字价值的处理指定规则,而Solidity则要求手动实现这些低层次的检查。
最后,确保所有这些方面都有完善的学习材料、文件和参考样例,并且容易获得。评估编程概念的易用性,就是要考虑技术细节所隐含的微妙之处和权衡性。
■?工具
一套好的工具包对开发人员来说是最重要的,这样才能快速、安全、轻松地构建应用程序。如果经常出现专用工具无法解决的问题,这表明技术易用性水平较差,因为开发人员必须自己处理这些问题。
软件开发工具包可以说是这些工具中最重要的一种。SDK为协议的底层流程提供了一个特定语言的抽象层;它们简化了诸如认证、查询和更新状态、监听事件等交互行为。检查是否有适用于所有流行编程语言的SDK,这说明该项目在技术上有很高的易用性。
除了SDK,还有许多工具可以大大简化开发人员的引导和日常开发过程。检查是否存在文本编辑器的扩展,测试框架,以及其他自动化、部署和调试的工具,使在给定的区块链上开发应用程序更加简单、快速,并最终更容易获得。
技术分析的关键问题:
项目的编程概念是否容易学习?它们是否能实现快速、安全和高效的开发?是否有足够的学习材料和参考代码?是否也涵盖了更高层次的概念,如最佳实践和模式?对于最常见的问题,是否有开发者工具?这些工具以及主要项目的源代码是否都是开源的?除上述因素外,还有其他考虑因素,包括概念方面的一些不太明显的易用性标志,如普通受众对给定区块链项目的一般概念的理解程度。如果用户可以快速进入该空间,而不需要首先获得相当多的新知识,那么易用性就会得到提升。在这方面,存在针对最终用户的教育资料和避免技术术语和行话的无障碍语言是非常有益的,但可能很难在一个广泛的生态系统中进行分析。
在任何情况下,区块链的易用性不是一个可以以后添加的好东西,而是需要根植于项目的DNA中。特别是对于技术上的易用性,必须在一开始勾勒协议的内部运作方式时就加以考虑。
没有易用性——而不仅仅是可扩展性——就不会真正被普及。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。