作者:Vaish Puri,The Tie
编译:深潮 TechFlow
在区块链行业发展的大约十年后,早期采用者意识到,一种隐藏的中心化形式正在发生。随着链的利用率增加,它变得更长,这就减少了计算和带宽能力。随着时间的推移,具有最高网络和运营能力的节点将占主导地位,这推动了中心化的发展。
2019 年 7 月孵化公司 O(1)Labs 推出了一个雄心勃勃的新开源项目:Mina Protocol(原名 Coda)。他们的实现建立一个能够真正去中心化、拥有可扩展性和安全性的 L1 愿望。
Mina 是一个 PoS 区块链和加密货币,支持智能合约。该协议的独特之处在于,它将区块容量限制在 22 KB,使其成为一个 "简洁 "的区块链,这种创新的方法使得该网络被称为 "世界上最轻的区块链"。
Mina 目前由 Mina 基金会管理,自成立以来已经取得了重大进展。在对几个对抗性测试网证明了自己后,该网络在 2021 年 3 月成功部署了其主网。在主网之后,该团队一直致力于提升零知识空间:随着 zkApps 或基于零知识证明的去中心化应用的引入,这一点变得明显。zkApps 使用户能够在不损害其隐私或安全的情况下使用 dApps。
技术概述
Mina 是第一个使用简洁区块链的加密货币,它可以为每笔交易提供短暂而稳定的验证时间。Mina 通过在每个区块中包括简洁的状态有效性证明来实现这一点,这使得大量的交易列表可以被快速而廉价地验证。
Mina 使用可增量计算的 SNARKs,以确保每个区块的证明计算成本与上一个区块增加的交易数量成正比。与其在每个完整的节点上存储整个链的状态,不如在区块头中简单地验证余额。然而,这个系统中的验证者需要存储完整的状态,因为在证明新区块的有效性时,它是证人。目前,状态证明的大小为 864 字节,需要约 200 毫秒来验证。因此,任何智能设备(如 iPhone)都可以支持计算负荷。
在 Mina Network 中有两个主要角色:
区块生产者——收集区块以进行 SNARK
SNARK 工作者——创建 zk-SNARK 交易证明以压缩交易
Mina 通过拥有一个他们称之为 "Snarketplace "的市场来激励创建 SNARK 证明的工作——在这里,节点交换服务是可以获得费用的( $MINA )。
Snarketplace 包含一个固定大小的缓冲区,像一个队列。区块生产者将需要 SNARK 的交易添加到这个队列中,而 SNARK 工作者创建 SNARK 来处理这些交易。因为 Mina 的大小是固定的,区块生产者必须购买已完成的 SNARK,然后才能添加到队列中。
在 SNARK 工作者要对队列中的一个区块进行 SNARK 之前,他们会创建一个带有特殊数字签名的交易 SNARK,这个签名被称为知识签名。知识签名有关于提供多少费用和谁来支付的信息。区块生产者在排队等待新区块,另一边 SNARK 工作者在创建证明,任何级别的硬件都可以允许用户参与 Mina,使网络对每个人都有包容性。
共识机制
Mina 的共识协议称为 Ouroboros Samisika,是第一个可证明安全的 PoS 共识协议。 区块生产由可验证随机函数 (VRF) 决定。 这是一个随机函数,需要私钥才能运行,并且可以使用公钥进行验证, 随机性是根据 Ouroboros 计算的。 如果质押者的 VRF 输出大于他们的质押分数,他们就有机会产生一个块。
此外,VRF 允许区块生产者计算他们何时要生产一个区块,因为他们是决定 VRF 输出的私钥的唯一持有者。 这提高了整体安全性,因为不良行为者将无法识别下一个区块生产者来执行 DoS 攻击。 最重要的是,为同一个插槽选择了多个块生产者,进一步降低了攻击的可能性。
由于 VRF 在 Mina 中的工作方式,预计每 4 分钟在主链上就会有一个区块生成。
代币经济学
$MINA 是通胀的,没有供应上限;
初始分配包含 10 亿 MINA 代币(不包括未来的区块奖励),在主网的前 15 个月,对解锁账户进行 8 年的完全解锁 "超强奖励"(双倍区块奖励);
在 Mina PoS 系统中,区块奖励和费用是按比例分配的。假设参与度很高,相对于那些决定质押的人来说,那些不质押的人将得到一定的稀释。作为激励质押的一种方式,Mina 的通货膨胀率从 12%开始。在头五年中,该比率被设定为下降并保持在 7%,然后受制于产业链的治理,尽管治理目前尚未正式发布说明。
该协议将以这些通货膨胀率为目标,而不考虑质押的参与,从而导致区块奖励的动态变化。例如,如果只有 50%的网络质押,区块奖励就会翻倍。这是由于 Ouroboros 的共识系统:每个区块产生的区块数量将与质押比例成正比。在参与率低的情况下,这种方法自然会鼓励参与者质押。
zkApps
在 Mina 生态系统中,有一个零知识驱动的智能合约集,称为 zkApps。这些智能合约就像普通的的智能合约一样,但额外具有隐私和链下计算等附加功能。
一个 zkApp 由两部分组成:
- 一个智能合约(用 SnarkyJS 编写)
- 一个用户界面
zkApps 及其用例的计划集成为用户描绘了一幅相当积极的画面。在 zkApp 部署到主机网站后,用户可以与他们的 Auro 钱包自由互动。当用户与 zkApp 互动并输入任何相关的数据(例如:在 AMM 上购买资产),zkApp 中的验证器功能将生成一个由用户数据提供的 ZK 证明,这个数据只对输入的用户可见。前端过程类似于用户目前使用的小狐狸钱包或其他浏览器钱包,唯一的区别是在后端。当 Mina 网络收到交易时,它会验证证明是否有效,并更新 zkApp 的状态。由于所有的活动都发生在用户的网络浏览器中,他们的隐私始终得到保证。
考虑到 zkApps,Mina 专注于建立三个主要功能:
- 在线和链上的终端数据隐私[生产中];
- 无权限的 Web Oracles(zkOracles)[开发中];
- 私人的互联网登录(zkIdentity)[开发中] 。
总结
Mina 声称是世界上最轻的区块链,完全由其用户驱动,并采用递归的 zk-SNARKs 来构建整个区块链,其大小大约为 22kb(相当于几条推文)。它是 L1,允许零知识智能合约的有效实施和可编程性,称为 zkApps。
凭借 Mina 独特的隐私功能和连接任何网站的能力,zkApps 在现实世界和加密货币之间创造了一个安全和隐私的桥梁。作为率先突破并提供零知识企业解决方案的项目之一,Mina 的位置无疑是在这不断扩大的零知识领域的最前沿。