旧闻回顾 | NEAR 账户模型有哪些特别之处
2022-10-26 07:04
NEAR Protocol
2022-10-26 07:04
NEAR Protocol
2022-10-26 07:04
订阅此专栏
收藏此文章


使用门槛高、对普通用户不友好经常是人们诟病区块链的原因之一。如何设计出一款简单易用的区块链系统相信是每个项目方都在苦苦思索的问题。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 仍将坚守这一原则,力争为开发者和用户创造不亚于传统互联网的体验。

相关Wiki

【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

NEAR Protocol
数据请求中
查看更多

推荐专栏

数据请求中
在 App 打开