“我想要我自己的网络!”


译文。仅代表原作者个人观点。

去中心化应用应该从一开始就彻底开发并启用自己的网络。为什么?因为运行在别人的网络上,应用无法定义其操作,治理和经济的重要特征。应用开发者绝对需要这种(自定义的)自由。

首先,考虑任何开放去中心化网络所面临的共同问题:吞吐量限制。为了避免 DoS 攻击,某种程度上,网络必须限制每个连接用户所能消耗的资源量。平台对此的解决方案是通用性的,因为他们对未来将要执行的特定用例不了解。

通用解决方案只是通用的。平台层面,无法区分不同类别的用户,不同类别的任务以及不同类别的交易。因此,平台限定带宽的方法并不多。其中,最有效的解决方案是经济,交易费或 token staking ,以此制约单个用户所能消耗资源量。

现在考虑应用的需求。此应用知道自己的用例。它可以创建一个最适合它的速率限制模型( rate-limiting model )。 选择范围变得更广泛。 让我举几个例子:

  • 1,允许某类用户免费执行高成本的维护交易。为什么?因为任何数据库都需要维护,去中心化网络也不例外。任何需要批处理的任务——高成本计算、搜索不一致( searching for inconsistencies ) 等 —— 都属于这一类。此类交易的费率限制( rate limiting )很简单:例如,你允许此类别中的每天一单笔交易(you allow, say, a single transaction per day in this category)。这可以在现有平台上实现?是的,但为了使任务适应平台的通用限制,需要许多额外工作。增加复杂性总是不好的。
  • 2,速率限制机制必须降低摩擦。比如,你希望用户之间的资金转账每天免费 X 次,之后需要交易费用。你只允许那些已经通过某个信任阈值的用户如此,类似 Reddit的 karma 。你可以根据用户的信誉,设置不同数量的免费交易。你现在就能做到这一点吗?不见得。应用不得不竭尽全力代表用户支付交易费用(Applications have to bend over backwards to pay transaction fees on behalf of users)。
  • 3,假设你希望你的应用拥有两种代币 —— staking 代币和货币代币——你希望这两种代币参与你的速率限制方案。长期用户使用 staking 代币 ,访客类型的用户(guest users)使用货币代币。你现在能做到这一点吗?你可以开发一个新平台来做到这一点,因为现有平台几乎没有办法做到。

这些例子仅仅是我们可能想要考虑的各种设计选择例证。显然,一个平台可以实现其中的任何一个,但是如果该平台要为广泛的应用提供服务,它不可能实现所有可能的设计。平台必须保持通用。我的目的是指出,通用性的局限性,而不是声称任何特定模型,就其本身而言,是错误的。

其次,让我们考虑一类特殊的网络用户 - 交易验证者(矿工, stakers,witnesses,whatchamacallits)。这些用户提供交易验证通用服务。如果一个应用需要其他类型的服务,如批量处理或高成本的罕见计算,它必须争取其他用户来提供这些服务。

但验证者能够提供应用可能需要的任何其他计算服务。验证者所做的只是运行他们所下载的软件并以此赚钱。问题是,目前他们运行的软件是通用平台软件。因此,应用不能将一些任务委托给这些验证者,因为这些任务太具体。

如果应用有自己的网络,自己的节点软件和自己的验证者群组,这将会非常不同。许多可能性将被打开——oracle服务,批处理,去中心化交易所的订单建立等。验证者不会仅限于一项服务,还可以为网络执行许多重要任务。他们将成为一个自动支持结构,与系统的目标高度一致。

所有这些都表明,在我们如何思考去中心化架构方面,所持有的错误。一直习惯于 PoW 网络,安全性在很大程度上取决于规模,我们只考虑通用平台。但是我们不必再这样做了,因为 PoS 共识( Casper,BFT 和其他 )提供了一种方式,可构建拥有类似安全性的小型网络。

为开发者提供完全可用的去中心化全堆栈编程,所缺少的一件事是,一个合适的软件开发工具包。实际上,构建自己的区块链网络是一个非常复杂的任务。但这只是因为我们还没有建立一个区块链构建软件。还记得编译器如何将软件开发变成商品(commodity)吗? 这就是我想要说的。

原文:https://blog.coinfund.io/i-want-my-own-network-e01543f74d4d
作者:Aleksandr Bulkin
译者:Mitta蓝