区块链去中心化分布式_为什么渐进式去中心化是区块链的最大希望

区块链去中心化分布式

by Arthur Camara

通过亚瑟·卡马拉(Arthur Camara)

为什么渐进式去中心化是区块链的最大希望 (Why Progressive Decentralization is blockchain’s best hope)

不变性是区块链的最大优势和最大障碍。 逐步分权可能是答案。 (Immutability is blockchain’s greatest strength and biggest barrier. Progressive decentralization could be the answer.)

When we released CryptoKitties a year ago, we opted not to fund it up front with an ICO but instead build it on a sustainable revenue model. That model is this: we collect a fee of 3.75% from every transaction in the game. Given that we’d be unable to change the fee once we launched — CryptoKitties is built on the Ethereum blockchain — people often ask how we arrived at that number.

一年前,当我们发布CryptoKitties时 ,我们选择不通过ICO 预先为其提供资金,而是选择以可持续的收入模型为基础。 这种模式是这样的:我们从游戏中的每笔交易中收取3.75%的费用。 鉴于一旦启动我们便无法更改费用-CryptoKitties建立在以太坊区块链上-人们经常问我们如何得出该数字。

It sounds like a smart, well-reasoned choice. I could spin a compelling story about how we ran simulations with advanced prediction models to find the fee that would yield optimal returns.

这听起来像是明智的选择。 我可以讲一个引人入胜的故事,说明我们如何使用高级预测模型运行模拟,以找到可以产生最佳回报的费用。

But that’s not true.

但这不是事实。

The truth is we made an educated guess. We picked a number that felt fair and we committed to it.

事实是我们做出了有根据的猜测。 我们选择了一个公平的数字,并致力于这一工作。

不变性真棒又可怕 (Immutability is awesome and scary)

We easily could have chosen wrong, and since you can’t change something once you add it to the blockchain, that would have been cat-astrophic. Fortunately for CryptoKitties, our community is so passionate and the Kitties are so adorable that 3.75% worked just fine.

我们很容易选择了错误,并且由于一旦将某些内容添加到区块链中就无法更改,那将是灾难性的 。 幸运的是,对于CryptoKitties,我们的社区充满热情,而Kitties非常可爱,以3.75%的表现不错。

Immutability, the inability to be edited, is at once the blockchain’s greatest strength and its largest barrier to meaningful adoption. The pressures of immortal code paralyze developers: you can tinker in a test environment forever, but there will always be real-world variables you can’t anticipate. Covering your eyes and hitting launch is no way to make breakthroughs. It’s more likely to produce breakdowns.

不变性,即无法编辑,是区块链的最大优势,也是实现有意义采用的最大障碍。 永生代码的压力使开发人员陷于瘫痪:您可以永远在测试环境中进行修补,但是总会有一些您无法预期的实际变量。 遮住眼睛并击中发射台是无法取得突破的。 产生故障的可能性更大。

Our fee was just one decision among many: how long should breeding a Kitty take? At what rate should their breeding cooldowns slow? How much should a Gen 0 cat cost? On blockchain, even a seemingly minor choice can pose serious, even critical, consequences.

我们的费用只是众多决定中的一个:繁殖一只小猫要花多长时间? 他们的繁殖冷却应该以多大的速度减慢? Gen 0猫要花多少钱? 在区块链上,即使是看似微小的选择也可能造成严重甚至严重的后果。

Decentralization offers everyday people immense benefits: the fairness of permanent and universal rules and the transparency of code and behavior which, combined, create security. However, because it’s often implemented with all-or-nothing immutability, blockchain makes agile development impossible and slows teams to a crawl.

分权为每天的人们带来了巨大的好处:永久性和普遍性规则的公平性以及代码和行为的透明性,共同创造了安全性。 但是,由于通常使用全有或全无的不可变性来实现,因此区块链使敏捷开发变得不可能,并拖慢了团队的爬行速度。

Agility requires iteration. Iterating quickly is key to building the best products, and the best products spark mass adoption.

敏捷性需要迭代。 快速迭代是构建最佳产品的关键,并且最佳产品可以激发大量采用。

进入渐进式权力下放 (Enter Progressive Decentralization)

We encountered these barriers ourselves building CryptoKitties, which forced us to negotiate including decentralized features while building something that, ya know, works. Since then, we’ve started exploring progressive decentralization in development, an idea we briefly introduced a while ago.

我们自己在构建CryptoKitties时遇到了这些障碍,这迫使我们进行谈判,包括去中心化功能,同时构建了可以使用的东西。 从那时起,我们就开始探索开发中的渐进式分权,这是我们不久前简要介绍的一个想法。

Let’s take a deeper dive now.

现在让我们更深入地潜水。

Simply put, progressive decentralization advocates easing into decentralization in stages rather than diving in headfirst. What that looks like is building mechanisms into smart contracts that confer special powers to the creators up front, then incrementally lock those powers away in a transparent and systematic way.

简而言之,渐进式分权提倡分阶段放松分权,而不是先潜水。 看起来是在智能合约中建立机制,这些机制预先向创建者授予特殊权力,然后以透明,系统的方式逐步锁定这些权力。

The critical condition is that the locking mechanisms must be public and immutable from the start. The creator can’t decide to tweak the terms later and indefinitely extend their power. That balance is vital: done correctly, progressive decentralization allows creators the flexibility to repair their code without compromising the decentralized features of the contract.

关键条件是,锁定机制从一开始就必须是公开的且不可更改。 创建者无法决定稍后调整条款并无限期地扩展其权力。 这种平衡是至关重要的:正确地进行渐进式去中心化可以使创建者灵活地修复其代码,而不会损害合同的去中心化功能。

渐进式分权可以采取多种形式 (Progressive decentralization can take many forms)

There’s no one right way to implement progressive decentralization. There are dozens of variables to consider, and the best approach will vary from project to project.

没有实现逐步分权的正确方法。 有数十个变量需要考虑,最佳方法因项目而异。

Here are a couple ways developers could approach progressive decentralization:

开发人员可以采用以下几种方式逐步进行权力下放:

  1. Author multiple contracts with appropriate separation of concerns and the ability to replace some of those contracts. Some decentralized apps (“dapps”) like Decentraland, which features upgradable contracts, are already using this.

    编写多个合同,并适当分离关注点,并具有替换其中一些合同的能力。 一些分散的应用程序(“dapps”)像Decentraland ,其特点可升级的合同,已经在使用此。

  2. Configurable variables and permissions to change those values independently. Etheremon, for instance, grants special permissions to groups of users who become moderators.

    可配置变量和权限,可以独立更改这些值。 例如, Etheremon向成为主持人的用户组授予特殊权限 。

  3. Incorporate a predefined set of ascending levels in the contract, each allowing the creators certain capabilities. The levels can only be increased, never decreased, so backtracking isn’t an option. On level 1, for example, the contract owners can play around with all gameplay variables. At level 2, their capability to modify core variables ends. At the final level, the contract revokes all their special privileges.

    在合同中包含一组预定义的升序级别,每个级别都允许创建者某些功能。 只能增加级别,而不能减少级别,因此不能选择回溯。 例如,在级别1上,合同所有者可以使用所有游戏变量。 在级别2,他们修改核心变量的能力结束。 在最后一级,合同撤销其所有特殊特权。

To die-hard decentralists, some of this probably sounds too centralized. But this is just the starting point. There are further measures to balance decentralization with iteration. The solution combines transparency of the purpose and the conditions and constraints in the contracts. These constraints could include:

对于顽固的权力下放者来说,其中有些听起来太集中了。 但这仅仅是起点。 还有其他措施可以在分散与迭代之间取得平衡。 该解决方案结合了目标的透明性以及合同中的条件和约束。 这些限制可能包括:

  1. Selection: Not everything can be modified, only the specific items that we need to iterate.

    选择:并非所有内容都可以修改,只有我们需要迭代的特定项目可以修改。

  2. Range: For many of the questions around game economies, we may have a general idea but not know the precise answer. Limiting configuration to a certain range guarantees users that the iteration will land within a reasonable scope.

    范围:对于许多有关游戏经济性的问题,我们可能有一个总体思路,但不知道确切的答案。 将配置限制在一定范围内可确保用户迭代将落在合理范围内。

  3. Direction: Similar to the “levels” concept above, allow certain variables to move only in one direction, decreasing or increasing but never backtracking.

    方向:类似于上面的“级别”概念,允许某些变量仅在一个方向上移动,减小或增大,但永不回溯。

追究创作者的责任 (Holding creators accountable)

All this sounds great in theory. But how do we ensure creators stay true to their roadmap and reach the fully decentralized version of their contracts? How can users opt-in early with the guarantee that the system is an application of progressive decentralization? How can we know we won’t end up with just another flawed, centralized system?

从理论上讲,所有这些听起来都很不错。 但是,我们如何确保创作者忠于自己的路线图并达成合同的完全去中心化版本? 用户如何在保证系统是渐进式分散化应用的前提下尽早选择加入? 我们怎么知道我们不会仅仅拥有另一个有缺陷的集中式系统?

Progressive decentralization includes tenets to keep creators accountable:

渐进式权力下放包括旨在使创作者负责的原则:

基于时间或基于块的成熟度 (Time- or block-based maturity)

Lock certain configuration values, revoke the owner’s capabilities or move to the next level of maturity past a certain time or block number. Once that point is reached, the contract automatically changes.

锁定某些配置值,撤消所有者的功能或在特定时间或块编号之后移至下一个成熟度级别。 一旦达到这一点,合同就会自动更改。

Imagine, for example, that CryptoKitties had a runway of 360,000 blocks (around 60 days’ time) from the moment it launched to adjust the Kitties’ breeding cooldown variables. We could tweak the cooldown mechanics until that point, giving ourselves the breathing room to perfect the balance, while still guaranteeing players that we wouldn’t have that power indefinitely.

例如,想象一下,自从CryptoKitties推出以调整Kitty繁殖冷却时间变量的那一刻起,它就拥有360,000个区块(大约60天的时间)。 在此之前,我们可以调整冷却机制,为自己提供喘息的空间,以达到完美的平衡,同时仍向玩家保证我们不会无限期地拥有这种力量。

基于使用情况的成熟度 (Usage-based maturity)

Lock those capabilities once a certain number of users or transactions are completed. This option needs to be carefully thought out to avoid exploits, but we could have, for example, built configurable fees into CryptoKitties that would lock in after 10,000 transactions.

一旦一定数量的用户或交易完成,就锁定这些功能。 需要仔细考虑此选项,以免受到攻击,但是例如,我们可以在CryptoKitties中内置可配置的费用,该费用将在10,000次交易后锁定。

经济激励 (Economic incentive)

Align the creator’s incentives with increased decentralization. In this scenario, the creators profit more when the contract becomes more decentralized. Perhaps the fee rises with each level the developer ascends, locking in at the maximum fee when they reach full decentralization. Or, alternatively, perhaps they make no money at all until full decentralization is in place. This financial reward motivates the developer to reach decentralization at a reasonable pace.

使创作者的激励与权力下放更加协调。 在这种情况下,当合同变得更加分散时,创建者会获利更多。 费用可能会随着开发人员的提升而上升,并在完全下放时锁定在最高费用上。 或者,或者,在完全放权之前,他们根本不赚钱。 这种经济上的激励促使开发商以合理的步伐实现权力下放。

没有在区块链上构建的最佳方法 (There’s no best approach to building on the blockchain)

“Progressive decentralization” is really an umbrella encompassing many strategies, mechanisms, and tools to make building on the blockchain more viable. The best way to apply progressive decentralization will always depend on the project and use a mix of the concepts outlined above.

“渐进式去中心化”实际上是一个涵盖许多策略,机制和工具的保护伞,以使在区块链上的构建更加可行。 进行渐进式权力下放的最佳方法将始终取决于项目并使用上述概念的混合。

Progressive decentralization is not perfect. The ideal smart contract is simple and straightforward, and these measures add complexity. How and how much to incorporate it is a trade-off that needs to be evaluated on a case-by-case basis.

渐进式权力下放并不完美。 理想的智能合约简单明了,这些措施增加了复杂性。 合并的方式和程度是一个折衷方案,需要根据具体情况进行评估。

Although it may anger hardline decentralists, we believe progressive decentralization is far better for users in the long run: by giving developers the flexibility to adjust, the consumer gets a more useful product. That means they’ll actually use it, and once it brings value to their lives, they’ll sing its praises to the people around them. That’s how mass adoption starts.

尽管这可能激怒强硬的权力下放者,但从长远来看,我们认为渐进式权力下放对用户而言要好得多:通过为开发人员提供调整的灵活性,消费者可以获得更有用的产品。 这意味着他们将实际使用它,一旦它为生活带来了价值,他们就会向周围的人表示赞赏。 这就是开始大规模采用的方式。

Authors: Arthur Camara, Dieter Shirley, and Grady Mitchell

作者: 亚瑟·卡玛拉 ( Arthur Camara) , Dieter Shirley和Grady Mitchell

翻译自: https://www.freecodecamp.org/news/why-progressive-decentralization-is-blockchains-best-hope-31a497f2673b/

区块链去中心化分布式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/392133.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

编译原理—语义分析(Java)

递归下降语法制导翻译 实现含多条简单赋值语句的简化语言的语义分析和中间代码生成。 测试样例 begin a:2; b:4; c:c-1; area:3.14*a*a; s:2*3.1416*r*(hr); end #词法分析 public class analyzer {public static List<String> llistnew ArrayList<>();static …

linux问题总结

linux问题总结 编写后台进程的管理脚本&#xff0c;使用service deamon-name stop的时候&#xff0c;出现如下提示&#xff1a;/sbin/service: line 66: 23299 Terminated env -i LANG"$LANG" PATH"$PATH" TERM"$TERM" "${SERVICEDIR}/${SE…

linux vi行尾总是显示颜色,【转载】Linux 下使用 vi 没有颜色的解决办法

vi 是没有颜色的&#xff0c;vim 是有颜色的。我们可以通过 rpm -qa |grep vim 看看系统中是否安装了下面 3 个 rpm 包&#xff0c;如果有就是安装了 vim 。[rootBetty ~]# rpm -qa |grep vimvim-minimal-7.0.109-7.el5vim-enhanced-7.0.109-7.el5vim-common-7.0.109-7.el5如果…

时间序列分析 lstm_LSTM —时间序列分析

时间序列分析 lstmNeural networks can be a hard concept to wrap your head around. I think this is mostly due to the fact that they can be used for so many different things such as classification, identification or just simply regression.神经网络可能是一个难…

关于计算圆周率PI的经典程序

短短几行代码&#xff0c;却也可圈可点。如把变量s放在PI表达式中&#xff0c;还有正负值的处理&#xff0c;都堪称经典。尤其是处处考虑执行效率的思想令人敬佩。 /* pi/41-1/31/5-1/71/9-…… */ #include <stdio.h> int main(){ int s1; float pi0.,n1.,…

华为产品技术学习笔记之路由原理(一)

路由器&#xff1a;路由器是一种典型的网络连接设备&#xff0c;用来进行路由选择和报文转发。路由器与它直接相连的网络的跳数为0&#xff0c;通过一台路由器可达的网络的跳数为1.路由协议&#xff1a;路由器之间维护路由表的规则&#xff0c;用以发现路由&#xff0c;生成路由…

Linux网络配置:设置IP地址、网关DNS、主机名

查看网络信息 1、ifconfig eth0 2、ifconfig -a 3、ip add 设置主机名需改配置文件&#xff1a; /etc/hosts /etc/sysconfig/network vim /etc/sysconfig/network NETWORKINGyes NETWORKING_IPV6no HOSTNAMEwendyhost Linux配置网络 方法一&#xff1a; 1、使用setup命令进入如…

编译原理—小型(简化)高级语言分析器前端(Java)

实现一个一遍扫描的编译前端&#xff0c;将简化高级语言的部分语法成分&#xff08;含赋值语句、分支语句、循环语句等&#xff09;翻译成四元式&#xff08;或三地址代码&#xff09;&#xff0c;还要求有合理的语法出错报错和错误恢复功能。 测试样例 beginwhile a<b do…

linux boot菜单列表,Bootstrap 下拉菜单(Dropdowns)简介

Bootstrap 下拉菜单是可切换的&#xff0c;是以列表格式显示链接的上下文菜单。这可以通过与 下拉菜单(Dropdown) JavaScript 插件 的互动来实现。如需使用下拉菜单&#xff0c;只需要在 class .dropdown 内加上下拉菜单即可。下面的实例演示了基本的下拉菜单&#xff1a;实例主…

dynamodb管理ttl_如何使用DynamoDB TTL和Lambda安排临时任务

dynamodb管理ttlby Yan Cui崔燕 如何使用DynamoDB TTL和Lambda安排临时任务 (How to schedule ad-hoc tasks with DynamoDB TTL and Lambda) CloudWatch Events let you easily create cron jobs with Lambda. However, it’s not designed for running lots of ad-hoc tasks,…

5g创业的构想_数据科学项目的五个具体构想

5g创业的构想Do you want to enter the data science world? Congratulations! That’s (still) the right choice.您想进入数据科学世界吗&#xff1f; 恭喜你&#xff01; 那(仍然)是正确的选择。 The market currently gets tougher. So, you must be mentally prepared f…

Microsoft Windows Phone 7 Toolkit Silverlight SDK XNA Game Studio 4.0 开发工具套件正式版下载...

Windows Phone 7开发工具套件包括Visual Studio 2010 Express for Windows Phone、Windows Phone模拟器、Expression Blend 4 for Windows Phone、XNA Game Studio 4.0和新增加的必应地图SDK。 英文版的光盘镜像&#xff1a;点击下载 文档中心&#xff1a;Windows Phone develo…

数据挖掘—Apriori算法(Java实现)

算法描述 &#xff08;1&#xff09;扫描全部数据&#xff0c;产生候选1-项集的集合C1&#xff1b; &#xff08;2&#xff09;根据最小支持度&#xff0c;由候选1-项集的集合C1产生频繁1-项集的集合L1&#xff1b; &#xff08;3&#xff09;对k>1&#xff0c;重复执行步骤…

怎么汇报一周开发工作情况_如何在没有经验的情况下获得第一份开发人员工作

怎么汇报一周开发工作情况Whether you’ve done a coding bootcamp or taught yourself, getting your first developer job with only a few months of coding under your belt is hard.无论您是完成了编码训练营还是自学了&#xff0c;仅靠几个月的编码就很难拿到第一份开发人…

vue.js的认知

Vue.js&#xff08;读音 /vjuː/, 类似于 view&#xff09; 是一套构建用户界面的渐进式框架。 Vue 只关注视图层&#xff0c; 采用自底向上增量开发的设计。 Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。 Vue 学习起来非常简单&#xff0c;。转载于…

c语言中的无符号字节,C语言之有符号数和无符号数

我们知道&#xff0c;在C语言中存在无符号数和有符号数(一些高级语言如Java里面是没有无符号数的)&#xff0c;但是对于计算机而言&#xff0c;其本身并不区别有符号数和无符号数&#xff0c;因为在计算机里面都是0或者1&#xff0c;但是在我们的实际使用中有时候需要使用有符号…

8种排序算法比较

8种排序算法&#xff0c;各算法名称见下表或见源码。运行程序时&#xff0c;将需要你输入一数值&#xff0c;以确定对多少随机数进行排序。然后将会显示各排序算法的耗时。并且你可选择时否进行正序和反序测试。 由于水平有限&#xff0c;可能存在一些错误&#xff0c;还请各位…

两个问题,关于XP进程优化及SVSP虚拟存储平台

这两个问题让我有点头痛&#xff0c;是Boss这阵子布置给我的&#xff0c;都一段时间了&#xff0c;我还是没找出合适的解决方案来答复Boss.第一个问题是&#xff1a;查查X200或X61中的进程&#xff0c;看哪些是可以不要的&#xff0c;停掉&#xff0c;但又不影响用户使用。&…

数据挖掘—朴素贝叶斯分类算法(Java实现)

算法描述 &#xff08;1&#xff09;扫描训练样本数据集&#xff0c;分别统计训练集中类别 Ci 的个数 Di 和属于类别Ci 的样本中属性Ak取值Xk为 Dik 的实例样本个数&#xff0c;构成统计表&#xff1b; &#xff08;2&#xff09;计算先验概率和条件概率&#xff0c;构成概率表…

net core 获取网站目录

AppContext.BaseDirectory 获取项目的根目录转载于:https://www.cnblogs.com/zxs-onestar/p/7147265.html