本文深入探讨了 Nillion,一个专注于 AI 的私有计算平台。它采用双层网络架构,包括协调层(NilChain)和编排层(Petnet),利用多方计算(MPC)等隐私增强技术,通过Nillion SDK 和 Nada 编程语言,开发者可以在该网络上构建隐私保护应用程序。
Nillion 的技术架构建立在双层网络之上,包括协调层和编排层,以促进安全和私密的计算。协调层管理网络连接和治理,而编排层使用隐私增强技术处理数据。开发人员可以利用 Nillion SDK 和 Nada 编程语言在网络上创建保护隐私的应用程序。
主要内容
双层架构: Nillion 的运作包括用于网络管理的协调层和用于安全数据处理的编排层。
隐私增强技术: 该网络结合了多方计算等先进方法,以确保处理过程中的数据保密性。
开发者工具: Nillion SDK 和 Nada编程语言为构建利用网络隐私功能的应用程序提供了资源。
节点多样性: 各种节点类型,包括交易节点和计算节点,都有助于网络的功能和安全性。
Nillion 是一个自 2021 年以来一直在开发的计算网络。在此期间,该项目背后的团队开创了一个非常独特的平台,该平台利用了多种以隐私为中心的技术,这些技术共同作用,为一个高度先进的计算隐私框架及其许多实际应用。
总的来说,Nillion 使用双网络架构设计运行,这意味着它利用两个不同的并行网络(协调层和编排层),负责平台的操作效率和基础架构。
更具体地说,Nillion 利用以下基础组件:
Nillion网络:Nillion网络建立在双网络架构之上,该架构利用两个主要层,包括:
Nilchain NilChain网络帮助Nillion网络协调网络各种组件的连接。该平台充当Nillion的执行环境,并经过专门的精简,以支持节点内使用,促进支付、网络请求、存储操作、协议治理、盲计算和网络资源协调。
Petnet - Petnet 的任务是协调内部和外部区块链网络及相关环境,以扩大对 Nillion 存储和计算的访问。Petner 利用各种隐私增强技术 (PETs)例如多方计算 (MPC) 允许 盲计算 来计算敏感数据。其未来的愿景将采取更大、更先进的编排层的形式,具有显着先进的能力。
盲应用 - 默认的隐私应用结构,旨在 Nillion 网络上运行,盲应用利用盲计算和多种类型或隐私保护技术。
处理层 - MPC 协议和编排层的一个组成部分,处理层允许使用 Nillion 的节点开发工具包 (NDK) 部署节点,并连接到集群组(更大的节点集),这些集群组分配信任,以安全地处理整个网络的数据。
Nillion MPC 协议 是一种以隐私为重点的协议,它利用多方计算来确保平台上使用的数据的密码学可验证完整性,Nillion MPC 协议增强了 线性秘密共享方案 (LSSS) 的能力,以执行非线性运算,评估非零用户输入的乘积之和,以促进私有数据的安全计算,而不会泄露单个输入(请参见下面对此概念的更详细说明)。
Nillion SDK Nillion 的主要软件开发工具包和工具系统,Nillion SDK 包含一组工具(包括用于生成节点和用户密钥、编译用户程序和其他实用程序的 CLI 工具)和库,允许开发人员通过 Nillion 的各种隐私增强技术构建应用程序。
Nillion 节点类型 各种类型的计算机(节点)负责维护 Nillion 网络的运营完整性,这些节点包括交易节点、结果节点、引导节点和计算节点(这些节点也可以充当 libp2p 电路中继协议之上的中继服务器)。
Nada 编程语言 一种内部构建的编程语言,专为在 Nillion 网络上开发 MPC 程序而设计。Nada 的初始实现表示为 Python DSL(领域特定语言),但可能在其后续版本中采用另一种形式。
Nada AI 和 Nada Numpy - 一种最先进的机器学习范例,旨在通过 Nada DSL(领域特定语言)集成 AI 模型构建,Nada AI 使开发人员能够将 AI 模型导入 Nillion 平台进行推理,同时利用 Nada Numpy 的强大实用性(一个为代数运算而设计的 Python 库,允许开发人员执行高效的数组操作)。
由于 Nillion 项目的任务是开发一种前所未有的隐私计算范例,因此实现真正盲计算范例的创建所需的复杂性是极高的。 值得庆幸的是,经过多年的艰苦开发,经验丰富的密码学和计算专家 Nillion 团队在最重要的时候交付了成果。(图片来源:Nillion 新闻资料袋通过 Nillion 网站)
为了更好地了解 Nillion 的历史和成立,以及它的重要性,请务必阅读我们的第一篇 Nillion 文章,其中介绍了这些主题以及更多内容。
为了真正理解 Nillion 的技术架构是如何运作的,熟悉盲计算的概念非常重要。
更具体地说,盲计算允许在不泄露底层敏感数据的情况下进行加密计算,这要归功于各种隐私增强技术 (PET),包括多方计算 (MPC)、全同态加密 (FHE)、零知识证明 (ZKPs)等。
这是允许所需的非敏感数据公开可用的主要基础概念,而其他数据则被隐藏(即,通常是非常敏感的数据,称为高价值数据),不能与互联网上的任何普通人共享。
为了提供盲应用运行所需的框架,Nillion 网络利用了盲计算。 盲计算允许网络数据被掩盖(隐藏)并分成几个不同的部分,这些部分被发送到网络中的不同节点。 此过程允许节点处理数据而无需查看其内容,这意味着处理和组装结果,以便只有授权方才能看到最终输入。(图片来源:Nillion Twitter 帖子通过 Nillion Twitter)
但是,为了使盲计算按预期工作,Nillion 网络利用了一个互连的框架,该框架利用了几个主要组成部分,这些组成部分负责隐藏所有重要的私有数据。 这些包括:
掩蔽因子和一次性掩码: 这两个元素协同工作,以帮助保护 Nillion 网络上计算期间的数据安全。 具体来说,就盲计算而言,数据被掩蔽以防止暴露,从而允许在不泄漏被计算的实际数据的情况下执行计算。 掩蔽因子用于对因子(一个变量,乘以另一个变量以改变过程的速率或行为)应用一次性乘法掩码,以维持计算安全,以确保不泄漏实际值。
分享: 在盲计算中,分享负责将数据的各个部分分发到网络中的各种节点,其主要目的是确保没有单个节点能够访问完整的数据集,从而维护完整的信息隐私。 特别是,这些秘密分享(单独的分享/数据片段)是通过线性秘密共享方案 (LSSS) 密码学方法来实现的。 通常,分享是通过将掩蔽因子相乘并将这些特定掩蔽因子的因子相加,从而从节点获得的结果。
乘积之和 (SoP): 乘积之和 (SoP) 是盲计算框架中计算中使用的数学表达式,其中将几个数字相乘然后相加。 其目的是使复杂运算能够以简单且安全的方式表达,从而保证基础数据受到保护。
上述所有元素通过结合信息论安全性 (ITS) 范例以及线性秘密共享方案 (LSSS),通过预处理阶段和非交互式计算阶段协同工作,以帮助在更大的 Nillion 网络上实现盲计算。
具体而言,就 LSSS 而言,分享以只有某些分享组能够重构秘密的方式分发给众多参与者。 LSSS 的关键特征是线性,这意味着有效分享的任何线性组合都会导致形成另一个有效分享。
盲应用例证了 Web3 计算网络中如何创建和使用去中心化应用程序 (dApp) 的一种新表示形式。 最重要的是,它们旨在保护我们所有重要的在线高价值数据 (HDV),使其免受攻击的可能性,从而帮助互联网变得更加安全和私密。(图片来源:通过 Nillion 网站截取的Nillion 品牌指南 PDF 的屏幕截图)
由于 Nillion 专门专注于隐私并满足各种隐私特定实用程序,因此它开发了自己的以应用程序为中心的框架,称为盲应用。
从本质上讲,盲应用表示在 Nillion 网络上构建的默认的启用隐私的应用程序结构。 特别是,盲应用通过一个或多个隐私保护的 Nada 程序(Nada 是 Nillion 的以隐私为中心的语言)运行盲计算。 这是通过允许 Nada 程序计算秘密整数而不知道底层输入值来实现的,从而为处理网络上数据敏感操作创建了一个理想的环境。
总的来说,为了让开发人员在 Nillion 协议上创建一个盲应用,他们必须按时间顺序执行以下步骤:1.) 安装 Nillion SDK 2.) 启动 Nada 项目的开始,3.) 构建一个盲应用,以及 4.) 将他们新创建的应用程序部署到 Nillion 测试网(并在主网启动后,部署在主网上)。
在开发过程中,Nillion 创建了自己的专有编程语言,称为 Nada。 总的来说,Nada 专门为在 Nillion 网络上开发盲应用而构建,旨在补充 Nillion 平台的隐私特定功能。
尽管如此,Nada 语言旨在编写利用来自多方的秘密输入的程序。 术语盲计算来自以下事实:这些程序以对底层数据“盲”(隐藏)的方式进行计算,表明它们无法访问或查看秘密输入。
虽然专门为 AI 和其他用途而定制,但 Nada 构建为 MPC 特定语言,并且该语言的初始实现构建为 Python DSL(领域特定语言)。 通常,Nada 的特点是具有许多至关重要的特性,包括:
强类型 每个表达式和变量都使用一种特殊类型,该类型在编译时会进行验证,以此作为防止常见错误和类型不匹配的机制
面向正确性 构建为专注于正确性,并表现出诸如类型检查和通过编译器进行静态分析等特性
已编译 表示一种使用不同阶段的已编译语言
为了帮助网络在现实世界中实现其广泛的以隐私为中心的实用程序,Nillion 包含两个并行的互连网络。 这些包括:
协调层 也称为 NilChain 网络,协调层帮助 Nillion 网络协调网络各种组件的连接。 协调层充当 Nillion 的执行环境,并经过专门的精简,以支持节点内使用,从而促进支付、请求、存储操作、网络管理、盲计算和网络资源协调。
编排层 - 通常称为 Petnet,编排层的任务是协调内部和外部区块链网络及相关环境的平台,以扩大对 Nillion 存储和计算的访问。 编排层采用各种隐私增强技术 (PET),例如多方计算 (MPC),以允许盲计算来计算敏感数据。
Nillion 的协调层、编排层、MPC 协议和几个其他互连组件帮助网络实现其为所有人实现民主化的私有和安全数据可访问性的目标。(图片来源:通过 Nillion 网站截取的 Nillion 品牌指南 PDF 的屏幕截图)
处理层允许通过 Nillion 的节点开发工具包 (NDK) 部署的节点连接到一组集群,这些集群分配安全处理数据所需的信任。
具体而言,处理层是 Nillion 多方计算 (MPC) 协议的一部分。 它涉及两个主要阶段:预处理和非交互式计算。 预处理有助于网络准备利用高价值数据,而非交互式计算是一种
计算模型,其中各方执行计算而无需彼此直接通信(见下文)。
Nillion MPC 协议是一个以隐私为动力的平台,它利用多方计算技术以密码学方式保证平台上可验证的数据完整性。 该协议的主要目的之一是提高线性秘密共享方案 (LSSS) 的能力,以帮助平台实现私有计算,而不会泄露敏感信息。
在运行期间,MPC 协议按时间顺序使用两个不同的阶段:
预处理阶段: 此阶段涉及使用标准化 MPC 功能生成和分发与通过乘积之和 (SoP) 表达式相关的每个个性化因子和项相关的分享(掩码)。 预处理阶段在没有输入值的情况下进行,并且仅取决于输入的数量。
非交互式计算阶段: 非交互式计算阶段允许 MPC 协议基于私有输入执行计算。 虽然计算是非交互式的,即各方不直接通信,但它不需要各方之间的消息交换,并且旨在与异步工作流程保持一致。
此外,Nillion MPC 协议具有以下至关重要的特性:
非线性算术功能 - 允许协议评估隐藏输入的总和,而不会将输入数据泄露给潜在方
高效的预处理 - 允许完全在输入值之外创建分享,同时分别取决于每个项中输入的数量(因子和项)
异步计算 有助于允许非交互式计算阶段与异步工作流程连接,并改进这些相关流程,而无需参与者之间的消息交换。
ITS 安全性 - 帮助确保协议支持 信息论安全性 (ITS),该安全性是线性秘密共享方案 (LSSS) 中固有的,以创建一个无法被拥有无限计算资源的对抗性攻击利用的系统
Nillion 的交易节点、结果节点、引导节点、计算节点和中继服务器有助于 Nillion 网络以平衡和公平的方式运行,从而为我们所有人带来前卫的以隐私为中心的计算框架。(图片来源:Nillion 新闻资料袋通过 Nillion 网站)
Nillion 网络包含几种不同的节点类型,以支持平台的架构。 这些包括:
交易节点 启用了 SDK 的节点,负责向 Nillion 网络发送任务
结果节点 - 由 SDK 支持的节点,用于重构在 Nillion 网络上进行的计算结果
引导节点 - 指定为 Nillion 网络入口点的节点,每个希望加入网络的节点都需要一个引导节点列表。 一旦想要加入网络的节点拨打一组配置的引导节点并连接,该节点就会被引入到网络的其余部分,并且节点间对等发现过程开始。
计算节点 - 在 Nillion 上运行的节点,旨在执行网络的主要功能,例如计算和存储等
中继服务器(由特别配置的计算节点组成) 因为交易节点和结果节点能够在任何环境中运行(例如,Web 浏览器或其他平台),所以可以通过 libp2p 的电路中继协议 将计算节点配置为中继服务器。 因此,交易节点和结果节点能够与中继服务器建立中继电路,作为在网络中运行的一种手段,类似于系统中的其他节点。
在 Nillion 网络中运行的所有节点都利用私有(节点密钥保密私钥)和公钥对,以便它们易于识别且在密码学上安全。
为了帮助确保在 Nillion 网络上正确部署和开发去中心化应用程序 (dApp) 和节点系统,该平台利用了 Nillion SDK。 即,SDK 利用了以下互连元素:
Nillion CLI 工具 - 一个 CLI 工具,可促进 Nillion 网络和命令行之间的交互,从而能够促进各种流程,例如网络状态验证、程序上传和存储计算秘密
本地网络 允许开发人员创建一个本地 Nillion 多方计算 (MPC) 集群网络
用户和节点密钥生成 - 用于创建节点和用户密钥的各种工具系统,专注于秘密网络可用性
程序模拟器 - 一个用于在开发期间本地模拟 Nada 程序执行的框架
Nada 编译器 - 用于编译与程序模拟器同时运行的 PyNada (Python/Nada) 程序,或编译存储在更大的 Nillion 网络上的程序
Python 和 JavaScript 客户端 - 启用节点客户端和网络中去中心化应用程序之间的连接
除了 Nillion SDK 之外,Nillion 还利用 Nillion 节点部署工具包 (NDK) 作为网络节点部署框架。
DAIC 提供的信息(包括但不限于研究、分析、数据或其他内容)仅供参考,不构成投资建议、财务建议、交易建议或任何其他类型的建议。 DAIC 不建议购买、出售或持有任何加密货币或其他投资。
- 原文链接: daic.capital/blog/nillio...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!