polygon链佛萨奇2.0,FORGE循环仪中使用的矩阵大小为3×1和2×2。3×1矩阵本质上很简单,只需要填充三个位置即可。2×2矩阵从第一层的两个位置开始,然后扩展到第二层的四个位置。职位通过直接和间接招募Forsage会员来填补。一旦矩阵中的所有位置都被填满,就激活循环佣金。从矩阵出来的位置也将输入相同大小的新矩阵。
AES的基本原理是:AES的加密公式为c=e(k,p)其中k是密钥,p是明文,c是密文。
AES加密明文的过程是将明文分组,每组128位长,然后逐个加密明文,直到所有明文都被加密。密钥的长度可以是128、192或256位。在加密函数e中,执行一个round函数,除了最后一个函数外,前一个函数是相同的。
以AES-128为例,建议加密轮数为10,即前9轮执行相同的操作,第10轮执行不同的操作。不同密钥长度推荐的加密轮数不同,如下表所示。#加密时,明文按128个单位分组,每组16个字节,按从上到下、从左到右的顺序排列成44的矩阵,称为明文矩阵。AES的加密过程是在一个44大小的矩阵中进行的,称为状态矩阵。状态矩阵的初始值是明文矩阵的值。在每一轮加密之后,状态矩阵的值会更改一次。执行圆函数后,状态矩阵的值就是密文的值。从状态矩阵中得到密文矩阵,然后将密文矩阵依次提取到128位。
Solana是一个新的区块链,专注于性能。它支持像Ethereum那样的智能合约,他们称之为程序。你可以使用Rust开发[4]这些程序,但现在有一个新的项目,将Solidity编译为Solana程序。换句话说,你现在就可以把你用Solidity写的合约部署到Solana上了。
当然,Solana上的交易成本只是以太坊上的一小部分。那么,这一切是如何进行的呢?
交易排序(历史证明)
Solana最大的特点是它的历史证明(PoH),它是基于一串sha256哈希值作为时间的证明。其背后的想法是,要计算hash300,必须先按顺序计算hash1,然后hash2,以此类推。这是因为哈希值的输出是无法预测的,每个中间结果都会自动成为下一个中间结果的输入。
最新一代的CPU在计算sha256时速度非常快,但同样必须按顺序进行。而这就是为什么人们可以肯定不会有一个定制的ASIC,它的速度是100倍。
因此,当一个节点收到用hash300签名的交易时,它将知道这些交易将被放在hash200之后,但在hash400之前(假设100个hash为延迟)。这与ETH2.0使用的可验证延迟函数(VDFs)的概念很相似。区别在于证明的验证,对于VDF来说,验证的步骤要比创建证明复杂得多,而对于PoH来说,需要重新计算每个哈希值。那么,如何才能有效地完成PoH验证?
幸运的是,PoH证明验证,与PoH证明创建不同,可以并行化。证明必须包含每个中间哈希值,然后每个中间哈希值的计算可以被并行验证。这在现代GPU上是可以非常有效地实现的。当然,这样做的缺点是证明尺寸非常大,而且对Solana验证器的硬件要求普遍较高。好处是性能,因为它减少了信息传递的开销+延迟,因为提供了一个预先确定的交易顺序。
新的交易捆绑在一个批次中,并乐观地[5]通过UDP从当前的领导者流向所有其他验证者,其中每个验证者收到捆绑的不同数据部分。在下一个步骤中,验证者相互之间共享缺失的数据集,所有这些都是并发的、不间断的、流式的,从而获得非常高的性能。
在Solana上达成的共识(权益证明)
但PoH并不能解决共识问题,为此Solana使用了PBFT(实用拜占庭容错[6])的一个版本,它与Cosmos的Tendermint共识算法(这里[7]是一个很好的视频概述)称为Tower BFT[8]。但是,由于Solana可以使用PoH作为其区块链时钟,PBFT的共识超时可以直接用这个编码。
所有先前的PBFT投票的超时时间随着每一个新的投票而翻倍。想象一下,在过去的12秒内,每个验证者都投了32次票的场景。12秒前的最后一票现在有2³²个时段的超时,或大约54年的PoH时间。或者换句话说,你必须在CPU上计算sha256哈希值54年,才能够回滚那次投票。