现在有数百个区块链,其中许多都是大家熟悉的。无论是以太坊还是它的杀手们,很多都建立了自己庞大的生态系统。为什么米娜要在这个时候制作一个新的区块链?它的优点是什么?如果只是一些小方面的改进,那还值得入手一台区块链吗?
实际上,Mina在技术和应用层面都有独特的创新。其技术愿景是建造世界上最轻的区块链。这个怎么理解?我们可以以后再扩展。
在应用层面,米娜想在现实世界和密码学世界之间搭建一座桥梁,而这座桥梁可以保护隐私。米娜是如何保护隐私的?我们可以从区块链现在面临的一些问题开始。
我们看到目前一些公链存在以下问题:
第一,很难找回。今天的区块链是“沉重的”,这意味着运行一个节点是非常困难的。相信没有几个听众朋友会自己跑以太坊的节点。每个人都通过一些中介机构与以太坊网络互动,这意味着不通过中介机构直接访问区块链是非常昂贵和困难的。
第二,大规模分发和协调。参与这个网络,它的规模和分散程度也是有限的,因为参与这个网络需要很高的资源,尤其是带宽资源。当吞吐量增加时,运行节点的阈值会增加,去中心化程度会降低,反之,网络中心化程度会增加。
第三,私密性和可验证性。所有的交易、交易、数据都是开放链接的,用户的隐私没有得到很好的保护。其实我们要的是验证这些数据的准确性,并不需要数据本身。
那怎么解决这些问题呢?Mina就是为了解决这些问题而设计的。
第一,Mina是一个很轻的区块链,大小在KB级别,用户维护这样一个完整的节点相对容易。因此,每个用户可以运行一个节点,这样在访问Mina时就不需要第三方服务提供商。
其次,Mina共识算法非常特殊,共识参与不受限制,Mina共识验证者数量不受限制。其实现在大部分PoS算法,如果是基于这些委员会所选出的共识算法,一般只能容纳几百个验证者,因为网络通信的复杂度会随着验证者数量的增加而迅速上升,节点无法承受通信开销。米娜选择了一个成熟的竞争PoS算法——Ouroboros,并做了一些改进,产生了一个变种,叫做“Ouroboros Samasika”,有助于节点分散。
同时也带来了一些额外的好处,因为Mina没有针对验证者的惩罚机制,所以在运行节点时不用担心自己断网或者大规模断网带来的惩罚。
第三,部署在Mina上的应用叫做“Snapps”,Snapps是零知识证明驱动的应用。这些应用程序可以使用离线数据,同时保护用户的隐私。用户不需要向区块链提交他们的隐私数据,而是提交关于这些数据的证明,这样区块链只需要验证这些数据符合一定的要求。
听完这些,我会觉得米娜有一些独特而神奇的地方。它是如何工作的?让我们从整体上来讨论这个问题。
按照设计,Mina的整个区块链只有22KB大小,并且将一直保持这个大小。也就是说,随着时间的增长,网上交易的增加,它的规模是不会变的。但是22KB很小,可能是几条语音消息的大小,所以任何设备,包括计算能力相对较弱的手机,都可以轻松同步验证米娜网络,而且不需要很长时间。
米娜是如何做到如此“轻盈”的?因为米娜使用了——递归零知识证明技术,所以,我们不需要从头开始验证整个区块链。以以太坊为例。如果一台新机要加入以太坊网络,需要下载以太坊从创建之日起产生的所有区块,并执行所有交易,从而获得最新状态。在Mina中,这个全节点并不存储链本身,而是存储这个状态变化的证明,所以存储的数据变少了。同时,由于递归零知识证明的引入,不需要从零开始验证数据。
我们可以做一个简单的对比。事实上,比特币区块链的大小约为300GB,与普通个人电脑同步约需6小时。以太坊大小为700-800GB,不同客户端略有差异。同步时间以天为单位,具体取决于网络速度。
递归零知识证明为什么能达到这样的效果?其实这是一个深度加密算法,但是我们尝试用一个比喻来帮助你理解这个问题。
在大多数区块链中,所有节点都需要存储所有状态数据。什么是“状态”?比如我有10块钱,或者我在某个应用上有一块地,这些都是状态数据。当我想操作这些数据时,所有的节点都需要执行这些事务。它必须有当前的状态数据,这意味着它必须存储所有的状态。
当产生新的块时,所有节点需要执行所有数据交换并更新到最新状态。这样的架构导致大量的重复计算和越来越多的状态数据。因为越来越多的人使用这个区块链,执行将消耗越来越多的资源。
使用零知识证明技术实际上改变了执行架构,不是让链自己计算,而是压缩状态,拍快照。当产生新的块时,它将从状态A变为状态A’。你需要提供什么?关于这种状态变化是零知识证明,这样每个节点只需要验证证明的正确性,不需要实际执行,计算量大大减少,状态也不会扩大。
似乎每个区块都需要提供一个证明,而区块链的大小还在线性增长。这时候递归零知识证明就发挥作用了。什么是「递归零知识证明」?简单来说,我们还封装了证明的过程,把上一个证明封装在下一个证明中,这样每个证明就可以包含所有历史的验证,听起来可能有点晦涩。
例如,你想向一个朋友证明你每天都去公园。这个公园有一个日期盘。你必须做什么你可以每天在那个日期卡前自拍,把这张照片发给他。你一周会给他发7张照片。但是我们有办法减少这种互动。怎么才能做到呢?第一天,拍张照片。从第二天开始,把前一天的照片拿在手里,每天再自拍一张。过了第七天,其实只要把第七天的照片发给朋友,他就很容易验证你每天都去过那个地方,不用再给他发七张照片。这是递归证明。当然,这是类比,不是零知识。
如果你想了解更多关于零知识证明的知识,我建议你可以看一些比较专业的文献。同时,今年3月,米娜基金会和以太坊基金会发起联合基金,征集一个可以让以太坊虚拟机高效验证米娜提供的递归零知识证明的方案。如果这能够实现,Mina的零知识证明网络也可以为以太坊区块链提供零知识计算服务。
综上所述,zk-SNARKs实际上是零知识、简洁、非交互的知识认证,你也可以把它看作是一个零知识证明。在它的帮助下,可以实现一些功能:
1.低阈值的可验证性;
2.分散的可扩展性;
3.一个新的应用程序表单Snapps。
当然,这些作品仍在高速开发中。为了实现这一愿景,我们有许多工作要做。接下来主要说说Snapps在Mina上的应用。
目前大多数区块链实际上没有办法直接与互联网应用进行交互,这直接限制了应用的应用范围和效用。Mina可以在保护隐私的情况下与任何网站进行交互,并且可以将现实世界中经过验证的数据传输到链上,让链上的应用直接使用。因此,米娜的设想实际上是建造一个通往现实世界的秘密通道。这个“秘密”就是保护用户的隐私。
这个网关其实是通过Snapps实现的,Snapps是一个零知识证明驱动的应用。它有一些好的特点:
首先,你可以从互联网上无缝输入区块链。只要该网站支持HTTPS协议,您就可以将该网站的数据导入Mina的区块链。同时,这个数据是可以验证的。
第二,数据本身没有被暴露,用户仍然保持对数据的控制,只是验证和分享关于这个数据的证明。你得到的不是数据本身,而是你不知道的东西,但是你可以验证背后的数据有一定的属性。
让我们举一些使用案例:
第一,基于Snapps,可以偷偷访问一些互联网服务,为用户数据生成相应的证书,可以被互联网应用验证。同时,也可以将互联网上的数据导入Mina。在这个过程中,个人资料没有泄露,也不需要信任任何人,只需要信任算法本身。
其次,借助于这样一种技术,可以在未经许可的情况下建造互联网预言机,因为任何网站只需使用这些现有的互联网协议,就可以可靠地将现实世界的数据传输到米娜区块链号上,而无需网站本身的许可。
第三,有点像DID协议。Mina可用于完成互联网网站的登录服务,无需创建帐户或移交个人数据。
我们来举一个更具体的用例。这个用例也是今年3月Mina和Teller联合发布的一个示范性应用(DeFi应用)。
米娜提供的一些好的功能,可以帮助用户以零知识证明的方式,在柜员上验证自己的信用评分,获得所需的服务。具体来说,用户登录一个信用评分查询服务的网站,查询自己的信用评分,同时生成自己所在地区的信用评分证书,并将此证书发送给链家。
但这个证书本身并没有暴露用户的信用评分、社保号等隐私信息,只是提供了其信用评分大于700的证明。只要用户提供这样的分数证明,柜员就可以为该用户提供所需的服务。你可以在Teller的网站上查看这个案例的演示。
而这只是一个开始,一个小小的尝试。半年来,零知识证明发展迅速。没有密码学的迭代,我们无法想象它能在工程中得到应用。
有了这种对未来的期待和密码学的发展,我们相信不需要可信设置的可组合智能合约将在不久的将来很快实现,Mina也将提供许多开发者工具来帮助形成新的应用范例。比如互联网引发的隐私身份的验证和智能合约,我们知道现在智能合约的一些触发都依赖于一些预言机。
再比如,你可以利用Mina的零知识证明能力来服务以太坊,让他们可以有新的功能,而不必把以太坊上的应用逻辑搬到一个新的区块链上(这是很多新区块链正在尝试的)。
前面是概况介绍。接下来我想深入介绍一下关Snapps,说说他的架构。
1.支持私有数据。即在使用用户数据时,不需要共享数据本身,只需要共享数据的证明即可。
2.具有通用可验证性,可以实现计算中的任意计算。
3.可扩展的执行。在状态改变层面,执行过程不仅可以调用自己的状态,还可以改变其他应用的状态。
上面提到的Mina在Teller中的应用只是一个示范性的应用,并没有投入大规模使用。接下来,Mina将与互联网世界HTTP Snapps进行更多整合,允许数据从网站导入Mina。至于开发者的SDK,其实还在建设中。我们期望在接下来的几个月为开发者提供更好的开发工具,帮助你更简单的在Mina上开发。
Mina的主网络于今年3月推出,有900个活跃节点参与了主网络的推出。米娜也得到了创始成员和合作伙伴的支持,相关业绩指标非常好。我们也对未来充满信心和期待。