假设你想玩一个区块链游戏。例如,假设您想要一只加密猫。或者玩一些收集卡片的游戏。这实际上是一个非常复杂的过程。你需要:
1. 安装Metamask
2. 创建密钥对,并安全地存储私钥。如果你以后想从另一个设备上播放,你需要了解如何将它传输到那个设备上;
3. Coinbase登记
4. 做一个KYC,包括发送你的文件到Coinbase。
5. 等待时间
6. 首先需要买以太币,只有先购买,然后才能尝试游戏!
7. 从Coinbase转移以太币
8. 终于买了你的加密猫!…尽管现在你需要为每次与游戏的交互付费,你的延迟至少是20秒。
运行在区块链上的现代游戏和应用程序在上述登录过程中报告了惊人的95-97%的下降率。这意味着在100个用户中,只有5个或更少的用户真正开始使用它!
上面的问题大致可以分为三个子问题:
1. 必须安装浏览器插件(或钱包应用程序)以安全地与链交互;
2. 必须具备及了解公开/私钥的保安;
3. 必须为每笔交易支付燃料费。
上面的第1项和第2项是与区块链安全交互所必需的,它们的设计目的是确保用户不会丢失他们的资金或资产。最后一项,除了为矿商提供经济激励外,也是保持区块链自身安全的必要条件——如果交易是免费的,那么DDoS系统就会向它发送大量免费的无用交易,这对DDoS来说是微不足道的。
一旦一个人进入了特定的区块链生态系统,比如以太坊或NEAR,他们就安装了浏览器插件或钱包,在他们的帐户上有一些资产,并设置了所有设备来使用正确的密钥对。他们使用Web3应用程序相对简单,除了可能是应用程序的缓慢。
然而,到目前为止,大多数互联网用户都不使用区块链,如果我们想要改变它,我们需要尽可能简化他们的登录。在理想的情况下,开发在区块链上运行的分散应用程序应该不会比构建nodeJS应用程序更困难,而且一旦部署了这样的应用程序,以前从未使用过区块链的用户应该能够在浏览器中打开它并开始与它进行交互。
让我们考虑一下上面描述的每一个障碍,今天为解决这些障碍所做的努力,以及我们在协议级别上正在开发的支持这些障碍的更改。
浏览器插件/钱包应用程序
您需要在您的机器上运行一些定制的二进制文件来安全地与区块链进行交互。其背后的动机是,您刚刚在浏览器中打开的任何托管内容都完全由主机控制,因此可以在任何时候任意更改。即使托管的解决方案存储本地加密的密钥,它的代码稍后也可以更改,以便从本地存储中获取数据,并在解密后立即将数据发送到远程服务器,以便与区块链进行某种交互。
然而,考虑一下今天没有参与区块链购买加密的人。他们可能会在本地设立账户并将资金存储在那里,还是直接存储在Coinbase上,他们可能会选择后者。
类似的推理也适用于使用去中心化的应用程序。当用户开始与区块链交互时,他们应该能够通过托管的解决方案进行交互。它将提供较低的安全,因为集中的实体将有能力接管账户,但是早期的用户没有太多损失,那么这样的安全没有比一个人今天与集中式服务用户信任谁大量的资产和数据。
为了强调这一点,请注意,大多数人都是从Firefox或Chrome扩展目录中安装MetaMask,以及从iTunes或PlayStore中安装钱包应用程序,这实际上是信任MetaMask /钱包应用程序开发人员,以及Mozilla、苹果或谷歌等一些大玩家。在仔细检查代码之后,从源代码安装MetaMask是非常罕见的。因此,我们已经将账户的安全性委托给集中的实体。
现在已经开发出一些解决方案,开发人员可以将其集成到去中心化的应用程序中,这样就可以在不安装浏览器插件和钱包应用程序(如PorTIs)的情况下与应用程序进行交互。此类服务的问题在于,一旦用户信任其对此类服务的私钥,帐户的安全性最终就会受到永久性的危害。如果以后想获得该帐户的全部所有权,必须创建一个新帐户并将所有资产转移到该帐户。如果一个特定的应用程序不能提供一个方便的方式来转移资产,用户将永远无法获得这些资产的全部所有权。
这个问题的一个解决方案是拥有一个基于合约的帐户,这样用户可以替换控制帐户的密钥。但要想让这个功能发挥作用,帐户需要从第一天起就基于合约,除非PorTIs或其他服务默认创建这样一个基于合约的帐户,否则用户将没有这个功能。此外,基于合约的帐户不能完成由私钥保护的常规帐户所能做的所有事情。
在NEAR中,默认情况下每个帐户都是基于合约的,并且由NEAR提供托管钱包。最终,用户可以开始使用托管的钱包与区块链进行交互,然后在以后的任何实例中,通过在本地创建一个新的密钥对并更新帐户以使用这样的密钥对来更新帐户的安全性。
有人为这种方法提出了一个我们非常喜欢的术语:渐进安全。随着用户对区块链的投入和投入的增加,用户会随着时间的推移从最高的可用性和低安全性过渡到最高的安全性和低可用性。
理解私钥/公钥对
如果我们让您相信渐进式安全性是一件好事,并且托管钱包是一种方法,那么密钥对就会自然消失。在最简单的方法中,托管钱包将所有用户的私钥存储在自己的托管数据库中,并向用户提供自己的身份验证层。它可以提供他们使用Facebook登录,谷歌登录,或只是良好的旧电子邮件和密码选项。只有当用户想要从使用托管钱包过渡到使用托管钱包时,他们才需要正确地设置私钥,并学习如何将私钥传输到其他设备。
有趣的是,使用基于合约的帐户,转账过程本身可以更容易地完成,同时保持完全的安全性。而不是将私钥传输到另一个设备通过一些不安全的通道,合同管理用户帐户可以有两个方法:“proposeNewSk”和“approveSk”,任何人都可以调用第一个方法,并添加一个新的私钥提出了私钥的帐户列表,和“approveSk”只能被称为从一个现有的签名私钥的账户,并可以通过任何拟议中的私钥的帐户。这样,用户可以在新设备上设置一个全新的密钥对,从该设备提出新的私钥,并从现有设备批准它。
矿工费
任何在链上执行的事务都会消耗大量的资源。为了安全地执行状态更改,大量独立实体需要在应用状态转换之前对其进行验证。由于在执行事务上花费了一定数量的资源,因此它不能是自由的。
当人们将Web3与Web2进行比较时,他们常常认为Web2服务本质上是免费的。当他们使用Facebook时,不必为每笔交易付费。但事实上他们是这样做的。如果用户的预期长期价值不超过处理其请求和存储其数据所花费的资源以及获取此类用户的成本,Facebook将不会向用户提供免费服务。当使用Facebook时,用户都会关注自己的数据,然后Facebook会以最不可接受的方式滥用这些数据,并关注这些数据。
对于区块链,如果应用程序开发人员认为用户的总终身价值将超过其交易的天然气成本,他们应能够支付此类交易。它是少数几个来自EOS的有意义的想法之一。同样,如果托管钱包在使用应用程序的用户中具有一定价值,他们也可以选择支付成本。例如,Near可能会选择为每个用户支付一些天然气成本,因为它非常有动机获得更高的协议采用率。由于开始玩加密猫咪的用户很可能会买一个,而且用户的预期价值非常高,所以加密猫咪可以选择支付与合同交互的成本。
这只解决了难题的一部分:抵消执行事务的成本。如果用户不必为交易付费,他们可以向系统发送免费的交易信息,并将托管钱包或应用程序开发人员设置的免费使用限额饱和。但同样,使用Facebook的人也可以向他们发送免费的请求,并使他们的资源饱和。这个问题决不是区块链独有的,而且已经有很多解决方案。托管钱包可以选择实施一个这样的ddos防范解决方案,并仍然为用户提供免费交易。
还有一个问题。在这个模型中,有人为用户付费,希望他们以后能得到一些价值,这是很容易得到的。谷歌、Facebook、苹果和其他科技巨头之所以有不透明的隐私政策,完全不尊重用户隐私,是有原因的。Web3背后的全部动机是结束这种实践,但是我们试图吸引用户的方式再次促进了这种实践。
然而,这是一个根本的区别。在Web3中,虽然用户可以开始使用以未来预期价值付费的服务,但他们可以随时切换到自己付费的交易,并使用托管钱包或浏览器扩展,这不会试图利用用户的隐私。
NEAR协议建立了一个对利害关系区块链的切分证明,并对可用性进行了狂热的强调。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)