找回密码
 立即注册
  • QQ空间
  • 回复
  • 收藏

QTC:区块链3.0 WEB3的基建

区块链巴士 2022-5-11 16:28 11189人围观 资讯

一,BTC:区块链1.0, 分布式的价值



BTC是一个去中心化的货币体系。BTC的区块链技术第一次在分布式数据库引入了共识机制:Proof of work的工作量证明,通过奖励原生bitcoin激励参与者成为参与节点,确保账本一致。BTC是一个任何人都可以参与记账的账本,但是没有任何人结合能够拥有这个账本,所以也没有人能改变这个账本上的记录,第一次通过技术的手段实现去分布式的货币体系,转移价值。 你可以与世界上任何一个人进行交易或者转账,只需要知道对方的BTC地址即可,不需要确认开户银行甚至提供居住地址。


POW的共识机制解决了信任问题,不需要相信某一个人或者机构(这将给予他们巨大的权利)。 每一个人都可以参与BTC的网络,成为节点一起记账,一个节点只有在计算出加密算法的数学难题后才能记账并获得全网的共识,保证同一个BTC不会被用两次。如果有人想要恶意攻击网络,比如说把1000个BTC划到自己的账本上,那需要51%的网络的节点同同意才可能完成修改。而现在BTC的参与更像是军备竞赛,加入网络的壁垒变得越来越高,想要掌握51%的节点更是难上加难,保证了网络的安全。所以BTC作为分布式的价值越来越被更多的人认识,获得全球共识。


但是,BTC的可开发空间有限。 如果想要在BTC网络上开发应用,基于POW的比特币只给了开发者两种选择,分叉或者在原有的代码上进行开发。选择分叉的需要花费大量保持原代码的运行,而且在2008年创建的BTC的脚本语言过于原始,难度较高;选择在BTC网络上开发的话,BTC的网络层、共识层和应用层都混合在一起,而且BTC支持的简单的脚本编写基本只适用于交易,很难在上面继续开发其他的功能。


二,以太坊:区块链2.0,应用的爆发



以太坊带来的智能合约打开了应用场景的开发空间,区块链可以被更多的主流人群采用。 以太坊虚拟机,Ethereum Virtual Machine 模拟了完整硬件系统功能的处理系统,通过这个虚拟机可以为应用程序提供运行,也就是我们看到的智能合约。开发人员只需要通过代码告诉智能合约需要做什么,怎么做,剩下的只需要智能合约自己去执行就可以了。智能合约解放了应用层的开发空间,开发人员可以构建各种可供用户使用的应用,进入区块链2.0时代。


但是以太坊依然面临平衡的问题,即可扩展性,可用性,和独立性的问题。现有的部署在EVM上的app的DAPP,本质上是在争夺链上有限的区块空间,可扩展的空间受限:需要处理各种类型的EVM只能做普适的优化,但是不同的应用场景却有不同的需求,比如说Defi需要快速确认,然而NFT的应用需要的是存储空间,所以以太坊不可能适合所有的应用场景,可用性天花板较低:基于EVM的所有DAPP都是需要依赖以太坊的底层环境,因为EVM是部署在以太坊网络上的每个节点,DAPP需要修改的话还要受限与底层以太坊网络是否能兼容。一旦部署智能合约,开发者基本上只能依靠合约自主运行了。


EVM真正开启了区块链作为底层技术支撑的应用场景空间。像是苹果IOS的系统给予了开发者创作的空间,让手机从一个单一的通讯工具变成了包含社交,娱乐,工作的智能工具。以太坊的EVM作为智能合约的运行底层,也赋予了开发者无限的创造空间,带来了我们现在看到的去中心化的金融系统Defi,提供确权的NFT,以及去中心化的游戏经济体gamefi。


但是,随着这些应用获得越来越多的流量和用户,比如日活达到200万的Axie Infinity游戏,大约每秒处理15笔交易的以太坊公链显然无力承载如此庞大的流量。同时智能合约升级也十分困难,且难以修改,使用智能合约的应用也无法快速迭代提供更好的用户体验。同时其他公链也开始形成自己的生态,用户在每个公链都持有一定的资产,但是跨链转移资产依然面临诸多不便。


三,QTC:区块链3.0,WEB3的基建


项目名称:QITCOIN


技术发展贡献方向:

在区块链的存储赛道上做Web3.0基础设施服务,打造有效信息聚合器


解决的问题:


中心化搜索引擎的问题

分布式搜索引擎不会在未经人们许可的情况下收集他们的数据(或强迫他们同意使用该解决方案),而是保护用户的隐私。因此,搜索可以保持私密性,而不需要服务提供商跟踪用户并将其数据传输给第三方广告商。


同时,通过使用区块链技术,分布式搜索引擎可以为用户提供透明、抗审查的体验,任何人都可以不受任何限制地使用该解决方案。


此外,虽然分布式搜索引擎会收集一些数据–这些数据大多是帮助开发者提高性能的信息(如位置、搜索时间、语言设置),但这些信息会被加密并保存在维护网络的社区成员(矿工或验证者)的电脑上。


分布式搜索解决方案的另一大特点是,它们没有中间商,这意味着广告商可以获得更多的价值。连接广告商和消费者的区块链项目通常会为用户提供激励措施,让他们与企业进行合作。


算力集中化问题:

Qitchain Network通过对硬盘存储空间加以利用,将集中化的算力打散,从而避免垄断的发生。Qitchain Network通过预计算的方式,将每一次的碰撞结果写在硬盘中,通过这个方式对计算进行重构。只需要硬盘足够大,装足够多的“答案”,就可以让任何一个加密货币爱好者参与到出块的生产环节中,并且不需要重复的大量计算。算力集中化的问题,Qitchain Network通过空间换时间的方式进行解决。


Qitchain Network使用的CPoC共识,是一个非常去中心化的共识算法,相对于 PoW引起的资源浪费,CPoC 将会开拓一个基于硬盘容量证明的新时代。CPoC使用硬盘来作为共识的主要载体,让普通人也可以通过自己的计算机参与到共识中,让每个人都能参与到去中心化的革新之路。


元资产集中化问题:

我们定义原资产为区块链系统自带的原生资产,如比特币为BTC,以太坊为ETH等。

Qitchain Network的CPoC共识机制以硬盘资源为凭证,每个参与者都有机会成为出块者,保证了高度的去中心化与公平。


能源消耗问题:

在Qitchain Network的共识过程中,矿工只要按照网络需求对硬盘中已存在的数据进行短暂的检索即可,剩余时间系统保持空闲,共识模型保证了系统工作的低功耗


传统PoC共识型区块链系统激励设计问题:

Qitchain Network在设计激励的时候使用了双重激励的方式,可以通过条件或者非条件的方式进行挖矿,以此调节各参与方的收益。Qitchain Network采用条件的方式来保证链的持续发展以及新的矿工引进,以这样的方式来维护长期的社区正向发展。


项目的总体规划:

Qitchain Network的生态体系建设规划可以用“三大核心、两条辐射带”来概括,包括核心支撑Qitchain Network、核心服务Qit Search、核心世界Qit Metaverse、服务辐射带、技术辐射带,整体构建如下图所示。


Qitchain Network的未来发展规划将分为三个阶段,分别是:


1) 第一阶段:有效数据与网络安全

开始基于 CPoC共识机制的有效挖矿;

设计并实施池化挖矿协议的标准;

维护稳定的矿工群体;

为所设计的生态体系中的基础型服务进行概念验证工作。


2) 第二阶段:实现初步的存储、检索

l 完善图灵完备的虚拟机,让智能合约可以实现更多的功能;

l 升级CPoC共识机制至CPoC+,建立完善的去中心化存储标准;

l 建立开发者平台,让更多的人参与到生态建设中;

l 完成初步的去中心化搜索引擎,提供内容服务及信息检索;

l 服务辐射带形成一个较为完善的体系;

l 开始技术辐射带与Qitchain Network、Qit Search的尝试性融合。


3) 第三阶段:全面生态建设

l 完善去中心搜索引擎,实现信息聚合、搜索即服务等能力;

l 服务辐射带形成一个完整的服务体系;

l 基于Qitchain Network、Qit Search、两条辐射带建设Qit Metaverse。


目前的项目发展进度:



公链的构建

首先,所有解决具体应用场景的应用都需要构建在底层的公链上,具体来讲,对应用开发影响最大的是公链偏上层的应用层,更偏向公链底层的网络层和共识层提供的是应用运行的底层性能,具体的底层设计只要在保证性能的情况下不会对应用程序本身产生更多的影响。


但是,如果要达到主流采用的应用的话,可能需要整个公链单独为应用服务。比如说21年爆火的链游Axie在,选择了开发自己的侧链Ronin处理大量交易。如果继续依赖承载着其他Defi、NFT等交易活动的以太坊来处理的话,不仅会无法处理Axie游戏的业务,还会导致以太坊网络的拥堵。毕竟以太坊的TPS 仅仅是10 。所以,长期来看,大量的应用堆积在一条主链上去共享资源既无法满足应用,还拖垮整个网络。单一公链不可能为每一个应用场景都做到最优,不同赛道的项目应该选择在适合自己的公链生态进行上构建,同时以太坊上应用的爆发也让开发者意识到,不同的应用场景对公链的要求也不一样,比如确认时间的速度对Gamefi项目的影响一定大于Defi的项目。理想情况下,考虑未来的大量使用的场景的话,每一个应用应该有独立的一条区块链。但是,开发公链的底层既没必要也浪费资源,目前位置公链的设计方案已经大体相同,而且开发工作量巨大,并且实际能做到的人也不多。


公链的组成:


我们可以看看从头搭建一个区块链需要什么:

1. 数据层:数据存储的技术, 主要是基于密码学的数据存储,实现交易安全,包括Merklle树、数字签名、散列函数、非对称加密技术等,将数据存在一个区块再通过链式结构,结合时间戳的技术按顺序相连接组成一条区块。2.网络层:Peer-to-peer点对点的网络中节点沟通的机制,影响区块链的信息确认的速度,也决定了区块链的可扩展性3.共识层:统一记账的方式,让分散的节点同意并确认账本的记录,确保区块链的安全性。4.激励层:通过经济激励模型鼓励节点来参与区块链,也就是常说的挖矿机制,是区块链运行的基础5.合约层:由以太坊为代表的智能合约可以开发并自动执行应用程序6.应用层:面向用户的产品。


QitChain的技术架构:


QITChain 系统的系统架构:



1、应用层。应用层有三个模块:API、权限控制和智能合约,API 对外提供以 SQL-like 语言访问区块链的方式;权限控制对请求权限进行验证,

QITChain 通过多通道机制保护用户隐私;智能合约用于创建 DAPP(去中心化应用)。


2、查询层。查询层接收客户端的查询请求,进行查询解析和查询计划的生成、执行,并将查询结果集返回给客户端。编译器负责将请求编译成内部表示,即一棵解析树,执行器负责生成和执行查询计划。


3、存储层。存储层负责数据结构维护与数据存储,即索引的创建与维护、验证结构的创建与维护、缓存管理、元数据维护、区块存储。在 QITChain 中, 存储层主要包含四个模块:缓存模块、索引模块、元数据模块和区块存储模块。


4、共识层。为了保证区块链节点间区块数据的一致性,参与者需对区块数据达成共识,共识层通过共识协议保证节点间数据的一致性,在不同的应用场景下可以使用不同的共识算法以满足不同需求。


5、网络层。网络层负责消息传播以及数据验证,QITChain 采用 Gossip 协议,Gossip 协议不仅广泛应用于分布式数据库的故障检测和成员检测,也应用在很多区块链系统中以实现区块传播和区块数据恢复。


QITChain 中交易执行流程如下:


用户首先根据应用需求通过编程接口在QITChain 上部署智能合约或创建区块链表;然后,对于使用智能合约部署的应用,用户可以为不同的交易类型创建表模式以添加关系语义;之后,用户通过发送交易调用智能合约或插入区块链表数据以更新区块链,用户发送的交易将根据时间周期或交易数量阈值被打包成区块并进行共识;最后,用户可以使用SQL-like 语言查询区块数据。


共识层设计


共识服务用于保证各个节点之间区块数据的一致性。在 QITChain 中,共识模块接收客户端发出的交易请求,将其打包成区块并运行共识协议以在多个节点间对区块数据达成一致,不同的共识协议可以应用在不同的应用场景下,以满足不同需求。在公共区块链系统中,任何人都可以加入网络,通常采用基于算力的共识协议,如 POW,POW 可以防止女巫攻击,然而,这种方法浪费了大量的算力。部分工作为了提高效率,对 POW 进行了优化,提出了新的共识协议,如 DPOS等。在联盟链中,节点数量有限且参与者经过身份验证,因此部分系统采用PBFT等基于通信的协议作为共识机制以提高共识性能。若假设系统内节点不作恶, 则可以使用 RAFT 或 Paxos 等非拜占庭容错的共识协议进一步提升性能。Qitchain Network使用的CPoC共识,是一个非常去中心化的共识算法,相对于 PoW引起的资源浪费,CPoC 将会开拓一个基于硬盘容量证明的新时代。CPoC使用硬盘来作为共识的主要载体,让普通人也可以通过自己的计算机参与到共识中,让每个人都能参与到去中心化的革新之路。


名词与概念


Shabal:Shabal是Qitchain Network中使用的加密/散列函数的名称。与许多其他类似SHA256算法相比,Shabal是一个相当沉重和缓慢的加密。因此,使它成为Qitchain Network容量证明的良好加密方案。因为我们存储预先计算的哈希值,同时它仍然足够快以进行较小的实时验证。Qitchain Network使用的是Shabal的256bit版本,也称为Shabal256。


Hash/ Digest:散列或摘要是Shabal256加密的32Byte(256位)长字符串。


Nonce:生成Plot文件时,会生成一些名为nonces的字节。每个随机数包含256千字节的数据,矿工可以使用这些数据来计算截止日期。每个nonce都有自己的个别编号。该数字的范围可以在0到18446744073709551615之间。在创建nonce时,该数字也用作种子。因此,每个nonce都有自己独特的数据集。一个绘图文件可以包含许多个nonce。


Scoop:每个nonce被排序到4096个不同的数据位置。这些地方被称为scoop number。每个scoop包含64字节的数据,其中包含2个哈希值。这些哈希中的每一个都使用最终哈希进行xored(异或)(我们在生成nonce时得到最终哈希)。


Plotter ID:创建Plotter文件时,它将绑定到特定的BHD帐户。创建随机数时将使用 Plotter ID。因此,即使他们使用相同的nonce数字,所有矿工都有不同的Plotter文件。


参与网络的工作流程

1) 绘图(Plot) :矿工在本地硬盘生成Plot文件,用含有自己公钥的哈希值,综合Shabal算法填充硬盘。硬盘容量越大,填充的哈希值越多,赢得难度竞争的概率越高。哈希算法采用Shabal256算法,具有抗ASIC特性。

2) 转账(Transaction) :钱包之间进行转账操作。

3) 打包(Forging) :矿工监听P2P网络,每当收到一个块,就开始下一块的打包过程。生成一个区块后,把区块的哈希值发给矿工,矿工寻找最匹配的Nonce,钱包收到 Nonce后,把Nonce转成Deadline(时间),然后等待这个时间结束后,把块广播出去。

4)验证(Verify) :收到区块之后进行验证。

生成nonce

创建nonce的第一步是制作第一个种子。种子长16Bytes,包含Plotter ID和nonce number。完成后我们用 Shabal256 函数生成第一个哈希值。



作为nonce中的最后一个哈希:#8191,把哈希#8191附加到起始种子,作为下一轮Shabal256计算的种子。



创建了两个哈希:哈希#8191和#8190。将Hash#8190附加到最后一个种子上,作为新种子。



创建新哈希。对于全部8192个哈希,继续将哈希附加到,生成新新种子。迭代128次之后,种子长度超过4096字节。剩余的迭代,只读取最后4096个字节。



生成最终哈希(Final Hash),用生成的8192个哈希,创建最终哈希。全部8192个哈希值和前16个字节作为种子,经过Shabal256函数计算后,生成最终哈希。



最终哈希单独异或(XOR)所有其他哈希。



PoC格式

进行POC构造过程中,在流程结束需要进行数据混洗,数据混洗的流程如下所述:

1) 将nonce分成两半,第一部分是范围0-2047的nonce,第二部分是范围2048-4095的nonce;

2) 其中范围0-2047的被称为低scoop,范围2048-4095的被称为高scoop;

从低scoop中取出第二个散列,并将之与高scoop范围中的镜像 scoop中的第二个散列进行交换。镜像 scoop 是这样计算的:



Plot结构

参与网络时,从一个或多个plot文件中读取nonce。服务商软件打开一个plot文件并寻找scoop位置来检索scoop数据。

如果plot文件未经优化,则scoop将位于多个位置。下面示例服务商读取#403 scoop。



服务商花费大量时间在存储上寻找位置,才能读取scoop,非常低效。为了提升效率,可以优化plot数据格式。为此我们采取了如下的优化方案:

重新排序plot文件中的数据,把相同scoop#的数据放在一起。将plot文件分成4096个部分,根据scoop数量分割所有的nonce数据。当服务商想要读取Scoop 4096时,它只寻求一次并按顺序读取所有数据,比较高效,符合机械硬盘线性读取的特性。



CPoC共识机制

名词与概念

Shabal/Sha256:Shabal/Sha256是Qitchain Network中使用的加密哈希函数。Shabal 是一个相当沉重和缓慢的加密哈希函数,与SHA256等许多其他函数相关。因此,它得以成为Qitchain Network的加密算法。这是因为我们存储了预先计算的哈希值,并且它仍然足够快以进行较小的实时验证。

Deadline:当开始运算并处理Plot文件时,最终会产生称为deadline的数值。这些值表示在允许锻造区块之前,自上一个块被锻造以来必须经过的秒数。如果没有其他人在这段时间内锻造一个区块,你可以锻造一个区块并获得区块奖励。

区块奖励:如果服务商幸运地挖掘到了一个区块,他将获得QTC作为奖励。这被称为区块奖励。每产生568288个区块后区块奖励减少50%。

Base Target:Base Target是根据最新的288个块计算得出的,该值调整了服务商的难度。基准目标越低,服务商越难找到数值小的deadline。它的调整目的是尽量让区块平均间隔时间为3分钟。

网络难度:简称 NetDiff,是一个正数值,可以看作对Qitchain Network存储空间的评估,单位为Byte,这个值随块而变,以Base Target为基准。

区块高度:每个块都有一个单独的数字编号,每个新生成的块都会在前一个块的编号上+1,此编号称为区块高度,用于标识唯一的区块。

生成签名:生成签名是基于先前的块的merkle根和区块高度计算获得,服务商使用该值来产生新块,生成签名长度为32字节。

区块合法性检查

区块链作为分布式系统中的一种,同样存在分布式系统不存在唯一的全局时钟问题。在Qitchain网络中,不同的服务商对不同的节点广播具有不同deadline的区块,不同的节点的当前时钟也无法完全一致,因此节点需要一套机制以应对同步区块的合法性检查问题。

BTC系统采用每个区块中都设置一个时间戳的方式来形成一个逻辑上的“时钟”,大家都认可这个“时钟”而不是自己的时钟,在实践中达到了非常稳定安全的效果,因而Qitchain Network也继承了这种解决方式。

在Qitchain网络中,区块是否成功上链与其计算得出的deadline直接相关,而校验区块合法性的过程可表示为:

系统直接比对当前区块的deadline与当前区块和前驱区块的时间戳差值,只有deadline小于时间戳差值才算是一个合法的区块。

Deadline合法性校验

在服务商绘图过程中,通过nonce id与account id两个参数可以完全确定的生成两个Nonce文件。所以矿工并不需要向节点发送大小为256KB的Nonce文件,只需要在参与出块时,将区块内容与这两个参数发送给钱包节点,由钱包即可计算出整个Nonce值,同时由全网每个节点收到每个区块后都会通过计算此Nonce来计算其deadline是否合法。

由于服务商绘图的过程无需与其他网络节点进行通信交互,这意味着在区块链系统这种庞大体量的分布式系统中需要更少的交互、更简单的协议以及更高的可靠性。

分叉选择

在PoW共识的区块链系统中,处理分叉的逻辑非常简单,所有诚实的节点都应该认为当前网络中的最长链是主链。但Qitchain的挖矿过程并不需要PoW共识那样密集的CPU运算,服务商往往可以在30秒内完成磁盘的遍历,计算得出的deadline才是真正完成对区块时间的控制,所以主链的判断并不能只依据于最长链。

在Burst中,体现硬盘空间占用量的指标是累积多少有效的deadline。在一个区块的块高加一的所有竞争者中,产出deadline越小的区块的服务商,概率上使用了更多的存储空间,因而获得出块权。基于此点,在Qitchain网络中引入了难度累计的概念,难度累计的计算方式可表示为:

通过难度累计这一指标直观的反映了当前链上使用存储资源的数量多少,从而让诚实的节点选择难度累计值最大的一条链。

经济模型:

参与者

Qitchain网络的参与者可分为六个角色,分别是池子、存储服务商、持有者、钱包、交易所以及硬件服务商。

详情:www.qitchain.net

我有话说......