区块链网站|NFTS 区块链技术 区块链技术最全面的原理

区块链技术最全面的原理

广告位

最全的区块链技术原理

一、区块链的基本概念

区块链技术的产生和发展离不开比特币。首先是因为随着比特币的诞生,区块链技术被公之于众;其次,比特币是迄今为止区块链技术最成功、最成熟的应用案例。比特币的概念是由中本聪在2008年发表的论文《比特币:一种点对点的电子现金系统》中首次提出的。本文中,中本聪以区块链技术为基础技术构建比特币数据结构和交易系统,将比特币打造成为一种数字货币和在线支付系统,利用加密技术实现资金转移,而不是依赖于央行。使用比特币公钥地址收发比特币,记录交易,实现个人身份信息的匿名性。在交易确认过程中,用户需要贡献自己的计算能力,以协商一致的方式确认交易,从而将交易记录在全网的公共账本中。用户可以使用电脑、手机等。发送或接收比特币并选择交易费用。加密数字货币有100多种(未来币、点币、莱特币、dogecoin等。),而比特币占所有加密数字货币市值的90%左右。

毕竟比特币的区块链是为比特币系统设计定制的,所以比特币的区块链技术不等于区块链技术。区块链技术应该是一种可以有更多形式、体系、用途和规范的技术。它的概念是:区块链是一个去中心化的分布式数据库,由密码学产生的一系列数据块有序组合而成。这些块包含在一定时间内不能被篡改的数据记录。该块包含数据记录、当前块的根哈希、前一个块的根哈希、时间戳和其他信息(图2-1)。数据的类型可以根据场景来确定,比如资产交易记录、资产发行记录、清算记录、智能合约记录甚至物联网数据记录。在存储数据的过程中,通常组织成一棵树,比如Merkel树,块根哈希实际上是数据记录树的根节点哈希,由SHA-256等哈希算法自下而上计算得到。时间戳是块的生成时间。其他信息包括分组签名信息、随机值等信息,也可以根据具体应用场景灵活定义。区块链技术不是单一的技术,而是多种技术融合的结果,包括密码学、数学、经济学、网络科学等。这些技术以特定的方式组合在一起,形成一个新的分散数据记录和存储系统,存储数据的块被打上时间戳,形成一个连续的和相关的诚实的数据记录和存储结构。最终目的是建立一个诚实的数据系统,可以称之为分布式数据库,能够保证系统的诚实性。在这个系统中,只有系统本身是值得信任的,因此设计了数据记录、存储和更新的规则,以建立人们对区块链系统的信任。意味着诚实的系统可以被信任,这是商业活动和应用推广的前提。所以,区块链科技在很多领域受到主流机构的青睐也不是没有道理的。因为有了区块链技术,在一个诚信的系统中,可以省去很多繁琐的审查程序,可以开展很多由于数据缺乏透明度而无法开展的业务,甚至社会自动化程度也会大大提高。

近年来,包括高盛、摩根大通和纳斯达克在内的金融机构已经开始关注区块链技术。这些机构的金融服务大多具有标准化程度高、连续性强、自动化需求大、业务信用要求高等特点,与区块链的优势高度契合。同时,在供应链金融中,由于物流、资金流、信息流的复杂安排会涉及很多单据,使用电商平台记账会大大节省纸质单据的时间和成本。然而,使用谁的电子商务平台成为一个大问题。如果使用利益相关方自建的电商平台,数据的真实性容易受到质疑,自建的电商平台往往价格不菲;如果使用第三方的电子商务平台,第三方的业务稳定性和信息安全几乎无法保证。比如金融、政策、网络攻击等各种情况造成的不稳定问题。会大大增加沟通协调的成本和风险。区块链技术的安全性、不可逆性、可篡改性和透明性已经被证明。如果供应链金融业务能够直接建立在这样一个已经被证明是可靠的区块链上,那么安全和信用成本将会大大降低。所以,虽然目前使用电商平台已经大大节约了成本,但是如果有类似区块链的公信力的公共信用体系,还是有进一步节约成本的空间的。从政府层面来说,这也很重要,因为提供一个值得公众信任的制度本身就是政府职能的一部分。中国资金利用效率远低于美国的一个很重要的原因是社会信用体系不完善,信息不透明,部门协调成本过高,利益保护现象严重。如果能在技术上应用区块链,就能以较低的成本打破这些障碍,建立开放的社会公共信用体系。整个社会成本会大大降低,效率会大大提高,便于监管。数据透明不仅会大大减轻监管部门的工作量(很大一部分工作量已经转移到社会监管上,任何变化都很难逃过大家的眼睛),还会使监管部门的主要工作转向治理,提高治理的人性化和效率。

虽然使用区块链技术构建的系统是诚实可信的,但这并不意味着来自系统外部的输入信息是诚实的。更多的时候,这只是意味着区块链诚实地记录和存储这些外部数据。例如,认证通常是离线完成的。即使区块链可以存储文本、图片甚至多媒体信息,也不意味着所有的信息都是真实的。这意味着这种区块链真实地记录和存储了这些信息,以防止其被篡改,并可以在发生业务纠纷时作为凭证。很多人可能没有注意到这一点。自动化是区块链技术的一个非常重要的特征。区块链网络实际上是一种接近自动化或者具有完全自动化可能性的网络。这很重要,一方面是因为自动化是金融机构青睐区块链技术的重要原因。金融交易需要网络自动记录和存储交易数据,它也可以通过设置条件让参与者在网络上自动进行和完成交易;另一方面,区块链科技在这方面提供的可能性,为社会生产效率的大幅提升留下了广阔的空间,也为智能合约等一系列高级应用留下了充足的空间。理想情况下,区块链技术最终可以与物联网结合。

一般来说,区块链的发展系统可以分为四个象限。第一象限是比特币区块链;

第二象限是使用比特币区块链协议,但不使用比特币货币的系统,如万事达卡货币、彩色货币、合约货币、使用合并挖掘的域名货币等。第三象限是同时使用独立货币和独立区块链的系统,如以太坊、瑞波、莱特币、未来币等。第四象限是侧链,这是一个使用独立网络但使用比特币作为基础货币的系统,如BTC中继。

(一)区块链分类

目前,已知的区块链技术应用大致可以分为三类。

1.公共区块链:是指世界上任何人都可以读取和发送交易进行有效性确认的区块链,任何人都可以参与其共识过程(共识过程是保持分布式数据库区块链一致性和准确性的关键技术,后续章节将详细介绍)。区块链上的数据记录是公开的,所有人都可以访问,并可以发出交易请求,交易请求通过验证写入区块链。共识进程的参与者通过加密技术共同维护公共区块链数据的安全性、透明度和不可篡改性。公共区块链的典型应用有比特币、以太坊等。

公共区块链是一个完全分布式的区块链。区块链的数据是开放的,用户参与程度很高。同时容易产生网络效应,便于应用推广。但是,制度的运行依赖于内在的激励机制。公众区块链试图保存的数据越有价值,就越有必要考察其安全性、交易成本以及安全性导致的系统可扩展性。

2.区块链联盟:也称为联盟链,是指参与区块链的节点是预先选定的,节点之间通常有良好的合作关系,如网络连接。区块链上的数据可以是公开的,也可以是内部的,在某种意义上是部分分布的,可以认为是“部分分散的”。例如,在几个金融机构之间建立了一个社区区块链,每个机构运行一个节点。每个区块要想生效,至少需要得到其中10个的确认。区块链可以被每一个机构读取,或者只受限于共识验证参与者,或者走混合路线,比如区块的根哈希和API被公开,允许外界查询区块链数据和区块链状态信息等典型的应用有Hyperledger、R3CEV等。

社区区块链具有参与节点间良好的连接状态、较高的验证效率、较低的维护运营成本、高速的事务处理降低交易成本、良好的可扩展性以及数据隐私性。但这也意味着参与的节点可以在达成共识的前提下一起篡改数据。

3.私有区块链:参与的节点只是有限的,比如特定组织的用户等。数据的访问和使用受到严格的权限管理。在完全私有的区块链中,写权限只掌握在参与者手中,读权限可以对外界开放,也可以限制到任何程度。相关的应用包括数据库管理、数据库审计甚至企业管理。虽然在某些情况下,希望私有区块链可以公开审计,但在更多情况下,它是不公开可读的。由于是私人用户说了算,里面的数据没有不可篡改的特征,对第三方的保护也大打折扣。所以目前很多私人区块链是依附于比特币等现有区块链而存在的,定期将系统快照数据记录到比特币等系统中。典型的应用是厄里斯工业。

二等兵区块链可以改变规则。如果有必要,经营私人区块链的机构可以很容易地修改区块链的规则,回滚交易。这似乎有点违背区块链的本质,但它适用于一些特殊的场景。因为私有区块链验证器是内部公开披露的,所以不存在某些验证节点合谋实施51%攻击的风险。私人区块链的交易成本更低。交易只需要几个可信的高计算节点来验证,而不是几万个节点,所以交易成本会低。但长期来看,随着区块链技术的进步,公共区块链的成本大概会降低1~2个数量级,大致类似于高效的私有区块链系统。私有区块链节点之间连接良好,故障可以通过人工干预快速修复,从而提高交易速度,更好地保护隐私。

公立区块链、社区区块链和私立区块链各有优势。大众区块链很难做到尽善尽美。社区区块链和私人区块链需要找到实际上迫切需要的应用需求和场景。至于选择哪种方案要看具体需求,有时候使用公共区块链比较好,但是有时候需要一定的私人控制,适合使用社区区块链或者私人区块链。(二)区块链的特点

1.分散

去中心化是区块链最基本的特征,这意味着区块链不再依赖于中央处理节点,实现了数据的分布式记录、存储和更新。由于使用了分布式的存储和计算能力,没有集中的硬件或管理机构,网络中所有节点的权利和义务都是平等的。系统中的数据本质是由网络中的所有节点共同维护的。由于每个区块链节点必须遵循相同的规则,该规则基于密码算法而不是信用,并且每次数据更新都需要网络中其他用户的批准,因此不需要第三方中介结构或信任机构的背书。在传统的集中式网络中,攻击一个中心节点可以摧毁整个系统,而在去中心化的区块链网络中,攻击单个节点并不能控制或摧毁整个网络,掌握网络中51%以上的节点只是获得控制权的开始。

2.透明度

区块链系统的数据记录对所有网络节点透明,数据记录的更新操作也对所有网络节点透明,这是区块链系统的可信基础。由于区块链系统采用开源程序,规则开放,参与度高,区块链数据记录和运行规则可被全网节点查看和追溯,透明度高。

3.公开

区块链系统是开放的,区块链的数据对所有人开放,除了与数据直接相关的当事人的私人信息被加密(有特殊权限要求的区块链系统除外)。任何个人或参与节点都可以通过开放接口查询区块链数据记录或开发相关应用,因此整个系统信息高度透明。

4.自治

区块链采用基于共识的规范和协议,使整个系统中的所有节点都可以在去信任的环境中自由安全地交换数据、记录数据和更新数据,将个人或机构的信任变为系统的信任。任何人为干预都是行不通的。

5.信息不能被篡改。

区块链系统的信息一经验证并添加到区块链,将永久保存,不可更改(私人区块链及其他有特殊更改要求的系统除外)。除非能同时控制系统中51%以上的节点,否则单个节点上对数据库的修改是无效的,因此区块链的数据稳定性和可靠性极高。

6.匿名

区块链技术解决了节点之间的信任问题,因此数据交换甚至交易都可以匿名进行。由于节点间的数据交换遵循固定的、可预测的算法,节点间的数据交换不需要信任,可以基于地址而不是个人身份进行。所以交易双方都不需要通过暴露身份来让对方信任。

二、区块链的工作原理

拜占庭将军的问题

拜占庭问题是容错计算中的一个老问题,由Leslie Lamport等人于1982年提出。拜占庭帝国是5-15世纪的东罗马帝国,也就是现在的土耳其。拜占庭城邦拥有巨大的财富,对它的十个邻居垂涎已久。然而拜占庭高墙巍然屹立,固若金汤,没有任何一个邻国能够成功入侵。对任何一个单一城邦的入侵都会失败,入侵者的军队会全军覆没,使自己容易受到其他九个城邦的入侵。这十个邻居也互相觊觎对方的财富,经常发生战争。拜占庭的防御能力很强,它的十个邻居至少有一半可以同时进攻突破。也就是说,如果六个或者更多的邻居一起进攻,就会成功,获得拜占庭的财富。但是,如果一个或多个邻国背叛,承诺共同入侵但在其他国家进攻时退出,导致只有五支或更少的军队同时进攻,那么所有进攻的军队将被消灭,然后被其他邻国掠夺。所以,这是一个由互不信任的邻居组成的分布式网络。每一方都小心翼翼,因为稍有不慎就会给自己带来灾难。为了获得拜占庭的巨额财富,这些邻国分散在拜占庭各地,依靠士兵相互沟通,协商进攻目标和进攻时间。这些相邻的将领在想要征服拜占庭的时候都面临着一个问题,就是拜占庭将领的问题。

邻居不确定他们中间是否有叛徒,叛徒可能会任意改变攻击意图或攻击时间。在这种状态下,将军们能否找到分布式协议进行远程协商,进而赢得拜占庭城堡之战?这就是拜占庭将军的问题。

拜占庭将军问题的解决方法有:口头协议算法,书面协议算法等。口头协议算法的核心思想是:每一条发送的消息都要被正确传递,信息接收者要知道消息发送者的身份和缺失的消息信息。使用口头协议算法,如果背叛者的数量少于1/3,则可以解决拜占庭一般问题。也就是说,如果汉奸的数量是m,那么当将军总数n至少为3m ^ 1时,问题就可以解决了。然而,口头协议算法有明显的缺点,即消息不能追溯到来源。为了解决这个问题,提出了一种书面协议算法。这个算法要求签名不能伪造,一旦被篡改就能被发现,任何人都可以验证签名的可靠性。书面协议算法并不能完全解决拜占庭将军的问题。由于该算法没有考虑信息传输时延,其签名系统难以实现,并且难以摆脱集中保存签名消息记录的机制。

与现有方法相比,区块链技术将是一个更完美的解决方案。区块链是如何解决这个问题的?它增加了发送信息的成本,降低了信息传递的速度,还增加了一个随机数,保证在一定时间内只有一个矿工可以传播。其加入的成本是“工作量”。区块链矿工必须完成一个随机哈希算法的计算工作量,才能将消息传播到城邦。

当用户将交易输入网络时,他们使用嵌入在客户端的标准公钥加密工具对交易进行签名,这就像拜占庭一般问题中他们用来签名和验证消息的“印章”。所以哈希计算速率的限制,再加上公钥加密,使得一个不可信的网络变成了一个可信的网络,让所有的参与者在某件事情上达成一致。拜占庭问题的区块链解决方案可以推广到分布式网络上任何缺乏信任的领域,比如域名、投票或者其他需要分布式协议的地方[插图]。

(二)区块链工作流程

区块链的工作流程主要包括以下步骤。

发送节点向整个网络广播新的数据记录。

接收节点检查接收到的数据记录信息,如记录的信息是否合法。检查之后,数据记录将被包含在一个块中。全网所有接收节点实现一致性算法(工作量证明、权限证明等。)为块。

一致性算法处理后的块正式存储在区块链中,全网所有节点都表示接受该块。表示接受的方法是将这个块的随机哈希值视为最新的块哈希值,新块的制造将基于这个区块链进行扩展。

节点总是将最长的区块链视为正确的,并在此基础上不断验证和扩展。如果两个节点同时广播新块的不同版本,那么其他节点接收该块的时间将会不同。它们将在先前接收的块的基础上工作,但是它们也将保留另一个链,以防止后者变成长链。打破僵局需要共识算法的进一步操作。当其中一条链被证明是更长的一条链时,在另一条分支链上工作的节点将切换阵营,开始在更长的链上工作。以上是防止区块链分支的整个过程。

所谓的“新数据记录广播”实际上不需要到达所有节点。只要数据记录信息能到达足够多的节点,就会很快整合成一个块。块的广播对丢弃的信息是容错的。如果一个节点没有收到一个特定的块,它会发现自己丢失了一个块,所以它可以自己请求下载这个块。现在我们都知道区块链网络中的簿记员是节点,节点负责将数据记录到数据块中。为了鼓励节点记账,系统会根据规则随机奖励记账节点。那么如何才能保证没有人会做虚假的数据记录或者虚假的数据记录不会被核实呢?这涉及到时间戳。这就是区块链的独特之处。区块链不仅关注数据块中的内容,也关注数据块本身,通过时间戳将数据块的内容与数据块本身联系起来。为什么会出现时间戳?这是区块链教的性质所规定的。节点数据记录在块中,所以一块相当于账簿的一页,账簿中每条数据的记录都可以自动按时间顺序排列。账本的页面怎么才能相互连接起来?也就是说,如何确定这个块和下一个块的继承关系就成了问题。所以时间戳出现了。

时间戳的意义在于它使数据块形成一种新的结构。这种新的结构通过一条时间线将所有的区块有序地连接起来,形成了区块链,因此被称为区块链。按照区块的时间顺序,账簿的页间记录也是连续的。通过在数据记录上打印时间戳,每个数据记录都是唯一的,因此数据记录本身可以在块中以及在块上的哪个位置被准确地定位和追溯。它还为其他验证机制协同工作提供了极大的便利性和确定性,使得整个区块链网络可以确定性地验证某个数据记录是否真实。因为区块链网络是开放的,这意味着系统知道过去发生的所有数据记录,任何新的数据记录都是从过去的数据记录继承而来的。因为过去的数据记录是真实的,而且链中所有的块记录都是用时间戳链接起来的,所以如果要做一个假的数据记录,必须修改区块链上所有的过去的数据记录。虽然在挖掘的过程中形成了很多链,但是因为最长的一个是由诚实节点控制的,所以如果要修改过去的数据记录,必须先构造一个长度比之前最长的一个更长的链。只有这个新的链条超过了原来的链条,你才能做出双倍赔付的虚假数据。然而,随着时间的推移,制造一条新链条的难度和成本呈指数级增长,随着链条越来越长,难度和成本也越来越大。同时,由于分散设置,区块链的每个核心客户端同时也是服务器,保存了区块链网络的完整数据。因此,很难像传统的中央处理节点那样有效地攻击区块链网络,总的来说,也很难对区块链网络产生重大影响。最终,区块链网络成为一个诚实可信的系统,很难被攻破、打开,无法篡改数据记录和制造虚假数据。

区块链保证数据安全性、不可篡改性和透明性的关键技术包括两个方面:一是数据加密和签名机制;二是共识算法。在数据加密签名机制中,首先要有私钥,私钥是证明个人所有权的密钥。比如通过数字签名来实现,证明某人有权从特定的钱包中消费数字货币。其次,应该使用哈希算法。哈希是密码学中的经典技术。用哈希算法计算任意长度的输入,转化为固定长度的字母和数字的输出,是不可逆的。一致性算法是区块链中节点保持块数据一致性和准确性的基础。现有的主流一致性算法包括工作量证明(PoW)、公平性证明(PoS)、Ripple一致性协议(RCP)等。以PoW为例,它是指通过消耗节点的计算能力形成新的块,是节点利用自己的计算机硬件为网络做数学计算以确认交易和提高安全性的过程。交易员(矿工)在自己的电脑上运行比特币软件,不断计算软件提供的复杂密码问题,以确保交易。作为对他们服务的回报,矿工可以获得他们确认的交易中包含的手续费,以及新生成的比特币。

第三,区块链共识机制

为了成为一个去中心化的、诚实可信的、难以攻破的、开放的、不可篡改的系统,区块链需要在最短的时间内使分布式的数据记录安全、清晰、不可逆,并提供最坚实的去中心化的系统。在实践中,该过程分为两个方面:一是选择唯一的节点生成块;二是使分布式数据记录不可逆。实现上述过程的技术核心是:共识机制。共识机制(Consensus mechanism)是区块链节点在全网范围内对分块信息达成共识的机制,可以保证最新的分块准确加入区块链,节点存储的区块链信息一致不分叉,甚至可以抵御恶意攻击。

目前主流的共识机制包括:工作量认证、权益认证、混合工作量认证和权益认证(PoS PoW)、份额授权认证、Ripple共识协议等。

(1)工作量证明

工作证明,顾名思义就是指工作量的证明。PoW机制的基本步骤是:节点监控全网的数据记录,通过基本合法性验证的数据记录会被暂存;节点消耗自己的计算能力尝试不同的随机数,进行指定的哈希计算,重复该过程,直到找到合理的随机数;找到合理的随机数后,生成块信息,先输入块头信息,再输入数据记录信息;新生成的块在收到命令后对外广播。其他节点验证通过后,连接到区块链,主链高度增加1。然后,所有节点切换到新数据块的后面继续工作负载证明,数据块功率称为工作负载证明。这体现在步骤中,节点需要不断消耗计算能力,进行哈希计算,寻找想要的随机数。以比特币区块链为例,区块链的整体运行和安全是通过PoW机制来维护的。通过随机哈希运算,验证节点争夺比特币区块链的记账权,防止欺诈交易,避免“重复支付”。这个过程需要功耗和计算能力来完成。因此,验证节点也就变成了一个“矿工”,随机数的计算和搜索过程就叫做“挖掘”。比特币区块链中的每个区块都包含一小段无意义的数据(称为随机数)。找到合适的随机数的唯一已知方法是不断进行随机试验,直到找到一个有效的数。在比特币的威力中,平均每10分钟就有一个节点找到一个区块。如果两个节点同时发现一个块,那么网络将根据后续节点和块生成来确定哪个块将构建最终的区块链。一般需要6个街区确认,因为一般的交易在6个街区(约1小时)后才被认为是安全且不可逆的。其工作量主要体现在:一个符合要求的分组随机数由N个前导零组成,零的个数取决于网络的难度值。要得到一个合理的随机数,需要大量的试算,计算时间取决于机器的哈希运算速度。当一个节点提供了一个合理的随机值,说明这个节点确实经过了大量的试算。当然,这并不能得出计算次数的绝对值,因为找到一个合理的随机数是一个概率事件。工作量证明机制看似神秘,但在社会上应用广泛。比如毕业证、学位证、律师证等。都是工作的证明,有证书意味着一个人过去付出过努力。采矿为整个系统的运行提供了动力。矿业有三个重要功能:一是发行新货币;二是维护系统的支付功能;三是通过计算能力保证系统安全。首先,采矿消耗资源是为了给循环经济注入黄金。比特币也是通过“挖矿”来做同样的事情,只是消耗CPU时间和电量。其次,挖矿用于产量调节。区块的产量大概是每两周2016个,也就是每10分钟一个区块。第三,系统的安全性由计算能力来保证。计算武力攻击的概率和难度呈指数级增长(泊松分布),每个区块必须指向前一个区块,否则无法验证。源是高度为零的创建块。动力机构有两个明显缺陷。一个是计算能力的消耗和浪费。在PoW中,虽然区块链节点是用来帮助区块链记录分布式数据的,但他们实际做的大部分工作是寻找正确的随机数,与数据记录无关。用于寻找随机数的精力和资源将永远消失,这显然是一种浪费。第二,计算能力的集中凸显。PoW机制自然导致了计算能力集中的问题。作为一个普通个人或者几十上百台矿机目前很难挖成块,大家必须联合起来挖矿,计算能力集中的——矿池就这样诞生了。其中最著名的就是比特币Ghash矿池,因为它已经数次逼近甚至达到50%比特币的计算能力,所以引起了比特币界的广泛关注。

(2)股权认证工作量证明

2012年8月,一个化名Sunny King的极客推出了Peercoin(PPC),采用工作量证明机制PoW发行新币,权限证明机制PoS维护网络安全,即PoW PoS机制。在这个机制中,block分为两种形式:——PoW block和PoS block。在这个新的区块链系统中,块持有人可以花他的钱来获得利息,同时获得为网络创建块和用PoS赚钱的优先权。PoS的第一个输入叫权益核,需要符合某种哈希目标协议。所以PoS块的生成是随机的,其过程类似于PoW。但是一个重要的区别是,PoS随机哈希操作是在有限的空间内完成的,而不是像power一样在无限的空间内搜索,所以不需要消耗很多的能量。核心需要满足的随机哈希目标是核心消耗的货币天数的目标值(货币x天数),与PoW不同,PoW的每个节点都有相同的目标值。所以核心消耗的钱越多,越容易达到目标协议。PoS中也有新的造币流程。PoS block会根据消费的货币天数产生利息币,设计为每枚币每年产生1利息,避免未来通货膨胀。造币之初,保留了PoW,使得最初的造币更加方便。

谁是区块链的主链是解决分歧的关键。判断PoS主链的标准已经转化为对货币消费天数的判断。每个区块的交易将向该区块提交其消耗的货币天数,以提高该区块的得分。具有最高消耗货币天数的区块将被选择为主链。这样的设计减少了一些对51%攻击的担忧,因为在PoS块中,要进行51%攻击,首先要控制大量的币日,成本可能高于获得51%的计算能力,从而增加了攻击的成本;其次,当攻击者攻击网络时,他的钱也会被消耗,这将增加攻击者阻止交易进入主链的难度。

为了抵抗分布式拒绝服务攻击,在PoW PoS机制中,每个块必须由它的所有者签名,以避免被攻击者复制和使用。为了防止攻击者复制多个块进行分布式拒绝服务攻击,每个节点都会收集其接触到的(核心,时间戳)配对信息。如果接收到的块包含与其他先前接收到的块重复的配对信息(核心、时间戳),则该块将被忽略,直到后者被隔离。

在PoW POS机制下,只要持有硬币的人,不管持有多少,都可以挖掘出数据块,而不需要使用任何的矿池导致计算能力的集中。同时,由于更多的钱用于生成块而不是计算能力,减少了资源消耗,解决了简单PoW机制在维护网络安全方面的先天不足。

(3)权益证明除了与PoW结合使用外,是否可以单独使用PoS机制来设计和运行区块链系统?答案是肯定的。简单来说,PoS是一种根据持有货币的金额和时间来发放利息和生成区块的机制。在权益凭证的PoS模型中,有一个术语叫做币日。比如每个硬币每天产生1个硬币日,比如你一共持有100个硬币30天,那么硬币日就是3000。此时,如果发现新的PoS块,货币日将被清除为0。每清空一个365币的日子,就从块中获得0.05币的利息(可以理解为年利率5%)。

PoS的典型应用是期货货币。和其他加密货币一样,未来货币体系的总账是在一系列区块中建立和存储的,也就是在区块链中。每个区块链的备份存储在未来货币网的每个节点,每个节点上没有加密的每个账户都可以生成区块,只要至少一个新账户的交易已经确认1440次。任何符合此标准的账户都将被视为“激活账户”。在未来的硬币中,每个块包含255个交易,每个交易以包含识别参数的192字节的报头开始。块中的每个事务量由128个字节表示。总之,这意味着最大块大小为32K字节。每个块都有一个“生成签名”的参数。激活帐户用自己的私钥在原始块上签署“生成签名”。这会产生一个64字节的签名,然后由SHA256进行哈希处理。生成的散列的前八个字节给出一个数字作为“命中”。与当前目标值相比,如果计算的“命中”值低于“目标值”,则可以生成下一个块。对于每个活跃账户,“目标值”与其确认的余额成比例。拥有1000个硬币的账户的目标价值是拥有20个硬币的账户的50倍。因此,拥有1000枚硬币的持有者产生的积木数量是拥有20枚硬币的持有者产生的积木数量的50倍。同时,“目标值”不是固定的,而是随着前一个块的时间戳而增加。如果前一秒没有账号的“命中”值低于“目标值”,下一秒“目标值”就会翻倍。“目标值”将不断翻倍,直到活跃账户的“命中”值降低。还有一个“基本目标”值,它被设置为60秒间隔的目标值。正是由于这个原因,一个块的平均生成时间将是60秒。即使网络上只有几个活跃账户,其中一个最终也会产生阻塞,因为“目标”值会变得相当大。通过比较你的帐户的“命中”值和当前的“目标”值,你可以估计你的“命中”值需要多长时间才能成功。

当一个活动帐户获得生成块的权利时,它可以将任何可用的和未确认的交易放入块中,并用所有必需的参数填充块。然后,该块将作为区块链的替代传播到网络。每个块中的负载值、“hit”、生成的帐户和签名可以由网络上接收它的节点来确认。每一个区块都引用了前一个区块,区块形成的区块链可以用来追溯和查询网络中众所周知的交易历史,都可以追溯到创世的源头地区。以上完整展示了利用币日产生和验证共识的过程,体现了PoS的核心思想。

(四)股份授权PoS机制证明使用确定性算法随机选择一个股东生成下一个区块。在该算法中,账户余额决定了节点被选中的可能性。然而,这种制度并没有使区块链变得越来越安全和不可逆转,因为最终区块链的区块生成权掌握在账户余额最大的几个节点手中。同时,参与组织面临的挑战是如何及时有效地达成共识。为了实现这个目标,每个投币节点可以将其投票权授予一个代表。得票最多的前100名代表按照既定日程依次生成区块。每个代表在一段时间内被分配到一个生产区块。所有代表将获得相当于平均交易量1%的交易费作为奖励。如果一个平均区块包含100股作为交易费用,一个代表将获得1股作为奖励,这可以大大提高达成共识的效率。这是DPoS的核心思想。网络的延迟可能会使一些代表不能及时广播他们的块,这将导致区块链的分叉。但这种情况发生的概率很小,因为制造区块的代表可以和制造前后的区块代表建立直接联系。在DPoS中,第一步是成为一名代表。公钥必须在网络上注册,然后分配给32位的唯一标识符。每个交易数据的“标题”将引用该标识符。第二步是授权投票。每个钱包都有一个参数设置窗口,用户可以在其中选择一个或多个代表,并对他们进行评分。一旦设置,用户的每一次交易都会将选票从“输入代表”转移到“输出代表”。一般来说,用户不会专门为投票而创建交易,因为这需要支付交易费。但在紧急情况下,一些用户可能会觉得以更积极的方式付费来改变他们的投票是值得的。每个钱包将显示一个状态指示器,让用户知道代表的表现如何。如果代表错过了太多块,系统将建议用户更换新代表。如果发现任何代表发出了无效的阻止,那么所有标准钱包将要求在每个钱包中进行更多交易之前选举新的代表。像PoW系统和其他PoS系统一样,最好的区块链是最长的有效区块链。任何时候,一个代表错过了发块的机会,就会比潜在的竞争对手短。只要事务写入块后的100个块中有51%是生产的,那么就可以放心地认为它在主区块链上。也许,就防止区块链分叉造成的损失而言,最重要的是在事件发生后尽快知道消息。如果10个块中有5个以上错过生产,那么这意味着您可能在一个分支链上,因此所有事务都应该停止,直到分支被解决。简单及时(5分钟以内)发现并预警用户网络分叉是非常重要的能力,可以将潜在损失降到最低。

(5)涟漪一致同意

Ripple Consensus Protocol (RCP)使一组节点能够基于特殊的节点列表达成共识。特殊节点的初始列表就像一个俱乐部。要接纳一名新成员,必须有一定比例的俱乐部成员投票赞成。RCP机制的工作方式如下。

验证节点接收并保存待验证的交易。首先,验证节点接收待验证的交易并存储在本地;其次,本轮共识中的新交易需要等待,并在下一次共识时得到确认。

主动信任节点发送提议:首先,信任节点列表是验证池的子集,其信任节点来自验证池;其次,参与共识过程的信任节点必须是主动的。验证节点和信任节点之间有保活机制,长期不活动的节点会从信任节点列表中删除。最后,信任节点根据自身的双方额度和交易历史等信息对交易做出判断,并将其添加到提议中进行发送。

验证节点检查接收到的提议是否来自信任节点列表中的合法信任节点,如果是,则存储该提议;如果没有,丢弃它。

验证节点按照如下方案确定批准的交易列表:首先,如果信任节点列表中的活跃信任节点数为M(如5),本轮交易批准阈值为N(百分比,如50%),则超过MN个信任节点批准的每一笔交易都将被该验证节点批准;其次,验证节点生成已批准交易的列表。系统为验证节点设置计数器。如果计数器时间已到,信任节点需要发送自己的批准事务列表。

对账簿达成共识的步骤如下:首先,本验证节点仍在接收信任节点列表中信任节点的提案,并不断更新审核通过的交易列表;其次,核查节点审批单的生成并不意味着最终账本的形成和共识的达成。只有当每笔交易都被信任节点列表批准至少超过某个阈值(例如80%)时,才能实现账簿共识。如果账簿中的每一笔交易都被至少超过一定阈值(如80%)的信任节点列表识别,则达成共识,交易验证结束,否则继续上述过程。

经过协商一致的过程,已经形成了最新的账簿。现在,剩余的待确认交易和上一轮的新交易被包括在待确认交易列表中,并开始新一轮的共识过程。

除了上述机制之外,还提出了其他的一致性机制,如Stellar Consensus Protocol (SCP)、实用拜占庭容错(PBFT)和Pool验证池机制,甚至在区块链系统中得到了应用。不同的共识机制有各自的应用场景和优势。

广告位
本文来自网络,不代表区块链网站|NFTS立场,转载请注明出处:https://www.qklwz.com/qkl/jishu/14639.html
上一篇
下一篇

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

返回顶部