去中心化的尺度
链客,专为开发者而生,有问必答!
此文章来自区块链技术社区,未经允许拒绝转载。
摘要:有些人因为其底层技术而对区块链感兴趣, 另外一些人对它的商业可能性着迷, 还有一些人关心它的社会和政治影响。 理性的人可能不同意后面两类人的观点。 区块链在技术上是有深度的、 创新的、 有趣的, 而且是建立在坚实理论上的。 我们才刚刚开始开拓比特币之外令人炫目的各种区块链项目, 其中的某些公链也许有一天甚至超越比特币。区块链行业近期的主要发展趋势将会是底层链技术的创新。我们一直在关注技术上如何实现去中心化。 现在, 我们要深入研究去中心化的动机。 这些问题跟技术无关, 却同样难以回答:去中心化一定是有益的吗? 经济上合适吗? 去中心化的社会影响是什么?本文将简要探讨去中心化的尺度问题,即在现实世界里,什么时候真正需要去中心化。
【去中心化的意义】
“去中心化”是加密经济学领域最高频词汇之一,通常被认为是区块链的整体存在理由,但它也是被定义得最不佳的词之一。花费数千小时的研究,价值数十亿美元的哈希算力,唯一目的在于试图达成去中心化,并加以保护和改善,当讨论变得富有敌对性,对于一个协议或协议延伸的去中心化性质下结论时,去中心化仁波切一个极为常见的宣称是,此协议的相反提案是“中心化”的,代表着低级和不可描述的落后,以此作为最终压倒性论点。
但是,对于这个词的真正含义,人们常常会感到困惑。比如下面这张大家讨论区块链去中心化时常见但是又完全没有帮助的图:
现实生活里,任何形式的系统实际上最终表现的都是2或者3,而不存在一个完全处理一切,垄断一切的有如图一的中心节点——因为这在性能上是不可实现的。
以太坊创始人Vtalik认为当人们在讨论软件的去中心化时,他们实际上在讨论的,是三个独立的中心化/去中心化的轴。在某些情况下很难看的清如何在没有另一个的情况下,能判定现在的这个是中心化还是去中心化的。一般来说,中心化和去中心化是互相独立的,这三个轴如下:
a.架构上的(去)中心化—这个系统是由多少个计算机组成的?这个系统可以容忍多少台计算机在任意一个时间崩溃后还能继续运行?
b.政治上的(去)中心化—有多少的个人和组织能最终控制组成这个系统的电脑?
c.逻辑上的(去)中心化—系统呈现和维护的接口和数据库结构像是一个单一的整体呢?还是非结构群体?
一个简单的启发是:如果你把这个系统的使用方和提供方一分为二,他们还能作为完全独立的单元进行运行吗?
显然在任何一个维度上,我们都无法定义究竟节点(决策者)小于多少就是“中心化”的,或者节点(决策者)大于多少,系统就是完善“去中心化”的。
遵从维基的钦定,中心化和去中心化的唯一界定就是有没有中心机构(central authority),不少人讨论去中心化时其实是在论证集中式和分布式的区别(主要在于有没有单点失效)。中心化和去中心化没有明显的界限,例如微信,从服务器的角度看来是去中心化的分布式系统(消息传递的过程中没有中心机构,也没有单点失效),但是从用户的角度看来就是中心化的集中式系统(腾讯就是中心机构)。电子邮件和 XMPP 的 federated server 模式一般来说属于去中心化的集中式系统,因为对一个用户来说,为他提供服务的实体存在单点失效的问题,但是从整个网络来看,每个服务器都管不着其他服务器,用户也可以随时切换服务提供者。
即使是完全分布式系统也分为几种,有的系统是结构化系统,每个节点承担专门的角色,重新分配可能需要特殊的选举过程,例如所有的 DDBMS 都依赖于 Paxos 之类的结构化算法,而 I2P 和 Gnutella 一类的网络属于半结构化网络(比特币在这里是个特例,网络本身是无结构的,但是又极度依赖于矿工这个角色),节点之间存在角色差异,但是每个节点可以决定自己的角色。比特信(Bitmessage)网络则是无结构网络,每个节点能做的事情完全相同,就是(当然不一定只是)转发消息。
互联网本身其实就是一个实际的去中心化系统。 但在早期, 互联网是在与美国在线(AOL) 以及CompuServe等围墙花园式信息服务体系的竞争中, 逐步变得越来越风行。 电子邮件的简单邮件传输协议(Simple Mail Transfer Protocol, 简称SMTP)的去中心化系统,就是一个去中心化的协议,任何人都可以在认可这个协议的基础上建立自己的邮箱。 尽管电子邮件也受到像脸书(Facebook) 、 领英(LinkedIn) 这些中心化私有信息系统邮箱服务体系的挑战, 但电子邮件仍然是人与人之间进行通信的一种被默认的选择。 其实, 我们已经不能简单将像即时短信或者短信等通信手段归类为是中心化, 或者是去中心化模式, 这些通信方式往往是一种混合模式。 在社交网络中, 尽管有很多爱好者、 技术开发人员, 甚至还有企业者也在尝试用去中心化的方式来替代像脸书、 领英这样的中心化系统, 但目前这些中心化系统仍具统治地位。 事实上, 中心化与去中心化的竞争在数字时代之前就已经存在, 在电话、 无线电、 电视及电影的发展史上, 我们都曾看到过这两种模式的竞争。
【区块链一定要去中心化吗】
民主不意味着无政府,去中心化也不意味着不要中心,而是多个中心,一个中心下又有多个小中心。诚然,企业规模化和品牌化不可逆,互联网领域寡头化也非常明显,但这些中心化的平台也越来越注重完善自己的商业生态圈,从另一个角度分析,这些寡头企业发展大方向更趋于“生态网络”而不仅适用“一个中心”来定义,这些更大的生态网络因为用户需求的扩大必然更需要与其他网络相连接,那么这个过程体现的恰恰是去中心化。
智能合约的设计是尝试用区块链来构建一个可以计算一切的分布式图灵完备机器,一个去中心化的应用平台,一个解决金融/财务纷争的预言机。早期的ETH在架构上为充分意识到scalability的重要性,全网资源共享,难以隔离。块链技术更加广泛的应用,线性处理压力正在面临超出其设计容量的风险。区块链产品的后端代码运行在去中心化的点对点网络。而传统app的后端代码运行在中心化的服务器上。Dapp有能够用任何编程语言写的前端代码,使得API调用后端。更进一步,它的前端能够运行在例如IPFS这样的去中心化存储上。然而,不得不承认的是,整个区块链行业还处于一个在初期完善基础架构的阶段,现阶段阻碍区块链大规模应用的最大障碍存在于技术上。Ethereum的机制以及运行效率,目前还很难支持一个庞大的去中心化商业应用生态。
互联网打破了时间和空间、民族和国度的限制,让世界一端的个体可以联系到另一端的个体,而且连接有了无限的可能。互联网让信息变得更加对称,让资源整合变得更加高效,马太效应下的互联网企业往往体量提升迅速,平台级的中心也逐渐向生态级的中心演进。
在社会当中,民主制度也需要中心权力相互平衡,这个社会才不会出现民主泛滥或者专治集权;企业管理中,去中心化让团队更加扁平高效,同时也需要一个中心让大家力量集结而不溃散;互联网内容生产中,流量大的未必是好的,有价值的东西未必获得巨大的流量,去中心化让每个人都能创造内容但创造的未必都是优质内容,中心化做法便利于将优质内容提出给予流量支持;互联网产品中,去中心化思维的产品让用户自主性更强大,同时也需要中心化措施保证产品符合公司的价值,如此种种,皆体现中心化与去中心化相辅相成,缺一不可。
区块链仁波切也指出,因为他们不能够跟着自己的想法随意改变他们的规则,所以理论上区块链更加的安全。但是如果说软件和协议的开发者们都为同一家公司工作,或者说是一伙人坐在同一个屋子里,那么上面这个安全也就不一定能保证了。总的来说,这些系统在任何情况下都不应该是被一方单独垄断的。因此,如果区块链项目的参与各方都不是利益共同的关联关系的话,你才可以确定,区块链能给你带来更多的安全感。
【效率与公平】
区块链是一个能够保证输出可信的系统。去中心化系统容量天生不如中心化系统,所以,需要高容量的应用,可以根据需求选取中心化程度较高去中心化程度较低的区块链系统,基本上,所有的所谓大容量高并行低延迟的区块链系统,其实都有某种程度上的中心化,中心化程度越高越快。同互联网一样,区块链提供的也不是完全的去中心化,而是,你可以用它在任何层面,进行任何程度的去中心化。所以,你对容量需求高,就需要少去中心化一点好了,至少在可靠性上,它可能会比完全中心化的系统强。
公链是区块链发展的前提基础,也是区块链行业未来发展的核心保障。而目前区块链的发展现状是,底层公链的性能尚未发展起来,在其上构建的各类DAPP严重受限于性能。因此,我们预计2018年区块链行业的发展,仍以底层公链为重心,各公链在性能、可扩展性和应用性上将继续角力的局面。底层公链是一切的基础,使用网络编程、链式或TAG数据结构、加密算法、数据存储等技术来构建区块网络,通过共识机制和分配机制,实现节点网络的正常运行。从过去到现在来看底层公链的发展,可以将之分为三个阶段:
a. 以比特币BTC为代表的区块链1.0时代,通过建立区块网络,开发钱包,实现基础数字货币的功能(转账、支付)。
b. 以以太坊ETH为代表的区块链2.0时代,通过智能合约的方式,承载部分商用(如ICO)开发和业务拓展。
c. 以EOS为代表的区块链准3.0时代,通过高并发量、高性能、可拓展性,为区块链技术的商用及大规模推广构建了基础。
现在看来,区块链底层平台在效率与公平上还无法找到一个恰如其分的平衡点:
处理效率低
难以进行资源隔离
主流共识机制在效率,公平,安全方面难以兼得
Dapp运行速度问题
在这样的情况下,我们判断,虽然以太坊极其成功地普及了链上智能合约的技术并建立了包含各类区块链应用和 ERC-20 代币的庞大生态,但它远未发展为能够满足现实商业需求的应用平台。限制它商业发展的阻碍存在于其技术机制。
那么如何找到一个效率与公平的拉格朗日点呢?有一种比较好的解决办法就是把Token链和DApp链分开。
在EKT中Token链是一个并行多链的结构,多链多共识,共享用户基础。作为一个DAPP开发者最关心的肯定是三件事:1 开发难度 2 用户体验 3 社区生态。那么Token链的设计就是针对不想自己重新开发一条公链,但想要发行token和链的开发人员。EKT主要面向的对象是开发者,所以在设计token链的时候最大的想法是设计一个可以吸引大家都来发币的平台(之所以大家过来发币是因为TPS高,手续费低,可以选择发链用自己的Token做交易费,还可以和其他的链共享用户),这样可以让在EKT上开发DAPP的开发者可以获得更多的用户资源。
EKT的中心思想是设计一个社区的机制,让开发者可以轻易的开发一个DAPP,其他的交给EKT来处理。 时至今日,底层公链依然处在非常薄弱的境地,尚且无法实现真正的安全、可靠和高效。到目前为止,对于目前整个数字货币领域而言,基本是遵循“底层公链 → 解决方案 → 项目应用”的发展逻辑。底层公链相当于区块链世界的基础设施,解决方案用来拓展底层公链的性能或为商业应用提供服务支撑。只有在底层公链扎实稳健高效运转的基础上,区块链商业应用才能发展和落地。公链在整个区块链领域的重要性和必要性,由此可见一斑。
虽然大多数公链项目都会提出高TPS,高可用性,高扩展性,跨链等标配指标,但在区块链底层框架世界,解决性能、去中心化程度、和安全度这个三角问题,还是一个需要跨越的巨大障碍。
参考阅读:
20160125 中心化与去中心化,我们谈论的是什么?
20180104 我眼中的价值币——公链
20180203 统计了一份国内公链的简表
20180208 Vitalik Buterin:去中心化的意义
Vitalik Buterin 《The Meaning of Decentralization》
《Ethereum whitepaper》
《EOS whitepaper》
《EKT whitepaper》
相关文章:

在tomcat中用jndi配置数据源启动java web程序
1.在web.xml中添加: <resource-ref> <res-ref-name>jdbc/MTSDB</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> 2.在tomcat的context.xml中配置数据源:…
centOS7.4服务器 yum安装 搭建lamp环境
// 红色加粗是linux命令安装gcc和gcc-cyum -y install gcc gcc-cyum list httpd*安装apcheyum -y install httpd.x86_64 httpd-devel.x86_64 httpd-tools.x86_64开启服务/bin/systemctl start httpd.service停止服务/bin/systemctl stop httpd.service设置Apache服务开机启动sy…

好想学python怎么猜人_学手艺我好想学个手艺哦可是脑子怎么想也想 – 手机爱问...
2009-03-25学点东西学什么好呢?我今年快40了建议:你以前一直当销售,销售这个职业最大的特点就是说、说、说,跟人打交道最多。那么:(1)如果你厌倦了跟人打交道,厌烦了每天不停跟陌生人说说说的,建…

用Python从零开始创建区块链
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 前言 如果你还没有听说过 3 点钟区块链群,说明你还不是链圈的人;如果你还没有加入 3 点钟区块链群,说明你还不是…

动态添加跨行表格_学会这2招,轻松搞定数据透视表动态更新,效率猛增一倍...
私信回复关键词【福利】,获取丰富办公资源,助你高效办公早下班!Hello,大家好,我是最近在研究数据透视表的小爽~最近,我收到了一个学员的求助:简单归纳一下,这个问题就是:…

alpha阶段个人总结(201521123031林庭亦)
一、个人总结 第一部分:硬的问题 第二部分:软的问题,在成长路上学到了什么? 1 当你看到不靠谱的设计、糟糕的代码、过时的文档和测试用例的时候,不要想 “既然别人的代码已经这样了,我的代码也可以随便一点…

python统计列表内元素个数
代码如下: list01 [a,b,c,a,c] set01 set(list01)print(set01)dict01 {}for item in set01:dict01.update({item:list01.count(item)}) print(dict01)结果: c, b, a} {c: 2, b: 1, a: 2}转载于:https://www.cnblogs.com/zhangyux/p/5999109.html

比特币的货币属性是什么?
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 作为比特币被设计之初的用意就是作为交易的一种支付手段。作为全新的货币形式,比特币本身的性质就是其去中心化的特性能够和传统的货币很…

病虫害模型算法_基于深度学习的目标检测算法综述
sigai 基于深度学习的目标检测算法综述导言目标检测的任务是找出图像中所有感兴趣的目标(物体),确定它们的位置和大小,是机器视觉领域的核心问题之一。由于各类物体有不同的外观,形状,姿态,加上…

windows 常用命令
一. 工具类 calc 启动计算器 mspaint 画图板 write 打开写字板 notepad 打开记事本 mstsc 远程桌面连接 regedt32 注册表编辑器 osk 打开屏幕键盘 magnify 放大镜 eudcedit 造字程序二. 系统和用户类 compmgmt.msc 计算机管理 devmgmt.m…

良好的用户体验应该...
这篇文章只有一个图片,原创的,谢谢! 转载于:https://www.cnblogs.com/saper/p/9064601.html

区块链知识点简解
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。 分布式存储:是一种数据存储技术,通…

laravel和dingoapi的结合使用
dingoapi是一个laravel的开源插件,可以在github上搜索到,现在在做一个项目,项目中总是会有后端跟前端的json数据交互,而这个dingoapi为json交互提供了很大的便利。 先安装dingoapi 1、在composer.json中的require中添加"ding…

uc的剪切板能关掉吗_关掉网络游戏,小孩就有美好的未来吗?
“关掉,关掉!一定要关掉!再不关掉那些网络游戏,小孩哪有美好的未来,哪有美好的前程,祖国哪有栋梁之才。”最近,一条魔性的小视频在网上刷屏。这条小视频里,一个小女孩用朗诵腔调大喊…

2017-2018-2 20165236 实验四《Android开发基础》实验报告
2017-2018-2 20165236 实验四《Android开发基础》实验报告 一、实验报告封面 课程:Java程序设计 班级:1652班 姓名:郭金涛 学号:20165236 指导教师:娄嘉鹏 实验日期&a…

区块链4.0DexChain是什么?
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 为了更好的理解Eos-DexChain,我们了解一下区块链4.0的标准。 1)零成本发token 零成本上交易所流通 3)去中心化交易所会借助…

Linux内核情景分析之异常访问,用户堆栈的扩展
情景假设:在堆内存中申请了一块内存,然后释放掉该内存,然后再去访问这块内存。也就是所说的野指针访问。当cpu产生页面错误时,会把失败的线性地址放在cr2寄存器.线性地址缺页异常的4种情况1.如果cpu访问的行现地址在内核态,那么很可能访问的是…

系统性能测试方案
转载:http://www.cnblogs.com/yunman/articles/5482134.html 1引言 1.1编写目的 编写本方案的目的是用于指导XXXX系统的性能测试,主要从测试环境、测试工具、测试策略、测试具体执行方法、任务与进度表等事先计划和设计。 1.2适用范围 XXXX系统性能测试组 XXXX系统开…

python跨行字符串 变量_在Python中有没有在多行字符串中使用变量的方法?
所以我把这个作为邮件发送脚本的一部分:try:content ("""From: Fromname To: Toname MIME-Version: 1.0Content-type: text/htmlSubject: testThis is an e-mail message to be sent in HTML formatThis is HTML message.This is headline."&q…

Python中的pickle模块
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 Pickle模块的作用 Pickle模块用于将python对象序列化为字节流,可存储在文件或数据库中,也可同通过网络进行传输。使用反序列…

pytorch python区别_pytorch源码解析:Python层 pytorchmodule源码
尝试使用了pytorch,相比其他深度学习框架,pytorch显得简洁易懂。花时间读了部分源码,主要结合简单例子带着问题阅读,不涉及源码中C拓展库的实现。一个简单例子实现单层softmax二分类,输入特征维度为4,输出为…

在vue中使用babel-polyfill
在 Vue.js项目中使用Vuex,Vuex 依赖 Promise,所以如果你的浏览器没有实现 Promise (比如 IE),那么就需要使用一个 polyfill 的库 我们可以通过babel-profill转译 1、安装 npm install --save-dev babel-polyfill 2、在main.js中引入 import b…

CoinMarketCap计划于11月发布新的流动性排名系统
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 去中心化金融(DeFi)引领未来金融发展趋势,InvestDigital联合传统金融机构,依托现有数字货币金融业务…

cookie和session的代码实现
cookie和session的代码实现 1、设置cookie 今天笔试题考的是cookie的设置,我竟然选了request也可以设置cookie,我的天呀。 我们来看如何在response设置吧 public void service(HttpServletRequest req,HttpServletResponse resp) throws ServletExceptio…

idea 批量修改同一列_学会这个,1秒就可以批量处理文件
【问题1】根据公司名称,批量创建文件夹拿到老板给到的这个任务后,没关系我很有耐心,不就是右击新建文件夹重命名保存吗,然后加班点鼠标到天荒地老,终于完成了。结果老板说有些公司名有误要改正过来,还有几百…

动态规划和分治法的区别
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 动态规划也是一种分治思想(比如其状态转移方程就是一种分治),但与分治算法不同的是,分治算法是把原问…

关于链式前向星。
一些代码 理解 #include<bits/stdc.h> using namespace std; //优先队列优化的链式前向星 const int maxn1000; const int INF0x3fffffff; struct Edge{int from, to, dist;Edge(int u, int v, int d):from(u),to(v),dist(d){} }; struct HeapNode{int u, d;HeapNode(int…

Ceph分层存储分析
最近弄Ceph集群考虑要不要加入分层存储 因此花了点时间研究了下 1,首先肯定要弄清Ceph分层存储的结构 ,结构图大概就是下图所示 缓存层(A cache tier)为Ceph客户端提供更好的I/O性能,而数据存储在存储层(a backing storage tier)。用相对快速…

jemeter多场景混合案例_Redis 混合存储最佳实践指南
Redis 混合存储实例是阿里云自主研发的兼容Redis协议和特性的云数据库产品,混合存储实例突破 Redis 数据必须全部存储到内存的限制,使用磁盘存储全量数据,并将热数据缓存到内存,实现访问性能与存储成本的完美平衡。架构及特性命令…

交易所频频被盗,你该如何保护自己的数字资产?
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 5月8日凌晨,数字货币交易所币安发生被盗事件,黑客从币安热钱包盗走大约 7000 个比特币。币安官方公告称,这是一次…