Chia为何在绿色之战中与比特币竞争

2021-06-07 03:00:00

最近,硬盘受到了中国矿工的广泛追捧,并开始流行起来。无论是固态硬盘还是机械硬盘,尤其是大容量硬盘,如固态2T/4T、机械硬盘8t/10t/12t/14T等,都被炒到了价格的两三倍。在市场上很难找到一张磁盘。据说希捷未来硬盘的订单已安排到6月和7月。我们知道,创宇区块链安全实验室专注于Chia,并从共识机制和存储容量的角度分析了这一技术现象。是什么让硬盘市场如此疯狂?Chia的中文名为Qiya,由brancohen于2018年推出,并宣布将用一种新的环保数字加密货币挑战比特币。众所周知,比特币开采消耗了大量的电能,这与绿色相去甚远,造成了大量电能资源的浪费。据统计,比特币开采一年耗电量超过整个阿根廷。在奇亚的官方网站上,我们可以看到奇亚的标志和配置都是绿色的。

Chia用什么来挑战比特币?本文不讨论采矿的细节,而是从Chia的共识机制来解释这个项目。Chia是一个全新的公共链,不同于以往的POW或POS,它提出了时空证明的概念,即时空证明。希望在保证安全的前提下,降低“采”的能耗,体现环保。事实上,在中国的制度设计中,用“农”来代替“矿”来重建其绿色理念。Chia的共识机制-时空证明。对于一致性算法,我们并不陌生POW和POS。在分布式一致性系统中,系统的运行依赖于一种特定的、可验证的、稀缺的(不是无限的)资源来抵抗sybli攻击。POW和POS的稀缺资源分别是计算能力和公平。在时空证明(PEST)一致性算法中,Chia将存储空间作为稀缺资源。由于存储空间不是无限的,他们认为空间证明是比特币最初的“一个CPU,一票”的理想替代品。例如,具有300 gib的用户有三个票证,而具有500 gib存储容量的用户有五个票证。这里的“投票”是指赢得和验证区块链上区块的机会。在Chia的一致性算法中,仅仅将空间作为稀缺资源是不够的。因此,pest共识算法引入了时间作为另一种稀缺资源。该算法创建了一个可验证的延迟函数作为时间流逝的证明。通过时间和空间的结合,Chia构建了这样一个挖掘场景:用户将数据存储在硬盘上一段时间,获得区块计费权的机会与分配空间的大小成正比。该机制允许所有普通用户以类似的方式参与抽奖,无需任何特殊的硬件、资金和注册。如何证明Chia的存储容量?验证器向验证器发出质询,然后验证器向验证器证明在某个时间,验证器保留了一定的存储空间。空间证明分为绘图、挖掘和验证三个阶段。

首先,prover绘制或分配部分硬盘空间(1);然后利用空间证明(2,3,4)对查询进行响应,实现挖掘过程。验证器检查证明是否对查询有效。绘图过程是硬盘容量的初始化过程。挖掘用户是指拥有至少100gib可用空间的任何人,并且可能存在拥有大量未使用空间的企业。存储容量没有上限。绘图过程可以持续几个小时到几天,只需执行一次。初始化的空间被一个名为plot的文件占用。绘图文件的大小由参数K决定,其中占用的空间是780k?2公里?最小K值为32,即文件大小为101.4gib。从chia1.0开始,快速商用计算机可以在6小时内创建k32图形文件。对于单核CPU和几GB内存的速度较慢的计算机,此过程可能需要24小时。以k=32为例,经过上述操作后,绘图文件包含7个随机数据的查找表,每个表有2K个条目。表I包含表I的两点?1(上表)。最后,表1中的每个条目都包含一对0到2K之间的整数,称为“x值”。空间证明是一组具有一定数学关系的64x值。一旦验证人完成了图形文件的生成,他就可以准备好接受挑战并创建证书。这种一致算法的吸引力在于它是非交互式的:创建图形文件的过程不需要任何形式的注册或互联网连接。与pow(工作证明)算法类似,在获得奖励之前,任何人都不能修改区块链。挖掘过程的目的是通过发出一系列问题来证明挑战者按照共识中规定的方法使用了一定的空间。当挑战者(挖掘用户)收到查询时,他们需要检查自己的绘图文件,生成证明,并将任何获胜的证明提交给网络进行验证。每一轮查询过程都可以抽象为一个查表问题。每个质询以256位二进制序列作为输入,而质询者则期望获得一个证明作为输出。挑战者通过从上面描述的生成的表7中读取一系列值来响应挑战,指向表6中的两个条目,依此类推。最后,Challenger得到整个x值树:这个过程需要读取表7一次,读取表6两次,依此类推。假设用户使用的是慢速机械硬盘,搜索时间为10ms,整个搜索过程大约需要640ms,整个过程涉及的数据量非常小,与图形文件的大小无关。因为这个过程产生的大多数证明都不够好(下面讨论),不能提交到网络进行验证,我们可以优化这个过程,即只检查树的一个分支,这样只会生成两个X值(不是整个X值树),具体取决于任务。然后,我们将以这种方式生成的x值散列为256位字符串,以确认证明是正确的。在散列这些x值之后,我们得到质量字符串,它是一个长度为256位的随机值。通过将此值与难度系数和绘图大小相结合,可以生成所需的迭代值。如果该值小于某个数字(表示挖掘成功),那么我们将查找整个popspace。经过优化后,在慢速硬盘上查询分支的时间减少到读取和搜索的7倍,约为70ms。

对于查询过程,进一步的优化方法是使某些比例图不满足每个查询的要求。这种方法称为“绘图过滤器”。例如,查询字符串和绘图是必需的,ID以9个零开始。此要求对所有攻击者都是一致的(除了重新锁定的攻击者),因此是公平的。这使得挖掘几乎不消耗任何资源,而且每分钟的磁盘读取量非常小。Chia asset用户已经使用单个raspberry PI设备实现了多个PIB存储。根据奇亚共识算法白皮书,他们假设用户使用的是低成本低速机械硬盘,因为它们的价格相对便宜,而且读取速度与挖掘效率无关,这些用户不需要使用固态硬盘。但是,可以使用固态驱动器或内存进行更快的打印。Plotkey是存储在图形文件中的私钥。通过对图形文件的公钥和矿池的公钥进行哈希运算,对plotid进行签名。要创建具有空间证明的块,需要同时使用plotkey和poolkey进行签名。因此,创建图形文件不会对池产生影响。实际上,plotkey是通过2/2bls将存储在plot中的本地密钥的公钥和存储在挖掘软件中的密钥聚合而获得的。为了安全高效,证明者可以通过这个密钥和签名方案运行集中式服务器。服务器可以连接到存储许多地块的“收割机”。挖掘过程需要验证者的密钥和本地密钥,但不需要池密钥,因为池签名缓存可以重用许多块。验证过程要简单得多。在挑战者成功创建空间证明之后,验证者可以执行一些散列操作,并与证明中的x值进行比较,以确定证明是否成功。回想一下,我们已经证明了证明是一个由64个x值组成的列表,每个值都是k位长。对于k32,它是256字节长,所以它非常紧凑。然而,尽管验证过程非常快,但对于以太坊上的可靠验证来说还不够快,因为验证过程需要blake3和chacha8操作。