一文读懂NEAR账户模型有哪些特别之处
使用门槛高、对普通用户不友好经常是人们诟病区块链的原因之一。如何设计出一款简单易用的区块链系统相信是每个项目方都在苦苦思索的问题。NEAR的账户模型凭借别出心裁的设计,在很大程度上降低了用户的准入门槛,可以说是易用性方面的典范。下面就让我们一起看看NEAR账户模型有哪些特别之处吧。
什么是账户模型
所谓账户模型,本质上是一种记账方式,最直观的展示是用户账户的交易往来情况和账户余额。一般来讲,区块链世界存在两种主流的记账方式,一种是以比特币为代表的UTXO,另外一种就是以太坊为代表的账户模型。下面对这两种记账方式做一个简单的介绍。
UTXO即“未经花费的交易输出(Unspent Transaction Output)”,它和账户模型有一个很大的区别就是,这种模型只记录交易本身,而不记录交易的结果。像传统的账户模型,只直接记录结果,比如,Alice账户里有1万枚通证,她如果要转给Bob 3000枚通证,系统就会从Alice账户里扣除3000,最后Alice的账户余额就是7000,而Bob的账户余额则会在原来基础上增加3000。
UTXO模型的记录方式会比较特殊,它会把整个交易过程记录下来,也就是我们俗称的流水账。还是假设Alice账户里有1万枚通证,Alice要转给Bob 3000。UTXO在记录的时候,会先记做这1万块钱全部转了出来,然后再记录有3000块转到了Bob的账户里,又有7000枚通证转到Alice自己的账户。当然在实际操作中,会因为包含交易费的存在而稍稍复杂一些。
关于两种模型谁优谁劣的问题人们已经争论了许久,总的来说二者在不同的场景下可发挥不同的优势。UTXO更适用于一些简单业务,而账户模型在可编程性方面则更胜一筹,目前主流的公链包括以太坊、NEAR均采用了后者。
NEAR账户模型简介
综合多种因素考虑,NEAR选用了账户模型这种记账方式。不过在前人的基础上,又做了很多大胆的创新。最明显的改变是NEAR放弃了传统的以哈希值作为公钥地址的做法,而是采用了可读性较高的账户ID。
经常操作数字货币的人都知道,如果我们想要为对方转账,需要对方提供一个公钥地址,这个地址往往是由一长串字符构成的,而字符本身其实没有任何意义。这样的操作和我们已经熟悉的现实世界转账操作是格格不入的。我们无法输入收款人的姓名,意味着要常常担心有输错地址的风险。而且这样的表现形式对那些完全没有接触过数字货币的人十分不友好,最终导致用户使用门槛大大升高。
NEAR的账户模型则可以在很大程度上令这一情况得到改善。还是以Alice和Bob为例,如果Alice向Bob转账,只需向其账户ID输入要转账的金额即可,其操作和我们使用银行卡转账的操作十分类似。Bob的账户ID为bob.near,即由Bob的名字和“.near”构成,十分好记。如此,用户的心理压力会减轻很多,操作也变得更加简单。
另外,借助于NEAR账户独特的账户设计,用户还可在主账户之外设立更多的次级账户,并通过部署合约对次级账户实施管理。比如Bob在创建主账户bob.near之后,可以继续创建类似family.bob.near、friend.bob.near等次级账户。假设Bob计划为这些次级账户每个月转一笔钱,部署一个合约就能做到,听上去是不是简单得很?
NEAR账户模型的其他优势
上文提到NEAR使用账户ID而不是哈希值,其实每个账户都是一个智能合约,具有很强的可扩展性。具体的实现方式是通过访问秘钥(access keys)的模型,建立多种可以定制化的权限,来满足不同的使用场景。换句话说,可以把访问秘钥想象成多个公私钥对,来管理不同的应用和交易。这也是其与以太坊不同的地方,有关二者的具体对比可观察下图:
每个访问秘钥都可以代表其账户准许不同的许可权。目前该许可权大致分为两种,一种是完全许可,一种是仅限于函数调用(function call)的许可。
函数调用许可可以说是NEAR可用性最具代表性的功能之一。借助于该功能,用户可以经由自己的账户向接收方发送非货币性质的函数调用交易,接收方的账户ID由访问秘钥限制。简单总结一下,这一功能可以衍生出以下几个用例:
在无需信任合约代码或网络应用的情况下,为前端网络应用授权。在用户的账户上创建新的访问秘钥,并将其设置为指向网络应用合约,即可实现此功能。举个例子,当我们每次使用以太坊的DApp时,需要发起请求并获得验证。但在NEAR操作DApp,如最近比较热门的Berry Club,我们只需登录Berry Club的网站即可与该游戏互动,之后便不用频繁地登录了,使用体验和普通的登录网站并无太多区别。
对开发者而言,该功能让没有NEAR账户的用户也能在链上使用其开发的DApp和合约。具体操作为:后端为用户在合约的账户上创建了一把新的秘钥,并将其指向合约本身。现在用户可以在不经由任何钱包的情况下就能快速使用该网络应用。
此外,NEAR的账户模型也可以使开发者为用户创建更为灵活的付费方案,甚至允许开发者在不影响其应用去中心化的本质时,为用户垫付交易费。像是免费、月费、年费等用户比较习惯的付费订阅模式,相比于使用一次付费一次的模式便捷了很多,降低了新用户使用区块链应用的门槛。
最后,每个NEAR账户都会根据自身存储数据的大小,规定最低余额。存储的数据越多,最低余额就越高,一定程度上减少了流通中NEAR的数量,可以让NEAR通证更好地捕获价值。
作为打造开放网络的重要推手,开发者一直被NEAR视作最珍贵的资产之一。为开发者赋能,打造良好的用户体验一直是我们的目标。未来NEAR仍将坚守这一原则,力争为开发者和用户创造不亚于传统互联网的体验。
微信扫描关注公众号,及时掌握新动向
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场