当前互联网最大的问题在于寡头垄断了用户数据,通过规则影响和控制用户行为,并获取巨额利润。垄断造成了互联网企业的极端贫富分化,抑制了竞争和创新,互联网正在失去发展的活力。打破寡头对互联网的垄断,成为越来越迫切的需求。
Leither是一个去中心化的云操作系统,能够以去中心化的方式重构传统的互联网平台业务,让用户重新掌握数据的所有权和使用权。Leither云系统包括去中心化的文件系统、数据库、应用体系、用户安全体系、网络体系等模块;在应用体验和协议上尽可能与传统兼容。相较于传统的云服务模式,应用体系有以下优点:开发应用极简单;系统资源消耗极低;带宽流量低成本;可以用简单的方法实现弹性伸缩。
在Leither上对标一个传统互联网应用,比如淘宝,发起者只需创建一个Leither组织,写好共识合约来描述项目参与方的通证分配机制。通证是用户贡献的凭证,可以按比例获取组织的业务收益;可以用于交换这个组织提供的服务,服务包括组织的业务本身、流量广告、节点信息路由、域名解析、内容检索、数据备份、业务支撑的带宽存储空间、CPU算力、合约验证、挖矿时的质押等。
组织参与者包括发起者、投资者、开发者、内容或服务提供者、设备支持者、运营推广者等。组织业务收益的分配通过共识机制保证。设备支持者对应区块链项目的矿工。设备既可以完成原来的记账功能,也可以支撑更有价值的组织业务。和传统的区块链相比,Leither区块链在价值、成本、效率、功能、隐私等方面都有优势,更重要的是完全符合法律法规。
本文分上下两篇:
上篇介绍了弥媒和应用系统。讲如何把互联网平台业务进行肢解。
下篇介绍了组织和共识机制。讲如何通过共识机制,协调参与各方的利益,促使更多的人参与进来。
本文为下篇 上篇参见弥媒和应用系统
在 弥媒和应用体系第九章我们提出了以个人为中心的关系链模型,以及基于这种关系链的信用模型。在现实社会中,人也经常是各种社会组织的一员,需要去描述社会组织。在社交网络上,通常称之为群组,简称群。本文称之为组织。
组织结构以群体为中心。先有群这个组织,然后才有群成员的加入。有三种不同的身份,管理员(创建者)、群成员、Guest用户。群由群主或群成员共同维护和管理。在传统互联网中,整个系统都有平台方负责构建维护,所有的规则都有平台方所把控。
维护群是一个群的公共服务,需要有类似区块链的方案进行协调各参与方的利益。我们可以把更强的公共服务附加在群上,这时候群就变为一个组织。当前互联网的实体组织都可以Leither群组的形态进行重构。
组织服务是组织对内或对外提供的服务。当前互联网上的 大部分业务,都可以用组织服务的形态进行重构。
常见互联网业务根据其的核心特点,可以分为:检索类、内容类、社交类、工具类
-
检索
百度、阿里、谷歌、亚马逊等公司获利基于检索信息。
在Leither网络中,任何一个用户根据偏好定制检索信息源和检索策略。
这样检索信息不被少数公司把控,用户自己控制和决定自己的检索信息。 -
社交
微信、微博、脸书、推特等公司获利是通过控制用户的社交关系。
在Leither网络中关系链回归到了用户保存。相应的消息流,应用、服务等附加内容都由用户自己选择定制。 -
内容和服务
Youtube等视频平台,网易云音乐等音乐网站,新闻网站等获利基于内容和服务。
在Leither网络中,服务和内容可以拆分成小模块,然后包装成弥媒。
内容创造者可以直接上传到自己的节点,也可以通过插件方式把传统互联网上的内容采集到自己的节点上。
弥媒可以跨节点进行流动,消费者也可以自定义检索内容服务的方式和途径。 不再被少数寡头控制。 -
工具
谷歌文档,在线office,xmind脑图等获利是基于提供工具服务。
在Leither网络中,应用也是一种弥媒。
把互联网的上述业务进行拆分,在Leither生态中由下面这些成员用去中心化的方式协作完成。
-
应用开发
为生态开发应用和平台,由开发人员完成。 相当于传统互联网中的研发部门 -
服务或内容生成
为生态服务提供服务和内容,对于内容服务,是传统互联网中的小编、运营公众号的作者等。 相当于传统互联网中的运营部门 -
服务支撑
为整个生态提供物理支撑,由运维人员完成,和传统互联网不同,设备不再属于某一家公司。 这部分相当于传统互联网的运维部门 -
服务推广
一种方式是做成网站、链接、公众号、小程序、APP等去传统的互联网中推广。 一种方式是对内容生成标签,由检索节点的方式提供公共服务。 这部分相当于传统互联网的运营部门 -
价值变现
每个节点都能提供服务能力,这些服务能力可以货币化,用于支付其它服务内容。 生态中的信息检索和流量展现都有巨大的商业价值,是整个生态的价值来源
通过类似区块链的技术构建共识机制,利用共识协调生态中各个成员的投入和回报。 后文会详细介绍
节点自身的管理、流动的弥媒、检索信息、群组共识等
-
弥媒存储
Leither把互联网的内容和服务都肢解成了弥媒形态。
弥媒根据业务需求存放在节点上;弥媒根据需求在不同节点之间流动;节点之间的服务通过信用进行结算。 通过群共识参与群服务的结算。共识机制参见章节“共识机制” -
索引信息
这部分用于信息的检索。
这些信息存放在,所有入网节点公共信息区域(DHT)上。通过群共识参与群服务的结算。 -
对接服务
这部分是和传统互联网进行对接的部分,是APP、域名解析、公众号、小程序等。 这些服务运行在传统互联网的主机上,通过群共识参与群服务的结算。 -
共识
群组的公共业务逻辑。
共识运行在所有的记账节点上
任何一个用户都可以创建一个组织。创建时,系统生成一对组织密钥,公钥id缺省是组织的ID。创建者是组织的缺省成员和管理员。组织有和弥媒相同的权限机制,用户分管理员,成员,Guest用户。
创建之后,组织运行在了创建时候的节点上。分布式的组织网络也开始在这个节点上工作。系统缺省的网络结构是DHT网络,这个网络保存群的公共信息。
通过DHT网络可经查询群的公共信息,可以查询成员的节点信息,成员之间可以点对点发送消息。群聊信息属于公共信息,保存存在DHT网络上。
用户可以申请加入一个组织,可以通过任何一个在网的组织成员,用户向组织递交加入申请。管理员批准之后,用户就成为群成员,相关信息写在了dht网络上,同时也可以检索查看组织的公用信息。
用户也可以通过完成组织任务,获取组织奖励的方式,获得成员权限。
组织业务本质是一系列的Leither应用,可以通过Leither应用体系发布在组织网络的公用信息区域。
以视频网站为例,业务可以肢解为:
- 内容的采集和生成
- 内容的标签分类
- 应用支撑,提供资源,包括不限于存储、带宽、CPU
- 内容访问通道。APP、小程序、公众号、域名解析、路由解析、内容检索等
- 推广,把内容推送到需要的人那里。。
- 价值实现。
这里的价值实现有两类:
一类是价值中包括了第三方价值,第三方会提前支付推广费用。
一类是对普通用户有价值的内容和服务,通过普通用户付费或者广告的方式获取收益。广告模式是验证的高效模式,当前互联网有成熟的产业生态。
价值的来源是实际价值的标的物,这是价值体系设计的基本准则。
分发的价值通常指向一个对组织有意义的劳动,价值的大小来自这个成果对整个生态的意义大。也就是有多大用。
这个价值也可以是被广为认同的价值标的物,就象传统的法币或虚拟货币。
通过共识机制,我们可以生成一个组织账本,本质上是一个具备时空镜像功能的稀疏默克尔树。
组织分发出的奖励都是写明原因和理由,组织内部进行公开。
有别于工作量证明(POW),我们可以称之为劳动成果证明或业绩证明(Proof of Performance)。
系统的奖励有以下几种:
-
架构性奖励
对于组织的基础性贡献、组织者、财务投资人、系统和应用的开发者。
这些都是支撑组织运作的必须服务,可以通过管理员发起,投票的方式进行转账。这个奖励用于组织构建
-
内容服务类奖励
组织提供对他人有价值的内容和服务,在价值创造的各个环节,记录每个价值的贡献者。在完成价值的点,触发奖励发放的合约,对各个环节进行贡献的角色进行奖励。
奖励的分配可以是固定比例的方式,也可以是动态平衡的方式。
模拟流程如下:
1、开发者编辑内容采集插件
2、采集者使用插件,从传统互联网采集内容,生成弥媒,以弥媒的方式发布内容到网络,弥媒结构上记录创建者是采集者。
3、运营者用各种方式,包括不限于检索标签,app,公众号,小程序、运营、微信群推广等方式反内容展现给用户。
4、用户浏览内容,同时展示广告,形成传统互联网中的流量 。
5、展示页面中有广告方认同的检查机制,流量信息会触发合约,代币会根据信息分别把代币从广告方账户支付到整个流程参与者的账户。这个奖励使系统健康成长,对他人有越来越高的价值
-
挖矿奖励
这是传统意义上的挖矿,所有在线的节点,都可以参与投票记账和合约服务,在打块的时候发放奖励。 这个奖励用于网络支撑,管理公共信息、网络路由。这个奖励确保组织处于活跃运作状态。
-
运营类奖励
在项目初期,生态内的内容和服务还不足以形成价值闭环,可以通过合约的方式,在价值奖励之外额外发放奖励,加快形成健康的生态的过程。这个奖励有助于组织早日度过成长期
-
价值质压
传统区块链上有大量价值被广为认同的虚拟货币,用户可以通过跨链操作,把其它区块链上的代币兑换成本网络中的等价代币。 在本网络中,合约的执行成本接近于0,用户之间的交易也可以匿名处理,用户可以充分离利用本方案的高效匿名等传统区块链不具备的特点进行合约操作。 在合约结束之后,重新把代币转换回传统的区块链网络
本文用到的关键相关技术概念如下:
DHT网络
DHT,Distributed Hash Table,分布式哈希表。
通过DHT,可以根据ID快速检索到一个节点,并可以存取和这个节点关联的信息。我们也可以把属于组织的信息分布式的保存在整个网络中。
稀疏默克尔树
跳表是redis和leveldb中使用的重要数据结构,它引入了概率均衡的概念,可以在基本不改变树结构的情况下进行各种操作。和传统算法相比,虽然性能有所损耗,但整体保持在同数量级上。用同样的方法,我们对默克尔树进行改进,提出了稀疏默克尔树的数据结构。
稀疏默克尔树是保存组织的核心信息,包括类似区块链中的公共账本信息。
树的每个叶节点都记录了一个组织成员的账户信息,账号就是组织中的成员ID,这个ID是由用户的公钥HASH生成,每个ID共20字节,160位。所有的可能账号都可以存放在一个160层的二叉树上。每个账号在树上都有确定的位置。实际应用中因为用到的ID远小于这个叶节点的规模,这颗树是一个稀疏的二叉树。树的根节点有两个子节点0x0、0x1,有四个孙节点0x00、0x01、0x10、0x11,如此类推,账号挂接在第160层。
我们做一个优化,针对只有一个子分支的分支,我们可以压缩到上一级,这样可以大幅度压缩树的层高。对于随机分布的节点ID,网络中的节点数量是n,那么树的大部分节点都会挂接在log2(n)+1层的叶节点上,越接近根节点,这颗树越紧密。对于节点的增加和减少,或者账户信息的变动,只影响所在分支,其它不相干部分树结构都不需要调整。
通过这颗树,我们可以快速的找到一个叶节点上相关的账户信息。有利于更简单高效完成后面的时空镜相、分片、心跳、转账、合约等操作。每个账号的账户信息都挂接在这颗树的叶节点上,每个分支根据子节点的hash节点和汇总信息生成本节点的hash。
节点分组
随着网络规模和业务量的增加,从存储到数据处理到网络通讯必然会超出了一个网络节点设备所能承载的极限,如果不进行优化,就会出现类似比特币每秒只能处理7笔业务的窘境。
因此我们对整个组织的账户进行分组,把稀疏默克尔树的每若干节点归为一个节点组集中管理,每个节点组在树结构上体现为一个稀疏默克尔树上的子树。
节点组划分条件包括但不限于节点数目或级高。当前节点组上限是包含不超过256个节点。
超出的时候,8层子树内的节点保留,把超出8层的最大子树拆分出一个新的节点组。 这个节点组的id就是对应第8层子分支的id.
节点组内每个节点都有一个子分支的64位的id.
这样一个节点组,最多可以存放256个节点,表达64层的不平衡子树。
最下层的节点组子成员都是包含具体用户账户信息的叶节点,中上层的节点组的子成员除了叶节点,还可以包含下层的节点组。
节点分组有两个好处:一是可以弹性伸缩提高并发性能,二是后面提到的隐匿网络,半透明化。
节点选举
每个节点组都有若干记账负责人,记账负责人负责节点组的账户交易的记录检查审核,并且负责相关信息的通讯和广播。
节点组里的账户可以选举所在节点组的记账负责人,可以选举多个。投票额度累计不超过账户金额。
选举的规则是共识的一部分,由组织者设定,可以根据质押资产的数量、网速的快慢等多方面综合考虑。
根据选举结果确定各级节点主备负责人。主负责人负责汇总记账,备份节点负责审核
节点组也可以作为成员在上一级节点组进行投票,选出更高一级的节点组记账负责人
最底层记账工作是详细的业务信息,中上层的记账工作是合并汇总分支中的变动信息,包括取摘要和汇总金额。
在线节点不多或业务量不大的情况下,每个节点组不足以支撑一个记账人,这时候最底层的记账工作可以交给更上一级负责完成,也就是最底若干层的记账工作合并处理。
根节点附近的顶层信息是全网同步的,这个信息描述了整个网络的当前状态。
网络心跳
为了协调各个网络设备节点之间的操作,系统定期(缺省心跳周期为1秒)生成一个递增的数据序号。
这个数据序号相当于同步各节点时钟信号,也相当于数据的版本号。在一个心跳周期内,记账节点将上个心跳周期新增的数据进行因固化保存。根据网络的级数,每个节点组负责稀疏默克尔树的若干级数据处理工作。处理工作相当于传统区块链的打块,会获取相应的系统奖励。
序号是由根级的记账负责人共同协商产生的,然后逐层广播到每个在线的网络设备。
时空镜相
Leveldb是一个优秀的写优化数据库。它通过流式记录新增变动的数据,可以极大的优化写操作,达到存储介值的极限,写操作甚至快于数据库的读操作。
另一方面通过键值序号提供了修改的版本号,我们可以通过版本查询到历史记录的值。
参考leveldb,我们把网络心跳对应leveldb中的数据版本序号。通过版本,我们可以快速记录并标识每一个周期内的变动信息。也可以用这种方式记录稀疏默克尔树时空树的快照。
每个周期,除了新增的修改部分数据,前后两个版本的稀疏默克尔树结构是一致的,在给整个稀疏默克尔树做快照时,只需要保存变动信息便可,
通过键值中的版本序号,我们可以获取到任何一个心跳周期的任何一个节点数据。
对于具体的每一个普通账号,只需要记录自己的账户信息和所在分支的节点组信息便可。
当前弥媒的数据库系统底层已支持类似的时空镜相功能。
用户加入组织之后,便可加入DHT网络,成为DHT的一员。用户把自己的节点路由信息写入DHT网络,以便其它节点可以找到用户节点,进行通讯或使用用户的节点服务。
账本是一个有镜像功能的稀疏默克尔树,为了能够全网同步消息,全网会共用一个时间序号变量(下简称时序),初始值为0,系统定期(缺省1秒)产生一个心跳,如果系统状态有改动,时序加一,没有改变,则时序不变。
系统定期(例如30分钟)会选出若干记账节点,互为备份,排在第一个的为主记账节点。记账节点任期为一个选举周期。记账节点负责所代表分支的相关记账工作。
组织发放
最早的代币分配信息是全网公示的,写明理由,供全网审核查询。代币分配到用户之后,用户之间的转账是隐匿,或只向相关节点公示的。
用户转账
以两人转账为例,转账只和两个用户相关,两人确认之后,交易信息会附加两者的签名,通知给自己账号在稀疏默克尔树中的上级记账节点,上级记账负责人会把变动记录在各自的分支上。这个信息会在这一级的备份节点中进行广播。新时序产生之后(1秒),交易信息变成只读。各级记账节点开始从下到上检验和汇总分支信息,并生成摘要。总记账节点生成汇总信息和总摘要,并广播结果给各级节点。
交易双方记录时序、各层摘要信息和自己的账户信息。交易完成。
一次交易最多等待两个交易周期(2秒)
交易过程中,备份记账节点,会检查信息是否正确,同时负责消息的收集和广播。
争议处理
每笔交易都需要有足够的保证金背书(冻结)足够的时间,以供更多的节点进行审查。交易是同时多个节点处理,记账节点和备份记账节点都是随机分配的,避免串通的可能性。 任何一个节点有异议,都会进入争议流程,争议期相关金额会被冻结。全网对出错交易进行验证,根据验证结果进行投票,出错节点的保证金会被没收。记账节点只能处理冻结资金所支持的交易金额。
合法性检查
当事人检查整个交易是否合法
上级记账节点检查总账是否平衡
分支记账节点检查所在分支交易的合法性
所有叶节点同步信息时检查邻近分支是否平衡,附近的账号是否正常。
冗余备份
少数矿工保存整个分支下的所有账目信息
为了使整个网络更健壮,我们鼓励所有账户冗余保存临近分支的信息。
我们使用两种方法:
普通账号可以审核临近分支的交易信息,获取奖励
对于非法交易,冻结临近账户信息直至其它分支账目平衡。
临近节点的数量可以是1、3、7、15、31、63、255
为了获取奖励,同时不受损失,所有在线节点都会集体维护整个网络。
因为有冗余存在,整个系统崩溃时,少数量节点便可以把整个网络重构起来。
冗余备份发生在矿工记账完毕之后的信息广播
网络恢复发生在各节点入网时的信息校对
公示期
每笔交易都有一个公示期
这个值可以在组织创建时设置,缺省24小时
公示期内账单需要被其它节点审核。
审核时如果发现有问题,则举报,相关账单进入争议流程。
金额时间
每笔交易的金额大小不同,每个参与记账和审核者所质押的信用也是大小不同。
鉴于此,我们提出了金额时间概念:
金额时间=金额*时间
对于交易
金额=交易金额 时间=公示期
对于审核和记账
金额=质押信用额 时间=冻结期
累计周期
累计(审核或公示)周期=累计的(审计或公示)金额时间 / 交易金额
交易的安全阀值
- 最小的检查的用户个数
- 最小的累计审核周期
安全阀值决定了最小的审核成本,可以计算出挖矿奖励或手续费的大致范围。 正常一笔交易,需要的累计审核周期为1。 可以通过增加累计审核周期的方式。
不同审核周期区间的价值不同,获取的系统奖励也有差异。
争议流程和处罚机制
所有全网在线的节点都会审核一定范围的交易账单。
每笔交易都需要有足够的保证金背书(冻结)足够的时间,以供更多的节点进行审核。
交易是同时多个节点处理,记账节点和备份记账节点都是随机分配的,避免串通的可能性, 任何一个节点有异议,都会进入争议流程,争议期相关金额会被冻结。全网对出错交易进行验证,根据验证结果进行投票,出错节点的保证金会被没收。
记账节点只能处理冻结资金所支持的交易金额,超出冻结资金的交易延时到账,直到交易的安全阀值
当事人检查整个交易是否合法,
上级记账节点检查总账是否平衡,
分支记账节点检查所有分支交易的合法性,
叶节点检查所在分支的账目是否合法(非负),以免被连坐影响。
合约服务类似于转账流程
合约的内容包括合约代码、合约人的委托签名、合约的上限标的。
系统缺省由上一级的记账节点执行合约,用户也可以指定委托节点。
对于复杂合约,风险不可控的情况下,可以提高处理结点的冻结金额。 相当于第三方替合约相关方用资产作了信用背书,同时获取背书收益。
出现争议,进入全网的争议处理流程,参与投票的节点通过冻结自身资产的方式进行投票。输的一方被没收冻结金额
系统账户信息是公开的,普通用户是隐匿的,第三方不可查询。但可以通过用户出示账户信息,然后第三方通过公共账本中记录的摘要来核查信息的是否真实。检查各级分支摘要可以确认摘要是否合法真实
两者的冲突
传统区块链中,共识机制是建立在信息透明基础上,如果信息完全隐匿无法实现共识机制。
账号信息隐匿我们就无法检查交易是否合法,交易方有可能使用了超出他所持量的资金。
冲突的解决
对于交易方之外的群体而言,了解交易信息的目的是不希望被他人的交易非法伤害,而不是希望知道交易的详细信息。如果能解决了这个问题,群体没必要知道双方的交易细节。
前提和基本准则
个人信息隐匿的前提和基本准则是: 交易双方和组织(其他人)之间互不伤害。
基于"不被伤害”原则,必须要让组织的所有成员相信一个交易是合法的。
7.2.1、安全条件
交易合法要符合以下条件:
-
真实本意
交易是交易双方所确认的 -
杜绝无中生有
转出方要有足够的额度以供交易
转账金额不能为负值
交易后不出现负值账户 -
账目平衡
不考虑系统奖励,交易前后系统的总账不能变。
对于系统奖励也可以当成组织账户向用户的转账,这样总账也是前后不变的。
7.2.3、安全分析
-
交易双方
转入方会严格检查以上三个点,否则金额无法到自己的账户里。
同时因为非法交易会被组织处罚,所以转出方也会严格检查整个交易的参数和过程。 -
相关的节点组其他成员
非交易相关方,要确保自己不被伤害,需要确认其它账户的交易不存在“无中生有”并且“账目平衡”。 -
其他节点组的用户
对于任何一个不包含交易方的节点组织成员,只需要确定交易双方所在的节点组不存在“无中生有”和“账目平衡”便可 。
节点组遮蔽
如果节点组是一个结算单位,交易信息可以隐匿在一个节点组之内
其他用户只需要关注这个节点组的总账目是否平衡合法便可。
第三方遮蔽
如果交易有第三方背书,可以确保其他人不会因交易蒙受损失,交易信息则可以延后曝光。
半透明网络
冗余备份的时候,一个账户的信息只被少数附近的账号所保存。
远处的账号只能获取少数顶级分支节点的汇总信息,不清楚下层的账号信息。
既保证了交易信息的安全确认,又保证了信息的隐匿
第三方不关注资金流向
现实社会,从隐私上讲,资金的流向比账户的金额更重要。
但对第三方来说关注的是账目的合法和平衡。并不关注具体的资金流向。
系统如果设置交易信息定期删除,在一定时期之后,资金流向是无法被追溯的。
本方案中我们用以下的方式实现信息隐匿。
信用背书
交易可以指定第三方进行背书,缺省由记账节点完成。对于其他分支用户,交易是在分支上进行的。
因为背书人作了交易担保,相关交易第三方不会受损。
邻居检查
交易完成之后,默克尔树发生变动,记账节点需要广播变动信息。
因为冗余备份关系,交易方的临近节点会拿到详细信息,对树和交易进行检查。
如果发生异常,则进入争议处理流程。
除了少数记账节点和邻近节点,绝大多数用户都获取不到交易的详细信息。
多次转账
如果有人想查到详细的交易记录,需要在转账的时候接触交易的少数节点。
这通常需要一定的时间和成本,用户可以通过多次转帐的方式,让资金在不同的分支进行流转。 使追溯成本提升到不可行的程度。
跨组织交易
每个组织都有自己的共识体系,不同组织之间可以进行代币互换,不同组织之间的切换也会大大增加追溯的成本。
理论上,稀疏默克树是一个概率均衡的二叉树,越顶层分布的越均匀, 最底层会出现长短不一的情况。需要用方法消除长短链情况 另一方面账号是一个160位,作为数字处理十分不便,考虑到每8层是一个字节,我们把8层作为一个分层标准。 每个节点的信息我们按36字节计算(网络编号8字节+金额8字节+账号20字节)
节点组
节点组最多可以存放256个节点,表达64层的不平衡子树。
去除中间运算需求。 一个节点组的需要的直接空间上限大约是10k左右
子数据库
在数据库中,小于256个节点组,我们放入同一个子数据库中。 拆分方法如上。
一个子数据库,最多可以保存256个节点组,65536个节点账户
子数据库需要的空间上限大约是2.5M
矿工记账数据库
在一个节点(用户)的数据库中,如果超256个子数据库,系统会把数据折分到其它节点之上。拆分方法如上。
一个记账用户,最多可以保存256个子数据库,16,777,216个节点账户
一个矿工需要的空间上限大约是640M
账本汇总信息
我们把最上层的节点组称之为账本状态,记录了最顶级的256个分支的账目情况。 包括摘要和分支汇总金额。
这部分信息大约要10k,需要实时同步到系统中的每个在线账号。
普通用户只需要关注总的状态和所在分支的相关节点信息便可。
设定系统规模
参考比特币,目前的账号大约是3000多万个,每秒6.67笔的交易量。
我们假定系统状态如下进行分析:
- 系统账号规模43亿(2的32次方)
- 并发交易量为100万笔/秒
- 心跳周期为1秒
- 节点选举周期为30分钟
规模分析 这些信息大部分会分布在一个32层的网络中,记账节点进行分组,分别处理8,8,16层
矿工磁盘分析
如果一个分支矿工处理一个子数据库(65536用户),涉及的数据是2.5M
如果一个分支矿工处理一个数据库(16,777,216用户),涉及的数据是640M
常见的存储介值能够完成上述工作。
矿工内存分析
对于内存,因为网络中只涉及在线交易的账号。
对于一二级矿工,大部分分支都需要在线处理,10k的信息都需要保存在内存中。
对于低层矿工,只有30个交易,没有必要把所有信息放入内存,从数据库中读取相关分支链和兄弟分支的摘要便合。30x16x2x36字节,约34k字节,涉及的数据库操作90次。常见的存储介值能够完成上述工作。
矿工CPU分析
cpu主要用于验证和取摘要。
对于一二级矿工,每个交易都计算,涉及的摘要次数是1600万次摘要处理。事实上不需要全部计算,一个周期(1秒)最多只需要全网计算一次,512次,涉及的数据量(摘要20字节),10k的数据量。
对于分支节点,除了取摘要,还要验证整个分支,30x(16+16),96次摘要操作。
常见的CPU均能够完成上述工作。
矿工网间通讯量
节点查找是DHT网络方式查找的,均衡到了各个节点上,忽略查找过程的通讯量。
账本的网络结构是提前确定的,一个周期调整一次(30分钟),忽略确定网络的通讯量。
用户的交易是直接找到各自相关方的分支节点进行处理的。30笔交易的通讯量是可控的。
下面我们重点分析根节点矿工的通讯量:
矿工需要向备份矿工同步信息,也需要向下级矿工同步信息。向备份矿工同步的数据量为每秒10k左右。 最多同时256个下级是2.5M/s. 如果网络不足,可以再分组广播。每层16用户,数据变为160k/s。 从顶级广播到普通用户从三次变为五次。
普通的家用网络能够完成上述工作。
矿工网间通讯时间
整个处理需要涉及三到四层节点。
交易递交确认和交易验证保存是两个不同周期。
交易递交的时候,需要递交到分支节点,一次通讯便可以完成。
交易验证的时候,需要子节点向根节点递交,根节点处理完毕之后再向子节点传播一到两次。
通讯时间上,大部分操作都可以在不超过十次通讯完成。网络正常时,合法交易均可在2秒之内得到确认回复。
综上分析,利用数美元芯片数十美元的设备,普通家用网络,便可以完成43亿用户网络规模,并发100万的交易量。
我们对上面的方案进行概括,其核心思想(思路)如下:
价值的来源是对他人有意义的劳动成果
系统通过有意义的劳动成果,建立起最原始的信用
每一个信用的源头都对应了一个劳动成果。
而信用本身也可以交换生态内的产品和服务。
作为对比,区块链网络中有意义的劳动仅仅是记账服务,这个在整个价值链中是相对比较低的工作。
有了信用,网络上一切交互行为以信用为背书。
公私钥体系给了我们一个证明自己身份和信息的机制。
矿工记账者通过质押信用,让第三方相信他会无误工作,因为出错了会被扣除代币。
通过冻结和仲裁机制,可以实现复杂的合约,支撑更大规模多方互动。
所有这些操作只需要依赖的是最基本的PKI体系算法,最低端设备都可以低成本高效完成。
作为对比,传统区块链需要依赖昂贵的设备,消耗昂贵的电费。
系统根据160位账号空间定义了一颗稀疏的稀疏默克尔树,用于记录所有的当前账号状态信息。
所有信息存放在叶节点,通过一级一级的摘要汇总到根节点。可以用一个摘要来表达整个系统的状态。
通过时序协调各节点,并记录了各个阶段的时空状态。时序也解决了分布式网络中的一致性问题。
在本方案中可以按网络规模把处理节点进行分层,具体的交易数据保存在用户节点,交易的确认在分支节点,全网同步的只有极小数据量的摘要和汇总信息。
通过设置适当的备份节点数目提高网络的健壮性和稳定性。
作为对比,传统区块链网络中,扣除意义不大的工作量证明矿工,真正有意义的工作都是全节点完成的。所有的记账工作都需要所有全节点一起参与。这限制了整个网络的规模和工作能力。
对比传统的区块链,Leither有以下优势:
功能
通过弥媒和应用系统,能够以用户为中心重构当前大部分互联网平台业务;
通过组织和共识机制,能够实现以太坊上绝大部分功能,把参与方组织起来;
两者结合,可以从寡头手中把互联网交还给用户。
价值
传统区块链实现的业务功能是为他人记账。
本方案中每个组织都有一个互联网应用的去中心使命,目标都是让用户完全把控自己的数据,最大程度满足用户需求。
每个参与者的每个行为动作都有具体的现实价值,把互联网寡头所攫取的不正常利益以用户为中心进行了再分配
成本
传统区块链的挖矿损耗极大,需要购置高昂的矿机,耗费大量的电力去完成最基础的记账工作。
本方案中相应的工作被完成互联网业务必须的工作替代了。机顶盒、路由、NAS、手机,甚至数美元的设备都可以提供远高于矿机的实际价值服务,换取收益。
效率
系统可以根据业务规模弹性伸缩,相应的工作通过共识均衡到了普通节点。
业务量越大,节点数越多,相应的网络处理能力越强,可以实现远超传统区块链的服务能力。因为效率高,任何几个节点都可以构建自己的业务和共识机制。
隐私
传统区块链项目,每个账号的账目流动都是透明的,虽然账号隐匿,但是可通过账目信息分析出后面的数据信息。
在本方案中,除了用户最早的贡献发放需要用于审核的公示。后续的信息只针对当事人或极少数节点开放。整个网络是一张有灰度的网络,创建者用户可以设置透明度,能够更好的保护隐私。
合规
本方案的代币有相应的服务相对应,更象现实生活中的贡献记录、商品积分、借条、股份、契约 、提货券、Q币等形态,现实生活中都有大量类似的合法行为,只需参考遵守便可做到合规。
业务形态上,类似最早的淘宝业务,完全去中心化,以用户个人的名义进行,现行法规都比较宽松,可以合法完成大量商业实体无法完成的任务。
因为合约能接触到具体的业务数据,避免了区块链合约只能处理虚拟币等非法业务