cardano-Midnight-0--阅读前必读

116 阅读12分钟

这里介绍的信息需要用户知道一些区块链的基本知识。如果不是很清楚这块知识,可以先恶补下下面的知识。

共识机制

区块链的共识机制是一组规则,用于管理网络中的参与者同意向链添加区块的方式。每个区块必须符合链的规则,并且区块必须以正确的顺序链接起来,避免或解决链中的分叉。

去中心化应用

DApp 是去中心化应用程序的缩写,是一种在没有单一中央服务器(通常是区块链)的网络上运行的计算机程序。

DApp开发者

创建和维护 DApp 的个人或组织。

DApp运营商

负责管理、运营和支持去中心化应用程序的个人或组织。 DApp 运营商通常会聘请 DApp 开发者,或者他们自己就是 DApp 开发者。

去中心化

没有单一权力控制的系统或组织。相反,该系统或组织是由众多具有同等或相当地位的决策者来管理的。

开发网

开发网络是“开发网络”的缩写,是一种行为类似于主网的区块链,用于测试正在开发的 DApp。它使用没有价值的测试令牌。为了方便开发者,一些治理参数的设置可能与主网不同。在 Midnight 中,DApp 在主网上发布之前,DApp 部署过程会从开发网转移到一个或多个测试网(例如预览版和预生产版)。

分布式

区块链是分布式的,因为它的副本存储在世界各地的许多计算机上。

小工具

小工具是专门针对零知识密码学的专门入口点,旨在让广大开发人员能够进行 ZK Snark 电路开发。 Midnight cryptography(Midnight 的加密后端库)提供了多个小工具,包括签名小工具、加密小工具和散列小工具。

哈希

在密码学中,哈希值(简称哈希)是称为哈希函数的数学运算的输出。哈希函数接受任意长度的字符串并生成固定长度的字符串,因此无法导出输入值,两个字符串生成相同哈希函数的概率非常低,甚至输入的微小变化总是会产生不同的输出。

Kachina

Kachina 是一个用于数据保护智能合约的统一安全模型,它弥合了用户本地计算机上的私有状态和区块链上的公共状态之间的差距。
它基于通用可组合 (UC) 模型。 Kachina 依托 ZK Snarks 建立了智能合约协议,确保在 UC 安全框架内运行时的数据保护。

分类帐

区块链上合约状态和token状态的公共记录。账本在任何时候都不会作为区块链上的单个文档存在。相反,可以通过读取直到该区块的区块链来合成某个区块的当前分类账。

在 Compact 中,ledger声明指定了合约对全球账本的贡献。

客户端

区块链轻客户端与全节点交互以查找有关区块链的信息,但仅存储账本本身的一部分。通过验证标头并使用 Merkle 证明,轻客户端可以确保从全节点接收到的数据有效且准确。与全节点相比,轻客户端需要更少的处理能力和存储容量,这使得它们更适合资源有限的设备,例如智能手机或物联网设备。

主网

完全开发和部署的区块链,其中交易被验证和记录。

默克尔

密码学和计算机科学中使用的一种数据结构,用于验证大型数据集的完整性和一致性。 Merkle 树以其发明者 Ralph Merkle 命名,是一棵二叉树,其中每个叶节点代表特定数据块的哈希值。

资产

多资产是指区块链平台或协议同时支持和处理多种类型的数字资产或token的能力。

不可替代token(NFT 

不可替代的token是记录在区块链上的独特且不可分割的token。它们可以代表有形资产(如房地产或艺术品)的所有权,也可以代表无形资产(如 Web3 游戏中的稀有魔法剑)的所有权。

节点

区块链节点是参与区块链网络的计算机或设备。它在维持区块链技术的去中心化和分布式性质方面发挥着至关重要的作用。节点有多种类型,一个节点可以有多种类型。

  • 活跃节点的目的是为区块链铸造区块。
  • 全节点存储整个区块链的副本,即网络中执行的所有交易和数据记录。
  • 被动节点是从其对等点接收块和交易的节点(并且将来将与其对等点共享这些)。

Oracle

预言机是一种向智能合约提供外部数据的服务或机制。这意味着智能合约可以通过使用来自预言机的数据来与外部信息源交互以自动化操作。

佩德森承诺

Torben Pedersen 在 1992 年的会议论文中介绍的一种加密技术,可以在不泄露价值本身的情况下承诺价值。它涉及使用数学运算将值与随机致盲因子结合起来以创建承诺。承诺的价值仍然是隐藏的,并且在不知道致盲因素的情况下很难进行逆向工程。 Pedersen 承诺是同态相加的,允许将承诺“添加”到两个值以获得对原始值之和的承诺。通过将每个维度赋予不同的基数,可以将其进一步扩展到任意维度向量的总和。

pricate Oracle

证人功能集和它们运作的私人状态构成了合同的私人预言机。

证明者

旨在使另一方(称为验证者)相信声明的有效性或真实性而不泄露任何敏感或机密信息的实体或一方。证明者的角色是构造一个证明,证明对某些数据的了解或执行特定计算的能力,同时保持机密性。

发布-订阅索引器

发布-订阅 (pub-sub) 索引器是一个遵循 Midnight 链以对可查询数据库中的事件和数据建立索引的组件。轻客户端可以订阅此服务以接收任何相关数据,例如与给定钱包地址集相关的token交易,或与给定智能合约相关的交易。

自我主权身份(SSI 

自我主权身份是个人、组织或事物的终生可移植身份。它不依赖于任何中央集权机构,也不能被剥夺。个人有权决定他们分享哪些个人信息以及与谁分享。他们可以有选择地仅披露特定交易或交互的必要信息。

屏蔽

屏蔽令牌允许在不泄露元数据的情况下进行交互。钱包地址和交易详细信息不会向交易对手披露,也不会在公共分类账上公开。

智能合约

在区块链上编码的程序,在满足特定条件时执行预定义的操作。智能合约通过计算机代码执行合同条款,从而消除了对中介机构的需求。智能合约可实现透明、安全和防篡改的交易,因为它们是在去中心化网络上执行的,没有单点故障。

斯纳克

参见 ZK-Snark。

state

状态是指智能合约中存储的当前数据或信息。它表示变量的值、存储位置以及合约执行和运作所需的任何其他相关信息。

测试网

测试网是开发网和主网之间的中间步骤。与开发网络一样,它是一个具有主网所有特征的区块链,除了它使用没有实际价值的测试token。为了方便开发者,一些治理参数可能会与主链设置不同。
DApp 部署的过程通常是从开发网到一个或多个测试网(例如预览和预生产),然后再在主网上发布。测试网参数的设置可能比开发网上更接近其生产值。

交易

区块链网络上数字资产或信息的转移或交换。交易涉及将发送者、接收者以及正在转移到区块链中的资产的数量或类型等记录。交易通过共识机制进行验证、验证并添加到区块链中,确保其完整性和不变性。

打字稿

由 Microsoft 开发的一种编程语言,为 JavaScript 添加了功能。它允许开发人员在开发过程中捕获错误并提高代码质量。 TypeScript 代码转换为 JavaScript 来执行,通常用于 Web 开发,提供更好的工具支持和生产力,特别是对于较大的代码库和团队。

通用可组合 (UC) 安全框架

Ran Canetti 在 2020 年的论文中描述的理论框架。它用于以可组合的方式分析和证明密码协议的安全性。在 UC 框架中,协议被视为可以组合在一起形成更复杂协议的构建块。当协议用作大型系统中的组件时,该框架允许分析协议的安全属性。

验证者

旨在验证另一方(称为证明者)提出的陈述的有效性或真实性的实体或一方,无需完全了解基础数据或计算。验证者的作用是检查证明者提供的证明,并根据商定的规则和密码协议确定其正确性。

钱包

允许用户安全地查看、发送和接收数字资产的数字工具或软件。这些钱包存储私钥和公​​共地址,使用户能够在区块链网络上管理他们的数字资产。

Web3

Web3 是基于区块链技术和加密原理构建的万维网的去中心化版本。它提供了一种无需信任、更加以用户为中心的在线体验。它旨在改变信息、价值和数字资产的共享、访问和交互方式。

Web3钱包

Web3 钱包通过支持与 DApp 的连接并允许管理加密货币以外的资产(例如 NFT)来扩展数字资产钱包。

见证

在数理逻辑中,见证人是满足断言的值。例如,“存在一个大于0的整数”的见证人是数字5。对于Midnight中的零知识证明,见证人是一个满足不同类型断言的函数:存在一个具有指定类型的函数签名。 Compact 中定义的电路可以调用此类见证人函数,但见证人的定义在 Compact 之外,并且它们对私有状态的影响不会记录在公共账本中。

零知识证明(ZKP 

零知识证明允许某人在不泄露秘密的情况下证明他们知道秘密。例如,ZKP 可以证明某个属性具有某个范围内的值,而无需透露其确切值。 DApp 或服务的潜在客户可以使用 ZKP 有选择地披露其自我主权身份的信息,而无需披露其他信息。

零知识(ZK)电路

算术电路是短程序,由模素数域中的固定数量的乘法和加法组成。零知识电路是一种特殊情况,它可以证明算术电路解的存在性,而无需透露输入值或中间步骤。

ZK蛇鲨

零知识简洁非交互式知识论证(ZK Snark)是一种特定类型的零知识证明。它们特别高效和强大有两个原因。首先,ZK Snarks 是简洁的,这意味着无论被证明的语句的复杂性或大小如何,证明大小都保持不变。此属性非常理想,因为它提供了有效的验证并减少了需要传输的数据量。其次,ZK Snarks 是非交互式的,这意味着证明者可以生成证明,而不需要与验证者进行任何额外的交互。这使得它们比其他类型的 ZK 证明更有效,其他类型的 ZK 证明通常涉及多轮通信。