一文读懂加密事实:信任最小化的计算和记录

本文是关于未来信任模式系列科普文章的第二篇。 有兴趣的读者可以阅读上一篇文章《一文读懂加密技术》,深入了解区块链、智能合约和预言机所解决的社会问题。

区块链技术与其他计算模式存在许多不同之处,其中最关键的一点就是区块链可以生成加密事实。用一句话来概括加密事实,那就是:加密事实是一种在准确性、可访问性和可审计性方面完全超越现有机制且不可篡改的后端计算和记录机制

加密事实源于信任最小化的基础架构。由于代码执行和验证不依赖对陌生人的信任或不可控的变量,因此代码可以严丝合缝地执行。区块链采用加密技术实现信任最小化,认证数据并保障记录和去中心化共识的时间顺序,以对新添加的数据进行验证并确保数据无法被篡改。通过这个机制,多方流程可以在一个中立、可信且共享的后端系统中追踪和执行,并且系统会采用经济激励机制来进行高效管理。

Cryptographic Truth
加密事实结合了加密技术和去中心化的共识,在分布式的网络中达成共识,创建统一的记录,并以确定性的方式为应用展开计算。

下文将详细阐述区块链如何结合加密技术和去中心化共识来生成加密事实;并探讨预言机如何能扩展加密事实,验证任何类型的链下数据或任何形式的链下计算。

目录

  • 什么是加密技术?加密技术如何用于区块链?
    • 加密技术综述
    • 现代加密技术
      • 哈希函数
      • 对称加密
      • 非对称加密
    • 区块链采用的加密技术
      • 交易认证和验证
      • 出块、抗女巫攻击以及终局
      • 数据存储
      • 其他用于区块链的加密技术
    • 基于去中心化共识的事实
      • 博弈的架构
      • 博弈的经济激励
      • 博弈的结果
    • Chainlink如何利用加密事实来打造全局事实机器(Global Truth Machine
    • 一个由加密事实驱动的世界

什么是加密技术?加密技术如何用于区块链?

要充分理解加密事实及其在区块链上的作用,就必须首先了解现代加密技术的概念及其基本运作逻辑(注:如果你已经知道什么是加密技术,请跳转至下一章《区块链采用的加密技术》)。

加密技术综述

加密技术的本质是在攻击行为发生时安全地保障通信。在多数人看来,加密技术的主要价值是保护通信隐私(如:为消息传输应用加密),但其实这项技术还可以用于认证消息来源、验证消息完整性以及保障消息的不可否认性。换而言之,就是确定消息来自某个特定的对象,没有经过篡改,并且其属性无法被消息发送方否认。

加密技术可以将原始消息转换成常人无法辨认的信息,只有特定对象才能破解消息内容。加密函数(encryption)是一种双向函数,可以将原始消息(即:明文)加密成无法辨认的消息(即:密文),只有收件人才能重新还原成明文。也有些密码学函数是单向的,只是为了证明某个信息或数据属性,而不用揭示完整的数据。

加密算法被称为密码(cipher),而密钥则被称为secret。密钥通常由一串字符串组成,持有密钥的人可以破解密码。密码通常分为两类,即:替换密码和置换密码(也称为换位密码)。替换密码(substitution ciphers)用其他字母、数字和符号替换了明文中的字母、数字和符号。置换密码则保留了明文中的字母、数字和符号,但打乱了其原有的顺序。这些技术通常会混用或叠用,并基于外部数据或时间而变化,以增加其复杂性。

Substitution and permutation ciphers
密码通常分为两类,即:替换密码和置换密码(也称为换位密码)。

最早出现的密码是硬件加密的。换句话说,最早的密码是记在脑子里,写在纸上,或者通过其他非数字化的方式保存的。然而,随着计算机的发展,软件加密算法成为了主流的加密方式。

现代加密技术

现代加密技术重点围绕计算硬度假设(computational hardness assumptions)展开,这个概念假设特定问题无法有效被攻破。虽然大多数加密函数在理论上都可能被破解,但实际上由于目前算力存在上限,因此函数无法被破解。所以,现代加密算法的目的是在计算效率和计算安全性之间达到适当的平衡,基于数学和计算机科学来正确地决定密钥长度等因素。许多加密函数都是基于现代计算机系统要解开数学难题所需的时间和预算而设计的,如离散对数整数分解椭圆曲线理论问题等。

现代通用的软件加密技术分为三类,即:哈希函数、对称加密以及非对称加密。

哈希函数

哈希函数可以将任何长度的数据转换成名为“哈希值”的固定长度的值。哈希值类似于数据的指纹,每个都是独一无二的,可以验证数据的真实性。哈希函数通常用于索引数据,并高效地从数据库获取数据。它还可以用来安全地储存数据,比如网站只会储存加盐(salted)的用户密码哈希,以防止数据库被攻击而导致密码泄露。

哈希函数不使用密钥,并基于单向函数来抵御原像攻击。不知道原始消息的人几乎不可能单凭哈希值破解消息。破解原始消息唯一可行的方法就是蛮力攻击,即:每个可能的密码都挨个试一次。而哈希值有无数种字符组合方式。哈希算法通常也可以防止共谋,两个不同的输入几乎不可能生成同样的哈希值。由于存在上述特质,对输入进行任何一点修改,比如将某一字母大写或添加一个标点符号,都会生成完全不同且看似随机的哈希值结果。

如今,最主流的哈希算法是SHA-256。这个哈希算法会生成长度为256位的字符串(即:连续256个1和0组成的字符串)。256位的哈希值通常会显示成十六进制字符串,因此它们的长度可能是32或64个字符。SHA-2系列哈希函数中包含SHA-256,代替了目前已经被破解的SHA-1。2015年基于加密原型Keccak推出了SHA-3。

Hashing in blockchains
改变输入中任何一个字符,如在添加一个逗号,都会完全改变哈希结果,并且呈现出完全不同的随机字符。

对称加密

对称加密 (也称“密钥加密”Secret-Key Encryption)包含一个共用的密钥,发件人和收件人都用这把密钥来加密和解密消息。对称加密速度快且效率高,但是也存在一个问题,那就是很难在网上安全地共享密钥。虽然可以在私下共享密钥,但是这个方法无法全局扩展,因为必须要每个对手方之间都建立正式的联系。另一个问题是,一旦密钥被盗,所有使用密钥的人在此之前或之后收发的所有消息都有可能被破解。因此,许多采用对称加密的互联网协议(比如TLS)也会采用密钥交换协议,在不通过互联网发送密钥的前提下安全地共享密钥。

最主流的对称加密密码是Advanced Encryption System(AES)。AES的密钥长度分为128、192和256位,这在Data Encryption Standard(DES)标准的56位密钥之上进行了大幅改进。DES标准在安全方面远不如AES。56位的密钥有256(等于72000兆)种可能的密钥组合方式,蛮力攻击的话只需不到24小时就能破解。而即使是AES最短的密钥也需要集结全世界所有计算机花几万亿年时间才能把所有2128种可能性都试一遍。

Symmetric Encryption
对称加密使用同一个密钥来加密和解密消息。

非对称加密

非对称加密 (也称为公开密钥加密Public-Key Cryptography)会给每个用户一对公钥和私钥。公钥所有人都能看见,而私钥只有持有者一人能看见。用户可以用自己的私钥加密消息,任何持有公钥的人都可以破解。这项技术也被称为“数字签名”,它能在不透露隐私的前提下证明隐私数据(即:用户持有对应公钥地址的私钥)。用户还可以用别人的公钥来加密消息,只有持有私钥的人才能破解(即:发送私密数据)。

最主流的非对称加密算法是RSA(以其发明者Ramis、 Shamir和Adleman三人的名字首字母命名)、ECC(椭圆曲线加密算法)、Diffie Hellman(主流的密钥交换协议)以及DSS(数字签名算法)。一些非对称加密算法可以抵御量子计算攻击,而一些则不具备这个能力,有待在未来进行升级或直接被弃用。

Asymmetric encryption
非对称加密需要每名用户持一个密钥对,密钥对包含公钥和私钥。

区块链采用的加密技术

区块链主要采用两种加密技术,即:公开密钥加密和哈希函数。不过,其他加密技术也在不断涌现出来,用于区块链的扩容、隐私和外部连通性解决方案。以下是区块链加密技术的部分用例。

交易认证和验证

区块链上的每名用户都必须持有一对公钥和私钥以及区块链地址,以此向网络提交交易。用户用私钥来生成公钥,并用公钥来生成区块链地址,区块链地址通常是公钥的哈希值,其末尾20位字符添加在0x等前缀后。值得注意的是,区块链钱包和传统交易平台一般会为用户简化公钥和私钥的生成过程。

 

区块链地址类似与用户银行账户绑定的真实姓名,唯一的区别是,区块链地址是一串由数字和字母组成的伪匿名字符串。用户可以在区块链地址中存放资金并部署智能合约。私钥类似用户要进入账户时必须输入的密码,用户需要私钥来进行转账和修改智能合约等操作。公钥类似用户的银行账户,用于验证用户的私钥签名。

用户提交交易时,会从自己的区块链地址向网络发送一条消息,消息中包含交易数据和一个数字签名。交易数据描述了用户希望在网络中进行的操作,而数字签名是对这个操作的认证。数字签名包含两个部分,即:用户交易数据的哈希值以及用户的私钥。数字签名会附加在交易数据上,以生成一个经过数字签名的交易。

负责管理区块链的矿工/验证节点和全节点会运行数字签名验证协议,以验证交易的有效性。这个验证协议会对原始交易数据进行哈希运算。另外,它还会使用用户的公钥来解密数字签名,并生成一个哈希值。如果两个哈希值完美匹配,那么就证明交易是有效的。区块链结合了哈希运算和公开密钥加密技术来实现数字签名功能,保障了只有私钥持有者才能访问区块链地址中的资金。

Blockchain transaction authentication and verification
区块链采用数字签名来认证并验证用户交易。

出块、抗女巫攻击以及终局

出块指矿工/验证节点将待确认的交易打包成名为“区块”的数据结构,并提交至网络中。区块通常由其中的所有交易以及一个区块头组成,区块头包含区块的元数据。要生成区块,矿工/验证节点需要生成一个有效的区块哈希值,否则区块将被拒绝。

工作量证明 (PoW)区块链(如:比特币区块链)采用的机制是所有矿工参与公开竞争,第一个通过蛮力法生成有效哈希值的矿工(注:有效哈希指至少以x个0开头的哈希值)会被选中向账本提交区块。PoW区块链在出块环节采用哈希函数来抵御女巫攻击,以防止某一实体控制多个节点来操控网络中区块生成。由于PoW矿工唯一提高自己成为出块节点概率的方式就是提高哈希算力,因此这也意味着他们要相应花更多钱来增强自己的计算装备,以获得更高的算力。这不仅可以防止DoS攻击,而且矿工也需要付出更多努力,才能有机会获得区块奖励。

权益证明 (PoS)区块链(比如合并后的以太坊)也会在区块生成过程中进行哈希运算,但是这个环节故意设计得比较简单,因为验证节点之间不存在竞争。相反,PoS区块链通常会随机在验证节点中筛选出块节点,筛选机制通常基于节点的权益质押权重。PoS区块链会要求验证节点必须质押一定数量的cryptocurrency,才能参与出块环节,以此来抵御女巫攻击。因此,PoS区块链的验证节点必须将一部分资产质押,以提高自己被选为出块节点的概率。如果出块节点违背了协议条款,比如区块中包含无效交易或在同一区块高度重复签名了两个区块,那么他们质押的保证金就会被没收。

通常,有效的区块哈希必须包含以下两部分:

  • Merkle root——在默克尔树数据结构中,区块中包含的所有交易的根哈希值。
  • Nonce——随机的数字/字母组合,这个组合会生成有效的哈希值,并满足当前的挖矿难度目标。PoW区块链会根据某一出块频率(如:每十分钟出一个块)来定期调整nonce的难度;而PoS区块链则相对比较容易就能生成nonce。
  • 其他的区块链元数据——每条区块链的要求不一样,但是大致可能包括:区块链当前的软件版本、时间戳、挖矿难度目标、整条区块链的状态根哈希值或者当前区块号码。
  • 之前一个区块的哈希值——之前验证过的区块的有效区块哈希值。
Blockchain blocks
区块链中包含交易数据、Merkle root、其他的区块元数据、有效的nonce以及之前一个区块的哈希值。

每个区块中包含前一个区块的区块哈希值,通过加密技术将区块连成一条链,并维持账本的时间顺序。因此,区块链的一个特征就是不可篡改性,因为要更改之前验证过的区块需要耗费巨大的算力和财力,这个过程也被称为区块重组或re-org。即使一个区块中的一条交易被修改了,整个区块的哈希值都会发生变化,因此也会被其他节点发现。值得一提的是,并非所有区块重组都是恶意的。比如,由于异步网络的特征,区块链最前端发生区块重组是比较常见的现象。然而,深度的区块重组可能更具争议,重组发生的时间越晚,实现的难度就越大。

PoW区块链上的矿工如果要发起区块重组攻击,必须要针对所有区块生成新的有效哈希值。而且在这段时间内,网络中的其他矿工还在不断扩张算力,向最近的这个区块添加新的区块。而中本聪共识就在这里发挥出价值了。中本聪共识规定:“工作量最大且最长的链就是有效的链。”,这个共识让矿工可以直观地判断哪个版本的账本才是正确的。

正因如此,PoW区块链被认为是“概率性确定”(probabilistic finality)的,即:修改发起的时间越晚,攻击成功的概率就越低。而概率性确定就引出了“51%攻击”这一概念,即:矿工需要控制至少51%的哈希算力,才能发起深度区块重组攻击,或操控其他矿工的区块。正因为概率性确定的存在,中心化的cryptocurrency交易平台往往会等到后续区块达到一定数量时才批准转账交易(比如比特币区块链需要等待6个后续区块,以太坊则需要等待32个区块)。这个机制可以避免双花攻击,即:同一笔钱被花出去两次。

在PoS网络中,除出块节点以外的所有或部分验证节点都需要通过投票来验证新区块的有效性。验证节点如果要发起区块重组,就可能被没收质押的保证金,攻击越深入,罚款金额就会越高(注:共识通常是超过2/3的验证节点)。PoS区块链通常采用这样的模式,将加密经济机制与共识算法相结合,包括实用拜占庭容错算法TendermintCasper以及HotStuff

一些PoS区块链还对区块链账本设置了修改上限,N个区块之前的区块无法再被修改,拥有完全的确定性。比如,PoS信标链合并入目前的以太坊网络后,会把出块和验证分为两个epoch ,每个epoch有32个slot,每个slot的时长是12秒。 在每个epoch中,所有验证节点都被随机分到不同委员会中,每个委员会至少包含128个成员。每个epoch都会重新分配一次验证节点。每个slot中,都会有一个验证节点提交区块,并由一个或多个委员会中的其他验证节点验证区块。这样设计的目的是让验证节点在每个epoch中验证一个提交的区块。

Ethereum epoch
在合并后,以太坊区块的出块和验证会被划分成多个epoch,每个epoch有32个slot,每个slot都可以提交并验证区块。资料来源

在每个epoch结束时,如果所有质押权益的验证节点都验证了之前一个epoch中区块的有效性,那么这些区块就被认为是有效的。如果连续验证了前两个epoch的有效性,那么其中更早的那个epoch就被认定终局了。在网络状况和验证节点参与都正常的情况下,交易终局的平均时间为14分钟。一旦一个epoch被认定终局,依据协议规定,这个epoch将无法被撤回,除非启动外部社会共识。

数据存储

区块链是一个账本,帐本中按照时间顺序记录了每一笔发生在区块链网络中的交易(注:不过也有一些区块链在尝试修剪某一时间点之后的历史数据)。区块链运行的时间越长,账本就会越大,而节点存储和同步需要花费的成本也就越高。存储和带宽要求过高也会使运行全节点的硬件需求更加严格,这样可能会导致一小撮人控制网络,因而威胁到区块链网络的去中心化水平。

为了安全高效地加密账本数据,区块链采用了一种叫作“默克尔树”(Merkle tree)的数据结构。在默克尔树中,每笔用户交易都经过哈希计算,然后与另一笔交易的哈希值放在一起再次进行哈希计算。就这样不断合并进行哈希计算,直到最终算出一个根哈希值,即:Merkle Root。

比特币采用了基于UTXO(即:未花费的交易输出)模式的默克尔树来记录交易,而以太坊则使用默克尔树来记录交易、状态以及日志和事件等数据。这个模式也被称为基于通用智能合约的“账户模式”。

Blockchain hashing in Merkle trees
默克尔树可以高效地在链上储存交易数据。

默克尔树非常有价值,它与其他数据结构相比占用的空间更小,而且可以高效地验证帐本中的数据完整性。另外,由于Merkle roots放在区块头中,因此轻客户端可以连接至一个可信的全节点,既使不下载整条区块链,也能快速安全地验证具体的交易是否包含在某一区块中。

其他用于区块链的加密技术

其他用于区块链的加密原型包括:

  • 零知识证明ZKP——用户(证明者)用来向另一方(验证者)证明他知道某个信息,并同时不披露信息的具体内容。比如,在Zcash区块链上,全节点可以在不知道交易双方或交易金额的情况下证明交易的有效性。
  • 可信执行环境(TEE——使用英特尔SGX等可信硬件执行隐私计算,可以通过加密证明来证明计算的完整性。其中一个实例是Oasis区块链。链上所有验证节点都使用可信执行环境来可靠地执行智能合约,并同时保护隐私。
  • 门限签名机制(TSS——这是一种分布式密钥生成和签名机制,通过一个加密签名来认证去中心化网络中开展的计算。这个加密签名需要由超过门限数量的节点签名共同生成。比如,15个节点中需要10个节点签名就可以验证交易的有效性。

基于去中心化共识的事实

博弈论的核心是基于数学理论来制定策略,可以预测理性的主体在具体竞争中的行为。在博弈论中,机制设计的精髓在于采用激励机制在战略交锋中获得理想的结果。

区块链也通过机制设计来激励去中心化网络中理性且谋求自身利益的节点共同维护账本的准确性、不可篡改性、可访问性以及抗操控性。有时,理想的结果累积起来,就会导致大多数人都是诚实的。也就是说,区块链网络中的多数节点都做到诚实守信,因此用户也可以一直相信网络所达成的共识。

那么我们来仔细研究一下区块链的架构和激励机制,以及它是如何通过诚实的大多数来创建事实的。

博弈的架构

区块链是由开源软件驱动的透明账本。这意味着所有参与者都可以查看账本的全部历史,并验证代码是如何运行的。区块链网络的参与者共分为五类:

用户在网络中展开交易,有些用户以个人身份发起交易,有些则是为了运行应用而发起交易。在无需许可的区块链上,任何人都可以在任何时间向网络提交交易。

矿工/验证节点负责将用户交易打包至新区块,并以此来扩展账本。一些区块链允许任何人成为矿工/验证节点,而其他则限制了矿工/验证节点的数量,或需要许可才能加入。一些区块链采用了折中的方式,允许用户通过投票或权益委托的方式参与。

全节点在区块链网络中有几个作用。首先,全节点可以提供RPC接口,用户可以面向区块链读写数据。RPC接口可以通过自建节点实现,也可以通过第三方实现(如:Infura)。当向区块链写入数据时(即:提交交易),全节点可以将数据传输到公共的内存池(mempol),也可以存放在私有的交易池中。这是因为在点对点的去中心化网络中没有统一的交易池,每个节点都有自己的交易池。

全节点需要验证用户交易的有效性,然后将交易传输至区块链网络,或者将其他节点的交易传输至区块链网络。另外,全节点还负责验证矿工/验证节点提交的新区块,以实现区块链账本的自我验证。如果全节点认定区块有效,就会将区块添加至他们本地储存的区块链账本中。如果全节点认定区块无效,就会拒绝该区块,并且不更新本地的账本。去中心化网络中全节点达成的共识代表了账本的当前状态,包括所有区块链的地址、每个地址的余额、部署的智能合约以及相关储存的数据。任何人都可以运行全节点,不过每个区块链网络对硬件的要求各不相同。矿工/验证节点通常会以全节点的身份参与区块链网络。

Blockchain full nodes, miners, and validators区块链会将矿工/验证节点与全节点分开,以提升网络的安全性。

服务提供方是外部方,负责为区块链提供服务,或基于区块链上的内容创建服务。服务提供方包括预言机、建立索引的协议、中心化的交易平台、轻客户端、归档节点以及区块浏览器等。这些实体通常都会建立自己的商业模式,并且需要与区块链交互。比如,中心化的交易平台可以在cryptocurrency和传统金融系统之间搭建桥梁;轻客户端可以让用户在不下载全部账本的前提下验证来自全节点的消息;预言机可以为智能合约应用输入关键的外部资源。

MEV机器人可以在区块生成过程中影响交易排列顺序,尤其是矿工和MEV开发者。矿工可提取价值(MEV,也叫“最大可提取价值”,这个价值取决于矿工/验证节点有多大能力可以控制哪些交易可以进入区块,以及如何为交易排序。他们可以利用自己的特权来谋取私利,比如对用户发起抢跑攻击或三明治攻击,并抓住清算和套利机会来获利。MEV机器人通常会通过私有交易池和链下区块空间拍卖运行,不过有些也会独立运行。

博弈的经济激励

经济激励可以大致分为两类,即:隐性激励和显性激励。显性激励指对博弈行为进行直接的奖励或惩罚,比如访问某一服务时必须付费,或违反某一协议条款必须被罚款。隐性激励指博弈中产生的间接奖励和惩罚,比如参与者可能损失未来的收入机会,或不得不在收入没有保障的情况下付出更多努力。

区块链上最直接的经济激励就是矿工/验证节点成功出块后可以获得区块奖励和交易费。区块奖励的金额通常是固定的,而交易费可能会根据用户对有限区块空间的需求而上下波动。在出块过程中,还有一些隐性的经济激励,这些激励源自于交易的排列顺序,而这正是MEV机器人想要榨取的利润机会。

区块链还通过PoW和PoS等抗女巫攻击机制来建立罚款机制。矿工/验证节点必须质押一定计算资源或资产,才能有机会赢得奖励。如果他们违背网络共识,这些质押的资产就会被没收。这样做还有一个好处,那就是可以激励去中心化,因为矿工/验证节点越来越难控制网络的哈希算力或权益质押。

另外,区块链会向矿工/验证节点支付链上的原生货币。这也是一种隐性激励,可以让矿工/验证节点诚实地参与网络,共同维护网络的安全性和可靠性,以吸引更多用户。用户人数增长会产生更高的交易费,也可能推高区块链原生cryptocurrency的价格。crypto价格升高意味着每个区块的收入增长,个人持仓也会相应增值。Implicit staking Bitcoin比特币建立了某种隐性的质押机制。矿工必须要努力维护网络的安全,才能使其获得的奖励(即:比特币)得以维持较高的价值,并且实现盈利。

虽然一般协议针对全节点没有直接建立显性激励机制,但是却有许多隐性质押机制。一开始,网络要正常运行必须至少有一定数量的全节点。用户、应用和服务提供方也需要运行或访问全节点,以便提交和验证待定交易的状态。因此,存在一些免费的节点即服务模式来对生态提供支持。

除了经济激励之外,全节点还对账本的完整性至关重要,因为如果做不到去中心化,一小撮参与者就可能会控制整个网络。账本如果出现问题,就会影响服务提供方和去中心化应用。这两者的商业模式完全依赖于“区块链上大多数节点是诚实的”这一假设。

去中心化的全节点网络还可以将区块创建与区块验证分开,为矿工/验证节点随意修改协议规则设置更高的壁垒,并对其建立问责制。另外,全节点还会在最大程度上保障抗操控性和安全性,因为他们无需委托任何第三方向区块链读写数据。这些隐性激励结合在一起,能够激励用户和关键的经济主体运行全节点。

博弈的结果

在博弈的架构中引入上述这些激励机制,就会在区块链上实现理想的结果:

  • 准确性——区块链的去中心化水平、显性/隐性质押以及甄别无效交易的机制都会激励矿工/验证节点以及全节点针对有效的交易诚实地达成共识。
  • 不可篡改性——要篡改之前验证通过的区块不仅成本高昂,而且还要承担巨大风险。特别是在这个过程中,网络中的其他节点还在不停地在目标区块之后添加新的区块,因此篡改之前区块这个做法更是得不偿失。
  • 可访问性——充分的奖励有助于保障矿工/验证节点持续创建区块。另外,还能激励全节点网络扩展至矿工/验证节点以外的范畴。
  • 抗操控性——区块链上建立了抗女巫攻击机制和经济激励机制,任何人无需许可就能参与,因此任何中心化的实体想要操控交易都需要付出巨大的成本,特别是对于运行了有一段时间的区块链来说更是如此。

上述这些特质更好地激励了用户与区块链网络交互。不仅使用量会上升,而且用户还可以更轻松地在链上储存更多价值,并在智能合约中使用自己的链上资产。

然而需要注意的是,区块链虽然具有抗操控性和准确性,但是由于MEV的存在,仍然无法保障交易基于收到时间或交易费来进行排序。因此,Chainlink目前正在开发公允排序服务(FSS),这是一种预言机服务,可以基于交易收到的时间以去中心化的方式进行排序。该服务可以覆盖各个区块链、layer 2网络以及去中心化应用。

另外还有一点,区块链在本质上是由人类运行来服务人类的。因此,如果所有人都达成了某种社会共识(即:在链下达成协议),认为区块链需要做出改变,那么也可以实现。这种通过社会共识驱动变革最典型的案例就是以太坊在2016年的硬分叉(注:硬分叉是一种不向后兼容的软件更新),那次以太坊硬分叉恢复了The DAO黑客事件中被盗的资金。社会共识也可以反过来,社区参与者可以阻止某些提议实施,比如社区拒绝了比特币网络的Segwit2x提议以及以太坊网络的ProgPoW提议。

无论怎样,区块链仍然可以最有效地避免恶意攻击以及违背社区多数人社会共识的变更,特别是通过建立各种加密和经济机制来实现。

Chainlink如何利用加密事实来打造全局事实机器(Global Truth Machine)

上文中我们重点说到了区块链如何结合加密技术和博弈论,就内部交易的有效性诚实地持续达成共识(即:创建事实)。然而,区块链之外的事件如何得到可靠验证呢?答案就是:使用Chainlink

Chainlink是去中心化的预言机网络,其目的是生成关于外部数据和链下计算的事实。也就是说,Chainlink围绕不具有确定性的现实世界生成事实。“确定性”是一种计算特性,具体指“特定的输入永远都会产生特定的输出”,即:代码会严格按照约定执行。去中心化的区块链具有确定性,因为它采用了信任最小化的技术,消除了任何可能阻止内部交易提交、执行和验证的变量,或将其发生概率降至统计学上接近零的水平。

非确定性的环境存在一个挑战,那就是事实可能是主观的,难以获得,或需要耗费巨大成本去验证。比如,比特币的价格是什么?答案是:由于每个交易平台上比特币的价格都不一样,而且价格一直处于变化状态,因此不存在客观统一的比特币价格。另外,是否所有用户都能接受获得事实的成本以及创建事实的具体方式呢?比如,一个网络中包含许多高性能的物联网设备,其输出的天气数据远比普通的单一传感器更准确,但这个网络的安装和运行成本也相对更高。这个例子说明了一个问题,那就是不同人和不同企业可能对外部事实的生成方式及其成本的接受程度不一样。

由于区块链只负责维持所有用户和应用之间的单一事实来源,因此Chainlink就变得至关重要,因为Chainlink能够让用户创建自己的“权威事实”,即:预定义事实创建的方式,并且所有相关方都认可这个方式是权威的。另外,生成权威事实的预言机机制也可以得到验证,使用区块链的加密保障和确定性的计算来执行预言机条款。Cryptographic truth for digital agreements去中心化的预言机网络将权威事实与加密保障相结合,可以安全、可靠和准确地提供链下服务,并证明其服务满足了用户预定义的参数。

 

也就是说,权威事实是一个由用户定义的共识机制,让接入区块链的去中心化预言机网络以信任最小化的方式运行。用户可以自定义以下共识机制的参数:预言机网络的基础架构、接入的数据源、执行的计算、奖惩机制、预言机网络如何向区块链证明其工作的完整性。虽然这些参数可以根据预算、性能要求以及信任假设进行自定义,但也会参考所有市场或大部分市场共同认定的行业标准的事实来源。

为了实现信任最小化,Chainlink采用了许多与区块链相同的机制,包括:

  • 加密技术——每个Chainlink预言机节点都持有对应区块链的公私钥。节点用密钥生成数字签名,附加在他们执行的所有计算结果上,并且签名会在区块链上验证和储存。加密签名不仅能证明数据传输方和计算内容,还能建立声誉系统,追踪节点的链上表现,比如节点的历史在线时间和准确性。由预言机节点和预言机网络签名的数据还可以用来触发奖惩机制。
  • 去中心化的共识机制——Chainlink在数据源、预言机节点和预言机网络层面都实现了去中心化,消除数据源、数据传输和计算三个环节中的任何失效和操控风险。因此,用户可以根据自身需求和预算,从任意数量的数据源和节点聚合数据,并高效证明外部事件或链下计算的有效性。
  • 经济激励机制——Chainlink节点可以通过提供预言机服务来赚取用户费用。另外,Chainlink之后还会推出加密经济权益质押模式,在其中可以质押LINK通证,以进一步激励诚实的预言机服务。如果节点服务质量差或发起恶意攻击,比如拒绝输入数据或提供计算资源、未能及时传输数据或传输的数据与DON的中位数值偏差过大,其质押的LINK通证将被没收。

最终,Chainlink将建立一个信任最小化的框架,基于用户自定义的参数执行链下计算,对计算结果附上签名,并将结果发送到链上,以供用户验证。这些新的“链上/链下”混合型应用可以极大推动区块链的价值主张,因为它们可以让链上智能合约代码直接响应或影响来自外部世界的数据和计算,其中包括数据提供方、web API、物联网、其他区块链、传统后端系统以及支付系统等任何类型的外部资源。Chainlink NetworkChainlink可以为混合型智能合约提供端到端的框架,创建加密事实。

比如,Chainlink Price Feeds是去中心化的区块链网络,采用了多层聚合的架构,围绕实时资产价格和金融市场数据打造加密事实,并建立行业标准。

Chainlink Price Feeds的数据由专业的数据聚合商聚合,这些数据聚合商从几百个交易平台中获取原始数据,并生成交易量加权平均价(VWAP)。每个Chainlink节点会从多个数据聚合商那里获取交易量加权平均价,并取中位数。最后,每个Chainlink节点提交的中位数会再次聚合成一个中位数,生成可信的单一喂价,并储存在区块链上。任何人都可以在链上验证每个节点和预言机网络提交的数据。

传统应用和去中心化金融应用都可以接入这些喂价执行关键操作,比如发行并清算贷款、结算衍生品合约以及制定汇率。Chainlink Price Feeds are cryptographic truth for asset pricesChainlink Price Feeds为金融资产的实时喂价创建加密事实.

一个由加密事实驱动的世界

最终,加密事实将为计算和记录实现确定性、准确性和透明性。应用代码可以保障严格按照约定执行,历史记录会被反复验证且无法被篡改,这将为社会和经济关系带来更多以事实为基础的保障。有了稳健的事实作为基础,经济活动将更加活跃,社会也将更加和谐,我们相信这是全世界所有人都希望看到的景象。因此,我们每个人都有责任开发并应用区块链和预言机技术,为我们社会中的各个核心支柱建立加密事实。

如果你看完这篇文章后感觉受到了启发,可以继续阅读我们之前发布的文章《一文读懂加密技术》,这篇文章深入探讨了现有经济和社会体系对加密事实的需求。

如果你想要进一步了解区块链和预言机技术,可以访问Chainlink博客,阅读更多的科普系列文章。

更多资讯,请访问chain.link,订阅Chainlink新闻并在TwitterYouTubeReddit上关注Chainlink。

Need Integration Support?
Talk to an expert
Faucets
Get testnet tokens
Read the Docs
Technical documentation