以下是本次线上沙龙的文字版整理。
Cassiel:请各位嘉宾进行简单的自我介绍。
张晓:大家好,很高兴今天能够跟大家一起进行 Web3 安全问题的有关讨论。简单介绍一下,zCloak Network 是一个基于零知识证明的数字身份及隐私保护的基础设施,我们希望在 Web3 时代能够真正把用户数据自主权归还给用户,围绕这个理念,zCloak 已经开发并实现了用户可自主控制的 DID、可验证数字凭证、数字身份钱包以及本地零知识证明计算等一系列基础设施。今晚也希望能跟大家深度讨论下我们的另一个新产品 — Valid ID,它能够如何帮助大家避免和预防 Web3 的诈骗。
Tom: 感谢 zCloak 的邀请,我是香港理工大学工商管理学院金融科技中心旗下的数字资产智库 DATT 的负责人。我个人背景是金融行业,曾经在纽约香港的投行工作过,目前在做对冲基金的管理,区块链是目前我博士在读的研究方向。而数字资产智库是希望能够挖掘和研究整个亚洲地区的数字资产和信息技术产业的现状,通过与行业的专家学者探讨如何用区块链技术去解决经济、社会发展中的实际问题。同时我们也会定期与行业内政策制定者共享讨论成果,例如香港金管局,香港基金会,投资推广署以及数码港等。最后我们希望通过 DATT,能够为行业提供更多交互交流的机会。
Turing: 大家好,我是 Legal DAO 的联合创始人图图。Legal DAO 目前正在做一个基于全球律师资源的 Web3 合规产品。希望能够深度参与到 Web3 的建设中去,同时也希望能为大家提供全球化的法律服务。我们一直在不断融入 Web3 的新兴技术包括底层的技术以及 AI 技术,来更好地为用户提供法律支持。除此之外,我们也结识了行业内很多朋友,例如 zCloak 等,期待今天跟大家继续学习和讨论相关问题!
Adam:各位嘉宾晚上好,我是 SharkTeam 的联合创始人 Adam。SharkTeam 主要是做 Web3 安全相关的产品,一方面是智能合约审计,另一方面是链上安全分析包括链上风险的安全预警、链上交易和地址的监测分析以及安全研报等,同时 SharkTeam 也持续为 Web3 的项目和公司提供安全服务。很高兴能够参与今天的讨论!
Cassiel:Web3 的安全问题会对各自领域产生什么影响?近期甚至一直以来都存在大量的 Twitter 及 Tg 账号被盗事件,这些事件对 Web3 用户们最直接的威胁是数字资产安全问题,刚好 Tom 所带领的香港理工大学数字资产智库一直在探索和研究数字资产和当前的信息技术产业,那么就先请 Tom 结合相关经验分享下您的看法?
Tom:之前我在投行做了很多 Web2 的项目,从 Web2 的角度来看,问题主要出现在应用逻辑和数据层面。而 Web3 则不同于 Web2,Web3 的去中心化应用有很多模式,例如跨链、身份、钱包等。这种不断的交互和创新确实容易在某些场景下滋生安全问题。同时,公私钥技术和数字钱包的广泛应用可以保护 Web3 用户的数据自主权,保证交易过程的透明和不可篡改性,但这里就会出现一个安全问题,当一些 DApp 和协议升级后,我们如何去保护用户的数据和隐私安全。通过我们的研究发现,Web1 和 Web2 的安全问题的解决受制于工具都相对初级,而对于 Web3 来说,最大的问题在于交易的安全问题似乎无法在预防层面进行解决,因为交易一旦执行就很难被改变,而根据我们的研究和经验来说,安全的思路一般都是建立机制去验证交易是否具备安全的条件,所以也想跟各位专家请教下如何在技术层面对这些系统性的弱点进行预防来抵抗一些有组织性的攻击行为?包括加密原生、智能合约漏洞等问题。特别是以下几个方向:第一个是漏洞的数据,第二是如何做安全决策设计,第三是认证和签名,最后一个是在当下如此多类型的 DID 和 Wallet 中,如何使密钥的管理使用更为顺畅、使用户体验更为丝滑?所以我认为在吸取了 Web1 和 Web2 的经验后,其实我们能在 Web3 中做的事情有很多,这也是 DATT 一直在思考和探索的问题。
Cassiel:接下来请 Adam 从安全服务的角度谈下您的看法。
Adam:坦白讲虽然目前 Web3 的发展十分迅猛,但它其实依旧处于一个很早期的阶段,主要体现在三个地方,第一个是业务形态很早期,大家比较熟悉的 DeFi,虽然它在 Web3 已经是比较古老的词了,但它发展到现在也只有两年多的时间,那么一些新的业态比如 NFT、GameFi,以及近期兴起的衍生品等等,这业态的快速发展发就会带来一些业务层面风险和安全问题。所以对于 Web3 来说,如此多的业务形态必然不能只依靠某一个技术去解决所有的安全问题。基于 Web3 的多业务模式,它的安全防范问题还是应该以系统工程的方式来做。正是由于其发展迅速且创新性强的业务模式,导致攻击点更为广泛和开放,比如私钥、跨链基础设施、钱包、身份安全都可以被攻击到。因此对于项目方,第一个要考虑的就是在业务设计的早期就应该像 Web2 一样引入业务安全建模的理念,把业务层面的风险规划并分割出来。
第二个从技术角度来说,项目方要有规范化的开发实践技术流程,项目方在上线前,要有代码冻结意识。否则经过后期的多次修改更正,开发者会无意识引入很多安全漏洞,这会产生一些无法防范的安全问题。目前对很多项目方和开发人员来说,他们可能会觉得智能合约审计,DID 身份隐私安全等就是安全问题的全部了,但对于一个项目,这些只是一部分。
最后一个方面是运营及应急响应层面,很多项目在深夜被攻击后,尽管我们发现了,但晚上联系不到项目方,只能眼看着项目被攻击,用户资产被黑客盗走,应急响应和安全运营是慢半拍的,包括产生安全事件后联系资产冻结还是还是联系其他生态的合作伙伴的阻断动作,都很慢。这也是因为没有建立一个完善的运营和应急响应体系。最后,目前 Web3 的发展很迅速,但不管是从业务形态、技术层面还是运营及应急响应层面来说,都没有建立起完善的安全体系,这也需要我们后续共同努力去建设。
Cassiel:Adam 分别从技术和业务角度以及运营和应急响应的角度来分享了他的看法,接下来大家可以进行简单的讨论,也请张老师和 Turing 针对 Tom 提出的相关问题做一些回答。
Turing:我做一个简单的补充,大家之前聊的系统性的安全问题已经很多了,那 Legal DAO 可以从法律的角度给大家一些想法。大家可能奇怪为什么目前基于 Web3 的一些法律相关事情推进一直很缓慢,其实是因为传统的金融人和法律人接触区块链这种新兴技术的时间相对较短,因此对于目前 Web3 发生的各种安全问题以及后续的责任追究都没有一个标杆性的依据去执行,或者说很难有一个共识让大家去维护。分析下来,我认为身份系统的缺位是导致 Web3 法律行业发展缓慢的一个核心原因。在 Web3 中,换个地址这个人可能就找不到了,但在 Web2 里,只要有身份证就能找到这个人,所以最大的区别还是在于 Web3 相较于 Web2 的身份系统缺位。导致整个 Web3 世界里无法建立起一个完整的奖惩机制和生意系统,包括信誉声誉也无法有效积累。因此对于 Web3 的法律行业来说,我认为与 zCloak 这样的伙伴合作,逐渐建立起一个基于隐私保护的身份认证系统是一个很好的接入口。接下来也想听听张老师的想法。
张晓:感谢图图和其他嘉宾的分享,我个人很受启发,首先先回应一下 Tom 之前提到的几个问题,区块链这样的基础设施目前承载了很高的价值,无论是稳定币等其他金融资产还是现实世界资产上链等,但整体的资产安全和投资者保护这方面的确存在很大问题。对于区块链行业,大家很熟悉一句话“Not your key, not your coin.",私钥不受你掌控的话,那么大概率钱也不会完全是你的。以及链上交易以及基于智能合约的一些基础设施,当一笔交易或者一个区块产生后,想要撤回它们的难度极大,除非进行硬分叉,但是代价极高,这就要求我们在这样的环境下审慎地使用自己的账户进行交易。
之前 Tom 提到了钱包的问题,我认为钱包是这个行业里极其重要的基础设施。它主要是用来管理我们的私钥,而私钥的安全性又决定了我们的资产安全,但目前加密钱包的实用性并不理想。对于没有一定计算机知识背景的普通人来说,一些诸如公钥、私钥、助记词、派生路径等的专业术语足以让他们晕头转向,这无形中提高了加密钱包的使用门槛,然而加密钱包本身理应是面向大众的。所以目前有很多新一代钱包试图去简化用户使用体验,此类在应用性上的改进是很不错的,但其实安全性和应用性在某种程度上来说是矛盾的——通常使用起来越简单便捷的东西,安全性都会打折扣。例如从控制私钥的角度来说,私钥控制权完全在用户手中和部分在用户手中的安全性一定是不同的。因此对于钱包行业,我们确实看到了一些进展,但相关的安全性还要经受时间的检验才能确定。
另一个 Tom 提到的链上资产安全问题,现在除了原生的加密行业资产,慢慢还有很多真实世界资产正在上链,不管是哪种资产,可能是一种 Token 最终以在链上以智能合约的形式展现,也可能是一个 NFT,甚至是现实世界里的 100 t 石油,这些资产上链后的归属、审计、安全、保险,以及从法律层面上谁来为它做背书,都很重要。因此链上资产真实性的认证和认定是十分有必要的。
Adam 也提到了安全问题是个整体问题,并不是解决掉智能合约的安全问题就代表解决掉了整个安全问题,更何况可能智能合约层面的安全都尚未被解决。一个智能合约审计结束后上链,但后续更新了,大部分人分不清正在跑的智能合约是否是审核后的智能合约。尤其在审计层面上,审计的代码可能是 A 代码,但项目方真正部署在链上的是 B 代码,一般人无法区分到底是哪个代码。在这里我们 zCloak 提出了一个比较新的概念,就是链上资产或者说链上合约的身份。比如一个智能合约经过 SharkTeam 的审计后上链,这个通过审计的合约在运行过程中能否同时展示出其对应的审计信息,或者我们能否通过某种方式去追溯一个正在链上运行的智能合约是否已经通过审计了。同理,某个链上的资产,能否也通过这种形式来对其审计结果进行展示和交互。因此我们会发现,链上的安全问题最后还是回到了身份。任何智能合约和资产都可以有身份,那么谁为其身份进行有效公证和背书,在哪里展示出来,以什么形式展示,如何让用户验证,这些都是我们在行业和技术发展过程中需要解决的很有意思的问题。
Tom:针对刚刚各位提到的几点,我也有一些问题想要延伸一下。第一个是刚刚张老师提到的智能合约身份认定,但目前 Web3 有很多不同的审计公司,不同审计公司在技术层面有什么不同?一般的项目是否以及为何需要多家审计公司进行审计?能否有可能有一个国际通行的审计标准?第二个问题是结合 Turing 和 Adam 刚刚提到的,法律和技术来说,法律是不是永远是滞后的?如果是滞后的,如何保证我们的技术是符合监管的?因为目前我们一直在跟香港的监管部门进行沟通,稳定币、交易所以及真实资产等问题,但发现目前的法律监管力度是不够的,最领先的可能就是欧洲刚出台的稳定币及其他货币监管制度,但仔细研究它的条例后发现,它是无法满足 Web3 世界本质的创新性的,所以我们该如何保证 Web3 创新性、法律监管和安全技术的三者之间的平衡?
Adam:那我来简单谈一下我的看法。针对 Tom 的第一个审计问题以及审计标准,其实目前很难形成一个明确的标准。Web2 里的各种审计也是多家服务商的,根本原因在于安全没有 100% 的,只能不断去做加法,但无法形成一个量化的标准,并认为达到这个标准就是安全了。第二个是张老师提到的给合约“盖戳”,这也是目前我们做安全服务经常会遇到的一个问题,目前我们在合约的审计报告中会对具体审计的合约进行一对一的哈希绑定,包括跟 GitHub 上的 Commit 都是绑定的。但也会存在一个问题,实际上审计方和项目上是一个战壕里的,大家的共识是项目方就应该部署我们审好改完的合约。但确实存在开发者后期又进行了修改,甚至有些是头部协议。还有一些项目方是故意的,拿一个合约审计完后,实际不去部署这个合约,而普通的投资者其实无法辨别这个报告审的内容和实际部署的合约是否是同一个。从技术层面来说,是可以实现的,但具体实现是有困难。或许可以借助一些新兴的业务形态,比如保险来解决这个问题,当然这也会涉及一些法律层面的内容,但我认为是一个解决方法。
Turing:保险确实是一种比较明确的对冲手段,从法律的角度来说,有点类似于 Web2 里的审计整合,在 Web2 的审计整合中,如果一个公司支出超过一个数值后,那么该公司就要接受比较高的函证和往来金额的审查。类比到整个 Web3 里,现在 Web3 世界里的审计公司都有自己审核项目的方法和原则,而一个统一性的标准确实还没有出现,但目前相关的行业联盟在不断出现,所以我认为这个统一的行业共识会随着时间的推移而出现。而 Legal DAO 的律师资源覆盖了全球很多国家,而推进这种行业共识的形成一定也是需要多方一起发声号召。
Adam:是的,一个 Wallet data 的平台再加上一个业务形态上的对冲风险的保险机制可能会比较有效。我们也很期待这种解决方案的出现。审核的合约和实际部署的合约是不是同一个合约确实可以做一个相关认证体系,尤其对于解决 Rug Pull 会很有意义。
Tom:关于保险我也想补充一下,根据我之前投资 DeFi 的项目经验来看,这类保险最大的问题在于,虽然保费不高,在 1% 左右,但是它保障期很短,一般在 3 个月之内,要保障的金额也是有限的,对于 DeFi 的保障还是很早期,包括流动性,效率都不是很高。
Adam:去中心化保险落地困难重重跟取证和认定有关,这个是否就跟法律有关了?
Turing:我举个例子,比如界定物流中货物的归属问题,第一,可以贴一个低功率的芯片在这个快递包裹上,每过一个基站打一下卡,但货物到达后,开箱后货物产生问题,法律上确实没办法解决,因为无法确定货物损坏是发生在运输过程中还是到手后,这种具体问题的界定还是比较难的。
张晓:Adam 刚刚提到一个点,我认为甚至可以作为一个产品方向。合约审计,一个项目方在链上部署了以后,每个合约都有一个地址,但合约也是可以升级的,那么项目方如果对合约进行升级,那么合约的地址还会保持原来的地址吗?
Adam:地址会变,但合约升级的过程中非常容易出现安全问题,前段时间香港大会之前,一个项目方因为一个新的合约升级损失了 800 个 ETH,因为其实这个很容易出问题,但大家却都很容易忽视它。
张晓:所以对于审计来说,项目方送审的其实是某一个版本,或者从 GitHub 技术角度来说,审计的其实是某个版本 Commit 的智能合约,那这个版本的合约审计完成后,是否是项目方真正部署到链上的智能合约,或者最初部署的的确是那个合约,但后续有没有被调换掉,这些其实是对于投资人来说很难以判别的。
Adam:是的,尤其对于一些监守自盗的团队来说,很多都会用合约升级手段来替换一些核心合约,用户是发现不了这些问题的。不过合约的外层会有一个代理合约,合约升级后,这个代理合约会变,所以其实是能够发现,但现在并没有相关基础设施,因为这个需求还需要被进一步明确。Tom 还有什么问题想讨论一下的吗?
Tom:主要有两个问题,第一个是保险,我们如何落实保险这个业务形态,包括中间的理赔和赔付,谁去执行监管等等,还需要去找到一个完善的商业模式,第二个就是合约和地址的标准化,之前我们对接过中国质量检测中心,他们会发证并且是跟国际接轨的,他们其实是最专业的,他们在各行各业都在发布标准,并且他们也有区块链相关的小组,那我们是否能够借助国家的力量,可能不仅仅是中国,跟其他国家一起来制定完善这个行业标准?以 Web2 思维的标准辅助 Web3 的各种认定,当然这些都无法解决监守自盗的问题,所以我看很多审计公司出具的审计报告也都会对项目团队进行评分,因此可能对于 Web3 来说,还是需要更全方位的发展。最后我认为 Web3 的不可能三角也是存在的,他是去中心化、匿名隐私性、监管和追责,目前确实还没有找到一个能使这三者合理共存的方法。
Cassiel:其实从现在安全问题发生的频率来看,曾经出现过的一些安全问题解决方案的实施效果并没有预想中那么好,或者说都有一定的局限性,那想请教下各位嘉宾对未来加密行业安全问题可能的解决方案有哪些畅想?刚刚张老师提到 zCloak 在本月初正式上线了 Valid ID 平台,它似乎正是解决 Web3 信任危机的一个新思路,同时,zCloak 一直致力于为用户提供基于零知识证明技术的隐私计算服务,而“隐私”和“安全”这两个词其实是密不可分的,所以请张老师跟我们分享一下,针对 Web3 隐私数据安全性,zCloak 有什么正在建设或已经建设好的解决方案?
张晓:好的,这个话题确实跟我们的新产品是深度相关的,在我们之前讨论过的种种安全问题,我认为核心的问题之一就是信任以及信任的传递。而信任问题又可以追溯到链上身份系统设施的缺失,Valid ID 能解决的问题也很简单,就是“谁是谁”。目前链上存在的只是一个一个的钱包地址,表现出来的就是这个地址签了什么字,转了多少账,进行了什么交易等等,同时对于个人来说,区块链地址的匿名或者半匿名确实可以保护我的隐私,这对个人是有利的。但机构在链上的需求其实是跟个人需求相反的,机构们(审计公司、律师事务所、政府机构)需要让大家知道这个地址背后具体是谁,那么链上身份系统就显得尤为重要。在传统世界里,如果想知道一个网站背后是谁,我们可以通过 CA 证书去查询,但区块链世界里的地址背后到底是谁我们无从得知。Vliad ID 则是在这个方向上的一个小探索,我们希望通过将 Web2 解决身份问题的思路应用到 Web3 里,当然用的是 Web3 的原生技术来解决,方法很简单,我们对 Web2 的公司、机构、实体的身份进行技术检测认证,完成检测认证后,将其 Web2 世界里的身份与其 Web3 链上地址进行绑定,形成一个我们称之为机构身份的证书。同时我们将这些证书存储在不可篡改的链上或者 Arweave 数据库中,从而形成了链上地址和链下真实身份不可篡改的绑定关系。别人在看到某个地址的时候,就可以很清楚的知道它背后是哪家机构。
这里也有另一个很重要的问题,谁去决定地址背后的身份是谁这件事谁。如果继续采取 CA 的方式去认证,那就有悖于 Web3 和区块链的去中心化的理念。在建设 Valid ID 的最初,我们就想把它建立成一个去中心化的平台,因此我们引入多方认证的机制,地址背后身份认证这件事不是由某一家机构决定的,而是多家机构共同认定。一个事实重复的人越多,那么它是真的的可能性就越大。因此我们在 Valid ID 平台上使用了社交认证(Social Attestiation)的方法。
目前我们推了几个小的应用点,一个是基于这个认证后的地址进行各种数字签名,我们发现虽然现在很多 Web3 从业者已经在行业耕耘很久了,但他们一直还在使用 Web2 的社交工具,比如推特、INS 等社交平台去发表观点或者宣传项目,这有很大的安全隐患。如果机构的官方账号被盗用,发布了钓鱼信息而导致用户损失财产该怎么办?Web3 项目的身份要依靠 Web2 平台来保证,这并非是去中心化社会想看到的事情。因此 Valid ID 的解决方案是将 Web2 身份与 Web3 地址结藕,也就是说控制机构身份的其实是机构自己掌握的私钥。黑客可以偷盗机构的账号,但无法获得机构身份的私钥,因此身份的控制权依旧在机构自己手中。Valid sign 功能允许大家在任何平台进行任何信息发布时都附带自己的数字签名,这在很多应用场景中都很重要,比如发布借钱信息时,添加自己的签名,收到消息的人可以通过签名在我们平台进行验证是否真的是本人发布的这条消息,从而预防一系列钓鱼诈骗事件。
以及刚刚我们谈及的合约审计,给了我很大启发,有没有可能将合约的审计信息在链上表达出来,把合约的文件与机构身份绑定,当用户看到合约时,可以在 Valid ID 平台进行验证,查验这个合约是否是在 Valid ID 平台验证过的机构审核的合约。所以我们认为 Valid ID 是 zCloak 在个人隐私身份探索中一个很有利的补充,因为 zCloak 一直在用户端隐私数据零知识证明,但它只能保证计算过程的正确性,计算数据的真实性需要靠 DID 和可验证数字凭证来保证,而可验证数字凭证的可靠性又需要依赖发布机构的信誉背书,而 Valid ID 正是解决机构身份信誉的方案。最后,其实 zCloak 就是通过机构的身份认证传导到 Attestation 的真实性上,然后加上零知识证明的方法能够让用户以对外出示零知识证明的方式去证明自己的身份具有某些可信的属性和特性。
Cassiel:感谢张老师的分享,Tom 和 Adam 对未来的安全解决方案有什么畅想?
Adam:现在 Web3 确实是缺少一个身份安全基础设施,很多安全问题可能在过程中有一些解决方案,所以后面我们围绕安全和身份可以做一些事情,我也很期待。另一个想讨论的是,确实曾经不断涌现出很多安全解决方案,但为什么安全问题还在不断发生。有两个方面原因,第一个就是整个 Web3 的安全基础设施不齐全,信任成本很高,信任效率很低。在这种情况下,很多人会无意识产生漏洞给黑客攻击;另一个原因是很多安全手段的实施过程不扎实,因为 Web3 行业是一个相对 fomo 的领域,大家会有很多创新的想法和好的产品,但在落地过程中会受到很多问题的干扰,不管是市场的变化还是其他因素,都会影响大家做事的积极性和效率,因此就导致一些产品和项目没有把服务切实落实完善,例如刚提的 DeFi 保险,本身是一个很好的业态,但却没有发展的像我们预期中那么好,本质还是因为没有认真落地。Web3 的安全问题,审计、链上安全分析、风险预警、攻击监测、反洗钱等等,还是有很多系统性的工程等着我们去建设开发,同样的这些项目一样面临落地问题和无法被用户广泛使用产生价值的问题。这也是我们作为 Web3 安全服务供应商不断鞭策自己的一个点,要不忘初心把产品和服务扎扎实实做好,希望 Web3 行业也能形成这样一个共识。
Tom:刚刚 Adam 提到的一个点,我们是否有可能做一个2C端的安全审计工具?似乎目前大多数安全审计都是2B的,项目方排队审计然后上链,那么能否在2C端做一个插件,在用户登陆各种 Dapp 后,可以对用户进行实时提示,普通用户无法捕捉很多合约更新后代码问题,那么这个插件就可以在用户跟合约的交互过程中提供风险预警和可疑点预警,协助用户在交互过程中停止诸如交易转账等可能造成损失的动作,直至项目方甄别好漏洞,这个预警消失,然后用户在安全的环境内进行交互。我认为经常使用钱包的 DeFi 用户对这种产品都有一定的需求和付费能力。不知道这种产品之前是否在行业内出现过?
Adam:C 端安全预警工具是存在的,现在主要是以 API 的方式,Cypto API/Security API 的方式接入 C 端的流量入口比如 DeFi 或者钱包等,如果用户跟某个高风险地址交互,可能钱包的开发团队和运营团队不知道这件事,但接入我们的 API 后,以 C 端功能的方式体现出来,这也是现在大家做的比较多的。当然如果能有一个安全型的入口可以涵盖所有也是很不错的,但目前市场面向 C 端用户还是以 API 方式比较多,当然这个也是在慢慢发展的。
【FAQ】
Tom:我认为可能未来还是需要一个聚合型的解决方案,现在 Web3 一个很主要的问题就是产品服务太多太分散,安全产品也是一样,不知道未来是否有可能出现一个一整套的解决方案,既有审计又有身份验证,又有监测,同时还会包含出现问题后的追责和赔付。现在是否有项目方把一体化的产品做出来?不论是 B 端还是 C 端。如果没有,大家不做的原因是什么?
张晓:我认为这种一揽子的解决方案难度还是很大的,这对一个项目方的专业能力、技术实力、对法律法规了解、金融知识、监管、政策都有很高要求,除非是大规模的机构,甚至是有政府背景的机构参与进来,才有可能包揽全部。对于普通的公司和机构,能把其中一个方面做好也已经是很不错的事情了。
Adam:是的,很多产品做也是需要分阶段,有些产品服务现在做了用户不一定能够接受或者理解,因为效率和安全还要平衡,有时安全做太多了势必会影响效率,所以还是一个过程中的事情。