今天给各位分享skt区块链的知识,其中也会对sol 区块链进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
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)
区块链论文精读——Pixel: Multi-signatures for Consensus
论文主要提出了一种针对共识机制PoS的多重签名算法Pixel。
所有基于PoS的区块链以及允许的区块链均具有通用结构,其中节点运行共识子协议,以就要添加到分类账的下一个区块达成共识。这样的共识协议通常要求节点检查阻止提议并通过对可接受提议进行数字签名来表达其同意。当一个节点从特定块上的其他节点看到足够多的签名时,会将其附加到其分类帐视图中。
由于共识协议通常涉及成千上万的节点,为了达成共识而共同努力,因此签名方案的效率至关重要。此外,为了使局外人能够有效地验证链的有效性,签名应紧凑以进行传输,并应快速进行验证。已发现多重签名对于此任务特别有用,因为它们使许多签名者可以在公共消息上创建紧凑而有效的可验证签名。
补充知识: 多重签名
是一种数字签名。在数字签名应用中,有时需要多个用户对同一个文件进行签名和认证。比如,一个公司发布的声明中涉及财务部、开发部、销售部、售后服务部等部门,需要得到这些部门签名认可,那么,就需要这些部门对这个声明文件进行签名。能够实现多个用户对同一文件进行签名的数字签名方案称作多重数字签名方案。
多重签名是数字签名的升级,它让区块链相关技术应用到各行各业成为可能。 在实际的操作过程中,一个多重签名地址可以关联n个私钥,在需要转账等操作时,只要其中的m个私钥签名就可以把资金转移了,其中m要小于等于n,也就是说m/n小于1,可以是2/3, 3/5等等,是要在建立这个多重签名地址的时候确定好的。
本文提出了Pixel签名方案,这是一种基于配对的前向安全多签名方案,可用于基于PoS的区块链,可大幅节省带宽和存储要求。为了支持总共T个时间段和一个大小为N的委员会,多重签名仅包含两个组元素,并且验证仅需要三对配对,一个乘幂和N -1个乘法。像素签名几乎与BLS多重签名一样有效,而且还满足前向安全性。此外,就像在BLS多签名中一样,任何人都可以非交互地将单个签名聚合到一个多签名中。
有益效果:
为了验证Pixel的设计,将Pixel的Rust实施的性能与以前的基于树的前向安全解决方案进行了比较。展示了如何将Pixel集成到任何PoS区块链中。接下来,在Algorand区块链上评估Pixel,表明它在存储,带宽和块验证时间方面产生了显着的节省。我们的实验结果表明,Pixel作为独立的原语并在区块链中使用是有效的。例如,与一组128位安全级别的N = 1500个基于树的前向安全签名(对于T = 232)相比,可以认证整个集合的单个Pixel签名要小2667倍,并且可以被验证快40倍。像素签名将1500次事务的Algorand块的大小减少了约35%,并将块验证时间减少了约38%。
对比传统BLS多重签名方案最大的区别是BLS并不具备前向安全性。
对比基于树的前向安全签名,基于树的前向安全签名可满足安全性,但是其构造的签名太大,验证速度有待提升。 本文设计减小了签名大小、降低了验证时间。
补充知识: 前向安全性
是密码学中通讯协议的安全属性,指的是长期使用的主密钥泄漏不会导致过去的会话密钥泄漏。前向安全能够保护过去进行的通讯不受密码或密钥在未来暴露的威胁。如果系统具有前向安全性,就可以保证在主密钥泄露时历史通讯的安全,即使系统遭到主动攻击也是如此。
构建基于分层身份的加密(HIBE)的前向安全签名,并增加了在同一消息上安全地聚合签名以及生成没有可信集的公共参数的能力。以实现:
1、生成与更新密钥
2、防止恶意密钥攻击的安全性
3、无效的信任设置
对于常见的后攻击有两种变体:
1、短程变体:对手试图在共识协议达成之前破坏委员会成员。解决:通过假设攻击延迟长于共识子协议的运行时间来应对短距离攻击。
2、远程变体:通过分叉选择规则解决。
前向安全签名为这两种攻击提供了一种干净的解决方案,而无需分叉选择规则或有关对手和客户的其他假设。(说明前向安全签名的优势)。
应用于许可的区块链共识协议(例如PBFT)也是许多许可链(例如Hyperledger)的核心,在这些区块链中,只有经过批准的方可以加入网络。我们的签名方案可以类似地应用于此设置, 以实现前向保密性,减少通信带宽并生成紧凑的块证书。
传统Bellare-Miner 模型,消息空间M的前向安全签名方案FS由以下算法组成:
1、Setup
pp ←Setup(T), pp为各方都同意的公共参数,Setup(T)表示在T时间段内对于固定参数的分布设置。
2、Key generation
(pk,sk1) ←Kg
签名者在输入的最大时间段T上运行密钥生成算法,以为第一时间段生成公共验证密钥pk和初始秘密签名密钥sk1。
3、Key update
skt+1←Upd(skt) 签名者使用密钥更新算法将时间段t的秘密密钥skt更新为下一个周期的skt + 1。该方案还可以为任何t0 t提供 “快速转发”更新算法 skt0←$ Upd0(skt,t0),该算法比重复应用Upd更有效。
4、Signing
σ ←Sign(skt,M),在输入当前签名密钥skt消息m∈M时,签名者使用此算法来计算签名σ。
5、Verification
b ← Vf(pk,t,M,σ)任何人都可以通过运行验证算法来验证消息M在公共密钥pk下的时间段t内的签名M的签名,该算法返回1表示签名有效,否则返回0。
1、依靠非对称双线性组来提高效率,我们的签名位于G2×G1中而不是G2 ^2中。这样,就足以给出公共参数到G1中(然后我们可以使用散列曲线实例化而无需信任设置),而不必生成“一致的”公共参数(hi,h0 i)=(gxi 1,gxi 2)∈G1× G2。
2、密钥生成算法,公钥pk更小,参数设置提升安全性。
除了第3节中的前向安全签名方案的算法外,密钥验证模型中的前向安全多重签名方案FMS还具有密钥生成,该密钥生成另外输出了公钥的证明π。
新增Key aggregation密钥汇总、Signature aggregation签名汇总、Aggregate verification汇总验证。满足前向安全的多重签名功能的前提下也证明了其正确性和安全性。
1、PoS在后继损坏中得到保护
后继损坏:后验证的节点对之前的共识验证状态进行攻击破坏。
在许多用户在同一条消息上传播许多签名(例如交易块)的情况下,可以将Pixel应用于所有这些区块链中,以防止遭受后继攻击并潜在地减少带宽,存储和计算成本。
2、Pixel整合
为了对区块B进行投票,子协议的每个成员使用具有当前区块编号的Pixel签署B。当我们看到N个委员会成员在同一块B上签名的集合时,就达成了共识,其中N是某个固定阈值。最后,我们将这N个签名聚合为单个多重签名Σ,而对(B,Σ)构成所谓的 区块证书 ,并将区块B附加到区块链上。
3、注册公共密钥
希望参与共识的每个用户都需要注册一个参与签名密钥。用户首先采样Pixel密钥对并生成相应的PoP。然后,用户发出特殊交易(在她的消费密钥下签名), 注册新的参与密钥 。交易包括PoP。选择在第r轮达成协议的PoS验证者,检查(a)特殊交易的有效性和(b)PoP的有效性。如果两项检查均通过,则 使用新的参与密钥更新用户的帐户 。从这一点来看,如果选中,则用户将使用Pixel登录块。
即不断更换自己的参与密钥,实现前向安全性。
4、传播和聚集签名
各个委员会的签名将通过网络传播,直到在同一块B上看到N个委员会成员的签名为止。请注意,Pixel支持非交互式和增量聚合:前者意味着签名可以在广播后由任何一方聚合,而无需与原始签名者,而后者意味着我们可以将新签名添加到多重签名中以获得新的多重签名。实际上,这意味着传播的节点可以对任意数量的委员会签名执行中间聚合并传播结果,直到形成块证书为止。或者,节点可以在将块写入磁盘之前聚合所有签名。也就是说,在收到足够的区块证明票后,节点可以将N个委员会成员的签名聚集到一个多重签名中,然后将区块和证书写入磁盘。
5、密钥更新
在区块链中使用Pixel时,时间对应于共识协议中的区块编号或子步骤。将时间与区块编号相关联时,意味着所有符合条件的委员会成员都应在每次形成新区块并更新轮回编号时更新其Pixel密钥。
在Algorand 项目上进行实验评估,与Algorand项目自带的防止后腐败攻击的解决方案BM-Ed25519以及BLS多签名解决方案做对比。
存储空间上:
节省带宽:
Algorand使用基于中继的传播模型,其中用户的节点连接到中继网络(具有更多资源的节点)。如果在传播过程中没有聚合,则中继和常规节点的带宽像素节省来自较小的签名大小。每个中继可以服务数十个或数百个节点,这取决于它提供的资源。
节省验证时间
fortran中读取多个文件 :请问如何将文件名循环起来,一个程序块就把2、3、4的都计算了。
将文件名读到一个字符数组去skt区块链,在对字符数组循环skt区块链!skt区块链!
skt区块链的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于sol 区块链、skt区块链的信息别忘了在本站进行查找喔。
标签: #skt区块链
评论列表