服务于DePIN的区块链基础设施的设计思路

  • maodaishan
  • 更新于 2024-05-28 10:25
  • 阅读 1011

本文描述了设计一个面向DePIN提供区块链底层服务的基础设施应考虑哪些问题,以及如何完成设计。 该方案基于BoAT3 Oracle。

<!--StartFragment-->

  1. 概述\ 随着模块化区块链技术的落地,区块链解决了困扰已久的性能问题,这为需要高吞吐量,服务于海量用户的DApp的落地创造了条件。DePIN是典型的这类场景。DePIN属于RWA,其价值相对稳定,可预期,且能将区块链服务带向更广泛的用户,成为区块链大规模使用的推手,让区块链服务于现实世界,因此成为热门技术。\ 然而DePIN项目本身横跨IoT设备,区块链,传统互联网服务,经济学等多个领域,涉及硬件,软件,密码学等多种技术,从头到尾地构建DePIN项目是件复杂,困难的工作。本文尝试分析DePIN项目的运行原理,并介绍如何使用DePIN App Chain快速构建DePIN项目。
  2. DePIN项目运行原理

DePIN项目的运行原理一般为:

  1. PoPW生成和上传:矿工们购买矿机并搭建DePIN项目网络。矿机一般是具有联网能力的,能提供特定服务能力的IoT设备(如太阳能电池板,信号基站等)。IoT设备在工作中会收集其工作的证明,称为PoPW(Proof of Physical Work)。IoT设备将该PoPW发送至DePIN网络。
  2. PoPW的验证和保存:DePIN网络中使用技术方法验证该PoPW的正确性,有效性。这一般是通过链下的Oracle服务完成的。验证完成后,正确且有效的PW(Physical Work)数据可能会被保存下来供后期追溯和验证。因为IoT设备一般数量巨大,PW总数据量一般会很大,因此PW数据一般被保存在链下(如FIL,Arweave等去中心化可信存储网络),并将其抽象汇总后,将批量数据的承诺保存在链上。
  3. 奖励发放:可信Oracle或链上合约通过PW数据计算出矿工奖励,并完成发放。奖励可能需要矿工主动在链上领取,也可能在链上直接转账,这取决于信任和成本的设计。
  4. 奖励兑换:矿工将获取的链上Token奖励通过CEX,DEX等渠道兑换成法币,覆盖其购买和运行矿机的成本,并获取利润,形成价值飞轮。

让我们拿起放大镜,来把上述流程看的更仔细一些!

2.1 PoPW的生成

IoT设备在工作中会不断产生PW数据,如太阳能电池板的发电数据,基站的服务数据等。但如何能让DePIN网络相信这台IoT设备矿机没有凭空捏造自己的数据,甚至有人在没有矿机的情况下,凭空创造出这些数据呢?一般有两种方法:

  1. IoT设备都包含通讯模组,通讯模组中一般会包含TEE模组,TEE模组中可以安全地保存私钥并进行密码学运算。项目方可以在生产矿机时在TEE内生成非对称密钥对(公私钥),并取出公钥,将公钥在区块链上注册为DID(此工作也可由IoT相关芯片生产商等完成)。由于TEE的安全设计,项目方和矿工均无法获得其私钥。\ IoT设备生成的PW数据可以被发送至TEE,由其内保存的私钥签名后,签名数据即为PoPW,将此PoPW发送至Oracle后,Oracle可通过链上注册的设备DID查询到该设备的公钥,从而验证签名的正确性。\ 该方案原理简单,安全性可信度都非常高,但对IoT设备采用的通信模组有一定要求。幸运的是BoAT3 Infra已经适配了多种通信模组芯片,可以满足各种DePIN项目对IoT设备的需求。项目方仅需在其矿机中使用适配的通信模组即可。
  2. 市场上有很多IoT平台,以及云服务厂商提供数据存储加工功能。IoT设备生成的数据会被送至这些平台存储和处理。可以由这些平台做信用背书,送至平台的原始数据由平台的私钥签名后,作为PoPW使用。\ 该方案要求送至平台的,未经加工的原始数据被平台签名作为信任来源。因此需额外信任平台不会作恶。安全性略低于方案1,但适用范围更广。

2.2 PoPW的验证:BoAT3 Oracle

DePIN网络中的IoT设备矿机数量一般很多,如上万台,甚至上百万台。因此生成的PoPW数量也非常巨大。这些PoPW在链上验证会产生巨大的成本,且没有必要。因此这些数据一般是通过Oracle完成验证的。BoAT3 Oracle可以处理上述1,2,方式产生的PoPW。其原理如下:

PoPW被传至BoAT3 Oracle后,Oracle通过链上DID合约获取其公钥,使用公钥验证PoPW合法性。如果合法性验证通过,就会将PW数据传输至Connector,表示该PW已被认可,Connector中的运行逻辑由DePIN项目方决定,可以将该PW数据发送至链上合约进行奖励,也可以按照奖励规则收集到合适数量/时间的PW后进行奖励。

PW数据量一般很大,不会直接将PW数据全部上链,而是将其保存在去中心化存储网络中(例如FIL, Arweave),计算出其数据承诺(如将数据构建Merkle树,Merkle树根即为数据承诺),将数据承诺以及获取数据的方法放至链上。每次奖励周期均可在链下获取生成奖励的原始数据。

2.3 BoAT3 Oracle和DePIN项目脚手架

因为DePIN项目涉及到的模块相对比较多,为了便于项目开发和实施,BoAT3 Oracle提供的了几个工具供DePIN项目方使用,主要包括:

  • BoAT3 cli:用来创建基于BoAT3 Oracle的DePIN项目的命令行工具
  • BoAT3 scaffold:提供DePIN项目合约/物模型/Connector参考实现的脚手架应用
  • BoAT3 console:用于DePIN项目信息查看/购买的网站

2.4 奖励发放和兑换

奖励发放一般由Oracle完成,可以在链上直接发放;也可以将发放承诺/证明上链,由矿工在链上领取,这样可以减少链上交易,降低发放成本。

无论使用哪种方式发放,都需要向社区证明奖励的发放符合规则。每次奖励发放时,Oracle通过PW数据计算哪些矿工可以获取奖励,以及获取多少奖励。可以将所有奖励细节生成一棵merkle树,每个叶子都是一个奖励的Hash,这个Hash由奖励的期数,获得奖励的账户,奖励数量等数据组成。奖励树的树根可以和PW数据树的树根,以及其他奖励相关数据一起输入智能合约。智能合约中可以允许社区成员对奖励的分发发起并完成挑战,如果社区成员挑战成功,则Oracle抵押的Token将被罚没,并将其中可观的部分奖励给挑战者。挑战过程可以约束Oracle必须按规则完成奖励的分发。

矿工获取奖励后,可以通过DEX或CEX将奖励兑换成稳定币或提现成法币,可以补贴其运行矿机,维护DePIN网络的成本,也可以激励其进一步购买矿机,扩大DePIN网络规模,形成DePIN网络的增长飞轮。

2.5 其他PoPW模型

除了上述模型外,也有其他可用于DePIN项目的模型。例如通过区块链生成有时限的可信挑战,如每小时都在变化的随机数。该挑战会被下发至每台矿机,矿机需要在其有效时间内,结合自身的IoT工作数据完成挑战,并将其生成PoPW,发回DePIN网络。DePIN网络根据挑战来验证IoT设备的工作是否真实有效。该方案无需对IoT设备芯片生产商或IoT平台等产生信任和依赖。但如何设计完善可信的挑战机制是件很有挑战的工作,而完成挑战也许需要额外消耗IoT设备的计算能力和资源等,对设备硬件有较高要求。

3. 构建满足DePIN要求的区块链和基础设施

3.1 需求和整体架构

DePIN项目对区块链等基础设施有如下要求:

  • 性能和成本要求。DePIN项目中经常包含数以万计甚至百万计的IoT设备,这些IoT设备在每个奖励周期内都会生成很多交易。因此DePIN项目要求区块链具有高性能,高安全性的同时,还需有非常低的成本。RollUp作为模块化区块链方案可以同时满足这些要求,成为支持DePIN项目的合理选择。
  • 存储要求。PW或PoPW数据因为数量巨大,一般存储在链下,且能够被无审查地访问,有些数据还会要求长期保存。可以考虑使用可信,低成本的去中心化存储方案,如FIL, Arweave等,也可考虑使用云存储。需注意任何人均可读取数据。
  • DID服务。链上应提供DID服务,可信地保存并读取IoT设备或服务平台的信息及公钥,用来验证PoPW。
  • AA钱包服务。两个场景可能需要AA钱包服务:
  • IoT设备直接签发交易上链。很多TEE内拥有数字签名能力,可直接签发交易上链。但IoT设备的账号中一般不会有余额支付gas fee,因此需要项目方使用AA钱包代付gas fee.
  • DePIN终端用户使用。DePIN项目服务的终端用户很多不是web3用户,不熟悉钱包操作,也没有可用于支付gas fee的Token,因此需要项目方使用AA钱包代付gas fee,并提供类似于web2的用户体验。
  • 全链服务。不太可能在一条区块链上承载很多DePIN项目,而DID和AA钱包等服务都需要考虑其一致性。例如同一个IoT设备如果需要参与多个DePIN项目的服务(如项目间协作),而不同DePIN项目可能使用了不同的区块链,因此需要该设备在不同链上注册相同的DID;对一个终端用户来说,也可能希望在使用不同区块链上的DePIN服务时不需要重复注册AA钱包。因此各种链上服务需要具有全链服务能力。
  • 跨链服务。不同DePIN项目可能需要协作,提供给用户更方便的服务。这些DePIN项目可能位于不同区块链上,因此需要可信的跨链服务完成DePIN项目间协作。
  • 经济学支持。DePIN项目可能数量众多,场景各式各样,大部分项目的影响力可能并不大。如果各个项目都使用自己的Token,很可能会造成资金碎片化,用户体验也不好。因此如果能有统一的经济学机制,既可以在项目初期减少用户摩擦和扩大潜在用户群,将产品快速推向用户,又可以形成合力,提高DePIN项目整体影响力。
  • 密钥可信初始化。集成于IoT设备里的密钥需要进行可信初始化,作为PoPW信任的来源。它需要做到让矿工,项目方,云服务等各个参与方都无法获取设备私钥,但可将设备公钥提取出,提交至设备DID,后续可供BoAT3 Oracle验证PoPW。

基于以上需求,考虑支持DePIN项目的区块链和基础设施的架构如下:

整个系统是基于RollUp的三层结构,包括如下核心部分:

  • 以太坊主网。以太坊主网作为Layer 1,成为整个系统的安全,信任的来源。为L2提供DA,结算和共识。
  • RollUp L2。可以使用基于OP或ZK的著名RollUp项目,例如Optimism, Arbitrum,ZKSync等。这一层拥有高安全性和可信度,同时成本比较低。但由于其DA使用以太坊主网,所以其性能和成本尚不足以支撑大规模DePIN项目落地。\ 很多支撑DePIN项目的,跨越多条区块链的公共服务合约会部署在这一层。例如统一的经济学,无信任跨链,全链DID服务等。\ 这一层上拥有丰富的链上生态,DePIN项目可以在这一层与丰富的链上生态互动,获得如DEX,借贷等链上生态的支持。矿工们在L3的DePIN App Chain上获得的奖励可以轻松地跨链到L2层,兑换成稳定币等。
  • DePIN App Chain L3。这一层是Layer3,采用OP或ZK RollUp,其结算层为L2,使用第三方DA。其安全性和信任继承于L2。由于采用了第三方DA,其性能不再受制于以太坊L1的区块gas limit,而且成本进一步降低。性能和成本足以支撑DePIN项目大规模落地。\ 由于DePIN项目可能数量众多,因此一条DePIN App Chain可能无法支持全部项目,可能会有多条DePIN App Chain并行工作。它们可以通过位于L2的无信任跨链合约完成项目间,链间跨链协作。\ DePIN项目的智能合约,以及DID合约等直接服务于DePIN项目的合约均运行于该层。
  • DA (Data Availability)服务。采用第三方DA服务,如Celestia, EigenDA等。它们均采用DAS技术,可以保障承载的数据被完全公开给社区,避免数据扣留攻击,这对RollUp的安全来说是至关重要的。而且采取三方DA可以避免消耗以太坊L1的gas份额用于DA,是大规模链上吞吐量扩展的基础。
  • 数据存储服务。PW或PoPW数据是构建DePIN项目的基础,奖励的发放一般基于该数据计算完成;另外RollUp如果需要进行安全挑战,则安全挑战数据可能也部分来源于PW数据。因此这些数据需要被安全可信地保存,可以被追溯,被授权用户可以自由读取(一般来说是完全开放的)。\ 数据存储服务可以使用FIL, Arweave等去中心化存储,也可以使用云存储。\ 为了保证数据一定能被访问到,防止数据扣留,针对数据访问的挑战流程是必要的。

下面我们来一起深入了解这些模块,以及为什么这样设计。

3.2 为什么使用RollUp构造区块链

RollUp采用了模块化区块链设计,能在最大程度上继承结算链(如以太坊)的安全性。以扩展以太坊性能为例,从以太坊L1角度思考,L2的安全性和信任均来自于L1,应做到用户们只信任L1的情况下,仍能认为L2上执行的交易,以及交易结果是可信的,安全的;甚至L1与L2的智能合约之间可以互相调用。落实到实现层面,L2需要满足如下三个要求:

  1. L1需要知道L2上发生了哪些交易
  2. L1需要知道L2上最新的世界状态,并且L2有能力证明世界状态是正确的
  3. L1和L2之间能完成可信的消息跨链

Sequencer(定序器)是L2上的共识模块,L2上的交易都会被发送到Sequencer处理,Sequencer可能是中心化的,也可能是去中心化的。Sequencer会对收到的交易排序,并打包出块。每隔一段时间,Sequencer会将L2上这段时间的所有交易压缩后,使用calldata提交到L1,该过程称为DA(Data Availability)。Sequencer还会定期将L2最新的状态根提交到L1里的智能合约中。L2通过OP或ZK方式保证提交的状态根是正确的。

  • OP:即Optimism,乐观地认为L2上的Sequencer不会作恶,提交的状态根是正确的。但是会等待一个挑战期(一般7天),在挑战期内任何节点如认为状态根是错误的,均可对其发起挑战。如果挑战成功,则挑战者可以获得Sequencer抵押在L1上的抵押金。挑战是通过在L1上重放对L2上有争议的具体某笔交易,或某个opcode来达成的。OP技术方案可以保证该挑战能够公平可信地完成。\ L2上一般会运行着很多节点,只要有一个节点是诚实的,当它发现作恶行为时就一定会发起挑战。因此对Sequencer来说,作恶行为不仅意味着会失去L1上抵押的抵押金,其作恶提交的错误状态根也会被重置,因此方案是安全的。
  • ZK:即Zero Knowledge , 使用零知识证明技术,生成一个ZK Proof, 能够证明L2上的世界状态在应用当前的交易后,会转换为新的世界状态。该ZK Proof会被提交到L1,在L1的智能合约中被验证。如果该ZK Proof能够验证通过,则证明当前提交的状态根是正确的。

证明L2的状态根正确后,即可认为所有通过DA提交到L1的交易均被正确执行了,且执行后的状态根也是正确的。因此如果这些交易中有跨链调用交易,也是可以安全执行的。

从L2上Sequencer之外的节点来看,它们并不直接信任由Sequencer通过p2p网络发出的区块,而是信任已经通过DA提交到L1的区块,并监督这些区块后续的状态根;从L2的用户来看,他/她们也不信任L2 Sequencer直接给出的交易回执和状态,而是只相信已经被提交到L1的区块,以及在L1上被验证的状态根。因此在RollUp架构里,信任和安全是来源于L1的,而不是来源于L2。所以RollUp的安全性和可信度接近L1本身,这是一种安全可信的,效率极高的区块链扩容方案。因此选择使用RollUp作为服务于DePIN的区块链基础设施是非常合适的。

3.3 为什么使用L2+L3架构

虽然可以使用RollUp安全地扩展以太坊的性能,但是受限于EVM的性能和其顺序执行特性,即使加快出块速度,调高gas limit,单条RollUp的性能上限也并不高,一般认为在千级别。而DePIN应用所需的性能是比较高的,因此一条RollUp无法承载太多DePIN应用。

DePIN应用的场景很丰富,因此很多DePIN应用都会有定制需求,如隐私保护等。这些定制需求可能会需要在RollUp层修改来满足,而不是在合约层就能满足。因此这些DePIN应用需要定制的RollUp。

综上,我们不可能用一条RollUp就支持所有DePIN项目的需求,DePIN应用的大规模落地必定是要求多链协作的。这些协作的链之间需要一个可以信任的公共基石来进行信息的同步和交换,以及完成一些公共服务,如统一的经济学中代币的发行,我们称之为管理链,相应的,承载各个DePIN项目的链称为应用链,应用链包含多条DePIN App Chain L3链。

虽然以太坊主网是管理链的理想选择,但以它的成本比较高,性能偏低,因此以太坊上的主流RollUp L2是管理链的理想选择,如Optimism, Arbitrum等。而以管理链作为结算层的L3是承载应用链的合理选择,它们可以提供足够的安全性,性能扩展和足够低的链上成本。

3.4 DA服务

DA在RollUp里是非常重要的模块,它不仅让L1了解到L2上发生的交易,还是安全性的重要来源。以OP RollUp为例,当社区节点对Sequencer提交的L2状态根有异议,对其发起挑战时,需要在L1上重放有歧义的交易或opcode,从而确认哪一方是对的。挑战中需要在合约里提交这个有歧义的交易或opcode,此时需要使用之前提交的DA数据来验证挑战中提交的内容与DA数据是一致的。因此DA数据必须是可以被所有社区成员获取的,并且是可以被验证的。

最简单和安全的DA方案是使用以太坊L1作为DA,所有L2交易数据被压缩后,通过calldata方式提交到L1,并保存于L1的区块数据里。因此当挑战发生时,仅需从L1区块数据里便能读出所有所需的DA数据,不存在数据扣留风险。但calldata是要消耗以太坊L1的区块gas的,以太坊L1区块有gas limit,因此以太坊L1的gas limit将直接决定RollUp扩展性能的上限。按测算,以当前的gas limit计算,即使所有区块gas fee都用作DA,也仅能将以太坊TPS提升至几千级别。即使采用L2+L3的架构,仅使用以太坊作为DA,也无法进一步提升性能。因为交易数据的压缩是有限的,一笔L3上发生的交易,压缩后提交到L2,再由L2提交到L1,其压缩率并不会比L2上直接提交的交易更高。

因此服务于DePIN的RollUp,需考虑使用第三方DA。该DA需解决数据扣留攻击的风险,即发布给DA的数据必须能够全部无条件被任何人公开获取,任何DA节点都没有能力扣留住数据不对外公布。因此L3 Sequencer仅需将交易数据发送到第三方DA,并将如何获取该DA数据的方式(如Celestia上的名字空间和数据commitment)和数据承诺等提交至L2(即结算层)即可。L3上的其他节点可以在L2上获取相关数据后,各自从第三方DA获取交易数据,完成链上状态的计算和挑战等工作。通过使用第三方DA,交易数据不再大量消耗以太坊L1的区块gas,这给以太坊L1带来了近乎无限的扩展能力,这也是DePIN项目所需的能力。

DA服务一般采用DAS(Data Availability Sample)防止数据扣留,DAS一般基于Reed-Solomon编码。假设交易数据有N bytes,将N bytes交易数据转换为一个(N-1)阶多项式,交易数据就是该多项式的系数,即它们是该多项式上的N个点。在该多项式的曲线上随机抽取另外N个点,则使用这2N个点中的任意N个即可恢复原始数据。DA网络中有大量轻客户端,轻客户端会分别随机对数据进行抽样。如果第一次抽样中数据可正常返回,则证明至少50%的数据是可获取的,进行第二次抽样时数据仍可返回,则证明至少75%的数据是可获取的,抽样成功的次数越多,则数据扣留的几率越小。当不重复的抽样达到N次及以上时,则通过已抽样数据就可以恢复所有数据,不存在数据扣留的可能性。抽样失败的节点会被惩罚。

使用第三方DA服务将交易数据存储在以太坊之外,虽然流程变复杂了,安全性上需要额外信任第三方DA服务,但它可以极大降低对以太坊上gas fee的消耗,进而将以太坊的性能扩展极限提升至几乎无限,并可以极大地降低RollUp使用成本,因此是值得的。Celestia, EigenDA等均提供成熟的,高性能的DA服务。

3.5 存储服务

存储服务与DA服务不同。DA服务的目标是数据公开和分发,专门保存RollUp里的DA交易数据,服务于RollUp安全,相当于区块链的区块数据;而存储服务用于保存PW或PoPW数据,即IoT设备上生成的工作数据,主要为链下数据。

不同的DePIN项目对PW数据有不同的保存需求,有的需要有一定的隐私保护能力,需要对数据做脱敏或权限管理;有的需要长期保存数据,甚至永久保存。因此不同DePIN项目可以按自己实际需求选择合适的存储服务。

3.6 全链DID服务

不同DePIN项目间可以互相协作,构建更丰富的DePIN生态。这需要能跨项目地为每个IoT设备提供唯一标识,且能依据此标识获取关于该设备的各种数据(如密码学能力,公钥等),DID可以提供该服务。因为不同DePIN项目可能位于不同链上,因此该DID服务需要提供全链服务能力,即在系统内支持的所有链上,每个IoT设备均具有不重复的DID,且通过该DID可获取该设备的数据。

让不同链上的任意设备具有不重复的DID,有两种常见方案:

  1. 具有统一的DID注册和更新入口,注册时检查其是否重复,再同步到所需的链。
  2. 确定各条链的命名规则,通过命名空间保证DID不重复。

在当前场景下,方案b是不合适的。因为当需要多个DePIN项目间协作,获取其他链上设备的DID时,不可能通过跨链查询完成,最好的方式是把需要的设备DID可信地同步到每条需要的链上(由于采用L3,实际成本并不高),并在这些链之间保证数据一致性。对方案b来说,会导致名字空间的混乱,且无法保证数据一致性。因此此处考虑方案a。方案a中包含3部分:

  • 位于Arweave上的DID合约。该合约保存所有DID的数据。所有DID均需在此合约中完成注册;DID数据的更新也需调用此合约完成。
  • PermWeb里的服务程序。可对Arweave上DID合约的数据进行查询,加工和处理。其中Merkle根部分是一个特殊的服务,它会把DID合约里的所有DID数据计算生成一棵Merkle树,并把树根依照多种策略提交至各个DePIN App Chain的DID服务合约中。
  • 位于各条DePIN App Chain上的DID服务合约。这些合约服务于各自所在的链,即每条链上用到的DID均保存在该合约中。该合约只有导入接口,没有注册和修改接口。当导入一条新的DID时,需通过之前输入的Merkle根对该DID进行正确性校验,校验通过才允许导入。

工作流程分为三步:

  1. 所有设备在Arweave的智能合约里注册其DID,注册时会检查名字是否冲突,冲突的名字不允许注册,需修改为不重复方可注册。注册时除了DID,还可以提供设备的其他属性,如公钥,设备id,设备能力,访问方式等。
  2. 所有注册设备的DID数据会PermWeb上的Merkle树服务计算生成一棵Merkle树,树根会被依照策略提交至各条DePIN App Chain的DID服务合约中。
  3. 将DID按需导入至目标DePIN App Chain的DID服务合约中。导入时的Merkle验证会保证导入的DID数据与注册时的一致。

Arweave不仅提供永久数据保存,而且其支持EVM合约和通过PermWeb对保存的数据进行查询和处理,因此非常适合用来保存全链DID数据。DID数据的条目虽然多,但所需的总存储量并不大,因此其成本也是合适的。

3.7 密钥可信初始化

IoT设备安全容器中保存的密钥是验证PoPW的信任来源,必须做到密钥被安全可信地初始化,私钥不可被任何一方读出,公钥可被提交至DID合约中,供任何人通过DID读取。可信初始化有多种可能方式:

  1. 在芯片生产和初始化阶段,由生产商直接操作安全容器,完成密钥对的生成,并读出公钥,将公钥数据提供给购买方,即DePIN项目方。
  2. 通过去中心化TSM(Trusted Service Manager)系统进行空中初始化。DePIN App Chain会构建去中心化TSM服务网络,通过去中心化方式和密码学算法,配合通用的芯片内安全容器接口,完成密钥对的初始化过程,并读出公钥,直接写入DID合约。

方案一是业界成熟方案,成本低,适合一次性大批量初始化芯片。安全容器可以位于通信模组中,而通信模组可以适配到各种不同用途的IoT设备中,因此可将其作为通用产品使用。可以一次性批量生产大量芯片后,向多个不同DePIN项目方供应该芯片。并由芯片生产方或可信第三方批量在链上初始化DID数据。

方案二更加灵活,可在任意阶段通过无线网络和去中心化TSM网络完成对芯片内密钥对的初始化。由于密钥种子来自多个去中心化参与方,因此只要去中心化TSM网络中有一个诚实参与方,整个流程就是安全可信的,没有任何参与方可以解码出芯片内的私钥。

3.8 经济学支持

经济学是DePIN项目的引擎和重要组成部分。DePIN项目可以使用自己的Token,也可以使用生态Token作为项目Token。甚至可以两者兼而有之,在项目启动阶段使用有价值的,已经被认可的生态Token作为激励和应用Token,迅速推进网络建设并获得用户和价值支撑,降低使用摩擦;在发展壮大后将网络规模和服务能力作为价值支撑,转换为使用自己的Token获得更高的价值捕获。

多个DePIN项目使用统一的生态Token可以形成合力,对项目方和DePIN App Chain生态的发展都有好处。从DePIN App Chain生态的角度而言,更多项目使用生态Token,可以捕获更多价值,也给生态的发展带来更多可能性;从项目方角度而言,在项目启动阶段其网络价值较低,不易吸引用户,此时如果使用已经具有价值的生态Token,可以提高项目价值,降低用户使用的摩擦;从终端用户和投资者角度看,拥有生态Token便可以使用多种DePIN应用服务,获取多个项目成长的预期,是件方便划算的事情。

除了Token经济学外,DePIN项目的发展还需要很多其他生态经济支持,如DEX, 借贷等传统DeFi支持;除此之外,鉴于DePIN的RWA属性,也会产生现实世界里的法币需求。DePIN App Chain 生态会对接多种工具,帮助项目方构建链上链下的经济学,帮助项目成长。

3.9 全链服务

由于各种原因,DePIN项目方可能会将其项目部署在各种各样的区块链网络上,如polygon, Solana等L1网络,或Arbitrum, Optimism, zkSync等L2网络。

通过上述分析,读者们会发现各项核心服务并不依赖于特定区块链。只要在某条区块链上部署了区块链服务合约,并通过跨链将管理链上可信的服务实体(BoAT3 Oracle),数据(DID)或资产(DePIN生态Token等)在该区块链上实例化,该区块链就可以成为应用链中的一员,与其他基于DePIN App Chain L3构建的应用链所获得的能力几乎是一样的。唯一的区别在于,由于链的运行原理不同,这条区块链可能并没有结算层,或其结算层不是现有的管理链,因此该链无法在系统内与其他链进行无信任的跨链协作,但这可以通过其他跨链方式完成。

4. 示例

下面以一个简单的示例来说明怎样基于DePIN App Chain生态构建一个DePIN项目。例子中的各项基础设施,从IoT设备到数据平台的服务,都是成熟可购买的,但项目的设计,资源的整合,社区的运营和服务,需要项目方精心设计和落地。

该例子使用太阳能电池,构建一个去中心化绿色能源网络,该网络旨在促进清洁能源的生产和使用。项目方收集太阳能电池发电的数据,以此数据证明清洁能源的生产过程是可信的,并依据此数据发出绿证。绿证可用于碳排放抵消,比特币绿化等多种场景。除绿证收入外,项目方通过发行的Token鼓励矿工们构建该绿色网络。

太阳能电池的发电数据可通过连接逆变器的数采器获得。矿工们可以直接购买集成好项目方的数采器的光伏系统,也可以购买项目方提供的数采器后自行安装。项目方生产数采器时会使用已经内置了密钥的安全芯片,项目方委托供应商在链上生成DID,并写入公钥(项目方也可获得公钥后自行生成DID,并写入公钥)。

电池板发电过程中会不断产生发电数据,如实时发电功率,发电量等。数采器会对这些数据进行采样,并发送给通信模块;数采器中的安全芯片会使用私钥对这些数据签名,即生成PoPW,然后将PoPW发送给BoAT3 Oracle。BoAT3 Oracle根据收到的数据从DID合约中读取该电池板的公钥,通过公钥验证收到的PoPW的合法性。如果数据是合法的,则会提取出其中的有效数据部分,并使用自身私钥对其签名,表示对数据的认可,由BoAT3 Oracle签名的数据称为PW(Physical Work)。BoAT3 Oracle会将PW提供给项目方,项目方会将收集到的PW数据和原始PoPW签名批量保存至存储网络,如FIL,Arweave或云存储。

项目方会针对提供了有效发电数据的矿工进行奖励。奖励使用DePIN生态Token。为了降低链上成本,可能会随机抽取部分矿工发放奖励,因为抽取是随机的,所以从更长时间来看,所有诚实的矿工都会公平地收到奖励。奖励数量由矿工的发电量决定,会将发电量抽象为奖励权重,计算所有获奖矿工的总权重后,每个矿工按自己的发电量权重获取奖励。项目方在链下计算每位矿工获得的奖励,并通过Oracle发放奖励。但同时会将奖励计算相关的所有数据公开至存储或DA网络,供社区验证和挑战。发放奖励时在合约中提供的数据至少包括:

  • 本次奖励发放的期数相关数据。通过此数据可确定哪些矿工,哪些数据参与了此次奖励发放。
  • 用于计算哪些矿工获得奖励的随机数。
  • 如何获得PW原始数据。如使用的IPFS网络及文件CID。
  • 奖励细节的Merkle树树根和总权重。该Merkle树包含了每个获奖矿工的获奖相关数据,如PW数据ID,矿工DID,奖励数量等。确保挑战时可通过这些数据在链上验证奖励发放规则是否被严格遵守。

针对本次奖励发放,开启挑战期。在挑战期内,任何人均可针对奖励的公平性,正确性发起挑战,包括矿工获得的奖励数量是否正确,未获得奖励的矿工是否确实不该获得奖励,等等。这些挑战均在链上,使用Oracle提交的数据完成,而这些数据进一步都来自于矿工提交的PoPW,任何人都可以独立下载并验证所有数据和奖励的公平性。挑战期结束后,矿工可以提取奖励。

提取奖励后,矿工可以将获得的DePIN生态Token在CEX,DEX等兑换成稳定币或法币,补贴其购买和运行矿机的成本,形成正向经济循环。DePIN网络向终端用户提供服务,如碳排放抵消,绿化比特币等;这些服务的价格是稳定的,终端用户可以购买生态Token后,将其燃烧铸造成价值稳定的应用Token,使用应用Token购买各种服务。

在购买矿机的过程中,矿工也许需要资金进行初始投资的资助。可以使用DePIN App Chain生态的链上借贷服务获取资金,资金的回报可通过挖矿所得的生态Token或服务于终端用户所得的应用Token支付。由于挖矿等活动均在链上完成,因此资金回报可通过智能合约自动完成利润计算,将利润分账至资金方。

5. 总结

RollUp技术解决了区块链扩容难题,使得区块链可以在保持高度安全,可信的前提下,获得极大的性能扩展和极低的使用成本,这给DePIN应用的大规模落地创造了条件。

<!--EndFragment-->

点赞 3
收藏 1
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

2 条评论

请先 登录 后评论
maodaishan
maodaishan
0xee37...1912
江湖只有他的大名,没有他的介绍。