公链分析报告 - Secret Network
1. 背景
2021年是隐私保护、去中心化以及抵制审查的一年。随着人们对于隐私信息保护的需求增强,区块链系统如何保护用户隐私问题、提高隐私防护能力成为许多区块链开发人员重点研究方向。在这一背景下,隐私公链大有可为。
- Oasis Network (Oasis Labs)
- Secret Network (Enigma)
- SERO
- Findora
- Iron Fish
2. 概况
Secret Network 之前是一个建立在以太坊上的第二层隐私解决方案,前身是构建于 2017 年的「Enigma」。由于以太坊的可扩展性问题,目前技术栈迁移到使用 Cosmos SDK 构建的第一层解决方案,利用 Tendermint 的拜占庭容错共识算法的权益证明(PoS)。
- 2020 年 2 月 13 日 Secret Network 推出
- 2020 年 6 月 19 日,Secret Games 激励测试网公布
- 2020 年 9 月 1 日, 启动 Secret Network 的主网上线
Secret Network 由隐私区块链 Enigma
更名而来,是首个具有隐私保护智能合约的区块链。允许去中心化应用甚至网络节点使用不会被泄露的加密数据。其权益证明网络,用于抵押、管理网络费用。Secret Network (秘密网络) 是第一个默认具有数据隐私的区块链,允许您构建和使用无需许可和保护隐私的应用程序。这种独特的功能可以保护用户、保护应用程序并为 Web 3 解锁数百个新用例。
Secret Network 是使用 Rust 构建的区块链协议,使去中心化应用程序 (dApps) 能够执行加密计算。秘密合约使 dApp 可以在秘密网络上使用私人数据,特别之处在于它们能够在秘密合约执行期间使用加密合约状态获取加密输入并生成加密输出,而不会暴露任何数据。
秘密网络上的数据隐私是通过在可信执行环境 (TEE) 中工作的密钥管理和加密协议的组合来实现的。
- 用户向网络发送加密输入
- 验证器(秘密节点)对加密数据执行计算
- 提议验证者提交加密输出
- 验证者就结果达成共识
- 加密输出和加密合约状态记录在 Secret Network 上
2.0 协议
Secret Network 是使用 Cosmos SDK 构建的第一层解决方案,利用 Tendermint 的拜占庭容错共识算法利用权益证明 (PoS)。Secret Network 的原生代币是“SCRT”。出于可验证性、安全性和共识目的,网络上的每个节点都执行计算。由于是第一层解决方案,Secret Network 与链无关,并且能够与使用 Cosmos 区块链间通信协议 (IBC) 的一系列网络进行互操作。为了实现数据隐私,Secret Network 协议利用了密钥管理、加密协议和可信执行环境 (TEE),它们是网络中所有验证节点的硬件规范的一部分。TEE 保证节点无法查看在可信环境中发生的计算——在计算过程中保护底层数据的隐私。Secret Network 的底层账本是公开可见的;原生代币 SCRT 用于治理、交易和 gas 费用。该协议实现了可编程隐私,它被定义为应用程序中任意复杂的数据隐私控制。可编程隐私使代币能够通过秘密合约使用秘密网络 SNIP-20 标准包装到其私有和可替代的等价物中。大约每六秒创建和附加一个块,由于每个块的气体限制,软限制约为每秒 22 个事务。
利用 TEE 的秘密网络协议是未来 Web 3.0 合同开发的可编程隐私事实标准。
2.1 特点
- 对所有 DApp 的数据隐私
- 交易的隐私
- 允许用户在本地解密自己的交易和应用数据的许可密钥架构 – 合规性和可审计的途径
- 使用 Cosmos SDK 构建
- 权益证明(PoS)共识
- 默认验证节点数量为 50 个
- 6 秒的区块时间
- 理论 TPS 上限是每秒约 1000 笔交易
2.2 开发团队
Secret 背后的核心开发团队之一是 SCRT Labs(前身是 Enigma),这是一家源于著名的麻省理工学院(MIT)的软件开发公司。
Carter 是 Secret 网络灰皮书的作者(由 Enigma 协助)。此外,Carter 自己是 Shade Protocol 的首席研究员和经济学家。Shade 是一个连接隐私保护的 DeFi dApp 矩阵。其中第一个产品是 Silk,一个建立在 Secret 上的保护隐私的算法稳定币。
2.3 融资&合作进展
Secret 两个主要的去中心化交易所 SiennaSwap 和 SecretSwap 中拥有超过 1.4 亿美元的 TVL。Secret 目前已经公布的投资伙伴有Arrington Capital、Blocktower Capital、Fenbushi、Hashed、Outlier Ventures、Skynet Trading 和 Spartan Group。
最近,SiennaSwap 也完成了 1120 万美元的融资。Secret 最大的里程碑是应用层的增长:目前有超过 10 个应用上线,有超过 10个 项目从生态基金获得 grants,目前价值约为 1.8 亿美元。此外,目前有超过 20 个应用程序正在开发中,其中一些应用有来自机构投资者的投资,尚未公布。
2.4 SCRT币
SCRT是Secret Network的原生代币,用于协议的所有网络费用,抵押和链上治理。上架币安,火币等。历史最高¥68.2042,历史最低¥4.9671。
因为Secret Network 采取 PoS 机制,所以「代币质押(staking)」是网络安全和共识的一个关键组成部分,Secret Network 的代币经济模型主要如下:
- 已质押 1.02 亿枚 SCRT—质押 SCRT 的年化收益率(APR)约为 26%
- 950 万枚 SCRT 流通
- 15% inflation(通货膨胀)
- 社区池中约 100 万枚 SCRT(市值约 1000 万美元)
- 生态池中约 2000 万枚 SCRT(市值约 1.8 亿美元)
2.5 治理
进行链上治理提案有五个阶段:提交、存款、投票、计票和实施。
- 存款期 - 1 周
- 投票期 - 1 周
- 最低存款额 - 1000 SCRT
- 法定人数 - 33.4%
- 门槛 - 50%
- 否决 - 33.4%
提案希望修改的代码由网络开发人员更改,并在网络的下一次硬分叉期间实施——协议的更新版本然后被推送到支持网络的所有节点。
2.6 生态
https://scrt.network/ecosystem/overview
3. 秘密如何运作
Secret Network 提供了一个使用加密数据构建抗审查应用程序的平台。每个节点运营商都配备了专门的硬件,用于在安全enclaves 中运行代码 - 也称为可信执行环境或 TEE。包括设备管理员在内的任何人都无法访问在 enclave 内解密和处理的原始信息。
3.0 Architecture
Secret Network 的compute
模块目前需要验证器来运行带有英特尔 SGX 芯片(enclave )的节点。这些enclave 包含在enclave 内生成的签名密钥。
有关 enclave 如何运行和验证的更多详细信息,请参阅英特尔 SGX。
图:秘密网络代码的可信和不可信方面。compute
使带有加密的 go-cosmwasm 能够在 enclave 的受信任组件内执行。
3.1 秘密网络引导过程
在新链产生之前,必须有一个引导节点来生成网络范围的秘密,这将赋予秘密网络链的所有隐私功能。当第一个节点加入秘密网络时,它经历了三个步骤。首先,引导节点的 enclave 生成了一个远程证明来证明 TEE 是真实的。接下来,节点生成一个随机的 256 位数字,称为共识种子。共识种子是秘密网络加密模式中最关键的部分,因为所有其他密钥,因此协议的功能取决于最初生成的共识种子的安全分发。使用 HKDF-SHA256 共识种子,结合其他上下文相关数据,派生私钥用于注册新节点的过程,I/O 加密,和状态加密。新节点还使用 HKDF-SHA256 使用原始种子或第二代种子进行密钥派生。接下来,共识种子被密封到引导节点的磁盘 $HOME/.sgx_secrets/consensus_seed.sealed。最后,远程证明证明、共识种子交换的公钥和共识 I/O 交换的公钥都发布到 Secret Network genesis.json
。
Curve25519 是用于非对称密钥生成的椭圆曲线,ECDH (x25519) 用于派生对称加密密钥,用于使用 AES-128-SIV 加密数据。
节点通过以下部分中概述的远程证明过程加入网络:新节点注册。简而言之,网络共享一个通过此注册过程访问的真正随机种子。这个种子在 bootstrap 节点的 TEE 内部生成,与其他节点相同,但它是第一个加入网络的节点。所有其他密钥都以 CSPRNG 方式从该种子派生而来。节点使用非对称加密与用户非交互地同意共享对称密钥,然后,对称加密用于加密和解密来自用户的输入和输出数据,以及内部合约状态。有关 Secret Network 中使用的密码学的更多信息,请查看我们的加密规范。
3.2 新节点注册
新验证者节点的注册查询可以通过 SecretCli(用于与网络交互的接口)发送到网络共识层。注册查询的组成部分包括以下内容:新节点的 enclave 是真实的远程证明证明、候选验证节点的注册公钥和 256 个真正的随机数。在这些组件被发送到网络共识层进行共识种子交换之前,候选节点必须生成一个curve25519曲线私钥/公钥对,用于在网络上注册节点。接下来,使用 SecretCli,候选节点使用之前列出的所需输入向共识层发送查询。
3.3 隐私保护秘密合约
Secret Contracts 使用 CosmWasm v0.10 的改编版,以实现与 Cosmos 生态系统的最佳集成。使用 CosmWasm,秘密合约可以使用 IBC 在多个链上运行。Rust 是用于开发秘密合约的核心语言。选择 Rust 是因为编译到 Wasm 的便利性以及由此产生的优化运行时性能,从而降低了 gas 成本。Rust 对不安全内存使用的默认保护措施和出色的工具支持是额外的变量。秘密合约启用加密输入、状态和输出。秘密合约的输入,例如区块高度、时间、链 ID、发送者、地址、发送的资金和合约哈希值是不加密的。加密的主要输入组件是客户端创建的消息。秘密合约的合约状态(内部持久化数据库)始终是加密的,并且只有在 TEE 中的合约本身才知道。加密的输出只有交易发送者和合约本身知道。
Cosmos 中的查询无法对查询者的身份进行加密验证;Secret Network 通过允许合约拥有一个用于验证调用者身份的加密查看密钥来解决这个问题。该查看密钥允许对任何给定地址的一系列相关数据进行解密。秘密合约津贴功能允许帐户将其余额的一部分指定给其他帐户。这类似于 ERC-20 合约的配额功能,使其他合约能够管理一部分地址余额。为了避免泄露数据,秘密合约可以通过填充来强制执行恒定长度的消息。交易的输出可以包括以下内容:对另一个合约调用的回调、合约初始化、质押交易、对提案的投票、从合约钱包发送资金的指令。
以下过程逐步描述了如何提交秘密合约以及在秘密网络上执行的计算:
-
开发人员编写秘密合约并将其部署到秘密网络
-
验证者运行完整节点并执行秘密合约
-
用户向秘密合约(链上)提交交易——其中可以包括加密的数据输入
-
验证者从用户那里接收加密数据,并执行秘密合约
-
在秘密合约执行期间:
- 加密输入在可信执行环境中解密
- 请求的函数在可信执行环境中执行
- 可以执行来自 Tendermint 的读/写状态(状态在归档时始终加密,并且仅在可信执行环境中解密)
- 输出被加密
-
区块提议验证器提议一个包含加密输出和更新加密状态的区块
-
至少 2/3 的参与验证者就加密输出和状态达成共识
-
加密的输出和状态在链上提交
3.4 秘密合约状态加密
在作为交易的一部分在节点的 TEE 内执行函数调用时,秘密合约代码可以调用以下函数:write_db(field_name, value)、read_db(field_name) 和 remove_db(field_name)
。总的来说,Secret Contracts 的状态存储在链上的键值存储中。因此,字段名称在调用之间保持不变。函数调用的加密密钥使用来自共识状态 IKM、字段名称和合约密钥的 HKDF-SHA256。还可以使用附加数据来防止泄漏有关在不同时间写入相同键的相同值的信息。合约密钥是签名者 ID 和经过身份验证的合约密钥的组合。合约密钥的目标是为每个秘密合约提供一个唯一且不可伪造的加密密钥。作为财产,不可伪造对于确保恶意验证者无法使用自己的加密密钥在本地加密交易,然后使用假密钥解密结果状态是必不可少的。此外,每个合约必须是唯一的,以确保具有相同代码的两个合约的状态不同。
当从验证器节点初始化合约时 - 在节点的 TEE 内,使用 HMAC-SHA256 从签名者 ID 和身份验证密钥派生合约密钥。除了由共识状态 IKM 和签名者 ID 串联组成的 IKM 之外,使用 HKDF 从 HKDF salt 派生身份验证密钥。每当调用合约执行时,秘密合约的合约密钥都会发送到网络的每个验证者节点。收到合约密钥后,会进行断言/检查以确保收到的合约密钥与预期值匹配。
4. 秘密应用
隐私公链Secret Network于 2020 年 9 月8日发布隐秘合约引入主网的升级提案,2020 年 9月15 日升级版隐秘合约网络上线主网。该升级提案使Secret Network成为首个能够在配置安全区域的分布式节点系统中支持通用隐私计算的一层区块链。开发者首次能够构建和部署可利用加密输入、输出和状态的「秘密」智能合约。同时,Secret Network 还与以太坊、Cosmos Hub 等其他网络建立连接,将可编程隐私能力带到整个区块链领域。
4.1 Secret Token
Secret Tokens (SNIP-20) 是 Secret Network 上的智能合约交互,它铸造默认私有的代币,加密以确保匿名性和机密性。查看代币余额、交易详情和代币元数据需要查看密钥。然后,这些秘密代币可以在秘密网络生态系统中使用,尤其是秘密金融和秘密 NFT。
4.2 Secret Bridge
Secret Network 已推出与以太坊的跨链桥 Secret Ethereum Bridge,并于 2020 年 12 月 14 日在主网上启用。官方称,Secret Ethereum Bridge 允许用户在以太坊上锁定数据代币,同时在 Secret Network 铸造另一种代币并进行交易。用户还可参与 Secret Ethereum Bridge 挖矿,锁定资产和接收代币都将获得 SCRT 奖励,奖励活动将在跨链桥启动后立即开始。
此外,用户可以使用任何 Secret Token (包括 secretETH,secretSCRT 等)来为 Secret AMM(隐私自动做市商平台) 提供流动性。Secret AMM 将在 Secret Ethereum Bridge 奖励生效后启动。
Secret 已经建立了与以下公链的跨链桥:
- 门罗 (主网)
- 以太坊(主网)
- 币安智能链(主网)
- Terra/Luna (测试网)
- 波卡(测试网)
- 比特币 (测试网)
4.3 Secret Finance
2021 年 1 月 12 日,Secret Network 推出桥挖矿活动(Secret Bridge Mining),用户可以锁定 ETH 和 ERC-20 代币至其跨链桥 Secret Ethereum Bridge 上,并计划在 6 周内分配 50 万枚 SCRT 奖励。Secret Network 总共为其 DeFi 生态系统分配了 200 万枚代币奖励。目前,用户可以在该跨链桥上创建 ETH 或者 ERC-20 资产的 Secret 代币版本,最初支持的资产包括 ETH、WBTC、DAI、YFI、OCEAN、LINK、USDT、TUSD、UNI、BAND、BAC 和 AAVE 等。
隐私公链 Secret Network 在上线桥挖矿活动不到 1 日后,总锁仓额已经突破 1000 万美元,达 10,171,817 美元。另外,Secret Network 正在开发隐私场外交易平台(Secret-based OTC)、去中心化的隐私拍卖和暗池应用(Secret Auctions)、隐私自动做市商平台(Secret-based AMM)等。
此外,去中心化数据共享协议 Ocean Protocol 宣布集成隐私公链 Secret Network ,允许 Ocean Market 上的数据发布者在无需信任的情况下享受便利性。 隐私合约可接受算法和数据的加密输入,并以一种完全隐私的方式执行合约。
4.4 Secret NFT
2021年第二季度 支持“Secret NFT”, 秘密NFT具有两个主要特征。
- 一种是私有制。NFT很少见,因此任何人都可以弄清楚谁拥有某个NFT,然后将地址与个人相关联。允许NFT私有化可确保默认情况下无需向所有人公开资产和交易。
- 第二个功能是私有元数据。除了公共元数据,Secret NFT还提供了一个可选的私有元数据字段。例如拥有具有某些公共功能以及特殊的隐藏功能的游戏卡。或者,艺术NFT创作者可能会选择公开发布图像的缩略图或带水印版本,以便人们对所购买的商品有所了解,但是完整分辨率/无水印版本是私有的,必须购买才能查看。
Secret 在推特宣布与 opensea 合作,已于 2021年11月 推出和拍卖独一无二的Secret NFT 系列作品。
5. 体验
5.1 钱包 - Keplr

5.2 挖矿
手把手教你参与隐私公链 Secret Network 挖矿
5.3 部署本地测试网
https://docs.scrt.network/dev/quickstart.html#setup-the-local-developer-testnet
5.4 Secret Contracts(可编程的隐私)
Secret Network是一个独特的第1层区块链,具有“秘密”智能合约-保留隐私的智能合约,允许分散的应用程序以加密的输入,输出和状态运行。
5.4.1 以太坊+门罗+Cosmos
大多数支持智能合约的区块链,例如以太坊,默认都是公开的。这意味着他们的智能合约中使用的所有数据都向公众公开。Secret Network是第一个具有隐私保护智能合约的区块链。
Secret Network 通过支持智能合约的加密输入、加密输出和加密状态来改进传统的智能合约——存储在区块链上的敏感信息的数据隐私。
由于默认情况下数据是加密和私密的,因此 Secret Network 用户拥有“查看密钥”来查看他们的敏感数据。查看密钥可以与第三方(如审计员、钱包和浏览器)共享。它们允许用户保持对其数据的控制并决定共享什么以及与谁共享。
5.4.2 秘密合约
以 Rust 编程语言编写的秘密合约允许应用程序使用加密数据,而无需暴露数据本身——甚至是网络中执行计算的节点。这实现了在其他区块链上根本不可能实现的独特用例。
秘密合约允许开发人员创建在其 dApp 中可证明是正确的私人投票机制,或者能够使用经过验证的用户数据生成信用评分的信用评分应用程序,而无需在链上暴露敏感的用户数据。
秘密合约功能基于在网络上秘密节点操作的 TEE 内运行的CosmWasm (智能合约平台)。WebAssembly(CosmWasm 的“Wasm”部分)允许以各种语言编写的代码在区块链上安全运行。
5.4.3 创建你的第一个项目
https://docs.scrt.network/dev/secret-contracts.html#create-your-first-secret-contract
5.4.4 隐私模型
https://docs.scrt.network/dev/privacy-model-of-secret-contracts.html#tx-parameter-verification
5.4.5 开发指南
https://docs.scrt.network/dev/developing-secret-contracts.html
5.4.6 示例投票合同
https://github.com/scrtlabs/SecretSimpleVote/blob/master/src/contract.rs
5.4.6 SNIP-20 参考实现
https://docs.scrt.network/dev/quickstart.html#secret-toolkit
参考
官网: https://scrt.network/
Github: https://github.com/scrtlabs/SecretNetwork
灰皮书: https://scrt.network/graypaper
官方文档: https://docs.scrt.network/
跨链: https://bridge.scrt.network
隐私币集体上涨 隐私公链Secret Network会是下个风口吗?
Secret Network筹集1150万美元用于进一步的隐私和应用开发
隐私公链Secret推出4亿美元生态基金,有哪些值得关注的机会
- 往期精彩回顾:
- 区块链知识系列
- 密码学系列
- 零知识证明系列
- 共识系列
- 公链调研系列
- BTC系列
- 以太坊系列
- EOS系列
- Filecoin系列
- 联盟链系列
- Fabric系列
- 智能合约系列
- Token系列