Software is eating the world!
链兴资本持续聚焦Web3赛道,将内部调研的一手信息和事件背后的故事逐步“开源化”,形成系列访谈或研报与各位朋友分享。本文基于对话整理,不构成投资建议,原始AMA记录及后续投资人及项目访谈,欢迎关注官推@CRCapitalcrc和@RLabsWeb3,期待与您共同交流成长。
很高兴本次对话邀请到Map Protocol 核心开发者James XYC。
本文重点整理摘录了James对Map Protocol的介绍及对跨链、zk、web3等方向的思考。
本次交流重点探讨了以下几个主题的内容,方便您进行重点阅读:
进入区块链行业的机缘?
Map Protocol的发展历程?
如何理解区块链?
如何理解web3?
如何理解zk(零知识)与light client?
如何理解跨链?
如何评价MPC与zk跨链方案?
为什么map protocol做到了无特权角色、又能覆盖所有区块链?
map protocol的技术方案选择?
如何看待技术创新?
map protocol的特点?
map protocol的应用与展望?
web3及全链的发展方向?
十年前有人跟我说他用500w美元投资了一个交易所,我就去了解了一下区块链的相关概念和原理,后来我在大学科研机构有做相关方向的研究。在2019年的时候,整个行业的公链非常多,但是跨链交易当时还是在中心化交易所进行,这跟中本聪的精神是完全违背的。当时polkadot和cosmos锋芒四射,但只能解决其发链工具发行的区块链之间的跨链问题,不能解决所有类型公链的跨链问题。我们当时借鉴了polkadot和cosmos的跨链思想和技术原理后,便着手开始开发一个覆盖所有类型区块链的、没有特权角色、绝对去中心化的跨链基础设施——map protocol。
项目是从2019年开始做的。到2020年的下半年,资本市场开始火起来了,有人很快用MPC(多方计算)的方案搭出一个有特权角色的跨链桥,在市场上非常火,市值也非常高。这对我们打击非常大,当时map protocol开发了一半,退回去用MPC方案做跨链桥了觉得心里很不甘,而要继续做无特权角色又能覆盖所有链的跨链技术方案,还有很多路要走。这个方案对团队的综合性要求太高了,必须要完全精通的东西包括但不限于:merkel树、椭圆曲线、签名算法、哈希算法、链的结构、智能合约开发。起初团队的能力仅在链的开发这一层,后面我们也开始引进相应的专家去完善,包括引进密码学的人、智能合约开发层的人,最终给搞出来了。map protocol在2023春节前夕上线,我们用了将近4年的时间做了出来,现在架构上支持任何类型的区块链的跨链,并且完全无特权角色。现阶段已支持以太坊、near、polygon、bsc,正在对flow、cosmos hub、platON、ton、波卡substrate链进行工程接入。
广义上的区块链包括分布式账本、分布式计算、分布式存储。狭义上的区块链是指分布式账本。以下以分布式账本区块链为例讲下什么是区块链:
在区块链中,一笔交易是由一方发起、另外一方接受,中间不依赖于任何第三方特权机构。这笔转账交易成功的核心要素就是它要上链,上链的一个核心要素是进区块,进区块的一个核心要素是有2/3以上的validator签名。通俗来说,2/3以上的validator签名了,就叫上链了。所谓的签名就是交易发起方做的确认,哈希就是用来解签名的,比如a给b转了一笔钱,b要用哈希把这笔钱取走。
要验证一个交易在一个区块链是不是真的发生了,理论上需要把从创世开始的区块信息整个下载去检查。区块链这个词,是很形象的,一个区块连着一个区块。一个区块链上的第一个币出来之后,怎么被转来转去、什么时候被分割成两半、什么时候又到谁的手里等等的所有信息,原则上讲是要从创世区块的第一天开始去看的,把账本无限溯源到创世区块的第一个区块,这件事情数据量特别大,去验证交易是不是合法就很麻烦。所以中本聪白皮书在设计的时候就提到了一个简单支付验证,simplified payment verification(SPV)——只把区块头拿出来做验证,也就是light client。可以理解为我们去看论文的时候,只看摘要就大概知道怎么回事。
web3讲的一个核心的概念是用户在数字世界产生的数据归用户所有,而不是归平台方或者项目方所有。但现在web3的应用,前端的程序、后台程序、游戏的数值系统、包括数据的存储全在项目方控制的中心化云服务器手里面,项目方只不过是给了用户一个在分布式账本的nft。这就像是说我给了你一个房产证,但是我随时可以把房子拆了,这个房产证其实有跟没有都是一样的。
举个例子——钱包,输入助记词的前端页面有能力、有权限去复制你的助记词,这件事情其实让人很恐慌。而转账环节,你将资产转给其他人,这件事情是委托钱包的代理服务器完成、然后代理服务器再帮忙去分布式账本上提交交易。但代理服务器到现在还是中心化的,是项目方控制的中心化云。当下我们讲的去中心化,仅仅是账本的去中心化,就是在把交易发出去的那一刻开始,然后到用户接收方的那一刻,这中间是去中心化的、不能篡改的,但是钱包属于区块链的外围,这些服务都跑在aws、阿里云、腾讯云、华为云等上面。不过话说回来,这个不赖钱包项目方,因为没基础设施可以供它去中心化。
当然,即使是以太坊的节点,现在也几乎全部都在中心化云上面,虽然我没有看过它的节点分布,但是大概可以猜到节点主要是在aws上,这也就意味着aws一家都有可能毁掉以太坊网络。
所以我现在听到有人说更快的L1或者更牛的L2已经厌烦了,尤其Eth Denver的讨论,感觉所有人都被洗脑了,没人关心真正的web3,都在自我高潮。行业现在真正迫切需要是去中心化计算公链,而不是再让以太坊更快。只有去中心化计算公链出来了,web3这个词才实至名归。
冷战的时候,俄罗斯声称销毁了10枚核弹头,美国声称销毁了20枚,但互相没法验证,而且双方也不希望自对方知道自己的核弹头到底有多少枚,所以就有了zk这个技术,这个技术是世界和平的象征。后来zk技术被引到区块链领域。
以太坊在图灵完备公链这个领域是鼻祖,也积累了长期的优势。太坊基金会也在引领着整个行业的技术发展,它提出任何技术,整个行业都会非常重视。在此之前,以太坊基金会也提了很多其他layer2技术,最终都没跑出来失败了。所以zk做layer2能否成功,还需要真正的结果检验,业内不必没喝酒就先自我陶醉。当下以太坊的layer2领域,optimism、arbitrum比较知名,但一笔交易从这两个layer2到以太坊上要很多天才能确认,而zk做layer2的技术,在理论上可以做到快速又安全。后来Dawn Song教授发了一个zk bridge的论文,启发了大家zk还能做跨链。我们把zk想象成一个桥链接完全独立的不信任的两方,但是又能让彼此合作的一个东西,这样就知道它其实在很多地方都能用了。
接下来说一下light client轻节点,light client 就是把区块的区块头摘出来存在一起。light client在pos公链里面,可以理解为validator的签名信息,专业术语叫bls聚合签名。首先,上面提到过,它是中本聪共识原生的交易合法性验证方式;其次它是数学验证、安全性验证过的,有无数的学界的论文来支撑;第三,polkadot和cosmos都是用的light client原理做跨链技术。所以light client在理论界跟工程界已经被完全证明了。
如果单单用zk做跨链,最大的问题之一是mpt验证用zk做电路规模特别大、是普通电路的小20倍,并且很多链都不支持bn254椭圆曲线,这也就意味着没法支持zk技术做跨链。map protocol的解决方案是,对于不支持bn254的链,我们就去帮它开发,并推动合并到其代码库。比如flow,我们已经做完了bn254给它,在等对方合并代码并硬分叉主网做升级。ton也已经开始写代码。对于zk直接验mpt电路规模超大的问题,map的方案是用zk验 bls聚合签名,然后用light client验zk,并用light client做mpt验证。
用纯zk做跨链,我相信还需要至少2-3年,甚至4年或更长时间的工程化攻坚,毕竟每个链都有自己的疑难杂症,一个理论上的技术白皮书,到真正做到,不是讲讲故事就可以的。
大家一谈到跨链,就会想到跨链桥,跨链桥的确是一个很好的应用,但是跨链桥是to c端用户,也是过去的应用业态。map protocol是要满足5-10年后大规模的市场需求,而不是过去的需求。站在当下看未来5年,Dapp肯定会去全链发行。“全链”这个词包含两层意思:
第一,它要去覆盖各种各样的分布式账本区块链。因为每一条链都有自己的用户和资产,对Dapp来讲,错失任何一条链都是很可惜的。对Dapp来讲,之前它不发全链,因为存在很多的问题,比如安全性的问题,MPC的方案Dapp是不敢用的。即使map protocol现在是无特权角色跨链方案,依然还有很多面向Dapp的开发工具还在完善,比如全链gas fee支付,因为Dapp一旦上了全链之后,用户就对那个链已经无感了,可能很多时候他并没有所在链的gas fee。在之前,用户绑定一条链玩大多原因是因为他在那条链上的gas fee很足,他如果突然换条链、在没有gas fee的情况下,要么去买,要么去借,都很麻烦。又如链间oracle,如果做去中心化衍生品交易所的应用主应用合约布在某条链上,其他链上的 nft或者其他的交易数据等就需要数据跨链。衍生品需要特别精准的数据,MPC和chainlink oracle的方式没法提供精准数据,还经常被攻击,而map protocol的数据跨链方案不存在这些问题。所以我讲的第一层全链就是
在分布式账本里面的全链部署。
第二,覆盖分布式计算(存储)公链。上面提到过,web3应用只把 nft放分布式账本上,其他的计算程序和数据存中心云上,根本不是web3。我因为深入产业和社区,知道当下已经有数十个团队在研发去中心化计算基础设施。广义的全链,就是全部在链上,不依赖任何中心化的服务,无论账本还是存储还是计算,都无法被篡改。map protocol正在与去中心化计算基础设施跨链技术对接中,说到这个层次,map protocol就是一个价值互联网领域的tcp/ip 协议。我们其实并不太想在分布式账本里面与之前的跨链项目竞争。
需要特别强调的是,跨链最核心的是交易合法性验证。在做跨链验证的时候,我们把 a链上的validator的聚合签名信息放到b链上,然后把b链上聚合签名信息放到a链上。这样交叉部署了之后,如果有一笔交易请求是在a链上存入100万然后在b链上取出100万。核心要验证两个事情:①它是不是真得存了100万,如果是真的,一定会有a链validator的2/3以上的签名,a链的light client(部署在b链上的)就可以直接验证,如果有签名并且zk对得上,这件事情起码是合法的。②验证细节。如,b链到底是哪条链、想什么时候从b链取、取的时候公钥地址是哪一个?这些信息在merkel树里面。如果validator签名信息在链间传输的过程中被掉包怎么办?这没什么,因为validator每一届都是上一届超出70%validator签名授权产生的,所以假的validator签名没有上一届的签名,而上一届又需要上上届签名,要去篡改基本上要篡改整个区块链。所以light client被称为独立自验证技术。
我相信接下来还会有新的可以去中心化、没有特权角色的跨链技术出来,这个产业周期,light client是成熟的,而zk+light client的方案也是成熟的。
MPC跨链像是一个没有国家监管的visa或银联。以银联为例,在中国跨行转账(跨链转账类似跨行转账)是银联在处理,受中国人民银行监管。MPC方案等于找了若干个节点,这些节点可能认识也可能不认识,既转发这笔跨链交易,又决定这笔交易是不是合法。
light client的跨链方案与之完全不一样的地方在于:不管中间送信的人(转发交易)是谁,它只认这件事情是不是真的发生了(是否有validator的bls聚合签名,是否有merkel树证明)。比如说一个快递员送发票,用light client的意思就是,这个快递员不管是哪个快递公司的都没问题,只要收件人拿着税务局的APP一扫码就能验真假,这个就叫独立自验证。但是 MPC方案或者oracle的方案就是送信的人跟收信的人说:这就是真的、收件吧。
所以MPC跨链桥的方案,让人挺不放心的:内部几个人管理一把私钥,很有可能内部有人监守自盗或者因为管理疏忽丢失用户资产。
没有特权角色的跨链机制有一个很高大上的词可以用来描述,叫原子交换。在架构设计上,它的架构设计是很复杂的,工程量也非常大。当然,我认为更多的还是因为没人愿意去做这件事。第一,这件事情对于白人团队来讲是巨大的工程挑战,很容易放弃。比如Nomad项目,花了一年左右时间想做light client跨链但是后面因为太难就放弃了,转向了MPC方式,非常不幸被盗了将近2亿美元。第二,对于华人团队来讲,大家很多时候略显着急,如果开发了一年还没出来的话,很多时候就会放弃。
map protocol能跑出来,就是因为西方团队干不了这样工程化要求很高的事情,而华人团队又太着急求成。去讲技术架构是比较容易的,但是在做的过程中细节非常多,每条链也有很多的问题,工程化不是靠口技的。
如上面所提到的,我认为做技术研发突破的时候,要遵循一个中本聪原则:组合式创新。比如以太坊就是在btc的基础上加入图灵完备,图灵完备这个技术很早就有了。一个底层项目,不能去使用从无到有的技术,这是非常危险的,比如说solana,前两天宕机之后没起来过,也没人关注了。价值互联网不是传统互联网,在传统互联网,信息丢了可以再发一次,但钱丢了,没人愿意再发一次。
在这样的环境下,我们还是选择了zk snark groth16算法,因为它非常成熟;其次,上面讲到过,用纯zk方案跨链工程量太大,用zk验证签名很快,但是验证merkel树非常复杂,电路规模是常规的16倍以上,而且很多的链不支持BN254椭圆曲线,这就意味着他们不支持zk。map的方案是先用zk去做rollup,zk 验证bls,light client验证zk。然后再用light client去验merkel树证明。跨链这件事情本身的工程的复杂度跟难度是做一条公链的很多倍。
我们用zk技术受到了Dawn Song教授的启发。在链间消息传递的过程中,传递程序的人谁都可以做、又是链外的,所以这个角色是有机会,有能力做假的。但是light client是独立自验证的,借用快递员送发票的例子就是快递员把发票调包收件人依然能查出来发票是假的,但这件事情会影响整个跨链网络的运行效率;另外,传输跨链信息的交叉验证过程中,gas fee也是一笔成本,每一次的跨链传输其实都是一笔交易,区块链任何东西都是交易。在这样的环境下,我们需要把gas fee也降低,所以有了zkrollup。rollup字面意思就是把它打包起来,一批货物放到一个袋子里面就叫rollup,这样的话delivery成本非常低。Map就是用zk解决这两个核心问题。
区块链毕竟是价值互联网,我们参照宗师比特币的技术架构理念可以知道,价值互联网的创新是将各种已经反复验证ok的技术,进行组合式创新,而不是做一个新的技术出来,这个创新如果有任何问题,是实实在在的对金融资产和数据资产的冲击。对用户的钱不认真,就等同于对他的生命的不尊重,是非常不负责的。
现在市场没有特权角色、去中心化通用跨链方案只有map、cosmos和polkadot。可以覆盖evm chain和non-evm chain的,就只有map了。未来两年会有其他技术项目出现,但最近这2年内,map在这个赛道没人可以竞争。
cosmos和polkadot的relay chain都是固定好的,要求其他链的轻客户端植入到他们的底层,其他链非常难以接受的,就好像任何一个主权国家都不会允许另外一个国家把军队驻扎进来。所以cosmos、polkadot是专注于Dapp chain之间的跨链通信,事实上polkadot和cosmos从未定位于跨外面的链,二者战略定力非常专注。做其他evm链的跨链都是大家YY出来的。当然,前文讲过,我们也从polkadot和cosmos的跨链思想和原理上学习和借鉴了很多。map protocol的中继链的智能合约编译层,把各个链的签名算法、哈希算法、merkel 树证明等全做到这一层,各个链的数据结构就跟map protocol变成了同构。同构之后,就能把light client以智能合约应用的形式交叉部署到各个链上了。
所以map在业界的技术贡献有两个点:① map relaychain是全世界唯一一个有各种各样的签名算法跟希算法的chain,②全世界第一个把light client以智能合约交叉部署到这么多链的技术实现。
map不会做跨链桥去切存量蛋糕。在分布式账本跨链领域,map更专注于去做对去中心化有要求的dapp的生态技术合作,以及一些未来的需求。
如全链支付,假设用户在BSc上买一个Dapp的NFT,用户钱包如果缺bsc很多时候就不买了。map做了一个支付工具叫巴特尔butter,用户用它就可以兑换各类虚拟资产,只要其在链上有流动性就可以支付,而项目方收到的是则是他自己想收的虚拟资产,这是一个市场上没有的一个产品。现在很多Dapp都在与map做技术对接,可以提高大家的支付转化率40%以上。
如全链借贷,前段时间conflux天天涨,用户想买,但是可能钱包里全是bsc,没有多余的资金又不想卖bsc。跨链借贷就是把bsc押到里面,然后直接给用户出conflux,中间不再通过u、swap什么的,直接解决资产流动的效率问题。这也是一个刚需的产品。
还有一个就是链间oracle,在去中心化交易所采数据的时候,有几个特别大的问题:第一,oracle经常被攻击,损失非常惨重;第二,chainlink的预言机机制在密码学上有二义性,由于网络延迟,每个人看到的数据不一样,所以它采用加权平均的方法,如果再放大50倍就会严重不准,所以map把其他链上的交易数据直接搬过来,吐到合约部署的链上,这是绝对准确的。
Gas fee代付等事情也在做计划中,也在给一些交易所做底层的技术对接和支持。另外已经有一批超级dapp在和map 做技术对接。
长期来看的话,map protocol还是更看重真正的web3,所以,我们还是更看好下一步的发展——去中心化计算的崛起。我们现在也在跟市场上一些去中心化计算的公链做技术探讨跟提前的对接。会更加关注去中心化计算相关应用。
另外map整个的安全性有赖于validator,当下,比特大陆集团、hashkey集团这些已经都在做map protocol的跨链验证者了。基金会还在继续加强对validator群体的品牌升级。
总的来讲,map未来的核心还是想把去中心化的账本、计算、存储连成一张网,作为价值互联网的TCP/IP。分布式账本技术讲了十几年了,行业需要新出口、新大陆。
第一是要解决数据交给用户这个问题。Web3应用的前端、后台包括数据库都不能由项目方更改,这才是最核心的东西,而不仅仅是nft没法改,这才是code is law,这才是数据归用户。
第二点,要解决以上问题,就需要去中心化计算公链。去中心化计算公链就能解决web3项目方在程序计算、数据存储的问题。大家要重视去中心化的计算&存储公链基础设施,他们会给整个行业带来根本性的改变。去中心化计算现在有两个派系,一个就是边缘计算,另一个就是联邦学习。边缘计算跟联邦学习唯一的区别就是边缘计算是开放环境,联邦学习是加密环境,但两种都是可以拿着一台机器,甚至拿着家里的电脑就可以计算。这两种计算非常成熟,现在唯一的问题就是需要用一个工作量证明机制去框定,然后拿一条链做激励,配合到一起就能出来。当然,分布式账本依然是金融板块,nft上链等还是需要分布式账本的,不是说分布式计算公链出来了以太坊就不行了,它只会更加强大。
大家都知道tcp/ip是信息互联网领域的一个跨边界、跨网络或者说跨计算设备的通信交互的一个协议。在价值互联网领域,如果大家真的变成web3而不是嘴上的web3,所有的东西真的要去中心化,转账、确权这些是用去中心化账本,程序计算是用去中心化的计算,数据存储是用去中心化存储。这里面会有无数的体系,需要一个跨链网络去做价值互联网领域的TCP/IP,这个价值互链网协议,就是map protocol。