当前位置:首页 - 第26页

09月30日

5.1 拜占庭容错技术

发布 : xiaohuanglv | 分类 : 区块链精品文章 | 评论 : 0 | 浏览 : 1755次
5.1 拜占庭容错技术

拜占庭容错技术(ByzantineFaultTolerance,BFT)是一类分布式计算领域的容错技术。拜占庭假设是对现实世界的模型化,由于硬件错误、网络拥塞或中断以及遭到恶意攻击等原因,计算机和网络可能出现不可预料的行为。拜占庭容错技术被设计用来处理这些异常行为,并满足所要解决的问题的规范要求。5.1.1 拜占庭将军问题拜占庭容错技术来源于拜占庭将军问题。拜占庭将军问题是LeslieLamport在20世纪80年代提出的一个假象问题[1]。拜占庭是东罗马帝国的首都,由于当时拜占庭罗马帝国国土辽阔,每支军队的驻地分隔很远,将军们只能靠信使传递消息。发生战争时,将军们必须制订统一的行动计划。然而,这些将军中有叛徒,叛徒希望通过影响统一行动计划的制定与传播,破坏忠诚的将军

09月30日

5.2 PoW机制

发布 : xiaohuanglv | 分类 : 区块链精品文章 | 评论 : 0 | 浏览 : 1592次
5.2 PoW机制

比特币系统的重要概念是一个基于互联网的去中心化账本,即区块链,每个区块相当于账本页,区块中记录的信息主体,即为相应的交易内容。账本内容的唯一性要求记账行为是中心化的行为,然而,中心化所引发的单点失败,可能导致整个系统面临危机甚至崩溃。去中心记账可以克服中心化账本的弱点,但同时也会带来记账行为的一致性问题。从去中心化账本系统的角度看,每个加入这个系统的节点都要保存一份完整的账本,但每个节点却不能同时记账,因为节点处于不同的环境,接收到不同的信息,如果同时记账的话,必然会导致账本的不一致,造成混乱。因此,需要有共识来达成哪个节点有权记账。比特币区块链通过竞争记账的方式解决去中心化的记账系统的一致性问题。比特币系统设计了以每个节点的计算能力即“算力”来竞争记账权的机制。在比特币系统

09月30日

5.3 PoS机制

发布 : xiaohuanglv | 分类 : 区块链精品文章 | 评论 : 0 | 浏览 : 1416次

PoW背后的基本概念很简单:工作端提交已知难于计算但易于验证的计算结果,而其他任何人都能够通过验证这个答案就确信工作端为了求得结果已经完成了量相当大的计算工作。然而PoW机制存在明显的弊端。一方面,PoW的前提是,节点和算力是均匀分布的,因为通过CPU的计算能力来进行投票,拥有钱包(节点)数和算力值应该是大致匹配的,然而随着人们将CPU挖矿逐渐升级到GPU、FPGA,直至ASIC矿机挖矿,节点数和算力值也渐渐失配。另一方面,PoW太浪费了。比特币网络每秒可完成数百万亿次SHA256计算,但这些计算除了使恶意攻击者不能轻易地伪装成几百万个节点和打垮比特币网络,并没有更多实际或科学价值。当然,相对于允许世界上任何一个人在瞬间就能通过去中心化和半匿名的全球货币网络,给其他人几乎没有

09月30日

5.4 DPoS机制

发布 : xiaohuanglv | 分类 : 区块链精品文章 | 评论 : 0 | 浏览 : 1484次

PoW机制和PoS机制虽然都能有效地解决记账行为的一致性共识问题,但是现有的比特币PoW机制纯粹依赖算力,导致专业从事挖矿的矿工群体似乎已和比特币社区完全分隔,某些矿池的巨大算力俨然成为另一个中心,这与比特币的去中心化思想相冲突。PoS机制虽然考虑到了PoW的不足,但依据权益结余来选择,会导致首富账户的权力更大,有可能支配记账权。股份授权证明机制(DelegatedProofofStake,DPoS)的出现正是基于解决PoW机制和PoS机制的这类不足。比特股(Bitshare)是一类采用DPoS机制的密码货币,它期望通过引入一个技术民主层来减少中心化的负面影响。比特股引入了见证人这个概念,见证人可以生成区块,每一个持有比特股的人都可以投票选举见证人。得到总同意票数中的前N个

09月30日

5.5 Ripple共识算法

发布 : xiaohuanglv | 分类 : 区块链精品文章 | 评论 : 0 | 浏览 : 1778次
5.5 Ripple共识算法

1.Ripple的网络结构Ripple(瑞波)是一种基于互联网的开源支付协议,可以实现去中心化的货币兑换、支付与清算功能。在Ripple的网络中,交易由客户端(应用)发起,经过追踪节点(trackingnode)或验证节点(validatingnode)把交易广播到整个网络中。追踪节点的主要功能是分发交易信息以及响应客户端的账本请求。验证节点除包含追踪节点的所有功能外,还能够通过共识协议,在账本中增加新的账本实例数据。如图5-5所示是Ripple的共识过程中节点交互示意图。2.Ripple共识算法Ripple的共识达成发生在验证节点之间,每个验证节点都预先配置了一份可信任节点名单,称为UNL(UniqueNodeList)。在名单上的节点可对交易达成进行投票。每隔几秒,R

09月30日

5.6 小蚁共识机制

发布 : xiaohuanglv | 分类 : 区块链精品文章 | 评论 : 0 | 浏览 : 1415次

小蚁是基于区块链技术,将实体世界的资产和权益进行数字化,通过点对点网络进行登记发行、转让交易、清算交割等金融业务的去中心化网络协议[1]。小蚁可以被用于股权众筹、P2P网贷、数字资产管理、智能合约等领域。小蚁共识机制使得运行小蚁协议的各节点能够对当前区块链状态达成一致意见。通过股权持有人投票选举,来决定记账人及其数量;被选出的记账人完成每个区块内容的共识,决定其中所应包含的交易。小蚁的记账机制被称为中性记账。PoW/PoS/DPoS解决谁有记账权的问题,而中性记账则侧重于解决如何限制记账人权力的问题。在中性记账的共识机制下,记账人只有选择是否参与的权力,而不能改变交易数据,不能人为排除某笔交易,也不能人为对交易进行排序。小蚁的中性记账区块链可以做到:1)每15s产生一个区块,优化后有望

09月30日

第6章 比特币应用开发指南

发布 : xiaohuanglv | 分类 : 区块链精品文章 | 评论 : 0 | 浏览 : 1400次

本章在常见的Ubuntu14.04Desktop64bit操作系统上,采用Docker容器技术来快速安装和配置私有节点,用比特币测试网络(bitcoin-testnet)作为开发试验环境,以Node.js程序语言为例子,说明如何调用比特币钱包节点提供的RPC接口服务,实现一些涉及比特币区块链的具体应用功能。RPC(RemoteProcedureCall)即远程过程调用协议,是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。在Bitcoin的Wiki网页上面(https://en.bitcoin.it/wiki/API_reference_(JSON-RPC))可以看到,除了Node.js外还有很多种语言都可以调用Bitcoin的RPC,读者可以参考

09月30日

6.1 以虚拟机方式搭建应用开发环境

发布 : xiaohuanglv | 分类 : 区块链精品文章 | 评论 : 0 | 浏览 : 1626次
6.1 以虚拟机方式搭建应用开发环境

这里我们以常用的MicrosoftWindows764bit桌面操作系统为例,安装OracleVMVirtualBox虚拟机支持软件,来进一步安装Ubuntu14.04Desktop64bit版操作系统,作为基础开发环境。6.1.1 下载和安装OracleVMVirtualBoxOracleVMVirtualBox是一款开源的虚拟机软件。对于需要跨不同操作环境开发代码的开发人员是一个很有用的工具。由于VirtualBox允许在一台计算机上运行多个虚拟操作系统(如Solaris、Windows、DOS、Linux、OS/2Warp、BSD等),开发人员只需在不同桌面窗口之间进行切换即可轻松切换操作系统。1)从网址https://www.virtualbox.org

09月30日

6.2 把握比特币“交易”数据结构

发布 : xiaohuanglv | 分类 : 区块链精品文章 | 评论 : 0 | 浏览 : 1758次
6.2 把握比特币“交易”数据结构

本节以比特币测试网络作为开发试验环境,解析比特币交易(Transaction)的数据结构,并以Node.js为例来说明如何自行组织特定需要的交易数据,并在签名后广播,最终被矿工节点确认生效。6.2.1 了解比特币的“交易”数据结构交易是比特币系统的信息载体和最小单元,而块(Block)就是将若干个这样的“交易”基础单元“打包装箱”,贴上“封条”,再按一定的机制和先后顺序将这些块串联起来,就构成了区块链(Blockchain)。对于基于比特币区块链的应用开发,“交易”是最直接用到,也是最关键的数据结构。除了“交易”外,还需要掌握比特币区块链相关的一些基础术语的含义,包括钱包的私钥、公钥和地址、区块、区块链等,这些在本书前面的章节已有深入介绍。在本节我们侧重对“交易”的数据结构做更深入的

09月30日

6.3 实战:多重签名交易

发布 : xiaohuanglv | 分类 : 区块链精品文章 | 评论 : 0 | 浏览 : 1505次
6.3 实战:多重签名交易

本节以比特币测试网络作为开发试验环境,结合Node.js实现开源项目ODIN的标识注册功能,说明如何利用多重签名交易形式来嵌入自定义数据,签名广播后,再被矿工节点确认存入区块链后,最终能被读取、解析,得到注册结果。这样就实现了一个从写入区块链到从区块链读取的完整过程。6.3.1 将ODIN标识注册到区块链上的实例解析ODIN是OpenDataIndexName即“开放数据索引命名标识”的缩写,第10章中会介绍ODIN更多的技术细节。广义上说,ODIN是指在网络环境下标识和交换数据内容索引的一种开放式系统。ODIN的实现关键是把数据嵌入比特币交易的多重签名输出数据块中,对于1-of-N输出,每个数据块的第1个公钥固定是发送者的,第2~N个公钥的地址空间用来存放编码的ODI

网站分类

标签列表

最近发表

全站首页 | 数据结构 | 区块链| 大数据 | 机器学习 | 物联网和云计算 | 面试笔试

本站资源大部分来自互联网,版权归原作者所有!