Bitcoin-NG,一个新的可扩展的区块链协议

  Bitcoin-NG仅受限于网络的传输延时,它的带宽仅受限于个人节点的处理能力。通过将比特币的区块链操作分解为两部分来实现这个性能改善:首领选择(leader election)和交易序列化(transaction serialization)。

  Bitcoin-NG是一个序列化交易的区块链协议,该协议将时间划分为片段,每个片段中,都有一个单独的首领来负责序列化状态机器转换,由首领生成区块。协议介绍了两种类型的区块:用于首领选择的关键区块和包含账本记录的微区块。

  关键区块用于选择首领,区块中包含了和比特币区块一样的信息,不同的是,它还包含了一个在随后的微区块中要用到的公钥。

图1:Bitcoin-NG链的结构。微区块(圆圈)是用私钥

来签名的,该私钥和最后关键区块(正方形)的公钥相

匹配。40%的交易费分发给首领,60%分发给下一个区块。

  

图2:当微区块很频繁时,几乎在每个首领更换时都会出现短暂的分叉

  当有分叉时,在所有关键区块中,由最多算力生成的那条区块链才是主链。

  一旦一个节点生成了一个关键区块,它将变为首领。作为首领,该节点被允许以小于预先确定的最大值的固定速率来生成微区块。一个微区块包含交易记录和数据头。数据头包含上一个区块的引用、目前的GTM时间、交易记录的密码学哈希以及数据头的密码学签名。签名使用的私钥与区块链中的最新关键区块的公钥相匹配。其中,微区块不包含工作量证明,不影响区块链的重量。

  为了激励挖矿,协议会对首领的工作进行补偿。报酬包括两部分:(1)每一个关键区块有权利给它的生成者一定数量的奖励(2)每一次交易记录都有交易费。该交易费由在微区块中写入本次记录的首领和产生下一个关键区块的首领共享。按照目前首领获得40%的交易费,下一个首领获得60%交易费的分配方式。

  参考原文:http://www.8btc.com/bitcoin-ng-2

Bitcoin-NG的更多相关文章

  1. 【码在江湖】前端少侠的json故事(中)ng的json

    ng的json 正所谓"人在江湖,身不由己",在开发之路上前端少侠dk遇到过种种困难,尤其在与后端进行数据对接的时候,不得不逼迫自己以极快的速度去学习和掌握一些奇招怪式,正当他以为 ...

  2. 不知道张(zhāng)雱(pāng)是谁?你out了!

    张(zhāng)雱(pāng)是谁?也许你已经听说过了,也许你还没听说过呢,不过你一定听说过老刘——刘强东,没错,这二人是有关系的,什么关系,京东是老刘的,而张雱呢?张雱是京东旗下52家关联公司法人代 ...

  3. Flume NG Getting Started(Flume NG 新手入门指南)

    Flume NG Getting Started(Flume NG 新手入门指南)翻译 新手入门 Flume NG是什么? 有什么改变? 获得Flume NG 从源码构建 配置 flume-ng全局选 ...

  4. matlab基础教程——根据Andrew Ng的machine learning整理

    matlab基础教程--根据Andrew Ng的machine learning整理 基本运算 算数运算 逻辑运算 格式化输出 小数位全局修改 向量和矩阵运算 矩阵操作 申明一个矩阵或向量 快速建立一 ...

  5. 汇编语言标志位 含义 NV UP EI NG NZ AC PE CY

    缩写原意: Overflow of = OV NV [No Overflow] Direction df = DN (decrement) UP (increment) Interrupt if = ...

  6. 走进AngularJs(二) ng模板中常用指令的使用方式

    通过使用模板,我们可以把model和controller中的数据组装起来呈现给浏览器,还可以通过数据绑定,实时更新视图,让我们的页面变成动态的.ng的模板真是让我爱不释手.学习ng道路还很漫长,从模板 ...

  7. 第一次部署Struts2时出现错误java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.class

    报如下错误 at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720) at org. ...

  8. 汇编语言标记寄存器标记位_NV UP EI NG NZ AC PE CY

    在8086CPU中,有一种标记寄存器,长度为16bit: 其中存储的信息被称为程序状态字(Program Status Word,PSW),以下将该寄存器简称为flag. 功能:1)用来存储相关指令的 ...

  9. 高可用Hadoop平台-Flume NG实战图解篇

    1.概述 今天补充一篇关于Flume的博客,前面在讲解高可用的Hadoop平台的时候遗漏了这篇,本篇博客为大家讲述以下内容: Flume NG简述 单点Flume NG搭建.运行 高可用Flume N ...

  10. Ngnice-国内ng学习网站

    今天给angular新手介绍一个国内开源的ng学习网站http://www.ngnice.com/这是由一批ng爱好者在雪狼大叔的带领下共同开发完成,致力于帮助更多的ng新人,他们分别是: ckken ...

随机推荐

  1. element 列表中已选的标记

    //表格列表中已选的标记initSelFn(data){ let listData = []      listData = data.content ? data.content : []; let ...

  2. c#数据库连接池Hikari重构升级

    Hikari是我自定义的数据库连接池,前面已经提供了地址.因为c#的连接池按照规范的ADO.NET里面实现定义的.由数据库官方提供,但是实现方式就不知道了,反正没有看出来,估计一般是连接类实现的,但是 ...

  3. ionic 安装步骤

    安装ionic和cordova 1,需要首先安装好nodejs,然后通过npm来安装 npm install -g cordova ionic  注意:可能遇到的错误:Error: Cannot fi ...

  4. Linux下NFS服务器的搭建与配置(转载)

    一.NFS服务简介 NFS 就是 Network FileSystem 的缩写,最早之前是由sun 这家公司所发展出来的. 它最大的功能就是可以透过网络,让不同的机器.不同的操作系统.可以彼此分享个别 ...

  5. C# register global hotkey ,onekey 注册多个全局热键以及单个全局热键

    我们需要用非Hook的方法,来给我们的app 或者winform注册热键. 就像下面的 , 欧陆词典注册的一个热键F6一样, 在winform最小化的情况下,也能够全局响应热键. 这里使用系统API来 ...

  6. 路由器基础配置之dhcp配置

    我们将以上面的拓扑图为例,router9为dhcp的服务器,为pc4,5,6分配三个不同网段的地址,pool为要分配的三个地址池,我们要把pc4设置为12网段,pc5设置成34网段,pc6设置成56网 ...

  7. 【redis常用的键值操作及性能优化】

    服务端 启动redis服务 { // -a:指定密码 -h:指定主机 -p:指定端口 } //让redis 服务中断崩溃 //保存和关闭 //后台备份 //设置登录密码 //redis-benchma ...

  8. Mysqldump自定义导出n条记录

    很多时候DBA需要导出部分记录至开发.测试环境,因数据量需求较小,如果原库的记录多,且表数量也多,在用mysqldump命令导出时可以添加一个where参数,自定义导出n条记录,而不必全量导出. 示例 ...

  9. while else

    count = 0 while count <= 5 : count += 1 if count == 3:pass print("Loop",count) else: pr ...

  10. 004---基于TCP的套接字

    基于TCP的套接字 tcp是基于链接的,必须先启动服务端,然后再启动客户端去连接服务端. 之前实现的简单套接字就是基于TCP的,但是只能实现收发消息一次.服务器与客户端都断开了.不够过瘾. 通信循环版 ...