大牛区块链操作系统(白皮书)
Posted 大牛区块链操作系统
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大牛区块链操作系统(白皮书)相关的知识,希望对你有一定的参考价值。
整体规划
区块链的发展方兴未艾,如何将一个区块链项目从容落地,不仅仅是技术上的问题,也是项目运营的问题,以前著名的区块链项目,比如比特币,比特股,以太坊等都很少在一开始就注意到项目运营的长远规划,尤其是在应用层面,没有考虑到培养社区,以及社区会员的同步协调,这会导致区块链在发展过程中出现不平衡的局面。
首先,我们来了解BigBull.red:
BigBull.red不仅仅是一个区块链操作系统软件,更是一个双平衡的项目,技术研发和社区培养同步;技术重要,应用更重要,应用的产生,首先要培植应用的土壤,让社区的人了解项目,使用项目,从而将项目的区块链性能真正应用到社会生活实践中去。
BigBull.red区块链操作系统软件是一种新的区块链架构,这个区块链架构可以升级,这将大大地提高区块链去中心化应用的性能扩展。BigBull.red可以通过创建区块链操作系统的结构来据此构建各种应用程序。该操作系统提供帐户、身份验证、数据库、异步通信以及在数以百计的CPU或群集上的程序调度。该技术的最终形式是形成一个区块链架构体系,能支持每秒数百万次交易、免除用户费用,并允许在受控区块链的背景下,迅速、便捷地发布去中心化应用程序。
其次, 我们来了解BigBull.red的项目运营计划:
本项目技术研发已于2018年8月11日正式开始组建,技术研发成果将于2019年9月在Githup上开源,逐步上传技术开发文档,预计将于2019年11月正式上线。社区运营将于2018年12月18日正式启动,全程分四个阶段实施:
第一阶段:项目宣传阶段,此阶段不会有ICO,而且在任何阶段均不会有。但在此阶段会潇洒地洒币,BBT令牌一共发行20亿,其中2亿BBT将用来洒币(包含奖励),凡是接触到BBT的人,便可以送1000个BBT,送完为止;
BBT目前是在太极链上开发的基于ERC2.0标准的Token,可以在太极钱包和相关交易所及未来的任何应用系统之间互相转帐(三者均可架设太极链区块节点),所有交易记录将在太极链区块浏览器上查询;同时,BBT太极链Token将于2019年9月映射成BigBull.red系统主链本币BBT;此举目的是培植海量用户,也希望早期接触BigBull.red的会员成为真实的传播者,并借此获得丰厚的收益。
(注意:除特殊情况有说明外,本红皮书中技术部分所提到加密令牌是指在BigBull.red软件中BigBull Token令牌(简称BBT),而不是太极链中的BBT令牌。)
第二阶段:因为太极链区块链浏览器会自动统计每个会员伞下的人数,禀着专业、共识、合作、共赢的精神,建立全球108个节点,节点最低人数必须达1000人;假设人数达3000人以上,有资格参与成为全球超级节点(主节点)的选拔,全球超级节点共35个;项目团队将再启用1亿做为福利,发放给节点和超级节点,按节点伞下人数进行“算力贡献度分配”,这1亿BBT将分步发放;超级节点将拥有额外的福利,将拥有区块链节点投票权及相关的福利;
第三阶段:主链上线,所有技术文档全面公开,并建立超级节点挖矿矿池。
第四阶段:收集BigBull.red上的智能合约应用项目,对接适合区块链发展的行业和相关企业,展开实务性合作。
整个项目,技术研发一条线,运营管理(营销)一条线,同步进行,互相呼应,平衡发展。
一、技术背景及应用需求
自2008年区块链技术随着比特币的出现而产生后。区块链就犹如一匹黑马,与人工智能、物联网等一起,成为高科技的代名词。无数的企业家和开发人员试图让区块链平台支持更广泛的应用。
但是区块链目前有其局限性,关键是扩展性没有得到大幅度提高,计算速度也偏慢。
为了获得广泛的使用,应用程序需要一个足够灵活的类似于区块链操作系统的平台,以便满足以下需求:
1.支持海量用户即时数据处理
比如传统的程序软件如Taobao,Uber,Amazon和 Facebook 等,能处理数千万日活用户所产生的数据。而目前的区块链,目前无法达到这个使用效果。在某些情况下,若无法达到足够的临界用户量,应用程序可能无法正常工作,因此容纳大量用户平台至关重要。
2.低成本使用
区块链是价值的传递,虽然区块链在使用过程中,某些区块链所花费的矿工费有些并不太贵,有些却明显不符合商业应用的逻辑,因为费用太高。太高的原因是区块链吞吐量不够,导致拥堵,如是必须增加矿工费,海量的应用,就需要大量的矿工费,这显然也在一定程度上制约了应用的开发和落地。
应用开发人员需要灵活地为户提供低成本乃至免费服务。区块链平台只有支持用户低成本乃至免费使用,才可能获得更广泛的发展空间。开发者和企业可以基于此项前提,创建有效的盈利模式。
3.支持区块链升级
BigBull.red区块链操作系统本身要具有升级功能;同时,运行在其上的智能合约也应该具有升级功能以便企业因为应用的需要而增加新的应用功能。最强大的平台,即使经过了最严格的各项验证,软件在运行中依然有可能发生错误。因此平台必须在发生不可避免性的错误时允许并得到及时修复。
4.反应灵敏
良好的用户体验要求不超过几秒钟的可靠反馈。过长的延迟会影响用户体验,并使构建在区块链上的应用程序无法与现有的非区块链替代品匹敌。因此平台必须能支持事务低延迟性,也就是要有足够的反应灵敏度。
5.并发处理能力强
单线程的程序处理,无法做到高并发运算,目前的区块链运行类似于单线程的程序设计,可以用分片法和并行算法来解决区块链的高并发问题。BigBull.red区块链操作系统是一个超大规模的应用程序,也是一个宇宙计算机,可以在多个 CPU 和计算机之间划分工作负载。
二、主节点网络
对单一区块链而言,要想满足上述功能,必须采用双层奖励制网络— 也称为主节点网络来实现。全节点是运行在p2p 网络上的服务器,让小节点使用它们来接受来自全网的动态变化。以比特币为例,全节点需要显著的流量和要消耗大量成本的其它资源,由此在一段时间内会观察到比特币网络上的这些节点数量呈现稳步下降的趋势,使区块广播的时间需要额外增加40秒。为解决这问题,提出了许多方案,例如引入微软研究的新奖励计划和Bitnodes的激励计划。
表 : 比特币某段时间的全节点变化趋势
这些节点对网络的健康而言十分重要,它们能让客户端同步和通过全网快速广播信息。allwin.best 将增加次级网络,名为“大牛主节点网络”。这些节点将具有高可用性,而且在为网络提供符合一定要求的服务后能够得到主节点服务奖励。
主节点奖励计划的奖励率会是固定的百分比,另外,主节点网络节点也将存在波动,预计主节点奖励会根据当前生效的主节点总数作出变化。
运行主节点需要成本,这在网络上创建了生效节点的硬限制和软限制。
1.确定顺序
使用特定的确定算法创建主节点的伪随机排序。使用为每个区块设计的工作量证明机制的哈希算法,挖矿网络可以提供支持这个排序的安全性。
选择主节点的代码:
示例代码还可以进一步扩展为主节点排序,“第二”,“第三”和“第四”个主节点的计算依此类推。
2.非信任制的Quorum(法定人数)
理论上BigBull.red 网络会有无数个生效的主节点,而需要至少3000 BBT 担保才有机会成为一个生效的主节点,而且这个值将随着主节点钱包BBT的整体数量提升而提升。我们创建了一个系统,可以选出“大牛主节点网络”。例如,可以在公开市场上购买足够多个BBT。这会形成竞争,也将极大提高币价,所以为了成为主节点而获得足够多 BBT是很困难的,但这种方式会形成一部分主节点。
“大牛主节点网络”也可以通过预挖的部分BBT充值到主节点钱包,便可以轻松实现。随着形势的发展也会将主节点钱包BBT的数额予以调节以保持住主节点。但是这需要这个主节点配合BigBull.red的推广,为BigBull.red做出较大的贡献方可在拥有主节点网络和担保条件的前提下,我们以几乎非信任制的方式使用该次级网络进行高度敏感的任务,其中没人能控制网络的演变结果。从总池中选择N 个伪随机主节点来执行相同的任务,这些节点可以充当裁判,过程无需整个网络的参与。
三、共识算法
BigBull.red 的去中心化共识算法,采用授权委托证明(DPOS)。这个算法实践证明可以实现每秒上百万次的交易。根据这种算法, BigBull.red 区块链上持有令牌的人可以通过投票系统持续选择区块生产者,任何人都可以成为块生产者,只要他能说服令牌持有人以获得足够投票。BigBull.red 软件能够精确到每 0.4秒生产一个区块,并且仅一个生产者被授权能在给定的时间点生产该区块。如果在预定时间内没有生成,则跳过该块。当跳过一个或多个块时,区块链中会存在 0.4秒或者大于0.4秒的间隔。
X11 是一种广泛使用的哈希算法,其与其它算法不同,称为链接运算。X11 由 11 轮SHA3 算法组成,每轮哈希计算的结果都被提交到区块链的下一轮计算去。使用多轮算法,可以减少专门为数字货币挖矿设计的 ASIC 使用的概率。
使用BigBull.red系统,改进了X11算法,以 108轮进行生产(共 35个生产者,每个生产者生产 3个块)。在每轮开始时,根据令牌持有者的投票选出35个不同的块生产者。获选生产者的生产顺序由 19个及以上的生产者约定的顺序安排。
如果生产者错过了一个块,并且在过去 24小时均未生产任何块,则会被删除, 直至其向区块链通知打算再次生产块。通过排除不可靠的生产者,使得遗漏的区块数量实现最小化,确保网络的顺畅运行。
理论上, DPOS 区块链不会经历任何分叉,因为其区块生产过程中,生产者是合作而不是竞争关系。如果有分叉,共识将自动切换到最长的链上。其工作原理是,共识机制下,将新区块添加到分叉区块链中的速度是与分叉链中的生产者的占比直接相关的。换言之,拥有较多生产者的区块链分叉会比生产者少的链增长速度要快得多,因为生产者占比越高的分叉链丢失的区块会更少。
此外,任何块生产者都不应该同时在两个分叉上生产块。如果有块生产者被发现这么做,可能会被投票出局。这种双重生产留下的密码证据也可用于自动清除滥用者。
通过允许所有生产者签署所有区块,拜占庭容错机制被添加到传统的DPOS 中, 只要没有生产者签署具有相同时间戳或相同区块高度的两个区块。一旦 19个生产者签署了一个区块,则这个块被视为不可逆转的。如果拜占庭式的生产者签署了两个相同时间戳或相同区块高度的区块,那么系统会生成其不忠行为的密码证据。在这一模式下,不可逆的共识应在 0.8秒内可达成。
1.交易确认
区块链节点生产者将100%参与,在DPOS 区块链中,在广播后平均 0.25 秒, 交易便可99.9%确定。
在DPOS 基础上,BigBull.red中加入了异步拜占庭容错(aBFT), 可实现更快的不可逆性。aBFT 算法在1秒时间内达到不可逆性的100%确认。
2.交易证明(TaPoS)
为了防止区块链分叉并在产生分叉时使系统能感知到用户是否在分叉出来的区块链上,BigBull.red区块链操作系统要求每一交易必须包括最近的区块头的哈希值。
在接下来的极短时间内,所有用户最终直接确认区块链,这使得伪造假冒链变得困难,伪造者无法迁移真实区块链中的交易。
四、帐户
BigBull.red区块链操作系统允许自己设定长度在18个字符以内的帐户。帐户创建者必须保留存储新帐户所需的 RAM,直至新帐户存储令牌以保留其自己的 RAM。创建帐户的成本微不足道,但是需要一定的BBT。
1.操作和处理程序
每个帐户可以将智能合约或者小程序(结构化的操作)发送到其他帐户,并且可以定义脚本来处理收到的操作。BigBull.red为每个帐户提供自己的专用数据库,只能由自己的操作处理程序访问。操作处理脚本还可以将操作发送到其他账户。
消息和自动操作处理程序的组合是 BigBull.red定义智能合约的方式。
为支持并发执行操作,每个账户同样可以在数据库内定义任意数量的范围。区块生产者将以这样一种方式来安排事务,即对存储器访问范围没有冲突, 因此他们可以并发执行。
2.基于角色的权限管理
权限管理其实就是区块链操作过程中的密码确认过程,最简单的方法就是签名的确认。权限管理涉及个人或群体,并且分很多门类。BigBull.red提供了一个声明式权限管理系统,可以对帐户进行精细且高级别的控制,以确定谁可以做什么和什么时候去做。
认证和权限管理必须标准化,并与应用程序的业务逻辑分开,这是至关重要的,这使得开发工具能够以通用方式管理权限,并为优化性能提供巨大空间。
每个帐户都可以通过其他帐户和私钥的任何加权组合来控制。这创建了一个分层的权限结构,真实反映了权限的组织方式,并使得多用户对账户的控制比以往更容易。多用户控制是提升安全性的最大贡献者。如果使用得当,会极大降低黑客攻击而造成的盗窃风险。
BigBull.red允许帐户定义与其他账户和密钥的组合方式,并且把这个组合以特定类型的消息发送到另一个账户。例如,可以为用户的社交媒体帐户提供一个密钥,另一个密钥用于访问交易所。甚至用户可以给其他帐户授权,可以代表本账户进行操作,而无需分配密钥。
① 命名权限级别
使用 BigBull.red系统,帐户可以定义命名的权限级别,每个权限级别可以从更高级别的命名权限中派生。每个命名权限级别定义一个权限。权限是由其他帐户的密钥和/或命名权限级别组成的多签名检查阈值。例如,帐户的“朋友”权限级别可以设置为帐户能被帐户的朋友同等控制。
另一个例子是Steem 区域链,它具有三个硬编码命名的权限级别:owner,active和 posting。Posting 权限只能执行诸如投票和发布等社交行为,而 active 权限可以执行除更改所有者的所有操作。Owner 权限被保留,可以执行一切操作。
BigBull.red允许每个账户所有者定义自己的权限级别以及消息的分组,以此来推广这一管理理念。
② 权限映射
BigBull.red 允许每个帐户定义任意其他帐户的合同、操作或合同与其自己的命名权限级别之间的映射。例如,账户持有人可将其社交媒体应用程序映射到账户所有者的“朋友”权限组。通过此映射,账户中的任何朋友都可以作为账户所有者在社交媒体发布信息。即使这些朋友可以作为帐户所有者发布信息,他们仍然会使用自己的密钥来签名。这意味着可以确定哪些朋友,以何种方式使用了该帐户。
③ 权限评估
从@alice 到@bob传递类型为“ Action” 的操作时,BigBull.red软件将首先检查@alice 是否为@bob.groupa.subgroup.Action 定义了权限映射。如果没有发现任何结果,那么将会检查@bob.groupa.subgroup,然后检查@bob.groupa, 最后检查@bob。如果没有找到进一步的匹配,则假定的映射将是命名权限组@alice.active。
一旦识别出映射,则使用多签名阈值和与命名权限相关联的权限来验证签名权限。如果失败,那么它会遍历父类权限,最后遍历所有者的权限,即@alice.owner。
④ 默认权限组
BigBull.red技术还允许所有账户拥有一个可以完成所有操作的“owner”权限组,而一个“active”权限组除了更改所有组之外,可以执行所有操作。所有其他权限组均由“active”组派生。
⑤ 并发评估权限
权限评估过程是“只读”的,并且对事务所做的权限更改直到块结束才会生效。这意味着所有交易的所有密钥和权限评估可以并发执行。此外,这意味着可以快速验证权限,而不需要重新启动昂贵的应用程序逻辑。最后,这意味着交易权限可以在接收到待处理的交易时进行评估,而在应用它们时无需重新评估。
从整体来看,权限验证占验证交易所需计算的很大一部分。让权限验证成为一个只读与可并发化的过程可以显著提升性能。
当重播区块链以从动作日志重新生成确定性状态时,不需要再次评估权限。因为事务包含在已知的状态良好的区块中,可以让其跳过这一步骤。这极大减少了重放区块链时消耗的计算量。
3.强制延迟的操作
时间是安全的关键组成部分。在大多数情况下,不可能知道私钥是否被盗用,直到它被使用。基于时间的安全机制在人们使用某些应用程序时更为重要,因为这些应用程序需要将密钥保存在日常使用的联网计算机上。消息包含在区块后,
BigBull.red软件支持应用程序开发人员可以指定某些消息在应用前必须等待一小段时间,在此期间可以取消该操作。
当这类消息被广播时,用户可以通过电子邮件或短信收到相应通知。如果用户没有授权,那么他们可以登录帐户来还原账户数据并撤回消息。
所需的延迟取决于操作的敏感程度。支付一杯咖啡可以毫不拖延地在几秒钟内确认且不可撤回,而买房子可能需要 72 小时的清算周期。将整个帐户转移到新的用户可能需要 30 天。具体延迟取决于应用程序开发人员和用户。
4.被盗钥匙恢复
BigBull.red软件为用户提供了密钥被盗时恢复其帐户控制的方法。帐户所有者可以使用过去 30 天内活跃的任何其批准的帐户恢复合作伙伴的密钥,重置帐户上的所有者密钥。没有账户所有者的配合,帐户恢复合作伙伴无法重置帐户的控制权。
这个过程也与简单的多重签名交易有着极大的不同。通过多签名交易,另一个实体会成为每个执行交易的一方。相比之下,通过恢复过程,恢复合作伙伴仅参与恢复过程,无权参与日常交易。这极大降低了所有参与者的成本和法律责任。
五、应用程序的确定性并行执行
确定性是区块链共识的特征。那么,所有并发执行都不能产生互斥或其他的锁定基元。因为没有锁定,那么必须要有一些方法来保证并发执行的帐户不会产生非确定性结果。
2019年9月发行的 BigBull.red软件为多线程并发执行的数据结构。在基于BigBull.red 软件的区块链中,一旦执行并发操作,区块生成器需要将消息传递到独立的线程中,以便进行并发评估,但是生成计划的过程无需确定。这意味着区块生成器可以利用并发算法安排交易。
并发执行还意味着脚本生成新消息时,它不会立即发送,而是在下一个周期中发送。无法立即发送的原因是接收方可能会在另一个线程中主动修改自己的状态。
1.最小化通信延迟
延迟是指一个帐户将消息发送到另一个帐户并收到响应的时间。BigBull.red的目标是使两个帐户能够在单个区块内来回交换消息,而不必在每个消息之间等待 0.35 秒。为了实现这一点,BigBull.red软件将每个块分为周期(cycle)。每个周期分为线程(thread),每个线程包含交易列表。每个交易包含一组要传递的消息。该结构可以可视化为树状结构,其中各层按顺序并发处理。
区块 Block
周期 Cycles(顺序)
线程 Threads(并行)
交易 Transactions(顺序)
消息 Messages(顺序)
接收方和通知的帐户Receiver and Notified Accounts(并行)
在一个周期中生成的交易可以在任何后续周期或区块中传送。区块生产者不断把周期添加到区块中,直到达到最长的执行时间,或者没有新生成的事务要交付可以使用区块的静态分析来证明在给定周期内,两个线程内不包含修改同一个帐户的交易。只要一直保持这种静态分析机制,就可以通过并发运行所有线程来处理区块。
2.只读消息处理
某些帐户可能能够以通过/未通过的方式处理操作,而不必修改其内部状态。在这种情况下,只要特定账户的只读消息处理程序包含在特定周期内的一个或多个线程中,这些处理程序就可以并发执行。
3.多账户原子交易
有时,最好确保动作被多个账户以原子方式交付和接受。在这种情况下,两个操作都放在同一个交易中,两个账户分配至同一个线程,消息按顺序执行。
4.部分评估区块链状态
大规模区块链技术组件应该是模块化的。并不要求每个人都运行所有的东西,特别是当有人只需要使用一小部分应用程序的时候。
交换应用程序开发人员运行完整节点以向其用户显示交换状态。此交换应用程序不需要与社交媒体应用程序相关的状态。BigBull.red允许任何完整节点选择要运行的应用程序的任何子集,传递给其他应用的消息将被安全地忽略,因为应用的状态完全来自于传递给它的消息,而不是依靠其他应用。
5.主观最优任务安排
BigBull.red系统不能强制阻止区块生成者向其他账户发送的任何消息。每个区块生成者对处理交易的计算复杂度和时间复杂度都有自己的主观度量,无论该交易是由用户生成的还是由脚本自动生成的。
在推出的采用 BigBull.red软件的区块链中,在网络层面,所有交易都根据执行的WASM指令数量计算带宽成本。但是,使用软件的每个区块生成者会使用他们自己的算法和度量来计算资源使用情况。当一个区块生成者发现一个交易或账户已经消耗了不成比例的计算能力时,他们会在生成自己的区块时拒绝该交易;但是,如果其他区块生成者认为其是有效的,他们仍将处理该交易。
一般来说,只要一个区块生成者认为一项交易有效,且其所消耗的资源内可控, 那么所有其他区块生产者也将接受它,但交易可能需要 1 分钟才能找到该生产者,在某些情况下,区块生成者可以创建一个区块,其中包括超出可接受范围之外几个数量级的交易。在这种情况下,下一个区块生产者可能会选择拒绝该区块,并且会被第三个区块生成者终结。这与一个大区快导致网络传播延迟所引发的情况没有什么不同。社区会注意到这种异常模式,并最终清理该流氓区块生成者的投票。
这种对于计算成本的主观评估使得区块链不必精确地去度量运行某一任务需要多长时间。有了这个设计,就不需要精确地数指令,这将能在不打破共识的情况下大幅增加优化机会。
6.延期交易
BigBull.red软件支持计划在未来执行的延期交易。 这使计算能够移动到不同的分片和/或创建持续计划持续交易的长时间运行的流程。
7.上下文无关操作
上下文无关操作仅涉及需要用到交易数据的计算,而不涉及区块链状态。例如,签名验证是一种仅需交易数据和签名以确定签署事务的公钥的计算。签名验证在区块链必须执行的计算中,属于最昂贵的单个计算之一,但由于此计算是上下文无关的,因此可并发执行。
上下文无关操作与其他用户操作类似,只是它们无法访问区块链状态来执行验证。这不仅使 BigBull.red能够并发处理诸如签名验证等所有上下文无关操作,更重要的是可以实现通用签名验证。
通过支持上下文自由操作,诸如 Sharding,Raiden,Plasma,StateChannels 等的可伸缩性技术变得更加可并发和实用。该种开发实现了高效的区块链间通信和潜在的无限可扩展性。
六、令牌模型和资源使用
注意:本白皮书中所提到加密令牌是指在BigBull.red 软件中 BBT令牌,而不是太极链中的 BBT令牌。
所有的区块链都是资源受限的,并且需要一个系统来防止滥用。在BigBull.red系统中,有三大类资源被应用程序消耗:
① 带宽和日志存储(磁盘)
② 计算和计算积压(CPU)
③ 状态存储器(RAM)
瞬时使用和长期使用这两类组件都会消耗带宽和计算。区块链系统将维护所有消息的日志,这些日志会被所有的完整节点下载和存储。通过日志信息,可以重构所有应用程序的状态。
计算债务是必须执行的计算,以便从操作日志中重新生成状态。如果可计债务增长量过大,那么就有必要对区块链的当前状态进行快照,并放弃区块链的历史状态。如果计算债务增长过快,区块链可能需要 6 个月的时间来重放 1 年的交易。因此,谨慎管理计算债务至关重要。
区块链存储状态是可从应用程序逻辑访问的信息,它包括诸如订单和账户余额等信息。如果应用程序从未读取该状态,则不应该存储它。例如,应用程序逻辑不会读取博客文章内容和评论,因此不应将其存储在区块链状态中。同时,发布/ 评论,投票数量以及其他属性的存在将作为区块链状态的一部分进行存储。
区块生成者可以发布他们可用的带宽、计算资源和状态的容量。BigBull.red系统允许每个账户在一个三天对赌合约中,消耗一定比例的可用容量。例如:假设一个基于 BigBull.red系统的区块链应用启动,如果一个账户持有该区块链提供的总令牌的 1%,那么这个账户就有可利用该区块链 1%的状态存储容量。
在已启动的区块链中使用 BigBull.red系统,带宽和计算能力将被分配到部分储备基础中,因为它们是暂时的(未使用的容量不能存储下来为将来使用)。BigBull.red系统将使用类似于 Steem 的算法来限制带宽使用速率。
1.客观和主观测量
如前所述,测量计算使用对性能和优化有重大影响,因此,所有资源使用限制最终是主观的,并且由区块生产者根据他们各自的算法和估算来执行,通常由区块生产者通过写自定义插件来执行。
虽说如此,但有些东西客观地衡量是微不足道的。交付的操作次数以及存储在内部数据库中的数据大小对于客观衡量都很便宜。BigBull.red软件使区块生产者能够在这些客观测量上应用相同的算法,但可以选择对主观度量应用更严格的主观算法。
2.收款人支付
传统意义上,支付办公空间,计算能力以及其它运营成本是企业的责任。客户购买了特定产品,这些产品销售收入用于支付业务成本。同样,没有网站强制其访问者在访问其网站时收取小额费用来支付管理成本。因此,去中心化的应用程序不应强迫使用区块链的用户直接支付区块链使用费用。
使用 BigBull.red软件的推出区块链不要求其用户直接支付区块链使用费,因此不会限制或阻止企业制定其产品的货币化策略。
尽管接收方可以支付,但BigBull.red使发送方能够支付带宽、计算和存储费用。这使得应用程序开发人员能够选择最适合其应用程序的方法。很多情况下,发件人支付大大降低了不想实施自己的配给系统的应用程序开发人员的复杂性。应用程序开发人员可以将带宽和计算委派给用户,然后让“发件人支付”模型执行使用。从最终用户的角度来看,它是免费的,但从区块链的角度来看,它是发件人支付的。
3.委派能力
采用BigBull.red软件区块链上的令牌持有人,可能不需要立即消耗全部或部分可用带宽,可将这些未消耗的带宽委派或租借给其他人; 运行BigBull.red软件的区块生产者将会识别这种容量授权并分配相应带宽。
4.将交易成本与令牌价值分开
BigBull.red软件的主要优点之一是可用于应用程序的带宽量完全独立于令牌价格。如果应用程序所有者在使用 BigBull.red程序的区块链上持有相应数量的令牌,则该应用程序可在固定状态和带宽的情况下无限期运行。这种情况下,开发商和用户不会受到令牌市场任何价格波动的影响,因此不依赖于价格反馈。换言之,采用BigBull.red软件的区块链生产商能够自然地增加带宽,计算和存储,而不受令牌价值的影响。
使用 BigBull.red软件的区块链每次新产生区块时都会授予区块生产者令牌。令牌的价值将影响生产商的带宽、存储和计算量,该模型利用自然上升的令牌价值来提高网络性能。
5.状态存储成本
虽然可以委托带宽和计算,但应用程序存储状态需要应用程序开发人员持有令牌,直至该状态被删除。如果该状态从未被删除,那么令牌将从循环中有效移除。
6.块奖励
创建的令牌数量由所有块生产者公布的期望收益的平均数决定。BigBull.red软件可能被设为强制执行生产者奖励的上限,使得令牌供应总量的年增长率不得超过5%。
7.工作者建议系统
除了选择区块生产者之外,根据基于BigBull.red软件的区块链,令牌持有者可以选择一些旨在让社区受益的工人建议。获胜的提案将获得高令牌通货膨胀配置百分比的令牌减去已经支付给区块生产者的令牌。这些建议将获得与每个应用程序从令牌持有者收到的投票成比例的令牌,直到他们要求执行其工作的金额为止。当选的提案可以由代币持有人的新当选提案取代。
实施工人建议的系统合同将在 2019年9月初次启动时到位,资金机制也将会实现。它将开始积累资金,同时开始区块生产者奖励。由于工作人员建议系统将在WASM 中实施,因此可以在以后不加分叉的情况下添加。
七、治理
治理是人们在一个社区的过程:
① 就集体行动的主观问题达成共识,而这些问题不能完全由软件算法俘获;
② 执行他们所做的决定;
③ 通过修改法则改变治理宪法本身。
基于BigBull.red软件的区块链实现了一个有效地指导区块生产者现有影响的治理过程。如果缺少明确的治理流程,之前的区块链依赖于特殊的,非正式的且往往颇具争议的治理流程,从而导致不可预测的结果。
基于BigBull.red软件的区块链认识到权力来源于令牌持有者将权力委托给区块生产者。块生产者被给予有限的检查权限来冻结帐户,更新有缺陷的应用程序,并且提出对底层协议的硬分叉改变。
嵌入到BigBull.red软件中是选择区块生产者。在对区块链进行任何更改之前,这些区块生产者必须批准该区块链。如果区块生产者拒绝代币持有者所希望的改变,那么他们可以被投票出去。如果区块生产者没有代币持有者的许可进行更改,则所有其他非生产性全节点验证器(交换等)将拒绝该更改。
1.冻结帐户
有时候,某个智能联络表现异常或不可预测,并且不能按预期执行;其他时候, 应用程序或帐户可能会发现一个可被利用的漏洞来消耗大量资源。当这些问题不可避免地发生时,区块生产者有权纠正这种情况。
所有区块链上的区块生产者都有权选择哪些交易包含在区块中,从而使其能够冻结账户。使用BigBull.red程序的区块链通过 35个活跃生产者中的 19个投票正式授权冻结账户。
如果区块生产者滥用权力,他们将被投票出局,并且被无辜冻结的帐户将被解冻。
2.更改账户代码
当所有其他方式失败并且“势不可挡的应用程序”以不可预知的方式发挥作用时,使用 BigBull.red软件的区块链允许区块生产者替换账户的代码,而不分叉整个区块链。这类似冻结账户的过程,这个代码的替换需要选出的 19/35的区块生产者投票。
3.宪法
BigBull.red软件允许区块链建立点对点的服务条款协议或在用户之间签署绑定合约,称其为“宪法”。这套宪法的内容界定了用户的义务,不能完全由法规强制,并通 过确立管辖权和法律选择以及其他相互接受的宪法来促进解决争端。在网络上广 播的每一笔交易都必须包含宪法的哈希作为签名的一部分,从而明确约束签署人的合同。
该宪法还定义了源代码协议的人类可读的意图。此意图用于识别发生错误时的错误和功能之间的差异,并指导社区进行哪些修正是正确的或不正确的。
4.升级议定书和宪法
BigBull.red软件定义了以下过程,通过该过程可以更新由规范源代码及其构成定义的协议:
① 区块生产者提议修改宪法并获得 19/35批准。
② 区块生产者连续 30天保持 19/35批准新宪法。
③ 所有用户都必须使用新宪法,作为未来交易处理的条件。
④ 区块生产者通过修改源代码来反映宪法的变化,并使用新宪法的哈希将其提交给区块链。
⑤ 区块生产者连续 30天保持 19/35批准新宪法。
⑥ 对代码的更改7天后生效,在批准源代码后,所有非生产完整节点有 1周的时间进行升级。
⑦ 所有未升级到新代码的节点都会自动关闭。
默认情况下,BigBull.red软件的配置,更新区块链以添加新功能的过程需要 2到 3个月的时间,而修复不需要修改结构的非关键性漏洞的的更新可能需要 1到 2个月的时间。
5.紧急变更
如需进行软件更改以修复不良或损害用户的安全漏洞,区块生产者则可能会加快此进程。总体来说,它可能会因为引入新功能或修复无害漏洞来加快升级而违反宪法。
八、超级虚拟云
BigBull.red 区块链操作系统需要海量的存储空间,这个是通过俩个技术来实现,一个是超级虚拟云,一个是“分片共识机制”。
首先BigBull.red将建立一个虚拟的超级主机 ,所谓虚拟,是指藉由去中心化的网络的互动而形成虚拟云,我们称之为超级虚拟云(SVC)。
SVC的特性:
1.完全由点对点节点构成,无法被Sybil攻击,并且支持拜占庭容错;
2.SVC可以被全世界所共享 ,内部系统之间可以无缝的交互;
3.SVC 拥有区块链部署更简单、无法停止、无法篡改的特性,重新定义企业IT,告别备份恢复、告别数据库、告别复杂的防火墙设置,简化系统并大幅削减IT人力成本。
可以说SVC创建了一个全新并开源的系统。
其次,SVC还将通过分片和独特的共识机制来提高区块链的整体吞吐量。
SVC将利用“分片技术”将网络划分为若干个小组件网络(简称碎片)实现并行处理。这样,事务的吞吐量将随着节点数量的增加而线性增长。
比特币和以太坊使用的中本共识(Nakamoto)(以发明人中本聪(Satoshi Nakamoto)的名字命名,他首先在比特币中使用它)机制,主要依赖于计算量,而不是网络节点数量,因此无法直接应用于分片技术,而且挖矿能源消耗的成本很高。该共识机制依赖强大的计算量,而强大的计算量需要时间并且可能会减慢一致的协议。而且,它不依赖于网络中节点的数量,而取决于网络的集体计算能力。因此,如果在BigBull.red中使用,PoW作为共识机制不能直接利用小碎片大小。采用拜占庭容错协议(PBFT)在每个分片内达成共识。它的效率取决于网络的大小,而不是计算量,因此可以利用碎片的小尺寸。
在PBFT中,共识组(本例中是一个碎片)中的所有节点按顺序排列,并且它有一个主节点(又名领导者),其他节点称为备份节点。PBFT的每一轮都有三个阶段,如下所述:
■预备阶段:在这个阶段,领导者宣布团队应该达成一致的下一条记录。这是通过发送“预备”消息来完成的。
■准备阶段:收到“预备”消息后,每个节点验证记录的正确性和有效性,并向所有其他节点多播“准备”消息。
■提交阶段:在收到来自超级多数的“准备”消息时,每个节点向该组多播一个提交消息。
最后,每个节点等待来自超级大多数人的提交消息,以确保有足够数量的节点同意领导提出的记录。SVC通过分片技术和独特的拜占庭容错协议(PBFT),实现了吞吐量随着网络规模呈线性增长,降低了挖矿能耗、矿工收益差距以及交易费用。
九、互链通协议
关于跨链通信,BigBull.red 区块链操作系统试图建立一个类似于“互链通”概念的协议。
“互链通协议”解决的什么技术问题?让我们先来研究一下跨链技术:
跨链技术,早期有 Blockstream 提出侧链技术,以及比特币和以太坊两大公链之间充当传令兵的 BTC-relay,到现在有 RootStock、Polkadot,这些都是着眼于跨链通讯的。
目前出现的几种跨链技术,都是在解决方案的层面,而不是协议层面。解决方案,就是我有一个问题,我想个可行的办法去解决这个问题。协议是要为着一个目标,在多利益关联方之间,制定一套游戏规则,只要遵守这套游戏规则,大家就可以互通共赢。
比如侧链技术,其实本质上就是主侧链之间双向锚定,相互信任。主链要向侧链转移资产时,通知侧链自己已经将一部分主链资产锁定,而侧链可以去检查主链资产的锁定状态,然后在自己的链上发行等值的侧链资产。这个过程宏观来看就是完成了资产的跨链转移。所以这只是一套区块链层面的技术,需要主侧链彼此了解,相互配合。而不是协议。
■我们来看一下问题所在:
第一,作为链间通讯解决方案,它规模性不行。两条链的时候很简单,一主一侧就可以了,如果是几十条链几百条链,怎么办?那只有围着一条中心主链来转。那这相当于什么呢?相当于每一个中心主链跟其侧链之间又打造了一个大一点的小宇宙,但是跟外界还是隔绝的。
第二,它不能够对上层应用提供强有力的抽象。你在这套体系里做出来的智能合约和 Dapp,还是局限在具体链上的。你的智能合约能运行在不同的链上,甚至同时运行在多条链上吗?恐怕是不行的。这跟互链网的愿景,想去甚远所以目前的跨链技术不能成为“互链网 IP”的细腰。因为这是跨链技术而非协议。
根本问题在哪里?问题在于:链间互链的问题,根本就不应该是在链这个层面解决,它必须高于链这个层次,要把下层的链当操作系统 API 来调度。
■诚如“IP”协议,我们来看:
首先, IP 协议解决了不同网络之间相互通讯的问题,其次,是它对其上的协议提供了一个统一的抽象。
“ICCBP”是一套互链协议,价值交换需要互链,承诺的兑现需要约束,权益的转移需要一个标准化的协议。互联网能够有今天,有赖于 IP 协议这个细腰。ICCBP就是互链网上的 IP 协议。在 ICCBP之下,百链竞发,争奇斗艳,在ICCBP之上,人人互链无边界,而 ICCBP作为一个协议,令多利益关联方达成共识,所有的链都可以参与其中。
基于“互链通协议”可以写跨链的智能合约,以及 Dapp。对于用户来说,“互链通协议”之下的百链万链,都成为他发行自己通证、实现自己通证应用的组件。用户可以基于这个互链通协议来绘制自己的通证图画。
“互链通协议”的实现本身不是链,而是一套基于密码学、分布式的服务。“互链通协议”借鉴了英美法系陪审员共识制度。一个应用层来的智能合约,送到“互链通”层的时候,会有一个律师节点负责执行。然而它不能独断乾纲,需要陪审团节点为它背书。所以它先执行一遍智能合约,然后把代码和输出交给陪审团,每个陪审团节点各自独立执行一遍,确认输出正确,然后签名支持。律师节点得到足够的陪审员签名支持之后,就可以去找相应的下层公链来执行智能合约所要求的动作。这样一来,“互链通协议”相当于作为一个“百链之上”的公共智能合约执行层,就不但消除了各链智能合约的差异性,而且可以让本来没有智能合约的链,比如比特币,也可以在智能合约的支配下行动。比如说,使用“互链通协议”可以在比特币链或其它没有智能合约的链上像ERC20一样快速定义和发行token。不但如此,这套机制可以让一个智能合约同时驱动多个下层链。所以我们称之为协议。
这个算法的关键,是多数陪审员独立验证智能合约的执行状态,并且签名背书,让律师节点获得足够多的支持去调用下层链功能。但如果律师节点是恶意的,而他又刻意挑选一批恶意的陪审员节点,那么他们就可以曲解用户的智能合约了。
■那么,怎样确保多数陪审员节点是正直的呢?
这确实是这套协议设计中的一个要点。事实上,但是每一个智能合约执行时,会随机临时抽选一部分陪审员节点组成临时陪审团。因为是随机选择,所以可以在较少的节点基础上实现充分随机性。同时“互链通协议”还采用押金惩罚机制保证陪审员不作恶,一起防范 Sybil 攻击,保证充分去中心化。
互链通协议可以挂在多个链上,避免网络拥塞,用户选择性大,使得各种DAPP应用可以部署在不同的链上,可以形成良性竞争,更多用户可以参与,开发者在开发应用时可以根据业务需求更灵活的选择已有的链,或者方便地从已经部署的链上迁移到更好更新的链上,使得已有的应用生态可以突破原来部署的链自身架构局限、性能局限或者功能局限。
也可以说:“互链通协议”旨在建立一个 Meta 层,也就是“元层”。这个层就是“互链通协议”努力实现的、互链层的 IP 协议。
十、结论
BigBull.red区块链操作系统的设计源自经过验证的概念和最佳实践经验,并代表了区块链技术的根本性进步。
该操作系统和相关的“互链通协议”是全球可扩展区块链社会的整体蓝图的一部分,其中可以轻松部署和管理去中化应用程序。
同时,我们必须要看到,区块链技术必须和应用同步。通过技术研发和的项目的社区运营管理并行平衡发展,一阴一阳之道,将为BigBull.red区块链操作系统的全面应用做好充分的准备,也为区块链界树立一个良好的发展范式。
十一、运营团队及技术联盟
■项目研发团队:
BigBull.red区块链操作系统是国际化项目,从美国的硅谷、发展到东京、俄罗斯、白俄罗斯、德国、法国、西班牙、瑞士、马耳他、香港、马来西亚、奥克兰、台北、北京、上海都有贡献者和参与者,将进行全球技术互动,大量国际性大学和研究所将参与其中。项目的团队包括了世界领先的密码学家,数学家和资深工程师等,如斯坦福 BLS技术的发明人,bitcoin asicboost 和 p2contract 的发明人,来自耶鲁大学和欧洲 EPFL 分布式计算中心的多方计算和密码学研究者等。
■项目运营团队:马耳他区块链运营骑士团
十二、路线图
2017年8月酝酿SVC超级计算机方案
2017年12月底核心技术专家确定“BigBull.red 区块链操作系统”的草案
2018年3月,“BigBull.red 区块链操作系统”核心技术实行方案讨论稿出炉
2018年5月底,投资方就位,开始筹备技术团队
2018年8月11日,正式开始研发
2018年12月,基于太极链ERC2.0的“BBT”代币开发,开始洒币,不进行任何形式的ICO
2018年12月,BBT上线全球知名交易所,并陆续上线多家交易所
2019年9月,向全球公布BigBull.red 区块链操作系统的核心研发团队及部分关键性技术细节(机密),部分开源
2019年11月,组织第一次BigBull.red 区块链操作系统技术研讨大会,同时宣布项目上线运营。
■BigBull.red 区块链操作系统将持续更新至更新版本...
--END--
以上是关于大牛区块链操作系统(白皮书)的主要内容,如果未能解决你的问题,请参考以下文章