# 链下计算：区块链不可或缺的一部分

By [Lausanne Dhondup](https://paragraph.com/@biquandidi) · 2023-03-26

---

一、概述
----

随着区块链技术的不断发展，我们已经进入了一个全新一个的时代——区块链3.0时代。在这个时代中，我们看到了区块链技术的应用和创新正在快速发展，但同时也暴露出了一些问题，最突出的问题就是数据计算效率的问题。考虑到不同的底层程序语言环境以及数据计算的复杂性，Web3.0时代的数据计算基础层将是一个复杂多样的环境。因此，我们需要关注的是如何破解区块链时代数据计算效率的问题，这将是下一代计算范式的重点方向。目前，Web3.0时代的区块链基础设施已经不能光靠共识机制创新以及跨链来解决这个问题，而是需要更多的解决方案。其中，脱链/链下计算（off-chain）已经成为解决问题的大趋势。脱链/链下计算的基本思想是将部分计算任务转移到链下，以降低链上数据存储和计算的负担，从而提高区块链的数据计算效率。这种方法可以有效地解决目前区块链技术所面临的性能瓶颈问题，同时也可以提高区块链的安全性和可扩展性。在这个背景下，区块链技术的未来发展方向将更加注重如何解决数据计算效率的问题，以适应Web3.0时代的复杂多样的计算环境。脱链/链下计算将成为未来区块链技术的重要发展方向之一，也将成为实现区块链技术商业应用的重要手段。

### 1、现状

由于不可能三角的束缚，探索链下计算采用偏中心化等手段能够得到更高的扩展性，这种方案的关键是如何将链外计算结果在链上得到一致共识，通过 TEE、 零知识证明等技术手段实现链外数据计算结果回到主链上达成一致共识和安全。区块链技术的出现在一定程度上解决了传统互联网中的信任问题，使得人们可以更加安全和可靠地进行数字资产交易、数据共享等操作。然而，由于区块链本身的限制，如可扩展性、性能和安全等问题，使得区块链在某些场景下仍然无法满足需求。这时，链下计算技术的出现，为解决这些限制问题提供了一个重要的思路。链下计算指的是在链外进行的计算，与链上计算不同，它可以带来更高的效率和扩展性。通过将一部分计算任务从链上转移到链下，可以有效地减轻区块链的负担，提高其效率和性能。在一些场景下，如机器学习、数据挖掘等领域，链下计算已经被广泛使用，并取得了很好的效果。然而，链下计算也带来了一些新的挑战，如如何确保链下计算的安全性和一致性，如何将链下计算结果与链上达成一致共识等。这些问题都需要在技术上得到解决，才能使得链下计算真正成为提高区块链效率和扩展性的重要手段。综上，链下计算对于提高区块链的效率和扩展性具有重要的意义。在未来的区块链发展中，链下计算技术将会逐渐得到广泛应用，并成为重要的发展方向之一。

### 2、目的

本研究旨在探讨Web3.0时代数据计算的可能范式，以及如何在链下和链上之间实现协同工作。考虑到区块链技术的局限性，本研究分析了采用偏中心化等手段的链下计算作为解决方案，并探讨了如何使用TEE和零知识证明等技术手段，实现链下数据计算结果在主链上的一致共识和安全性，为未来Web3.0时代的数据计算提供参考。

![通证通研究院   FENBUSHI](https://storage.googleapis.com/papyrus_images/18e0f13adc1c178b4e477dd3b433f0141332140af62ba3d6a85a21341781903c.png)

通证通研究院 FENBUSHI

### 3、web2.5与web3.0的过渡期

在Web2.5和Web3.0的过渡期，区块链技术的发展面临着一个重要的挑战：如何实现数据到实时上链。理想情况下，用户希望像使用聊天软件一样，能够实时收到消息；在游戏中每个操作都需要被实时记录；电商的下单速度更快。然而，目前的区块链技术并不能满足这些实时性的要求。这是因为，中心化系统的吞吐量通常很高，例如，Visa每秒可以处理24000笔交易，而当前区块链技术的TPS（每秒交易数）只有几十到几百，甚至更低。虽然layer2的出现一定程度的解决了速度问题，但是也是远远不够的，链上每一个 EVM 的 Code 计算需要全球计算机都算一遍所以它的成本是非常巨大的，因此为了实现理想的web3.0世界，需要克服这些技术上的限制，并提高区块链的吞吐量。

二.背景
----

### 1、当前的局限性

当前，区块链技术被广泛应用，它为我们提供了一个分布式、去中心化的基础架构，可以实现更加安全、透明、高效的数据存储和交换。然而，由于区块链技术的局限性和不足之处，区块链的数据绝不会全部运行在公链上，因为数据与效率还有区块链不可能三角问题是复杂多样的环境。首先，区块链技术的局限性在于其数据存储和交换的效率。公链的数据存储和交换是通过共识算法来实现的，这需要所有节点对每个交易进行验证和记录，因此，随着链的增长，数据存储和交换的效率会逐渐降低，导致整个系统的性能下降。此外，公链的安全性也面临着不小的挑战。攻击者可以通过攻击少数节点来破坏整个系统，从而影响数据的完整性和安全性。其次，由于复杂性的存在，大量的数据肯定会做链下计算处理，并通过可信的技术手段如零知识证明、TEE等技术手段去验证数据真实性。无论是跨链还是ETH2.0的分片或者Layer2的解决方案，都是为了解决数据共识问题。因此，我们需要寻找新的解决方案，以提高数据存储和交换的效率，并保障数据的安全性和真实性。这其中，一种可行的方案是通过链下计算来提高数据处理效率。链下计算指的是将数据从链上移至链下进行处理，以减轻链上的负担。同时，可信的技术手段如零知识证明和TEE可以确保数据的真实性和安全性。区块链的数据绝不会全部运行在公链上，因为数据与效率还有区块链不可能三角问题是复杂多样的环境。为了解决这些问题，我们需要寻找新的解决方案，如链下计算和可信的技术手段，以提高数据处理效率和保障数据的安全性和真实性。未来，随着技术的不断发展和完善，我们相信web3.0将会更加成熟和稳定，为我们带来更多的机遇和发展空间。在Web3.0中，链下计算和链上计算将会有更加紧密的联系，两者将会相互协作，共同构建一个更加强大的去中心化计算网络。这将会使得Web3.0更加智能化、可编程化、可信任化，进一步推动区块链技术的发展。

![图片来源 张开翔｜FISCO BCOS 首席架构师](https://storage.googleapis.com/papyrus_images/f0bd76e321c83e6644dbb6750dad922e4d6215378d30cf61618aa40dbf4a6108.png)

图片来源 张开翔｜FISCO BCOS 首席架构师

### 2、链下计算的优点

\*\*1.扩展性问题：\*\*区块链技术的扩展性是一个长期困扰着行业的问题。由于区块链的共识机制和去中心化特性，其交易速度和处理容量通常很低。链下计算可以将某些任务从链上转移到链下执行，从而释放链上的处理能力，提高区块链的交易速度和处理容量。

\*\*2.隐私性问题：\*\*区块链技术的公开透明性是其优势之一，但在一些场景下，如企业内部信息共享、医疗数据管理等，需要保护数据的隐私性。链下计算可以在保证数据安全的前提下，将敏感数据处理和计算任务转移到链下执行，从而保护数据的隐私性。

\*\*3.安全性问题：\*\*区块链技术本身具有较高的安全性，但是也面临着不少的安全威胁，如51%攻击、DDoS攻击等。链下计算可以通过安全的计算环境、加密技术等手段来保证数据和计算任务的安全性。

\*\*4.成本问题：\*\*在区块链上进行计算和处理任务需要消耗大量的能源和计算资源，这导致了高昂的成本。链下计算可以通过将计算任务转移到链下执行来减少区块链的计算成本，从而降低整个系统的成本。

![图片来源  张开翔｜FISCO BCOS 首席架构师](https://storage.googleapis.com/papyrus_images/0569d0be44e392922c17e15a2c832b88d290e15cb4ac72ed93406f9629a63a80.png)

图片来源 张开翔｜FISCO BCOS 首席架构师

### 3、链下计算的技术分类

**1、Trusted Execution Environment**

可信执行环境 (TEE) 是设备主处理器上与系统主操作系统 (OS) 分离的区域。它确保数据在安全的环境中存储、处理和保护。

**一、基本原理**

TEE技术基于硬件安全模块（Hardware Security Module, HSM），其中包含一个特殊的处理器，即安全处理器（Secure Processor），用于提供可信执行环境。安全处理器运行在隔离的安全区域内，与主处理器相互独立。安全处理器通常具有以下特点：

\*\*1、安全启动：\*\*安全处理器在启动时会进行一系列的安全检查，以确保安全性。

\*\*2、安全存储：\*\*安全处理器有一个独立的、安全的存储空间，用于存储敏感数据和应用程序。

\*\*3、安全通信：\*\*安全处理器支持加密通信，可以保证数据的安全传输。

\*\*4、安全计算：\*\*安全处理器可以独立执行计算任务，而不会受到主处理器的干扰。

\*\*5、安全性能：\*\*安全处理器具有高效的加密和解密性能，可以支持各种加密算法和协议。

TEE技术还涉及到软件的安全设计和实现。TEE软件通常由两部分组成：TEE客户端和TEE服务器。TEE客户端运行在用户设备上，与安全处理器进行通信，向安全处理器发送请求。TEE服务器运行在服务器上，处理请求并返回结果。TEE客户端和TEE服务器之间的通信通常是加密的，以保证数据的安全传输。

**二、应用场景**

当我们在使用计算机、手机等设备时，设备的主处理器会承载所有的计算任务，包括运行操作系统、应用程序等。然而，由于操作系统和其他程序都可以访问主处理器，因此数据在处理和传输的过程中容易受到攻击和窃取。这时，Trusted Execution Environment技术就可以派上用场了。

由于TEE的独立性和隔离性，它可以提供比传统软件更高的安全性和可信度。例如，在使用TEE技术的手机中，用户的指纹识别、面部识别等生物特征数据可以存储在TEE中，不受其他程序和操作系统的干扰，从而提高了生物特征识别的安全性。在区块链中，TEE技术也可以被用于存储和处理私有密钥等关键信息，提高了区块链的安全性和可信度。

总的来说，TEE技术可以为设备提供一个安全的执行环境，可以在保证数据安全性和可信度的同时，提高设备的性能和用户体验。在当前信息安全不断受到威胁的时代，TEE技术已经被广泛应用在手机、云计算、物联网等领域，并且在区块链中也得到了越来越广泛的应用。

**三、优缺点**

**优点：**

\*\*1、高度安全性：\*\*TEE技术可以提供硬件级别的安全保障，保护区块链中的私钥和智能合约，确保数据和交易的安全性和机密性。

**2、高度隐私性**：TEE技术可以提供额外的隐私保护，保护交易隐私不被泄露。

**3、支持多种应用场景**：TEE技术可以被广泛应用于各种区块链应用场景，例如数字资产管理、供应链管理、电子票据等。

\*\*4、可扩展性：\*\*TEE技术可以被整合到不同的区块链平台和架构中，提高整个区块链系统的可扩展性。

**缺点：**

\*\*5、需要高性能硬件：\*\*TEE技术需要特殊的硬件支持，这可能会导致一些成本和性能问题。

\*\*6、资源限制：\*\*TEE技术需要额外的计算资源，这可能会对整个区块链系统的性能产生一定的影响。

\*\*7、安全漏洞：\*\*尽管TEE技术可以提供高度安全性，但仍然存在安全漏洞和攻击，这需要定期升级和更新.

综上所述，TEE技术在区块链领域具有很多优点，可以提供额外的安全保障和隐私保护，支持多种应用场景，提高整个区块链系统的可扩展性。但同时，TEE技术还存在一些缺点，例如需要高性能硬件、资源限制和安全漏洞等问题。因此，在区块链领域中，通常是联盟链来选择使用，因为不可能每个人都有合适的硬件设备来适应环境，总的来说，链下计算技术可以有效地解决区块链技术的一些瓶颈和问题，从而推动区块链技术的发展和应用。

### 2、Truebit

适用于需要将计算任务分解成多个步骤进行验证的场景，如大规模数据处理、AI模型训练等。

**一：基本原理**

首先，Truebit采用了验证游戏的机制来确保在链下计算过程中数据的准确性和安全性。验证游戏的过程中，验证者需要评估计算任务的结果，并为评估结果支付费用。如果评估者的评估结果与计算结果一致，则他们将获得奖励，否则他们将失去保证金。通过这种机制，Truebit鼓励验证者提供准确的计算结果，并惩罚恶意节点。

其次，Truebit实现了交互式证明的技术，允许在链下进行复杂计算，而无需完全复制区块链上的所有数据。交互式证明是一种将复杂计算任务拆分为多个小任务，然后将小任务的计算结果传输回区块链的过程。在这个过程中，每个小任务的计算结果都将被验证和审查，如果有任何错误，系统将停止计算，同时惩罚恶意节点。通过这种方式，Truebit可以在链下进行大规模的计算任务，而不必担心安全性和数据完整性的问题。

最后，Truebit采用了二次计算的机制，允许用户提交计算任务，并将任务的处理过程交给链下的验证者。在计算任务结束后，Truebit将计算结果提交到区块链上，确保结果的准确性和安全性。二次计算的机制有效地将计算任务和区块链解耦，使得计算任务可以在链下进行，而不必担心区块链的限制和局限性。

总的来说，Truebit的技术原理主要涉及到验证游戏、交互式证明和二次计算等方面。通过这些技术手段，Truebit可以提供一个安全、可靠和高效的去中心化计算平台，为区块链上的智能合约提供更多的计算能力和灵活性。

其技术特点如下

\*\*1、高效性：\*\*Truebit利用链下计算技术，将复杂的计算任务转移至链下执行，以提高计算效率和吞吐量。

2、安全性：Truebit利用Trusted Execution Environment（TEE）等技术保护计算的安全性，防止恶意节点篡改计算结果。

\*\*3、去中心化：\*\*Truebit的协议设计保证了计算结果的公正性和去中心化，不需要依赖中心化的第三方机构。

\*\*4、灵活性：\*\*Truebit支持多种计算模型和程序语言，可以适应不同的计算场景和需求。

**5、可扩展性**：Truebit的协议可以根据需要进行扩展，支持更多的计算类型和更大规模的计算任务

**二：应用场景**

**1、分布式计算：** Truebit技术可以用于分布式计算，这是因为它可以将大量的计算任务分成多个小部分，并将它们分配给不同的计算节点进行处理。这样可以大大提高计算效率，缩短计算时间。

**2、游戏**：Truebit技术也可以用于游戏中，特别是在线游戏中。在线游戏通常需要实时计算，而Truebit技术可以通过将计算任务分解成小部分，并将它们分配给不同的计算节点进行处理，以提高计算效率和速度。

\*\*3、智能合约：\*\*Truebit技术还可以用于智能合约中。通过Truebit技术，智能合约可以调用外部计算节点来执行复杂的计算任务，这可以提高智能合约的功能和灵活性。

\*\*4、数据分析：\*\*Truebit技术还可以用于数据分析领域。在数据分析中，需要处理大量的数据并进行复杂的计算。通过Truebit技术，数据分析任务可以分解成小部分，并将它们分配给不同的计算节点进行处理，以提高计算效率。

总体来说，Truebit技术在区块链领域具有广泛的应用前景，可以应用于多个领域，包括计算、游戏、智能合约和数据分析等。

**三：优缺点**

\*\*1、改善智能合约计算能力：\*\*Truebit技术可以提高智能合约的计算能力，使得合约可以处理更加复杂的任务。

\*\*2、降低成本：\*\*Truebit技术可以将计算任务从区块链上移动到链下，降低了区块链上的计算成本。

**3、提高可扩展性**：Truebit技术可以将复杂的计算任务从区块链上移动到链下，提高了区块链的可扩展性。

\*\*4、提高安全性：\*\*Truebit技术采用了可信执行环境技术，保证了计算任务的安全性。

Truebit的缺点包括：

**1、网络带宽消耗**：Truebit技术需要大量的网络带宽来传输计算任务和计算结果，这可能会导致网络拥塞。

\*\*2、链下计算时间：\*\*Truebit技术需要将计算任务从区块链上移动到链下进行计算，这会增加计算任务的处理时间。

**3、可信执行环境的安全性**：可信执行环境技术目前仍存在一定的安全漏洞，可能会导致计算任务被攻击。

\*\*4、需要额外的计算资源：\*\*Truebit技术需要额外的计算资源来执行链下计算任务，这可能会增加成本。

总之，Truebit技术通过将复杂的计算任务从区块链上转移到链下执行，并利用TEE等技术保护计算的安全性，以提高计算效率、保证公正性和去中心化，并适应不同的计算场景和需求，是一种高效、安全、灵活和可扩展的链下计算技术。

### 3：Zero-Knowledge Proofs (ZKPs)

Zero-Knowledge Proofs (ZKPs)是一种强大的隐私保护技术，在区块链中的应用越来越广泛。ZKP可以通过在保护信息隐私的同时，提供完整性和真实性证明，从而为许多区块链应用程序提供了更好的安全性和隐私性。在链下计算中，ZKP技术可以通过执行一些计算任务，并将其验证的过程迁移到链外，从而提高区块链的可扩展性和性能。

**一、基本原理：**

链下计算的ZKP原理与基本原理类似，通过将计算过程移出区块链，由可信第三方完成计算并生成证明，然后将证明提交给区块链进行验证。这样一来，区块链不需要处理大量的计算任务，而只需要验证证明的正确性即可。这种方法可以提高区块链的可扩展性和性能，同时保护用户的隐私和数据安全。

具体来说，链下计算的ZKP过程分为两个主要部分：生成证明和验证证明。生成证明是在链外完成的，需要使用ZKP算法和可信执行环境（TEE）等技术来保护数据隐私和完整性。验证证明则是在区块链上进行的，主要是检查证明的正确性和真实性。

**1、预处理阶段**：在链上或者其他安全的环境中，进行计算任务的预处理，例如生成加密密钥，建立数学模型等。

\*\*2、交互阶段：\*\*客户端向计算机发送加密数据，计算机在本地执行计算任务，并生成加密的计算结果。

\*\*3、结果验证阶段：\*\*客户端收到加密的计算结果后，对其进行解密和验证，以确定计算结果的真实性和正确性，同时不需要透露具体的计算过程和中间数据。通过链下计算实现ZKPs可以有效地保护用户的隐私和数据安全，同时提高计算效率和响应速度

**二：应用场景**

\*\*1、匿名性验证：\*\*ZKP 可以帮助用户验证其身份或拥有某些资产而无需透露任何关于自己的信息，从而实现匿名性验证，保护用户隐私。

\*\*2、智能合约：\*\*智能合约是区块链中的重要组成部分，ZKP 可以被用于智能合约中的条件验证。例如，当一个合约规定只有特定条件满足时才能执行某个操作时，ZKP 可以验证这些条件而无需暴露更多的信息。

**3、零知识交易**：在区块链中，ZKP 可以被用于实现零知识交易，即在保持交易的安全性和可验证性的同时，保护交易双方的隐私。

**4、区块链隐私保护**：区块链是公开的、可追踪的，ZKP 可以在这种情况下保护用户的隐私，例如，在交易中隐藏交易金额和参与者的身份。

\*\*5、可信计算：\*\*在区块链中，ZKP 可以被用于验证计算的正确性，这可以确保参与计算的节点不会篡改数据或者不执行正确的计算操作。

\*\*6、数字身份验证：\*\*ZKP 可以被用于数字身份验证，例如，验证用户的年龄、身份证号码等信息，同时保护用户的隐私。

综上所述，ZKP 技术在区块链中具有广泛的应用前景，尤其在保护用户隐私和提高交易效率方面有着重要的作用。

**三：优缺点：**

 **优点：**

 \*\*1、隐私性保护：\*\*ZKP可以让交易中的一方证明某些信息的真实性，而不必泄露该信息本身，从而实现隐私保护。

 \*\*2、省去中间人：\*\*ZKP的验证过程不需要中间人的参与，从而降低了交易的成本。

 \*\*3、可验证性：\*\*通过ZKP可以验证某个信息的真实性，从而提高了交易的可靠性。

 **缺点：**

 \*\*1、计算复杂度高：\*\*ZKP的验证过程需要进行大量的计算，这可能会对系统的性能产生一定的影响。

 **2、可能存在可信问题**：由于ZKP的验证过程比较复杂，因此可能存在漏洞或攻击，从而导致可信问题

总之，ZKP 的基本原理是通过利用密码学中的难题来证明某个主张的正确性，同时不必透露实际信息。它是一种非常有用的加密技术，在身份验证和隐私保护方面都有很多应用。

头部项目
----

### 1、基于Trusted Execution Environment的代表项目

Chainlink是一个开源的去中心化预言机网络，能够连接智能合约和现实世界中的数据源。作为一个分布式系统，它使用了Trusted Execution Environment（TEE）技术，以确保预言机所提供的数据的安全性和可靠性。

Chainlink是一个由Oracle节点组成的网络，它们用于将现实世界中的数据源引入到区块链中。这些数据源可以是天气数据、交通数据、金融市场数据等等。在Chainlink网络中，每个Oracle节点都是一个在分布式系统中运行的智能合约，它们提供了数据的验证和转换功能。这些节点可以根据需要添加或删除，而不会影响整个系统的稳定性和安全性。

Chainlink的工作原理如下：首先，Chainlink用户在他们的智能合约中指定了需要使用哪些Oracle节点，以及这些节点需要提供的数据。然后，这些Oracle节点根据Chainlink协议规范化数据，并将其存储在一个可访问的数据存储中。最后，Chainlink合约从这个数据存储中获取数据，并将其提供给用户的智能合约。

为了保证数据的安全性和可靠性，Chainlink使用了TEE技术。TEE是一种硬件级别的安全保障技术，它可以确保在运行时只有合法的软件可以访问受保护的区域。在Chainlink中，这个受保护的区域是Oracle节点的执行环境。

Chainlink使用TEE技术的方式是，它将Oracle节点部署到可信的执行环境中，这个执行环境可以是Intel SGX、ARM TrustZone或者其他TEE实现。这些可信执行环境具有一些关键特性，包括安全启动、隔离、完整性保护和内存加密。这些特性保证了在TEE中运行的代码和数据只有在正确的执行环境中才能被访问和执行。这使得Chainlink节点的代码和数据受到了强大的保护，而攻击者无法篡改或者窃取这些数据。

Chainlink是一种基于以太坊智能合约的Oracle解决方案，它能够使智能合约与现实世界中的数据源（如API、传感器等）进行交互。Chainlink的主要目标是解决智能合约中心化的问题，通过提供一个可靠的、安全的和去中心化的Oracle网络，确保合约可以安全地访问真实世界的数据。

Chainlink的工作方式类似于一个桥梁，将智能合约与现实世界的数据源相连。它允许智能合约创建一个请求，请求某个数据源提供数据。Oracle节点接收到请求后，会在Trusted Execution Environment（TEE）中执行计算，并将结果返回给智能合约。由于计算在TEE中进行，因此数据源的信息不会被泄露。

Chainlink的Oracle网络由许多节点组成，这些节点都有一个Chainlink节点软件。这些节点根据链上的链下请求，从现实世界中的数据源获取数据，并将结果传回链上，以便智能合约可以访问它们。Chainlink网络采用了一种称为“分层抽样”的算法，可以通过选择一小部分节点来执行计算，以提高效率和减少成本。

Chainlink还采用了一种称为VRF（可验证随机函数）的技术，用于生成随机数。VRF在TEE中运行，可以保证随机数的真实性和不可预测性，从而确保数据源不会通过掌握随机数来操纵结果。

总之，Chainlink通过使用TEE、分层抽样算法和VRF技术，为智能合约提供了一个可靠、安全和去中心化的数据源。

![Chain link社区](https://storage.googleapis.com/papyrus_images/8e369fb6a4961abf1614e513da9a558e833e68dc4f81314c5bf5db4fbd5481fe.png)

Chain link社区

### 2、基于Truebit的代表项目

Truebit是一个去中心化的计算平台，它利用区块链的可信性和可编程性，为开发人员提供了一种安全的、经济的、高度可扩展的计算环境，该环境能够解决区块链上的计算问题。 Truebit 的核心技术是链下计算，它允许复杂的计算任务在链下执行，并且只需在链上提交简单的验证数据，从而提高了效率和降低了成本。

Truebit的技术原理 Truebit的技术原理可以分为两个部分：链下计算和链上验证。链下计算允许计算任务在链下执行，而链上验证允许验证人员检查计算结果并获得奖励。下面我们将分别介绍这两个部分。

链下计算 在Truebit中，计算任务是通过一个被称为“任务规范”的模板来定义的。该模板包括了所有需要的计算步骤以及输入和输出的格式。开发者需要编写一个智能合约来生成任务规范，并将其上传到区块链上。

一旦任务规范被上传到区块链上，真正的计算就在链下进行。Truebit使用的是一种被称为“Verifiable Delay Functions”的技术来确保计算任务在链下执行一定的时间，以便验证人员有足够的时间来验证计算结果。具体来说，计算任务将被分成许多小的计算步骤，并通过一个称为“计算任务树”的数据结构进行管理。计算任务树的每个叶子节点代表一个小的计算步骤，而树的根节点代表整个计算任务。

Truebit使用的是一个称为“Fibonacci时间锁”的技术来确保计算任务的执行时间。这种技术利用了Fibonacci序列中两个相邻数字的比率趋近于黄金比例的性质，从而可以在链下执行计算任务一定的时间。具体来说，计算任务树的每个叶子节点都有一个与之关联的Fibonacci时间锁。计算任务树的根节点的时间锁必须等于所有叶子节点时间锁的和。这个等式是通过计算任务树的每个叶子节点上的Fibonacci时间锁来实现的。一旦计算任务树被执行完成，计算结果将被传回到链上。

![https://ethfans.org/posts/getting-started-with-truebit-on-ethereum](https://storage.googleapis.com/papyrus_images/c4f15729b6e86f21997a9c47a1011db9f937a983226230da735dec35467ae2fb.png)

https://ethfans.org/posts/getting-started-with-truebit-on-ethereum

### 3、基于Zero-Knowledge Proofs (ZKPs)的代表项目zksync

zksync是一种基于Zero-Knowledge Proofs (ZKPs)的链下计算技术，它旨在提高以太坊的交易吞吐量，同时保持安全性和去中心化。zksync的核心是使用zk-rollup技术将大量以太坊交易打包成单个交易，并在链下执行，从而显著减少交易成本和网络拥堵问题。且费用也低得多，这使得它成为一种非常有前途的解决方案。

zk-rollup的基本原理是在以太坊上创建一个智能合约，该合约负责接收和处理用户提交的交易。然后将这些交易打包成一个单独的区块，并将其哈希值上传到以太坊网络上。这个哈希值就像是一个指纹，用于验证这个区块的正确性，而不需要公开的暴露区块中的所有交易细节。

对于zk-rollup来说，重点是如何将所有交易打包到一个单独的区块中。这是通过使用Merkle Tree和zkSNARKs实现的。每个交易都有一个对应的Merkle Tree证明，证明它在Merkle Tree中的位置和其它交易无关。这些Merkle Tree证明被打包到zkSNARK证明中，这个证明验证了这些交易在该区块中的正确性，并保证这些交易的执行是正确的。这样，zk-rollup可以将大量交易打包到一个单独的区块中，并在链下执行。

在 zk-rollup 中，ZKSync 将大量的交易打包成一个交易，并在以太坊原生链上提交，这个交易中包含了整个区块的交易信息，同时还包括了基于 zk-rollup 的验证信息。交易信息是通过智能合约进行提交的，而验证信息则是通过 zk-rollup 的验证合约进行提交的。在交易信息被提交之前，它们需要进行合法性检查，并生成一个 merkle 树的根哈希。然后，验证合约会验证这些交易信息，并使用 zk-SNARKs 等技术将验证信息打包成一个证明，证明这些交易在原生链上的合法性。这个证明将随着交易一起被提交到原生链上，同时也会包含在下一个区块的根哈希中，作为下一次提交时的验证信息。从而使交易信息被打包成一批消息，这些消息可以被分成多个分片，每个分片可以并行处理。然后，这些消息将被转换成零知识证明，并通过一个批量验证机制进行提交。zk-sync 通过这种方式大幅提高了交易处理的吞吐量，并降低了处理成本。zk-sync 还支持一种称为“账户模型”的机制，这种模型可以在交易之间共享状态，从而更加高效地处理交易。

三、结果阐述
------

随着区块链技术的发展，Trusted Execution Environment、Truebit和Zero-Knowledge Proofs (ZKPs)等新兴技术也将逐渐得到应用。我们将看到Web2.5和Web3.0的生态系统在共存和融合中不断进化。数据和应用程序将在两个生态系统之间共享，应用程序将跨越两个系统运行，用户将成为两个生态系统的成员。在这个过渡期间，链下计算的技术将起到重要的作用，它将充当Web2.5和Web3.0之间的桥梁。我们也要意识到，Web3.0的真正面貌仍然难以预测，因为技术的发展永远不会停止，而未来的应用场景也可能会出现意想不到的变化。不过，毫无疑问的传统互联网时代的数据和应用将在通往Web3.0时代的路上继续存在，并不断与Web3.0进行融合。数据将在新的Web3.0应用生态和旧有的互联网生态之间共享，应用程序将横跨Web3.0和传统互联网系统之间运行，用户将同时属于两个生态世界。因此，我们需要积极拥抱新技术，同时也要继续保护既有的数据和应用，努力推动Web2.5向Web3.0的平稳过渡，迎接一个更加美好的数字世界。

---

*Originally published on [Lausanne Dhondup](https://paragraph.com/@biquandidi/QtcbZvR8xbIGRMdokZRs)*
