区块链选举系统实现

皕利分享 178 0

本篇文章给大家谈谈区块链选举系统实现,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

印度用区块链打造智慧城市

近日,印度启动了智能城市项目,作为莫迪总理的首要计划之一,将为其科技市场带来了巨大的发展潜力,区块链就是其中之一。尽管自2015年6月25日发布至今,其大型项目未能达到,目前为止只有1.8%的资金落实使用,但其区块链作底层技术的城市构建思路依然充满潜力,EtherFlyer将带您揭开区块链智慧城市的面纱。

为了创造更宜居城市,智慧城市计划将在100个城市中开展。该其目标是在这些城市中运用创新的数字技术,并与“数字印度”的愿景相结合,实现公民的数字化授权。该项目将把“数字”整合到城市生活的各个方面:从基础设施,医疗保健,教育,清洁,卫生,废物管理等各类服务。

5月17日,印度住房和城市扶贫部发布了关于智能城市计划的最新情况,称到目前为止已完成或正在实施、招标的超一千个项目。EtherFlyer了解到,这些项目的底层技术是区块链,其作用是保证智能城市的运转。区块链的出现将改变城市的基础,甚至是智慧城市的“大脑”,这个机制将适应性、问责制、透明性、准确性和运转效率等关键因素整合到整个城市中。

EtherFlyer先简要介绍一下,区块链是一种分布式账本技术,可以在多个系统中存储信息,实现点对点(P2P)交换,并使用验证过程创建可信、安全的分布式存储,这种方式是民主的,基于共识的。这里的安全可信是指:区块链网络不需要任何中间实体进行任何类型的验证。

最重要的是,区块链(公共)使用工作证明(PoW,Proof of Work)或股权证明(PoS,Proof of Stake)来达成共识,一旦信息记录在区块中并上链(区块链),该数据就不能被删除和操纵。这带来了数据的透明,消除了任何形式的篡改和操纵。

从投票,安全,土地登记,物流,医疗保健,配电,银行,证书,出生,死亡,教育,住宅等几乎任何需要登记治理的领域,区块链完全解决了信任问题。虽然印度政府尚未开发智能城市中区块链的所有潜能,但已经在上述领域内建立了一系列基于区块链的概念验证(PoC,Proof of Concept)。 尤其是在新技术出现的前夕,EtherFlyer认为这概念验证非常重要,对于区块链技术的大规模应用,印度的这一计划很有借鉴性,值得关注。所以EtherFlyer将这个项目的框架描绘出来,希望大家能对区块链“智慧城市”认识更具体,也带来更多启发。

澳洲格里菲斯大学的研究“使用区块链技术确保智能城市安全”中展示了安全框架,提出了如何将区块链与智能设备集成在一起,为智能城市提供安全的通信平台。使用区块链安全框架的主要优势在于,这种机制可以抵御许多威胁。此外,它还提供了许多独特的功能,例如提高可靠性,更好的容错能力,更快更有效的操作和可扩展性。

EtherFlyer认为,结合区块链技术的设备将在智能城市中集成为一个通用平台,所有设备都能够在分布式环境中安全地运行。 “未来应设计一个系统级模型,以调查智能城市中使用的不同平台的互操作性和可扩展性,”该论文也说明了这点。

在印度的现有体制下,一半的数据是硬盘拷贝,一半是跨部门和组织的系统集成,数据在任何中间环节可被轻易改动,控制或删除,用户必须依赖于对数据运营商,控制系统和处理器的“信任”。例如,对大量身份数据泄漏曾遭到大量投诉,但印度唯一身份识别机构(UIDAI)没有一次承认这个问题。现在的问题不仅仅是数据安全,而是关于组织中人员的“信任”。

为了解决这个问题,印度从爱沙尼亚的管理中得到了启发。爱沙尼亚已完成居民电子数据的构建,而印度的智能城市公民身份数据将运用公共区块链模型,这将一劳永逸地消除组织的“信任”问题。在爱沙尼亚,即使在获取数据节点后,公民也可获知谁查看了其个人信息,查看访问数据的组织列表,访问时的数据以及数据的用途。

区块链可以实现类似的系统,以确保印度投票系统的透明度和安全性。在以往每次选举时,关于操纵电子投票机(EVM),记录和数据的投诉都在增加。区块链将是消除机器“信任危机”的可靠方法,区块链不像机器那样可被随意操纵。印度智慧城市项目将应用到世界上最大的投票系统中,这将是区块链大规模应用的实例,不仅可以降低选举成本,还可以大大提高系统的透明度和效率。

除了银行业务,政府和私营医疗机构将推进电子健康记录(EHR),区块链可以改变目前药物、血液、器官、医疗许可证和医生记录等医疗数据的记录方式。EtherFlyer了解到,约70%的健康计划和卫生系统IT主管认为,区块链对医保的操作性有很大帮助。

与其他记录类似, 教育证书或记录,出生/死亡证明,土地记录,能源供给以及通讯的所有其他数据都可以上链。EtherFlyer在此说明一下,上链不是要把这些庞大的数据在区块链上运行,而是将区块链作为底层逻辑,保证数据不可篡改与记录透明。

区块链还可用于仓储、冷藏、运输等相关农业数据,以提高透明度,降低复杂性和成本。一旦在公共区块链上添加了与任何主题相关的数据,它就可以取代现有的“不可信”系统,任何人都可以随时获取数据,具体情况取决于授予的权限。在农业方面的垂直应用,EtherFlyer在《区块链在农业供应链上的应用》中有详细的介绍。

NITI Aayog一直致力于印度链(当地的一个区块链项目)的概念构建,它被描述为“共享的,印度专属的区块链基础设施”,但自去年以来没有提供进一步更新,而智能城市使命也没有按照计划的方式实施。执行力的缺乏(印度以行政效率低下而闻名),以及利益集团的阻碍,这两点都导致了区块链智能城市推进缓慢。但EtherFlyer认为,这个项目的框架还是非常有远见的,展现了区块链应用的巨大潜力,可以让智慧城市真正意义上变的“聪明”。EtherFlyer所理解的“聪明”不是科技发达或物质丰富,而是在底层逻辑上的公平、公开、透明、不可篡改,这与以飞的去中心化交易理念是一致的。个人通过区块链形成了真实的社会组群而非权利中心,这是未来的“智慧城市”。

区块链技术发展现状与展望

区块链技术发展现状与展望

区块链技术起源于2008年由化名为 “中本聪” (Satoshi Nakamoto)的学者在密码学邮件组发表的奠基性论文《比特币区块链选举系统实现:一种点对点电子现金系统》。近两年来区块链选举系统实现,区块链技术的研究与应用呈现出爆发式增长态势区块链选举系统实现,被认为是继大型机、个人电脑、互联网、移动/社交网络之后计算范式的第五次颠覆式创新,是人类信用进化史上继血亲信用、贵金属信用、央行纸币信用之后的第四个里程碑。区块链技术是下一代云计算的雏形,有望像互联网一样彻底重塑人类社会活动形态,并实现从目前的信息互联网向价值互联网的转变。区块链的技术特点

区块链具有去中心化、时序数据、集体维护、可编程和安全可信等特点。 去中心化:区块链数据的验证、记账、存储、维护和传输等过程均是基于分布式系统结构,采用纯数学方法而不是中心机构来建立分布式节点间的信任关系,从而形成去中心化的可信任的分布式系统; 时序数据:区块链采用带有时间戳的链式区块结构存储数据,从而为数据增加区块链选举系统实现了时间维度,具有极强的可验证性和可追溯性; 集体维护:区块链系统采用特定的经济激励机制来保证分布式系统中所有节点均可参与数据区块的验证过程(如比特币的“挖矿”过程),并通过共识算法来选择特定的节点将新区块添加到区块链; 可编程:区块链技术可提供灵活的脚本代码系统,支持用户创建高级的智能合约、货币或其它去中心化应用; 安全可信:区块链技术采用非对称密码学原理对数据进行加密,同时借助分布式系统各节点的工作量证明等共识算法形成的强大算力来抵御外部攻击、保证区块链数据不可篡改和不可伪造,因而具有较高的安全性。区块链与比特币 比特币是迄今为止最为成功的区块链应用场景,区块链技术为比特币系统解决了数字加密货币领域长期以来所必需面对的双重支付问题和拜占庭将军问题。与传统中心机构(如中央银行)的信用背书机制不同的是,比特币区块链形成的是软件定义的信用,这标志着中心化的国家信用向去中心化的算法信用的根本性变革。近年来,比特币凭借其先发优势,目前已经形成体系完备的涵盖发行、流通和金融衍生市场的生态圈与产业链,这也是其长期占据绝大多数数字加密货币市场份额的主要原因。区块链的发展脉络与趋势

区块链技术是具有普适性的底层技术框架,可以为金融、经济、科技甚至政治等各领域带来深刻变革。按照目前区块链技术的发展脉络,区块链技术将会经历以可编程数字加密货币体系为主要特征的区块链1.0模式,以可编程金融系统为主要特征的区块链2.0模式和以可编程社会为主要特征的区块链3.0模式。然而,上述模式实际上是平行而非演进式发展的,区块链1.0模式的数字加密货币体系仍然远未成熟,距离其全球货币一体化的愿景实际上更远、更困难。目前,区块链领域已经呈现出明显的技术和产业创新驱动的发展态势,相关学术研究严重滞后、亟待跟进。区块链的基础模型与关键技术

一般说来,区块链系统由数据层、网络层、共识层、激励层、合约层和应用层组成。其中,数据层封装了底层数据区块以及相关的数据加密和时间戳等技术;网络层则包括分布式组网机制、数据传播机制和数据验证机制等;共识层主要封装网络节点的各类共识算法;激励层将经济因素集成到区块链技术体系中来,主要包括经济激励的发行机制和分配机制等;合约层主要封装各类脚本、算法和智能合约,是区块链可编程特性的基础;应用层则封装了区块链的各种应用场景和案例。该模型中,基于时间戳的链式区块结构、分布式节点的共识机制、基于共识算力的经济激励和灵活可编程的智能合约是区块链技术最具代表性的创新点。区块链技术的应用场景

区块链技术不仅可以成功应用于数字加密货币领域,同时在经济、金融和社会系统中也存在广泛的应用场景。根据区块链技术应用的现状,本文将区块链目前的主要应用笼统地归纳为数字货币、数据存储、数据鉴证、金融交易、资产管理和选举投票共六个场景:数字货币:以比特币为代表,本质上是由分布式网络系统生成的数字货币,其发行过程不依赖特定的中心化机构。数据存储:区块链的高冗余存储、去中心化、高安全性和隐私保护等特点使其特别适合存储和保护重要隐私数据,以避免因中心化机构遭受攻击或权限管理不当而造成的大规模数据丢失或泄露。数据鉴证:区块链数据带有时间戳、由共识节点共同验证和记录、不可篡改和伪造,这些特点使得区块链可广泛应用于各类数据公证和审计场景。例如,区块链可以永久地安全存储由政府机构核发的各类许可证、登记表、执照、证明、认证和记录等。金融交易:区块链技术与金融市场应用有非常高的契合度。区块链可以在去中心化系统中自发地产生信用,能够建立无中心机构信用背书的金融市场,从而在很大程度上实现了“金融脱媒”;同时利用区块链自动化智能合约和可编程的特点,能够极大地降低成本和提高效率。资产管理:区块链能够实现有形和无形资产的确权、授权和实时监控。无形资产管理方面已经广泛应用于知识产权保护、域名管理、积分管理等领域;有形资产管理方面则可结合物联网技术形成“数字智能资产”,实现基于区块链的分布式授权与控制。选举投票:区块链可以低成本高效地实现政治选举、企业股东投票等应用,同时基于投票可广泛应用于博彩、预测市场和社会制造等领域。区块链技术的现存问题

安全性威胁是区块链迄今为止所面临的最重要的问题。其中,基于PoW共识过程的区块链主要面临的是51%攻击问题,即节点通过掌握全网超过51%的算力就有能力成功篡改和伪造区块链数据。其区块链选举系统实现他问题包括新兴计算技术破解非对称加密机制的潜在威胁和隐私保护问题等。 区块链效率也是制约其应用的重要因素。区块链要求系统内每个节点保存一份数据备份,这对于日益增长的海量数据存储来说是极为困难的。虽然轻量级节点可部分解决此问题,但适用于更大规模的工业级解决方案仍有待研发。比特币区块链目前每秒仅能处理7笔交易,且交易确认时间一般为10分钟,这极大地限制了区块链在大多数金融系统高频交易场景中的应用。 PoW共识过程高度依赖区块链网络节点贡献的算力,这些算力主要用于解决SHA256哈希和随机数搜索,除此之外并不产生任何实际社会价值,因而一般意义上认为这些算力资源是被“浪费”掉了,同时被浪费掉的还有大量的电力资源。如何能有效汇集分布式节点的网络算力来解决实际问题,是区块链技术需要解决的重要问题。 区块链网络作为去中心化的分布式系统,其各节点在交互过程中不可避免地会存在相互竞争与合作的博弈关系,例如比特币矿池的区块截留攻击博弈等。区块链共识过程本质上是众包过程,如何设计激励相容的共识机制,使得去中心化系统中的自利节点能够自发地实施区块数据的验证和记账工作,并提高系统内非理性行为的成本以抑制安全性攻击和威胁,是区块链有待解决的重要科学问题。智能合约与区块链技术

智能合约是一组情景-应对型的程序化规则和逻辑,是部署在区块链上的去中心化、可信共享的程序代码。通常情况下,智能合约经各方签署后,以程序代码的形式附着在区块链数据(例如一笔比特币交易)上,经P2P网络传播和节点验证后记入区块链的特定区块中。智能合约封装了预定义的若干状态及转换规则、触发合约执行的情景(如到达特定时间或发生特定事件等)、特定情景下的应对行动等。区块链可实时监控智能合约的状态,并通过核查外部数据源、确认满足特定触发条件后激活并执行合约。 智能合约对于区块链技术来说具有重要的意义。一方面,智能合约是区块链的激活器,为静态的底层区块链数据赋予了灵活可编程的机制和算法,并为构建区块链2.0和3.0时代的可编程金融系统与社会系统奠定了基础;另一方面,智能合约的自动化和可编程特性使其可封装分布式区块链系统中各节点的复杂行为,成为区块链构成的虚拟世界中的软件代理机器人,这有助于促进区块链技术在各类分布式人工智能系统中的应用,使得基于区块链技术构建各类去中心化应用(Decentralized application, Dapp)、去中心化自治组织(Decentralized Autonomous Organization, DAO)、去中心化自治公司(Decentralized Autonomous Corporation, DAC)甚至去中心化自治社会(Decentralized Autonomous Society, DAS)成为可能。 区块链和智能合约技术的主要发展趋势是由自动化向智能化方向演化。现存的各类智能合约及其应用的本质逻辑大多仍是根据预定义场景的“ IF-THEN”类型的条件响应规则,能够满足目前自动化交易和数据处理的需求。未来的智能合约应具备根据未知场景的“ WHAT-IF”推演、计算实验和一定程度上的自主决策功能,从而实现由目前“自动化”合约向真正的“智能”合约的飞跃。区块链驱动的平行社会

近年来,基于CPSS(Cyber-Physical-SocialSystems)的平行社会已现端倪,其核心和本质特征是虚实互动与平行演化。区块链是实现CPSS平行社会的基础架构之一,其主要贡献是为分布式社会系统和分布式人工智能研究提供了一套行之有效的去中心化的数据结构、交互机制和计算模式,并为实现平行社会奠定了坚实的数据基础和信用基础。 就数据基础而言,管理学家爱德华戴明曾说过:除了上帝,所有人必须以数据说话。然而在中心化社会系统中,数据通常掌握在政府和大型企业等“少数人”手中,为少数人“说话”,其公正性、权威性甚至安全性可能都无法保证。区块链数据则通过高度冗余的分布式节点存储,掌握在“所有人”手中,能够做到真正的“数据民主”。就信用基础而言,中心化社会系统因其高度工程复杂性和社会复杂性而不可避免地会存在“默顿系统”的特性,即不确定性、多样性和复杂性,社会系统中的中心机构和规则制定者可能会因个体利益而出现失信行为;区块链技术有助于实现软件定义的社会系统,其基本理念就是剔除中心化机构、将不可预测的行为以智能合约的程序化代码形式提前部署和固化在区块链数据中,事后不可伪造和篡改并自动化执行,从而在一定程度上能够将“默顿”社会系统转化为可全面观察、可主动控制、可精确预测的“牛顿”社会系统。 ACP(人工社会Artificial Societies、计算实验Computational Experiments和平行执行ParallelExecution)方法是迄今为止平行社会管理领域唯一成体系化的、完整的研究框架,是复杂性科学在新时代平行社会环境下的逻辑延展和创新。 ACP方法可以自然地与区块链技术相结合,实现区块链驱动的平行社会管理。首先,区块链的P2P 组网、分布式共识协作和基于贡献的经济激励等机制本身就是分布式社会系统的自然建模,其中每个节点都将作为分布式系统中的一个自主和自治的智能体(agent)。随着区块链生态体系的完善,区块链各共识节点和日益复杂与自治的智能合约将通过参与各种形式的Dapp,形成特定组织形式的DAC和DAO,最终形成DAS,即ACP中的人工社会。其次,智能合约的可编程特性使得区块链可进行各种“ WHAT-IF” 类型的虚拟实验设计、场景推演和结果评估,通过这种计算实验过程获得并自动或半自动地执行最优决策。最后,区块链与物联网等相结合形成的智能资产使得联通现实物理世界和虚拟网络空间成为可能,并可通过真实和人工社会系统的虚实互动和平行调谐实现社会管理和决策的协同优化。不难预见,未来现实物理世界的实体资产都登记为链上智能资产的时候,就是区块链驱动的平行社会到来之时。

莫斯科市采用以太坊区块链技术进行投票的目的?

北京时间2月24日区块链选举系统实现,莫斯科市将推出一个基于以太坊区块链选举系统实现的投票系统,这个系统区块链选举系统实现的名字叫“主动市民”。把投票放入区块链中,只要密码够安全,结果就不会产生争议。

这是投票系统的主要宗旨之一,但是近十年来,虚拟货币社区一直为以往系统的不可靠性争论不休。从笔者听说以太坊和智能协议那一刻,笔者率先想到的应用方法就是投票。

投票需要放到区块链上。

区块链选举系统实现我们目前的社会中没有什么比彻底消除选举中的腐败行为更重要。尽管笔者认为选举完全是浪费时间,但现实是相当大部分的权力是通过民主授权投票分配和实现的。

因此,可能被黑客入侵的投票系统应运而生了。在写出这些话的时候,笔者几乎可以想象到美国民主党看到后发出的尖叫声。他们知道,如果没有填塞选票、选民接送、非法移民投票多次等作弊手段他们无法赢得全国或者州选举。

主动投票被视为基于数据库的系统已经有一段时间了。对于基于以太坊的系统,莫斯科将开始允许让一小部分居民投票决定诸如新地铁列车的名字、新运动场地座椅颜色等一系列议案。但是为了缓解人们的“是否要信任该市的投票计数系统”担忧,这一计划架构中还被加入了私人版的以太坊块链。

该市首席信息办公室策略和创新顾问安德雷·贝罗泽拉夫表示区块链选举系统实现:“当然,有时候我们听说并非所有投票都值得信任。因此,我们决定利用主动市民项目的块链作为建立电子化信任的平台。”

基于以太坊的系统将允许人们检查公开源的结果,自去年12月发布以来,该结果已经被超过100名节点操作员下载。

有关人士还担心一段合理时间内该系统是否能够容纳和清算足够多的交易。因此,最好的做法是针对一些微不足道的问题进行选举从而对该系统展开测试。

但是,毫无疑问,讯息很清晰了。俄罗斯正朝着一个透明的、民主的体制发展。对这些小问题进行选举只是为了将来在更大范围内采用该技术而进行的测试。

第一个真正的里程碑应该是一场地方选举,而最终目标则是全国性选举。

在西方国家民众对政府机关的信任度正以惊人的速度下滑之际,普京领导下的俄罗斯政府正采取措施试图加强民众对其系统的信任。

俄罗斯的民主制度已经历史悠久,但是苏联解体遗留的腐败余毒以及之后叶利钦执政时代遭到西方世界的掠夺仍是一个大问题。

俄罗斯推出这一系统恰逢“美国特别检察官穆勒以干涉2016年美国总统大选的理由对13个俄罗斯人和3个俄罗斯实体机构正式提起诉讼,引起全球轰动”的时候。对于反民主势力而言,这一事件令穆勒看起来更像可利用的傻瓜。

在华盛顿的大佬们仍不满和抱怨这个自己不喜欢的选举结果的时候,俄罗斯正展开行动,确保约瑟夫·斯大林最经常被人引用的格言之一——“投票的人决定不了什么,计票的人决定了一切”不适用于俄罗斯。

PoT基于信任的共识机制方案

姓名区块链选举系统实现:胡娟

学号:20021110092

转自:

【嵌牛导读】区块链的核心是无信任的领导选举机制,在无需第三方或可信方的监督下,实现区块链选举系统实现了匿名节点之间共识的达成。目前工作量证明(PoW)和权益证明(PoS)是集中讨论的两种共识机制。PoW依赖于计算能力的证明,伴随着巨大的资源浪费。PoS通过依赖系统中拥有的加密货币的数量来解决问题。无论哪种方式,都受区块链系统经济基础的限制,这迫使那些不含加密货币的区块链应用程序只能求助于“许可”的设置,有效地使系统集中化。然而,对于无加密货币的非许可链能够为众多新兴应用领域(如教育、医疗)提供安全的、自治的P2P结构服务,在这些领域中,对等节点之间存在一定的信任基础。这为评估对等节点之间的信任并将其作为达成共识的基础创造区块链选举系统实现了可能性。

【嵌牛鼻子】PoT,PoW,PoS

【嵌牛正文】

PoW 是十分昂贵的

他是一种“难度值”控制资源消耗的机制。难度值是随系统计算能力来调整级别的,随着节点和事务的增加,难度值不可避免的增加。除了高昂的成本外,还容易受到中心化陷阱的影响,即一小部分算力强大/有钱的节点最终控制了整个系统。例如比特币上的采矿池现象和垄断了系统的巨型挖矿数据中心。

当前,相比PoW在能耗上有更优表现的替代方案被人们持续关注,然而大多数建议的替代方案要么依赖于特殊物理硬件的所有权,要么权衡系统的去中心化采用许可链的方案,后者是使用拜占庭协议(PBFT)的变体。PoW目前合理的替代方案是PoS(Proof-of-Stake),PoS中区块领导者是根据其在区块链系统中持有的资产数量来被选择的。该方法背后的博弈论前提是,对拥有加密货币的节点,持有最大份额的节点有兴趣对系统进行服务,来保持他的可信度和价值,从而激励他们按照协议行事。与PoW相比,PoS承诺提供更加明晰和便宜的共识机制,但他需要将区块链系统与加密货币捆绑在一起。并造成了“你拥有越多你控制的越多”或“你拥有的越多,你越合理拥有领导权”这样富人越来越富的心态,导致系统进一步向中心化转变。

使用信任去修补区块链

 信任证明PoT,当网络中出现更多可信的对等点时,目标是最小化在PoW上花费的能量。也就是说,安装“您越受信任,您需要执行的工作就越少”的概念。“我们假设在应用场景中,区块链旨在在协作以实现共同目标的对等体之间提供去中心化的服务,并且可以在各方之间表达信任,例如在健康或教育领域。这与当前以自我为中心的金融区块链形成了鲜明的对比,在当前的金融区块链中,被选为区块领导者的唯一兴趣和博弈论动机是赚取加密货币。

 在PoT结构中,参与系统的每个节点都单独地表示对他认为可信任的其他节点的信任情况。这种信任不断地被广播,促使信任网络以去中心化的方式兴起,并存储在区块链中,为所有的参与者提供了一致性、防篡改的记录(view)。PoT机制在仍然使用PoW的同时,保证只有一小部分参与其中,从而大大降低了功耗成本。

协议描述和问题定义

PoT 描述的参与者的信任值是以去中心化的方式计算和协商的,这些信任值将表示为节点在系统中所持有的权重(stake),作为共识机制的基础。PoT的设计主要考虑了可验证性和独立性:

可验证性:一旦一个节点证明其有资格成为下一个领导者,所有的节点都可以验证这一声明。

独立性: 独立性声明领导者的被选举权与区块链有效性,可由任何节点使用公开可用的信息,无需他人协作的情况下进行验证。

为了实现以上的目标,需要解决两个主要问题:

1)定义一个去中心化的信任管理机制;

2)定义一个使用信任网络的共识协议。

1.去中心化信任管理(Decentralized trust management)

信任建立基于信任模型,这类工作在很多文献中已有。对于基于社区的信任,起始点通常是一个给定的信任网络,该网络编码系统中谁信任谁,它通常被建模为一个有向图,其中节点表示对等点(peer),边表示它们之间的信任关系。一个节点在网络中传入的链接越多,它就越可信。信任网络可以以多种形式出现,例如:

1)从社交网络中提取;

2)从底层系统中节点之间的交互推断而来;

3)被节点明确声明他们信任谁。

在公开链模型中,唯一可行的选择要么是跟踪区块链中节点之间交互的记录,要么设立一个信任网络,网络中每个节点在没饿过时期单独地声称他信任谁。前一种选择要求管理区块链系统的节点同时也是产生和记录事务的节点。

文章选择了后一种方案,每个节点通过广播信任关系宣布他们的信任节点,并由所有其他节点独立收集信息,形成信任网络。区块链区块大小的限制,使得PoT中区块链仅记录信任网络的哈希值。每个时期,当前的区块领导者是根据前一个阶段中达成一致的信任网络情况来选出来的。

2.基于信任的动态共识机制(Dynamics of a trust based consensus)

PoW尽管对能源的消耗十分巨大,但是在完全去中心化的系统中,PoW保持了良好的安全性和可操作性。更重要的是,提供了具有“保证时间窗口”的时钟功能,实现了新的块只有在前一个块出现后才能出现,允许分布式系统在不需要全局同步的情况下有效地工作。因此文章没有完全放弃PoW,而是信任等级越高的节点执行PoW时的难度值越低,信任等级越低则难度值越高。这将抑制不太受信任的节点加入PoW,使活跃的挖矿池被限制到更小的子集中。其中存在的风险是:1)可能会导致较小的信任子集中出现集中化的问题;2)难度值小的节点可能造成Sybil攻击。因此,PoT采用了以下的策略:

1)领导节点信任衰竭策略

节点根据他们获得的信任程度被分配到不同的小组。其成员根据可信等级对应的难度值进行挖矿,具有最高信任级别小组成员更有可能在区块链中挖到矿,这埋下了信任网络中顶层节点控制网络的隐患,造成“富人更富”的现象,同时其他的节点没有了升级的空间。衰竭策略会确保任何竞争到挖矿权的节点退回到低信任分区中。

2)新的信任关系采用阻尼策略

Sybil节点不能突然获得系统中的高信任等级,应当给诚实节点有足够的机会观察和控制恶意节点。在PoT中,引入了一种控制机制,通过对新的信任链路采用一种阻尼策略来控制新节点信任度量的过程,节点的信任等级与他们所保持存活的时间长短成正比增长。

PoT结构建立在两个主要机制上:

1) 衰退的信任机制,阻止区块领导者潜在的恶意行为,防止网络被一个小的顶层受信组织控制;

2) 网络信任机制演变的控制机制,阻止恶意节点信任等级的升级的速度,给予其他节点充分的时间去检测这样的行为。

区块链系统首先经历一个自力更生的阶段,通过对几个块仅实施纯PoW共识。在每

个新的区块中,网络中的节点(矿工)单独广播自己发出的信任关系。新节点加入产生新的信任关系,这种关系服从一种阻尼策略,将他们在系统中存活时间作为权重给他们分配。阻尼策略使得新节点使用新的信任关系来增强它们的信任级别变得更慢。自力更生阶段在协议定义的预设好的块数后结束。共识从此由PoW转变为PoT。

每个信任分区的节点都会遵循对应的PoW的困难系数来挖矿,当使用对应困难值找到PoW的解决答案时,节点宣布他的块,其他节点验证并接受该块作为共识的一部分。如果同时有多个有效的块被广播,则规则是选择信任等级最高的发布的块。一旦一个块被附加到区块链中,那么块所有权所属的节点相对于初始信任值会呈指数衰减。

1. 信任网络(The trust network)

信任网络是由节点在网络中,通过主动声明信任连接所组成的。每个周期,信任网络都表示为一个加权图,节点是区块链网络中的节点,边上的权值代表节点的存活时长。周期t所在的信任网络为: ,其中

  :节点的集合,SKi和VKi是节点的密钥对;

  :关系边的集合,由节点vi来声明和签名的;

:函数,为每一条边计算权重值

2. 区块链部分(The Blockchain)

   定义1: 密码散列函数 , 有效的PoW区块被定义为一个三元组:

参数 :区块对应挖矿的难度值;

参数 :前一个区块的哈希值;

参数 :PoW工作的随机数答案;

参数 :事务的负载。

3. PoT协议(The PoT protocol)

PoT协议除了PoW中事务负载和区块头元数据外,还包含节点提交给区块的签名,以及区块所在时期信任网络的摘要。

        1)信任分区(Trust divisions)

对每个节点,使用连续弃权函数(waiverfunction)实现难度值与输入信任级别成反比。另一种方法是,节点被分配到符合一定信任范围的组,每个小组所有成员在相同难度水平挖矿。挖矿和广播的机制与PoW相同,但注意到网络中的任何节点都可以毫不含糊地、一致地与其他节点一起检索任何一个节点的信任值。

        2)信任衰退和恢复(Trust decay recovery)

当节点vi在周期t时刻,获得了某一个区块的记账权后,它的信任值会进行一个与它在周期t初始时刻信任值成正比例的快速衰退和缓慢恢复的过程。以防止节点vi持续保持高的信任等级,从而产生Sybil攻击的隐患。这里引入了指数衰退函数:

N(0) 是时间0是衰减量的值, 是衰减常数。

在每一个周期t,信任衰减过程是由节点执行的,协议规则如下,衰减长度因子k,衰减常数 λ,当前周期t和当前区块链作为输入,从时间t开始对 k/λ 个区块,衰减对应记账权矿工的信任值。

3)对新边的阻尼策略(Damping new edges)

一个节点与其他节点信任连接的权值与他们所加入网络的时间成比例,防止节点过快地成为信任值最高的节点,分配规则如下:其中

4)PoT 有效区块(Valid PoT block)

SKt 是节点vt的签名, 是信任分区, 是 对应的难度等级,一个有效的PoT区块满足如下条件:

根据以上定义,总结PoT协议为,在每个周期 t开始时,假定网络中所有节点都知道共识区块链C的状态,包括对上一个周期 t-1信任图的信息。节点在t-1信任图上执行信任算法,然后应用信任衰退机制,衰减最近夺得区块记账权的节点的信任。矿工找到PoW难题的答案,就将答案连通区块 广播到网络中。如果这是一个有效的区块,其他节点验证后矿工将它附加到区块链C上。如果是非有效的,那么回退到步骤3),所有符合条件的节点继续试图找到难题的答案。

节点有可能同时监听到多个有效的区块,规定了此时接收最高信任节点发出的区块作为结果值。此外,网络延迟或连接网络的动态特性,不同的节点接收到不同的区块,此时会出现分叉现象,与PoW不同,采用信任最值得信赖的分支作为正确的主区块链。

论文出处:Leila Bahri, Sarunas Girdzijauskas. Trust Mends Blockchains: Living up to Expectations, 2019 IEEE 39th International Conference on Distributed Computing Systems (ICDCS)

深入了解区块链的共识机制及算法原理

所谓“共识机制”,是通过特殊节点的投票,在很短的时间内完成对交易的验证和确认;对一笔交易,如果利益不相干的若干个节点能够达成共识,我们就可以认为全网对此也能够达成共识。再通俗一点来讲,如果中国一名微博大V、美国一名虚拟币玩家、一名非洲留学生和一名欧洲旅行者互不相识,但他们都一致认为你是个好人,那么基本上就可以断定你这人还不坏。

要想整个区块链网络节点维持一份相同的数据,同时保证每个参与者的公平性,整个体系的所有参与者必须要有统一的协议,也就是我们这里要将的共识算法。比特币所有的节点都遵循统一的协议规范。协议规范(共识算法)由相关的共识规则组成,这些规则可以分为两个大的核心:工作量证明与最长链机制。所有规则(共识)的最终体现就是比特币的最长链。共识算法的目的就是保证比特币不停地在最长链条上运转,从而保证整个记账系统的一致性和可靠性。

区块链中的用户进行交易时不需要考虑对方的信用、不需要信任对方,也无需一个可信的中介机构或中央机构,只需要依据区块链协议即可实现交易。这种不需要可信第三方中介就可以顺利交易的前提是区块链的共识机制,即在互不了解、信任的市场环境中,参与交易的各节点出于对自身利益考虑,没有任何违规作弊的动机、行为,因此各节点会主动自觉遵守预先设定的规则,来判断每一笔交易的真实性和可靠性,并将检验通过的记录写入到区块链中。各节点的利益各不相同,逻辑上将它们没有合谋欺骗作弊的动机产生,而当网络中有的节点拥有公共信誉时,这一点尤为明显。区块链技术运用基于数学原理的共识算法,在节点之间建立“信任”网络,利用技术手段从而实现一种创新式的信用网络。

目前区款连行业内主流的共识算法机制包含:工作量证明机制、权益证明机制、股份授权证明机制和Pool验证池这四大类。

工作量证明机制即对于工作量的证明,是生成要加入到区块链中的一笔新的交易信息(即新区块)时必须满足的要求。在基于工作量证明机制构建的区块链网络中,节点通过计算随机哈希散列的数值解争夺记账权,求得正确的数值解以生成区块的能力是节点算力的具体表现。工作量证明机制具有完全去中心化的优点,在以工作量证明机制为共识的区块链中,节点可以自由进出。大家所熟知的比特币网络就应用工作量证明机制来生产新的货币。然而,由于工作量证明机制在比特币网络中的应用已经吸引了全球计算机大部分的算力,其他想尝试使用该机制的区块链应用很难获得同样规模的算力来维持自身的安全。同时,基于工作量证明机制的挖矿行为还造成了大量的资源浪费,达成共识所需要的周期也较长,因此该机制并不适合商业应用。

2012年,化名Sunny King的网友推出了Peercoin,该加密电子货币采用工作量证明机制发行新币,采用权益证明机制维护网络安全,这是权益证明机制在加密电子货币中的首次应用。与要求证明人执行一定量的计算工作不同,权益证明要求证明人提供一定数量加密货币的所有权即可。权益证明机制的运作方式是,当创造一个新区块时,矿工需要创建一个“币权”交易,交易会按照预先设定的比例把一些币发送给矿工本身。权益证明机制根据每个节点拥有代币的比例和时间,依据算法等比例地降低节点的挖矿难度,从而加快了寻找随机数的速度。这种共识机制可以缩短达成共识所需的时间,但本质上仍然需要网络中的节点进行挖矿运算。因此,PoS机制并没有从根本上解决PoW机制难以应用于商业领域的问题。

股份授权证明机制是一种新的保障网络安全的共识机制。它在尝试解决传统的PoW机制和PoS机制问题的同时,还能通过实施科技式的民主抵消中心化所带来的负面效应。

股份授权证明机制与董事会投票类似,该机制拥有一个内置的实时股权人投票系统,就像系统随时都在召开一个永不散场的股东大会,所有股东都在这里投票决定公司决策。基于DPoS机制建立的区块链的去中心化依赖于一定数量的代表,而非全体用户。在这样的区块链中,全体节点投票选举出一定数量的节点代表,由他们来代理全体节点确认区块、维持系统有序运行。同时,区块链中的全体节点具有随时罢免和任命代表的权力。如果必要,全体节点可以通过投票让现任节点代表失去代表资格,重新选举新的代表,实现实时的民主。

股份授权证明机制可以大大缩小参与验证和记账节点的数量,从而达到秒级的共识验证。然而,该共识机制仍然不能完美解决区块链在商业中的应用问题,因为该共识机制无法摆脱对于代币的依赖,而在很多商业应用中并不需要代币的存在。

Pool验证池基于传统的分布式一致性技术建立,并辅之以数据验证机制,是目前区块链中广泛使用的一种共识机制。

Pool验证池不需要依赖代币就可以工作,在成熟的分布式一致性算法(Pasox、Raft)基础之上,可以实现秒级共识验证,更适合有多方参与的多中心商业模式。不过,Pool验证池也存在一些不足,例如该共识机制能够实现的分布式程度不如PoW机制等

这里主要讲解区块链工作量证明机制的一些算法原理以及比特币网络是如何证明自己的工作量的,希望大家能够对共识算法有一个基本的认识。

工作量证明系统的主要特征是客户端要做一定难度的工作来得到一个结果,验证方则很容易通过结果来检查客户端是不是做了相应的工作。这种方案的一个核心特征是不对称性:工作对于请求方是适中中的,对于验证方是易于验证的。它与验证码不同,验证码是易于被人类解决而不是易于被计算机解决。

下图所示的为工作量证明流程。

举个例子,给个一个基本的字符创“hello,world!”,我们给出的工作量要求是,可以在这个字符创后面添加一个叫做nonce(随机数)的整数值,对变更后(添加nonce)的字符创进行SHA-256运算,如果得到的结果(一十六进制的形式表示)以“0000”开头的,则验证通过。为了达到这个工作量证明的目标,需要不停地递增nonce值,对得到的字符创进行SHA-256哈希运算。按照这个规则,需要经过4251次运算,才能找到前导为4个0的哈希散列。

通过这个示例我们对工作量证明机制有了一个初步的理解。有人或许认为如果工作量证明只是这样一个过程,那是不是只要记住nonce为4521使计算能通过验证就行了,当然不是了,这只是一个例子。

下面我们将输入简单的变更为”Hello,World!+整数值”,整数值取1~1000,也就是说将输入变成一个1~1000的数组:Hello,World!1;Hello,World!2;...;Hello,World!1000。然后对数组中的每一个输入依次进行上面的工作量证明—找到前导为4个0的哈希散列。

由于哈希值伪随机的特性,根据概率论的相关知识容易计算出,预计要进行2的16次方次数的尝试,才能得到前导为4个0的哈希散列。而统计一下刚刚进行的1000次计算的实际结果会发现,进行计算的平均次数为66958次,十分接近2的16次方(65536)。在这个例子中,数学期望的计算次数实际就是要求的“工作量”,重复进行多次的工作量证明会是一个符合统计学规律的概率事件。

统计输入的字符创与得到对应目标结果实际使用的计算次数如下:

对于比特币网络中的任何节点,如果想生成一个新的区块加入到区块链中,则必须解决出比特币网络出的这道谜题。这道题的关键要素是工作量证明函数、区块及难度值。工作量证明函数是这道题的计算方法,区块是这道题的输入数据,难度值决定了解这道题的所需要的计算量。

比特币网络中使用的工作量证明函数正是上文提及的SHA-256。区块其实就是在工作量证明环节产生的。旷工通过不停地构造区块数据,检验每次计算出的结果是否满足要求的工作量,从而判断该区块是不是符合网络难度。区块头即比特币工作量证明函数的输入数据。

难度值是矿工们挖掘的重要参考指标,它决定了旷工需要经过多少次哈希运算才能产生一个合法的区块。比特币网络大约每10分钟生成一个区块,如果在不同的全网算力条件下,新区块的产生基本都保持这个速度,难度值必须根据全网算力的变化进行调整。总的原则即为无论挖矿能力如何,使得网络始终保持10分钟产生一个新区块。

难度值的调整是在每个完整节点中独立自动发生的。每隔2016个区块,所有节点都会按照统一的格式自动调整难度值,这个公式是由最新产生的2016个区块的花费时长与期望时长(按每10分钟产生一个取款,则期望时长为20160分钟)比较得出来的,根据实际时长一期望时长的比值进行调整。也就是说,如果区块产生的速度比10分钟快,则增加难度值;反正,则降低难度值。用公式来表达如下:

新难度值=旧难度值*(20160分钟/过去2016个区块花费时长)。

工作量证明需要有一个目标值。比特币工作量证明的目标值(Target)的计算公式如下:

目标值=最大目标值/难度值,其中最大目标值为一个恒定值0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

目标值的大小与难度值成反比,比特币工作量证明的达成就是矿中计算出来的区块哈希值必须小于目标值。

我们也可以将比特币工作量的过程简单的理解成,通过不停变更区块头(即尝试不同nonce值)并将其作为输入,进行SHA-256哈希运算,找出一个有特定格式哈希值的过程(即要求有一定数量的前导0),而要求的前导0个数越多,难度越大。

可以把比特币将这道工作量证明谜题的步骤大致归纳如下:

该过程可以用下图表示:

比特币的工作量证明,就是我们俗称“挖矿”所做的主要工作。理解工作量证明机制,将为我们进一步理解比特币区块链的共识机制奠定基础。

区块链的共识机制

一、区块链共识机制的目标

区块链是什么区块链选举系统实现?简单而言,区块链是一种去中心化的数据库,或可以叫作分布式账本(distributed ledger)。传统上所有的数据库都是中心化的,例如一间银行的账本就储存在银行的中心服务器里。中心化数据库的弊端是数据的安全及正确性全系于数据库运营方(即银行),因为任何能够访问中心化数据库的人(如银行职员或黑客)都可以破坏或修改其中的数据。

而区块链技术则容许数据库存放在全球成千上万的电脑上,每个人的账本通过点对点网络进行同步,网络中任何用户一旦增加一笔交易,交易信息将通过网络通知其他用户验证,记录到各自的账本中。区块链之所以得其名是因为它是由一个个包含交易信息的区块(block)从后向前有序链接起来的数据结构。

很多人对区块链的疑问是,如果每一个用户都拥有一个独立的账本,那么是否意味着可以在自己的账本上添加任意的交易信息,而成千上万个账本又如何保证记账的一致性区块链选举系统实现? 解决记账一致性问题正是区块链共识机制的目标 。区块链共识机制旨在保证分布式系统里所有节点中的数据完全相同并且能够对某个提案(proposal)(例如是一项交易纪录)达成一致。然而分布式系统由于引入了多个节点,所以系统中会出现各种非常复杂的情况;随着节点数量的增加,节点失效或故障、节点之间的网络通信受到干扰甚至阻断等就变成了常见的问题,解决分布式系统中的各种边界条件和意外情况也增加了解决分布式一致性问题的难度。

区块链又可分为三种:

公有链:全世界任何人都可以随时进入系统中读取数据、发送可确认交易、竞争记账的区块链。公有链通常被认为是“完全去中心化“的,因为没有任何人或机构可以控制或篡改其中数据的读写。公有链一般会通过代币机制鼓励参与者竞争记账,来确保数据的安全性。

联盟链:联盟链是指有若干个机构共同参与管理的区块链。每个机构都运行着一个或多个节点,其中的数据只允许系统内不同的机构进行读写和发送交易,并且共同来记录交易数据。这类区块链被认为是“部分去中心化”。

私有链:指其写入权限是由某个组织和机构控制的区块链。参与节点的资格会被严格的限制,由于参与的节点是有限和可控的,因此私有链往往可以有极快的交易速度、更好的隐私保护、更低的交易成本、不容易被恶意攻击、并且能够做到身份认证等金融行业必须的要求。相比中心化数据库,私有链能够防止机构内单节点故意隐瞒或篡改数据。即使发生错误,也能够迅速发现来源,因此许多大型金融机构在目前更加倾向于使用私有链技术。

二、区块链共识机制的分类

解决分布式一致性问题的难度催生了数种共识机制,它们各有其优缺点,亦适用于不同的环境及问题。被众人常识的共识机制有:

l PoW(Proof of Work)工作量证明机制

l PoS(Proof of Stake)股权/权益证明机制

l DPoS(Delegated Proof of Stake)股份授权证明机制

l PBFT(Practical Byzantine Fault Tolerance)实用拜占庭容错算法

l DBFT(Delegated Byzantine Fault Tolerance)授权拜占庭容错算法

l SCP (Stellar Consensus Protocol ) 恒星共识协议

l RPCA(Ripple Protocol Consensus Algorithm)Ripple共识算法

l Pool验证池共识机制

(一)PoW(Proof of Work)工作量证明机制

1. 基本介绍

在该机制中,网络上的每一个节点都在使用SHA256哈希函数(hash function) 运算一个不断变化的区块头的哈希值 (hash sum)。 共识要求算出的值必须等于或小于某个给定的值。 在分布式网络中,所有的参与者都需要使用不同的随机数来持续计算该哈希值,直至达到目标为止。当一个节点的算出确切的值,其他所有的节点必须相互确认该值的正确性。之后新区块中的交易将被验证以防欺诈。

在比特币中,以上运算哈希值的节点被称作“矿工”,而PoW的过程被称为“挖矿”。挖矿是一个耗时的过程,所以也提出了相应的激励机制(例如向矿工授予一小部分比特币)。PoW的优点是完全的去中心化,其缺点是消耗大量算力造成了的资源浪费,达成共识的周期也比较长,共识效率低下,因此其不是很适合商业使用。

2. 加密货币的应用实例

比特币(Bitcoin) 及莱特币(Litecoin)。以太坊(Ethereum) 的前三个阶段(Frontier前沿、Homestead家园、Metropolis大都会)皆采用PoW机制,其第四个阶段 (Serenity宁静) 将采用权益证明机制。PoW适用于公有链。

PoW机制虽然已经成功证明了其长期稳定和相对公平,但在现有框架下,采用PoW的“挖矿”形式,将消耗大量的能源。其消耗的能源只是不停的去做SHA256的运算来保证工作量公平,并没有其他的存在意义。而目前BTC所能达到的交易效率为约5TPS(5笔/秒),以太坊目前受到单区块GAS总额的上限,所能达到的交易频率大约是25TPS,与平均千次每秒、峰值能达到万次每秒处理效率的VISA和MASTERCARD相差甚远。

3. 简图理解模式

(ps:其中A、B、C、D计算哈希值的过程即为“挖矿”,为了犒劳时间成本的付出,机制会以一定数量的比特币作为激励。)

(Ps:PoS模式下,你的“挖矿”收益正比于你的币龄(币的数量*天数),而与电脑的计算性能无关。我们可以认为任何具有概率性事件的累计都是工作量证明,如淘金。假设矿石含金量为p% 质量, 当你得到一定量黄金时,我们可以认为你一定挖掘了1/p 质量的矿石。而且得到的黄金数量越多,这个证明越可靠。)

(二)PoS(Proof of Stake)股权/权益证明机制

1.基本介绍

PoS要求人们证明货币数量的所有权,其相信拥有货币数量多的人攻击网络的可能性低。基于账户余额的选择是非常不公平的,因为单一最富有的人势必在网络中占主导地位,所以提出了许多解决方案。

在股权证明机制中,每当创建一个区块时,矿工需要创建一个称为“币权”的交易,这个交易会按照一定比例预先将一些币发给矿工。然后股权证明机制根据每个节点持有代币的比例和时间(币龄), 依据算法等比例地降低节点的挖矿难度,以加快节点寻找随机数的速度,缩短达成共识所需的时间。

与PoW相比,PoS可以节省更多的能源,更有效率。但是由于挖矿成本接近于0,因此可能会遭受攻击。且PoS在本质上仍然需要网络中的节点进行挖矿运算,所以它同样难以应用于商业领域。

2.数字货币的应用实例

PoS机制下较为成熟的数字货币是点点币(Peercoin)和未来币(NXT),相比于PoW,PoS机制节省了能源,引入了" 币天 "这个概念来参与随机运算。PoS机制能够让更多的持币人参与到记账这个工作中去,而不需要额外购买设备(矿机、显卡等)。每个单位代币的运算能力与其持有的时间长成正相关,即持有人持有的代币数量越多、时间越长,其所能签署、生产下一个区块的概率越大。一旦其签署了下一个区块,持币人持有的币天即清零,重新进入新的循环。

PoS适用于公有链。

3.区块签署人的产生方式

在PoS机制下,因为区块的签署人由随机产生,则一些持币人会长期、大额持有代币以获得更大概率地产生区块,尽可能多的去清零他的"币天"。因此整个网络中的流通代币会减少,从而不利于代币在链上的流通,价格也更容易受到波动。由于可能会存在少量大户持有整个网络中大多数代币的情况,整个网络有可能会随着运行时间的增长而越来越趋向于中心化。相对于PoW而言,PoS机制下作恶的成本很低,因此对于分叉或是双重支付的攻击,需要更多的机制来保证共识。稳定情况下,每秒大约能产生12笔交易,但因为网络延迟及共识问题,需要约60秒才能完整广播共识区块。长期来看,生成区块(即清零"币天")的速度远低于网络传播和广播的速度,因此在PoS机制下需要对生成区块进行"限速",来保证主网的稳定运行。

4.简图理解模式

(PS:拥有越多“股份”权益的人越容易获取账权。是指获得多少货币,取决于你挖矿贡献的工作量,电脑性能越好,分给你的矿就会越多。)

(在纯POS体系中,如NXT,没有挖矿过程,初始的股权分配已经固定,之后只是股权在交易者之中流转,非常类似于现实世界的股票。)

(三)DPoS(Delegated Proof of Stake)股份授权证明机制

1.基本介绍

由于PoS的种种弊端,由此比特股首创的权益代表证明机制 DPoS(Delegated Proof of Stake)应运而生。DPoS 机制中的核心的要素是选举,每个系统原生代币的持有者在区块链里面都可以参与选举,所持有的代币余额即为投票权重。通过投票,股东可以选举出理事会成员,也可以就关系平台发展方向的议题表明态度,这一切构成了社区自治的基础。股东除了自己投票参与选举外,还可以通过将自己的选举票数授权给自己信任的其它账户来代表自己投票。

具体来说, DPoS由比特股(Bitshares)项目组发明。股权拥有着选举他们的代表来进行区块的生成和验证。DPoS类似于现代企业董事会制度,比特股系统将代币持有者称为股东,由股东投票选出101名代表, 然后由这些代表负责生成和验证区块。 持币者若想称为一名代表,需先用自己的公钥去区块链注册,获得一个长度为32位的特有身份标识符,股东可以对这个标识符以交易的形式进行投票,得票数前101位被选为代表。

代表们轮流产生区块,收益(交易手续费)平分。DPoS的优点在于大幅减少了参与区块验证和记账的节点数量,从而缩短了共识验证所需要的时间,大幅提高了交易效率。从某种角度来说,DPoS可以理解为多中心系统,兼具去中心化和中心化优势。优点:大幅缩小参与验证和记账节点的数量,可以达到秒级的共识验证。缺点:投票积极性不高,绝大部分代币持有者未参与投票;另整个共识机制还是依赖于代币,很多商业应用是不需要代币存在的。

DPoS机制要求在产生下一个区块之前,必须验证上一个区块已经被受信任节点所签署。相比于PoS的" 全民挖矿 ",DPoS则是利用类似" 代表大会 "的制度来直接选取可信任节点,由这些可信任节点(即见证人)来代替其他持币人行使权力,见证人节点要求长期在线,从而解决了因为PoS签署区块人不是经常在线而可能导致的产块延误等一系列问题。 DPoS机制通常能达到万次每秒的交易速度,在网络延迟低的情况下可以达到十万秒级别,非常适合企业级的应用。 因为公信宝数据交易所对于数据交易频率要求高,更要求长期稳定性,因此DPoS是非常不错的选择。

2. 股份授权证明机制下的机构与系统

理事会是区块链网络的权力机构,理事会的人选由系统股东(即持币人)选举产生,理事会成员有权发起议案和对议案进行投票表决。

理事会的重要职责之一是根据需要调整系统的可变参数,这些参数包括:

l 费用相关:各种交易类型的费率。

l 授权相关:对接入网络的第三方平台收费及补贴相关参数。

l 区块生产相关:区块生产间隔时间,区块奖励。

l 身份审核相关:审核验证异常机构账户的信息情况。

l 同时,关系到理事会利益的事项将不通过理事会设定。

在Finchain系统中,见证人负责收集网络运行时广播出来的各种交易并打包到区块中,其工作类似于比特币网络中的矿工,在采用 PoW(工作量证明)的比特币网络中,由一种获奖概率取决于哈希算力的抽彩票方式来决定哪个矿工节点产生下一个区块。而在采用 DPoS 机制的金融链网络中,通过理事会投票决定见证人的数量,由持币人投票来决定见证人人选。入选的活跃见证人按顺序打包交易并生产区块,在每一轮区块生产之后,见证人会在随机洗牌决定新的顺序后进入下一轮的区块生产。

3. DPoS的应用实例

比特股(bitshares) 采用DPoS。DPoS主要适用于联盟链。

4.简图理解模式

(四)PBFT(Practical Byzantine Fault Tolerance)实用拜占庭容错算法

1. 基本介绍

PBFT是一种基于严格数学证明的算法,需要经过三个阶段的信息交互和局部共识来达成最终的一致输出。三个阶段分别为预备 (pre-prepare)、准备 (prepare)、落实 (commit)。PBFT算法证明系统中只要有2/3比例以上的正常节点,就能保证最终一定可以输出一致的共识结果。换言之,在使用PBFT算法的系统中,至多可以容忍不超过系统全部节点数量1/3的失效节点 (包括有意误导、故意破坏系统、超时、重复发送消息、伪造签名等的节点,又称为”拜占庭”节点)。

2. PBFT的应用实例

著名联盟链Hyperledger Fabric v0.6采用的是PBFT,v1.0又推出PBFT的改进版本SBFT。PBFT主要适用于私有链和联盟链。

3. 简图理解模式

上图显示了一个简化的PBFT的协议通信模式,其中C为客户端,0 – 3表示服务节点,其中0为主节点,3为故障节点。整个协议的基本过程如下:

(1) 客户端发送请求,激活主节点的服务操作;

(2) 当主节点接收请求后,启动三阶段的协议以向各从节点广播请求;

(a) 序号分配阶段,主节点给请求赋值一个序号n,广播序号分配消息和客户端的请求消息m,并将构造pre-prepare消息给各从节点;

(b) 交互阶段,从节点接收pre-prepare消息,向其他服务节点广播prepare消息;

(c) 序号确认阶段,各节点对视图内的请求和次序进行验证后,广播commit消息,执行收到的客户端的请求并给客户端响应。

(3) 客户端等待来自不同节点的响应,若有m+1个响应相同,则该响应即为运算的结果;

(五)DBFT(Delegated Byzantine Fault Tolerance)授权拜占庭容错算法

1. 基本介绍

DBFT建基于PBFT的基础上,在这个机制当中,存在两种参与者,一种是专业记账的“超级节点”,一种是系统当中不参与记账的普通用户。普通用户基于持有权益的比例来投票选出超级节点,当需要通过一项共识(记账)时,在这些超级节点中随机推选出一名发言人拟定方案,然后由其他超级节点根据拜占庭容错算法(见上文),即少数服从多数的原则进行表态。如果超过2/3的超级节点表示同意发言人方案,则共识达成。这个提案就成为最终发布的区块,并且该区块是不可逆的,所有里面的交易都是百分之百确认的。如果在一定时间内还未达成一致的提案,或者发现有非法交易的话,可以由其他超级节点重新发起提案,重复投票过程,直至达成共识。

2. DBFT的应用实例

国内加密货币及区块链平台NEO是 DBFT算法的研发者及采用者。

3. 简图理解模式

假设系统中只有四个由普通用户投票选出的超级节点,当需要通过一项共识时,系统就会从代表中随机选出一名发言人拟定方案。发言人会将拟好的方案交给每位代表,每位代表先判断发言人的计算结果与它们自身纪录的是否一致,再与其它代表商讨验证计算结果是否正确。如果2/3的代表一致表示发言人方案的计算结果是正确的,那么方案就此通过。

如果只有不到2/3的代表达成共识,将随机选出一名新的发言人,再重复上述流程。这个体系旨在保护系统不受无法行使职能的领袖影响。

上图假设全体节点都是诚实的,达成100%共识,将对方案A(区块)进行验证。

鉴于发言人是随机选出的一名代表,因此他可能会不诚实或出现故障。上图假设发言人给3名代表中的2名发送了恶意信息(方案B),同时给1名代表发送了正确信息(方案A)。

在这种情况下该恶意信息(方案B)无法通过。中间与右边的代表自身的计算结果与发言人发送的不一致,因此就不能验证发言人拟定的方案,导致2人拒绝通过方案。左边的代表因接收了正确信息,与自身的计算结果相符,因此能确认方案,继而成功完成1次验证。但本方案仍无法通过,因为不足2/3的代表达成共识。接着将随机选出一名新发言人,重新开始共识流程。

上图假设发言人是诚实的,但其中1名代表出现了异常;右边的代表向其他代表发送了不正确的信息(B)。

在这种情况下发言人拟定的正确信息(A)依然可以获得验证,因为左边与中间诚实的代表都可以验证由诚实的发言人拟定的方案,达成2/3的共识。代表也可以判断到底是发言人向右边的节点说谎还是右边的节点不诚实。

(六)SCP (Stellar Consensus Protocol ) 恒星共识协议

1. 基本介绍

SCP 是 Stellar (一种基于互联网的去中心化全球支付协议) 研发及使用的共识算法,其建基于联邦拜占庭协议 (Federated Byzantine Agreement) 。传统的非联邦拜占庭协议(如上文的PBFT和DBFT)虽然确保可以通过分布式的方法达成共识,并达到拜占庭容错 (至多可以容忍不超过系统全部节点数量1/3的失效节点),它是一个中心化的系统 — 网络中节点的数量和身份必须提前知晓且验证过。而联邦拜占庭协议的不同之处在于它能够去中心化的同时,又可以做到拜占庭容错。

[…]

(七)RPCA(Ripple Protocol Consensus Algorithm)Ripple共识算法

1. 基本介绍

RPCA是Ripple(一种基于互联网的开源支付协议,可以实现去中心化的货币兑换、支付与清算功能)研发及使用的共识算法。在 Ripple 的网络中,交易由客户端(应用)发起,经过追踪节点(tracking node)或验证节点(validating node)把交易广播到整个网络中。追踪节点的主要功能是分发交易信息以及响应客户端的账本请求。验证节点除包含追踪节点的所有功能外,还能够通过共识协议,在账本中增加新的账本实例数据。

Ripple 的共识达成发生在验证节点之间,每个验证节点都预先配置了一份可信任节点名单,称为 UNL(Unique Node List)。在名单上的节点可对交易达成进行投票。共识过程如下:

(1) 每个验证节点会不断收到从网络发送过来的交易,通过与本地账本数据验证后,不合法的交易直接丢弃,合法的交易将汇总成交易候选集(candidate set)。交易候选集里面还包括之前共识过程无法确认而遗留下来的交易。

(2) 每个验证节点把自己的交易候选集作为提案发送给其他验证节点。

(3) 验证节点在收到其他节点发来的提案后,如果不是来自UNL上的节点,则忽略该提案;如果是来自UNL上的节点,就会对比提案中的交易和本地的交易候选集,如果有相同的交易,该交易就获得一票。在一定时间内,当交易获得超过50%的票数时,则该交易进入下一轮。没有超过50%的交易,将留待下一次共识过程去确认。

(4) 验证节点把超过50%票数的交易作为提案发给其他节点,同时提高所需票数的阈值到60%,重复步骤(3)、步骤(4),直到阈值达到80%。

(5) 验证节点把经过80%UNL节点确认的交易正式写入本地的账本数据中,称为最后关闭账本(last closed ledger),即账本最后(最新)的状态。

在Ripple的共识算法中,参与投票节点的身份是事先知道的,因此,算法的效率比PoW等匿名共识算法要高效,交易的确认时间只需几秒钟。这点也决定了该共识算法只适合于联盟链或私有链。Ripple共识算法的拜占庭容错(BFT)能力为(n-1)/5,即可以容忍整个网络中20%的节点出现拜占庭错误而不影响正确的共识。

2. 简图理解模式

共识过程节点交互示意图:

共识算法流程:

(八)POOL验证池共识机制

Pool验证池共识机制是基于传统的分布式一致性算法(Paxos和Raft)的基础上开发的机制。Paxos算法是1990年提出的一种基于消息传递且具有高度容错特性的一致性算法。过去, Paxos一直是分布式协议的标准,但是Paxos难于理解,更难以实现。Raft则是在2013年发布的一个比Paxos简单又能实现Paxos所解决问题的一致性算法。Paxos和Raft达成共识的过程皆如同选举一样,参选者需要说服大多数选民(服务器)投票给他,一旦选定后就跟随其操作。Paxos和Raft的区别在于选举的具体过程不同。而Pool验证池共识机制即是在这两种成熟的分布式一致性算法的基础上,辅之以数据验证的机制。

写到这里,本文关于区块链选举系统实现和的介绍到此为止了,如果能碰巧解决你现在面临的问题,如果你还想更加了解这方面的信息,记得收藏关注本站。

标签: #区块链选举系统实现

  • 评论列表

留言评论