Category 欧易交易所OKX官网

索尼帝国的 Web3 野心

作者:AB Kuai.Dong,来源:作者推特@_FORAB

最近索尼 Sony 的 Crypto 动作非常频繁,从交易所到公链、爆款应用,其实早在 23 年就开始推动,雇员规模达数百人,按内部人士的原话:“我们已经在 Web2 行业做到了第一,那么 Web3 也一样可以。”

因此,本文将简要梳理,索尼的 Web3 版图。

索尼帝国的 Web3 野心

索尼的 Web3 推手,是日本资深 OG 渡辺潤,他于 2011 年加入索尼,担任索尼网络代表董事。

2023 年,在日本政府确立 Web3 国家战略后,他也升任至集团,担任集团基础设施探索业务负责人,后该业务权重,被提升为集团部门,归管集团高级 VP 兼首席战略官 御供俊元 管理,他之前是索尼中国的 1 号位。

索尼帝国的 Web3 野心

同年,索尼开始对 Amber Japan 进行收购,并在 2024 夏季,正式公布为索尼旗下的交易所 S.BLOX,目前该业务线雇员接近 150 人,最近也计划推出钱包服务。

是索尼 Web3 版图的重要三驾马车之一(公链、交易所、钱包)。

索尼帝国的 Web3 野心

而同时,Web3 研发公司 Startale Labs,也正式公开亮相,主要股东包括索尼和三星集团,资方也有新加坡大华银行支持的 UVM。

该公司,除了给索尼链 Soneium 提供技术开发以外,也为多家日本传统巨头,提供 Web2 to Web3 的服务。

索尼帝国的 Web3 野心

但是,光有 Web3 布局还是不够,也要与现实产业进行结合,也因此出现了如 CORGEAR 这类的公司,成功将 Web3 的技术或解决方案,带进了现实。

目前案例包括:广岛县咖啡 AR 之旅、北海道 AR 旅游杂志、大正大学合作的时空地图探索。

索尼帝国的 Web3 野心

而这其中最重要的,当属于现在市场焦点的索尼链 Soneium,正如此前所提到,钱包、Gas、代币,成为了大规模圈外用户,进入 Crypto 行业的绊脚石。

也因此,Soneium 有计划在做一条无 Gas 的以太坊 Layer2,并仅允许特定的开发者,部署自己的合约和应用,从而避免项目 rug、垃圾邮件问题。

索尼帝国的 Web3 野心

目前索尼链 Soneium,已率先跑出了第一个出圈应用,它就是在日区有 300 多万用户,9.7 万苹果商店评论的 Yay!

在前不久 Yay 完成了由日本头部券商 SBI,和美国创投基金 Headline 的 2200 万美金融资,算是日美合作的天花板。

索尼帝国的 Web3 野心

偏信则暗 —— Penpie 被黑分析

By: 九九@慢雾安全团队

背景

根据慢雾安全团队情报,2024 年 9 月 4 日,去中心化流动性收益项目 Penpie 遭攻击,攻击者获利近 3 千万美元。慢雾安全团队对该事件展开分析并将结果分享如下:

偏信则暗 —— Penpie 被黑分析

(https://x.com/Penpiexyz_io/status/1831058385330118831)

前置知识

Pendle Finance 是一种去中心化金融收益交易协议,总锁定价值超过 45 亿美元。该协议成功地与 Magpie 整合,旨在优化收益机会并增强其 veTokenomics 模型。在此基础上,Penpie 项目引入了流动性挖矿功能,使 Pendle Finance 的市场能够实现被动收益。

在 Pendle Finance 中包含以下几个重要概念:

  • PT (Principal Token):代表未来某个时间点的本金。持有 PT 代表握有本金的拥有权、并于到期后可兑换领回。例如你拥有一张 1 年后到期的 1 枚 PT-stETH 期权,那么在 1 年后你将能兑换价值 1 ETH 的 stETH。

  • YT (Yield Token):代表未来的收益。持有 YT 代表你拥有底层资产产生的所有实时收益,并且可以随时在 Pendle 上手动领取所累积的收益。如果你拥有 1 个 YT-stETH,而 stETH 的平均收益率为 5%,那么在一年结束时,你将累积 0.05 个stETH。

  • SY (Simple Yield):用于包装任何生息代币的合约。其提供了标准化的接口,可以与任何生息代币的收益生成机制进行交互。

  • LPT (Liquidity Provider Token):代表一个流动性市场,作为提供底层资产流动性的凭证。

  • PRT (Pool Reward Token):代表 Penpie 池子中用户存入 LPT 代币的存款凭证。

根本原因

此次事件的核心在于 Penpie 在注册新的 Pendle 市场时,错误地假设所有由 Pendle Finance 创建的市场都是合法的。然而,Pendle Finance 的市场创建流程是开放式的,允许任何人创建市场,并且其中的关键参数如 SY 合约地址,可以由用户自定义。利用这一点,攻击者创建了一个含有恶意 SY 合约的市场合约,并利用 Penpie 池子在获取奖励时需要对外部 SY 合约调用的机制,借助闪电贷为市场和池子添加了大量的流动性,人为放大了奖励数额,从而获利。

攻击步骤分析

攻击前置准备

交易哈希:0x7e7f9548f301d3dd863eac94e6190cb742ab6aa9d7730549ff743bf84cbd21d1

1. 首先,攻击者通过 PendleYieldContractFactory 合约的 createYieldContract 函数创建 PT 和 YT 收益合约,将 SY 设置为攻击合约地址,并以此调用 PendleMarketFactoryV3 合约的 createNewMarket 函数创建了对应的市场合约 0x5b6c_PENDLE-LPT。

偏信则暗 —— Penpie 被黑分析

2. 接着,攻击者使用 PendleMarketRegisterHelper 合约的 registerPenpiePool 注册 Penpie 池子,此过程中会创建存款凭证 PRT 代币合约及相关的 rewarder 合约,并在 Penpie 中登记池子信息。

偏信则暗 —— Penpie 被黑分析

3. 随后,攻击者调用 YT 合约的 mintPY 函数,铸造大量 YT 和 PT,数量取决于攻击合约(SY 合约)返回的汇率。

偏信则暗 —— Penpie 被黑分析

4. 紧跟着,攻击者将 PT 存入市场 0x5b6c_PENDLE-LPT 并铸造 LP 代币。

偏信则暗 —— Penpie 被黑分析

5. 最后,攻击者将 LP 代币存入 Penpie 池子,换取存款凭证 PRT 代币。

偏信则暗 —— Penpie 被黑分析

正式攻击

交易哈希:0x42b2ec27c732100dd9037c76da415e10329ea41598de453bb0c0c9ea7ce0d8e5

1. 攻击者先通过闪电贷借出大量 agETH 和 rswETH 代币。

偏信则暗 —— Penpie 被黑分析

2. 调用 Penpie 池子的 batchHarvestMarketRewards 函数,批量收集指定市场的奖励,此操作触发了市场合约 0x5b6c_PENDLE-LPT 的 redeemRewards 函数。

偏信则暗 —— Penpie 被黑分析

3. 在 redeemRewards 函数中,外部调用了 SY 合约(攻击合约)的 claimRewards 函数,期间攻击者使用闪电贷资金为奖励代币增加流动性(攻击合约中特意将奖励代币设置为两种市场代币 0x6010_PENDLE-LPT 和 0x038c_PENDLE-LPT),并将获得的市场代币存入 Penpie 池子,从而获得相应的存款凭证代币。

偏信则暗 —— Penpie 被黑分析

4. 接着,这些新存入 Penpie 池子的市场代币会被当作计算出来的奖励,随后通过 Rewarder 合约的 queueNewRewards 函数将这些代币转移至该合约。

偏信则暗 —— Penpie 被黑分析

由于 0x5b6c_PENDLE-LPT 市场中仅攻击者一人存款,因此可以立即调用 MasterPenpie 合约的 multiclaim 函数,提取 Rewarder 合约中的这部分 LPT 代币。

偏信则暗 —— Penpie 被黑分析

5. 最后,攻击者通过 PendleMarketDepositHelper 合约的 withdrawMarket 函数燃烧在第三步获取的存款凭证 PRT,赎回市场代币,并将这些市场代币连同上一步中提取的奖励一同移除流动性,最终获取基础资产代币(agETH 和 rswETH),实现获利。

偏信则暗 —— Penpie 被黑分析

总结

此次安全事件暴露了 Penpie 在市场注册环节存在校验不足的问题,过度依赖 Pendle Finance 的市场创建逻辑,导致攻击者能够通过恶意合约控制奖励分配机制,从而获得超额奖励。慢雾安全团队建议项目方在注册市场时,增加严格的白名单验证机制,确保只有经过验证的市场才能被接受。此外,对于涉及外部合约调用的关键业务逻辑,应当加强审计与安全测试,避免再次发生类似事件。

WSPN将在TOKEN2049举办稳定币主题边会”Stable Rise”

稳定币基础设施提供商WSPN宣布,将于9月17日在新加坡举办名为”Stable Rise”的边会活动。

WSPN将在TOKEN2049举办稳定币主题边会"Stable Rise"

该活动是TOKEN2049新加坡大会的重要边会之一,旨在聚焦稳定币的未来发展及其对全球金融体系的影响。多家业内知名企业将参与此次活动,包括(按字母顺序排列)Ample、Bitget、BitMart、DTC、KUN、Lotusia、Pharos和Polygon Labs等。

“Stable Rise”将深入探讨稳定币技术创新、监管合规以及市场应用等热点话题,为行业参与者提供宝贵的交流平台。值得注意的是,WSPN正积极推动”稳定币2.0″概念,强调用户中心、社区治理和可访问性,展现了公司对稳定币未来发展的前瞻性思考。

活动将于9月17日(星期二)14:00至17:30(新加坡时间)在Marina Bay Financial Centre (MBFC)举行,感兴趣的人士可通过以下链接进行报名:

随着TOKEN2049新加坡大会的临近,此次边会预计将吸引大量行业人士关注,对推动稳定币生态系统的健康发展具有重要意义。

关于WSPN

WSPN(Worldwide Stablecoin Payment Network)致力于为全球经济打造更安全、高效、透明的支付解决方案,是下一代稳定币基础设施的领先供应商。其旗舰产品 WUSD 稳定币与美元 1:1 挂钩,旨在为 Web3 用户优化安全合规的数字支付。WSPN 的“稳定币 2.0”(旨在提升稳定币功能和体验的下一代技术方案)优先考虑以用户为中心、社区治理和可访问性,为稳定币的广泛采用铺平道路。

Matrixport市场观察:季节性波动来临 市场反弹迹象尚不明朗

过去一周,BTC 呈现震荡下行趋势,先后跌破 63, 000 $, 60, 000 $, 58, 000 $ 多个关键支撑位,触底 57, 1128 $,周内最大跌幅 12% 。触底后 BTC 进入补偿性回弹,截止文章发布,BTC 在 59, 000 $ 波动。BTC 的市场主导地位增强,加密大盘基本跟随 BTC 波动,整体普跌。ETH 上周探底 2, 392 $,周内最大回撤 6.6% ,截止内容发布,ETH 试图站稳 2, 500 $ 支撑位。(上述数据来源自 Binance 现货, 9 月 3 日 15: 00)

市场环境

8 月份就业报告即将公布,若劳动力数据弱于预期,美联储或寻求更大幅度的降息

美联储降息基本已成定局,最新数据显示美联储 9 月降息 25 个基点的概率为 67% ,降息 50 个基点的概率为 33% (CME)。9 月 6 日,美国 8 月份就业报告即将公布,市场认为该数据获将影响降息幅度,如果劳动力数据弱于预期,美联储可能会寻求更大幅度的降息,这将是对经济疲软的承认。

美股科技股表现不及预期,投资者倾向降低风险敞口

8 月 28 日,英伟达财报公布后买卖市场接受度不一,虽然多家投行上调英伟达目标价,但买方市场并不买账。8 月 29 日,在科技股多数上涨的前提下,英伟达大跌 6.38% ,单日市值蒸发 1967 亿。截止至周五收盘,明星科技股多数收涨,其中英伟达上涨 1.5% (数据来自金十)。

虽然英伟达股价回升,但市场中对于科技股高估值的质疑已然存在,并传导至加密市场(从 2022 年末直到 2024 年第二季度,英伟达和 BTC 价格之间呈现强相关性)。该情绪压制了市场的风险偏好,导致投资者在当前环境下更倾向于降低风险敞口。

BTC ETF 与 ETH ETF 八月均为净流出状态

sosovalue 数据显示, 8 月份,BTC ETF 累计净流出 9400 万美元,ETH ETF 净流出 4.7725 亿美元。其中, 8 月 23 日 BTC ETF 净流入超 2.5 亿美元,为 8 月表现最佳;8 月 2 日净流出 2.37 亿美元,为 8 月表现最差。BTC ETF 资金量在 3 月后有所下降,其中,灰度旗下的 GBTC 流出量最高,今年累计流出近 200 亿美元。市场认为 BTC ETF 资金流出可能是比特币价格走势的变化、市场预期的转变以及监管动态等综合因素。

建议布局

历史数据显示,多重市场在 9 月的市场表现都不佳,不仅 BTC 在 9 月历史的回报率为负,美股也难逃 9 月魔咒。自 1928 年以来, 9 月一直是标普 500 指数表现最差的月份,CME Group 去年的数据显示,在过去一个世纪里,标普 500 指数在 55% 的 9 月都出现了下跌。

在 9 月的季节性波动中,以及美债收益率曲线陡峭化、收益率下降和美元汇率下跌的背景下,建议投资者寻求稳健的方式锁定收益,在保持谨慎的基础上密切关注大额交易和市场资金流动,合理分配资产布局。本周继续推荐核心卫星策略,将大部资金投入稳定的成本保护性产品,同时配置一小部分资金用于博取高收益的结构化产品(例如 70% -80% 资产选择保本产品, 20% -30% 选择相对高风险高收益的理财产品)。通过不同的产品搭配,在高波动性市场中使用策略性投资实现回报,并调控投资风险。

鲨鱼鳍以及趋势智赢作为成熟的成本保护型结构化产品,可以满足大众获取稳健保本收益的需求。双币则是应对市场不确定性的有效工具,合理使用可使投资者能够在波动的市场中锁定收益,减少因市场波动带来的损失。

作为全球领先的一站式加密金融服务平台,Matrixport 为用户提供多样化资管产品,包括双币投资,雪球,鲨鱼鳍,趋势智赢等结构化产品;量化策略,被动策略,主观策略等策略投资。上述产品支持多币种投资,大范围可选择投资周期。

市场不明朗?别乱折腾 USDT理财5.5%年化真香

最近的加密市场涨跌起伏就像坐过山车,前一秒牛市冲天,后一秒熊市压顶。搞得大家都手足无措。有的人决定退出观望,有的人索性躺平不动,有的去冲meme,还有的去合约市场赌大小。

但老实说,面对这种不明朗的市场局面,盲目操作只会让人越做越乱、越亏越多。这时候,建议大家不如停下来思考,看看有没有更稳健的方式管理你的资金。毕竟,投资不只是为了冒险,更多时候是为了保值增值。比起焦头烂额地盯盘,不如考虑一下理财,让你的资金在休息的同时还能为你赚钱。尤其是现在各大交易所都推出了不少保本的理财产品,只要你根据自己的资产结构和风险承受能力,挑选合适的理财方案,既稳健又省心。

4E理财:轻松上手,收益稳健,任你选择

说到理财产品,4E新上线的4个理财产品可以说是首选,不用花太多精力就能赚到不错的收益。而且,无论是活期还是定期,它们的收益率在整个市场里都算是相当高的。

市场不明朗?别乱折腾 USDT理财5.5%年化真香

活期理财:随存随取,年化2.5%,市场中少见的高回报

先说说活期理财,4E年化收益率高达2.5%,这个数字在加密市场里可以算得上是“高能收益”了!而且4E的活期理财没有那些让人头疼的“阶梯利率”套路。无论你存入的是500USDT,还是10000USDT,享受的年化收益率都是一样的,统统2.5%!这比很多平台动不动就分级计算利率、搞复杂规则玩文字游戏来得简单透明多了。

想想看,如果你的资金放在钱包里什么都不做,是不是纯粹浪费机会?放在4E的活期理财里,还能让你的资金稳稳生钱。

很多经常关注市场的朋友,对流动性要求很高。有了4E的活期理财,资金可以随时提取,完全不耽误在行情好的时候重新入场。这种随时可以操作的自由度,安心又方便。

定期理财:兼顾高收益与灵活性,年化最高达5.5%

如果觉得近期市场波动不大,没有多大交易欲望,那4E的定期理财非常适合你。平台目前提供了14天、30天、90天三种定期产品,年化收益率分别是5%、5.5%和5.5%。

说实话,这种收益率在市场上已经非常稀有了。市面上很多类似的定期产品,最高不过3%-4%年化,而4E给出的5%-5.5%的年化收益简直可以说是“良心满满”。特别是如果你喜欢短期理财,那14天的定期理财简直是量身定做。锁定两周时间,坐等到期拿收益,资金在这段时间里安稳地生钱,即有高收益又兼顾了资金灵活性。

市场不明朗?别乱折腾 USDT理财5.5%年化真香

为什么是4E?AFA官方首推理财产品

在币圈,大家对资金安全的关注尤为重要。4E之所以值得推荐,是因为它不仅拥有强大的平台背书,还具备了严格的风险管理机制。作为阿根廷国家足球队(AFA)的官方首推理财产品,4E获得了国际权威的认可。你可以想象,连梅西都关注的4E,这对我们来说无疑是一个强大的信任背书。AFA选择4E作为官方推荐,证明了平台的可靠性和市场声誉。更重要的是,为了应对可能出现的黑天鹅事件,4E专门设立了1亿美金的风险保证基金。这种高水平的保障,进一步增强了平台的信任度。

另外,4E平台的操作界面也非常友好,设计简洁明了。即使你是第一次接触理财产品,也完全不必担心会操作不来。平台在用户体验上的用心,使得所有操作步骤一目了然,简单易懂。无论是设置活期理财还是定期理财,整个过程都非常顺畅,上手速度极快。这样一来,即使没有理财经验的,也能轻松享受4E带来的稳健收益。

如果你对当前市场的波动感到疲惫,不妨考虑一下4E的理财产品,让你的资金在休息的同时也为你创造收益。

OpenAI 等待下一任“金主”

花光100亿美元的OpenAI,又双叒开始融资了!

8月30日,CNBC和《华尔街日报》双重报道称,OpenAI正在筹划新一轮数十亿的融资,本轮融资将由美国Thrive Capital领投10亿美元,其对OpenAI的估值跃升至1000亿美元以上。

目前,新一轮押注已经开始。除了Thrive Capital之外,微软、英伟达、苹果都开始蠢蠢欲动。

不到两年,烧光100亿美元

不得不说,OpenAI的“烧钱”速度真是快。

上一轮OpenAI融资记录还是在2023年1月,微软投资约100亿美元,也是至今为止AI领域最大的一笔融资记录。

2023年1月到2024年9月,20个月的时间,OpenAI用100亿美元换来了超过1000亿美元的估值,以及突破2亿的ChatGPT用户(截止2024年中期)。

如果把时间线放长,在成为AI世界的领头羊之前,OpenAI在十年时间里,一共经历了7轮融资,包括种子前融资、种子轮融资、二级市场融资和企业融资,总募集资金超过200亿美元,是名副其实的“吞金巨兽”。

2015年,刚刚成立的OpenAI,就获得了不少资本大佬的青睐,尤其是现任世界首富埃隆·马斯克。

在2015年6月,由马斯克为首,风险投资家彼得·蒂尔(Peter Thiel)、里德·霍夫曼(Reid Hoffman)、YCombinator创始合伙人杰西卡·利文斯顿(jessica Livingston)、咨询公司Infosys、公共云市场领导者Amazon Web Services、YC Research、山姆·奥特曼(Sam Altman)向OpenAI融资10亿。

虽然开了个好头,但在2015-2018的三年内,OpenAI的发展陷入瓶颈期,同时又因为自身属于非营利组织,在商业化的进程上非常不符合马斯克的计划。

最终导致马斯克与OpenAI决裂,2018年2月20日宣布离开OpenAI。

OpenAI 等待下一任“金主”

马斯克和山姆·奥特曼

在2019年之前,OpenAI对融资的态度颇为谨慎,但随着马斯克的离开,以及AI大模型正处于GPT-2迈向GPT-3的关键阶段,OpenAI开始对融资保持相对开放的态度。

2019年OpenAI连续拿到三次融资,分别由Khosla Ventures、Reid Hoffman Foundation、Matthew Brown、微软投资。

其中,微软作为日后最大金主,在2019年7月投资了10亿美元。

为了获取大规模投资完成GPT大模型的搭建,OpenAI从非营利性企业转变为具有利润上限的营利实体OpenAI LP。在新的公司结构下,OpenAI吸引了大波风头机构。

2021年1月,OpenAI拿到老虎全球管理、Bedrock Capital、Andreessen Horowitz投资,具体金额不明。

2021年和2023年1月,微软分别投资了20亿美元和100亿美元。

2023年4月,OpenAI继续拿到了红杉资本、Thrive Capital等机构的3亿美元融资。

在近200亿融资的供养下,OpenAI逐渐诞生出ChatGPT 4.0,开启了AI新时代。

如果说,谁才是OpenAI和ChatGPT的最大功臣?答案并不是CEO山姆·奥特曼,而是微软。

OpenAI 等待下一任“金主”

山姆奥特曼和萨提亚·纳德拉

在过去五年的时间里,OpenAI从微软手里拿到了三笔融资,总计120亿美元。OpenAI 80%的资金来源,都来自于微软。

不仅是投资,微软为OpenAI提供了很多资源。例如,OpenAI所有技术都运行在微软Azure云服务器上,微软则为OpenAI搭建了大模型算力中心。

微软还将OpenAI整合到Windows体系,从Bing搜索、Microsoft 365办公软件,再到GitHub编码工具、营销软件,都在使用OpenAI构建AI服务体系。

可以说,微软不但是OpenAI的第一投资人,还是它的第一忠实用户。

但是,作为OpenAI背后最大的金主,微软却在OpenAI新一轮融资既不是领头机构,也没有确定跟投,这就有些耐人寻味了。

OpenAI的“新金主”

OpenAI本次融资的领头机构是Thrive Capital,可以说是OpenAI的新任金主。

据公开资料显示,Thrive Capital的创始人是约书亚·库什纳 (Joshua Kushner),是一名85后新生代投资人,也是美国“老钱家族”的一员。

而约书亚·库什纳的哥哥贾里德·库什纳(Jared Kushner)名气更大,是美国前总统唐纳德·特朗普的女婿、伊万卡·特朗普的丈夫。

Thrive Capital最辉煌的成绩,莫过于在2012年参与了Instagram的B轮融资,并在Facebook宣布10亿美元收购Instagram后,拿下了100%的回报率。

约书亚·库什纳和OpenAI CEO山姆·奥特曼私交甚笃,是OpenAI最著名的支持者之一,一直尝试投资OpenAI。

在2023年,Thrive Capital领投了OpenAI的新一轮融资,红杉资本、a16z、K2等机构跟投。该轮融资中,Thrive Capital投资了近1.3亿美元,当时OpenAI估值270亿美元。

不仅仅参与投资,Thrive Capital还深入介入了OpenAI公司内部问题。

在山姆·奥特曼因为公司内斗,在2023年底被董事会解雇之时,约书亚·库什纳就是山姆·奥特曼最大支持者。在五天时间内,约书亚·库什纳在董事会发挥积极作用,直到山姆·奥特曼回归。

山姆·奥特曼对约书亚·库什纳和Thrive Capital非常信任,甚至在社交平台上,公开“吹捧”:“我有幸与许多优秀的投资者合作过,但我最想推荐的人莫过于乔希(约书亚·库什纳)。”

OpenAI 等待下一任“金主”

为了增加自己的回报率,约书亚·库什纳在提升OpenAI估值这件事上非常努力。

在今年4月,Thrive Capital曾主导过一次OpenAI前员工股权出售。当时Thrive Capital对OpenAI的估值就从270亿美元提升至860亿美元。

等到OpenAI本次新一轮的融资,Thrive Capital更是为OpenAI估值1000亿美元,甚至还在华尔街散布OpenAI估值可能触及1250亿美元高点的传言。

不得不说,除了马斯克之外,OpenAI每一任金主,都是良人。

OpenAI或许要IPO?

金主虽多,但奈何ChatGPT太过于烧钱。

在拿到微软100亿美元的融资之时,外界推测这笔钱能让OpenAI支持2-3年的时间。结果却仅仅只用了20个月,便在竞争越发激烈的AI世界里弹尽粮绝。

目前,OpenAI目前正在开发下一代型号GPT-5,成本只会比GPT-4和GPT-4o更高。

融资只能解燃眉之急,但是并不解渴,想要拿到更多的钱,最好的选择就是IPO。

今年6月,美国媒体报道,山姆·奥特曼已告诉部分股东,OpenAI正在考虑将其治理结构转变为一家营利性企业,OpenAI的非营利董事会无法控制该企业。

而转型为营利性企业,OpenAI就能凭借自身过1000亿的估值敲开IPO的大门。

OpenAI 等待下一任“金主”

这并不是空穴来风的谣言,就在6月,OpenAI招募到了重量级财务专家萨拉·弗莱尔(Sarah Friar)担任其首席财务官。

萨拉·弗莱尔曾两次带领公司完成IPO,第一次是Square,第二次Nextdoor。

作为“IPO专家”,萨拉·弗莱尔的加入无疑为OpenAI的上市筹备工作注入了强心针。面对审计、财务预测及治理结构变革等繁重任务,她无疑是推动OpenAI迈向上市目标的理想人选。

在这个大背景下,这一次的OpenAI新一轮融资,很可能将会是它最后一次融资。

Web3游戏的困境与出路

随着《黑神话:悟空》的现象级爆红,圈内又出现一股唱衰Web3游戏的声音,在最近已经非常低迷和自我怀疑的市场舆论环境下,又叠加了一层 debuff。

是Web3人不热爱游戏么?诚然,在市场的早期泡沫阶段,浓厚的投机气氛不可避免,但很多 builder 依然是抱着要做出一款好游戏、一款真正属于玩家的游戏涌入这个行业的,而Web3想要实现真正的 mass adoption,游戏也是绕不过去、最能深入下沉市场的路径。

但现实是骨感的。当人们想要细数Web3一线的游戏的时候,发现有质量的游戏数量极少,大部分游戏乏善可陈,既没有给玩家提供好的用户体验,也远远达不到 mass adoption 的预期。大量Web2有着成功实战经验的游戏团队折戟Web3,究其原因,我目前理解下来主要有两点:

1. 相较于传统游戏,Web3游戏很难提供持续的游戏内容更新

2. 由于受众不同,Web3游戏需要比传统游戏考虑更多游戏性以外的游戏经济学问题

游戏内容的更新困境

一款游戏要保持长久的生命力,更新打补丁必不可少;否则,一来是 bug 无法修复,二来玩家的新鲜感也难以持久。在传统游戏开发中,如果数据结构没有发生改变但游戏逻辑发生改变,一个简单的程序逻辑补丁就可以完成相关升级。

但是,区块链的不可篡改性给这一份看似简单的实现平添了难度。以 Solidity 游戏开发为例,一份上了线的游戏合约往往决定了游戏的整体数据结构,由于游戏逻辑本身是数据状态的迁移,游戏逻辑的修改往往需要配合合约的升级。

合约升级后,却又无法延续性复用升级前合约的数据,为了完成游戏逻辑的升级,只有两个选择:

1 迁移

2. 在合约设计的初始就把数据层和逻辑层分离

第二种选择会增加合约调用的 gas 消耗,所以高频次的游戏内容升级往往在Web3难以做到,这就伤害了一款有潜力游戏的持续获客能力。

Web3游戏的困境与出路

不做数据接口的逻辑升级

Web3游戏的困境与出路

做了数据接口的逻辑升级

要解决这个问题,首先是要解决数据复用问题和数据升级问题。当游戏的逻辑修改,我们仍然希望原来的数据可以原封不动被保留。这里的最佳零成本解决方案,是独立的 App As A rollup。因为在 App rollup 中,原先数据的默克尔根可以直接复用,而对逻辑的修改只需要体现在代码逻辑中。

Web3游戏的困境与出路

直接跑在虚拟机中的逻辑升级

数据复用和逻辑升级问题得到解决后,数据结构升级问题依然会对游戏升级带来一定挑战。普通的链上数据迁移,往往是需要通过预言机,将数据根据一个既定脚本进行改动后再次录入到链上,会耗费大量的时间。

在 App As A rollup 架构中,数据迁移审计后,可以运行在 zkVM 中,从而做到迁移逻辑完全可验证。由于数据迁移在很多场景下是数据重组,计算逻辑较少,如果每个叶子节点的再组织所涉及的代码在 1000 行左右,那么一百多万个叶子节点所需要的执行 trace 大约可以在 1000* 100 w 左右。目前普通的 zkVM 每一百万行 trace 的证明时间是 9-15 秒,所以整体的 zk 数据迁移时间依然是一个可控的数字。

正是由于 Application Rookup 的数据独立性,给Web3游戏内容迭代带了了新的方法论。

而由于其他链上 app 的复杂性和对于更新的迫切性远远不如游戏,zkVM 会给全链游戏,或者说可验证游戏带来新的机会。

经济学和利益分配的困境

游戏项目开发是一件复杂综合且又非常琐碎的工作, 如果一个高质量的游戏不能带来切实的经济收益,那么相较于传统游戏领域,Web3对于开发者的吸引力就会日趋下降。

目前,游戏项目和公链之间的关系经常以流量关系为主,收益关系为辅。而流量关系的中游戏项目往往依赖公链提供的平台流量和初始流量,公链则通过吸纳好的游戏项目,在游戏上线的中期享受游戏带来的公链用户增量。

收益关系会更为复杂,且隐藏着更深层次的利益分配问题:一方面,用户行为会产生收益,包括链的 gas 收益,游戏内容消费收费;另一方面,游戏流量和消费带来了币价增值,有交易量的游戏通过发行游戏代币产生了资产收益,同时也给链带来了繁荣的生态效应,进一步增加了公链的代币估值预期。

Web3游戏的困境与出路

在这种复杂的利益关系下,用户实际支出究竟该如何分配才算合理,其实远没有一个清晰的界定。游戏的冷启动需要大量资金,而用户的第一笔收入又往往以支付给链的 gas 费率为主,这使得游戏创作者得到正反馈的周期非常的长,有时候甚至存在游戏开发团队自行刷量到达链的 DAU 基础值之后,靠微薄的 grant 回血的情况。这让游戏不得不在早期依靠 token 预期来吸引玩家支付 gas 进行交互。这部分 gas 负担对于一个游戏玩家来说已经不能被忽视,以至于链游在引导用户消费自己的 token,也就是购买游戏 token 环节变得较之于传统游戏更加困难。

Web3游戏的困境与出路

由于游戏充值是游戏正反馈的最核心步骤,gas 负担对于游戏充值的延缓极大伤害了游戏获客的能力。但由于链游需要负担传统意义上的上链义务,即使是在 layer 2 上,gas 依然不留情面地走在了第一次充值游戏原生 token 之前。所以,Web3 并不存在真正意义上的“先玩后氪”的游戏体验。

游戏物品交易被认为是区块链游中后期最有魅力的一环。通过氪金或者是长期交互努力换来的高价值游戏物品,经过流通和收藏后不断升值,不论是对游戏玩家或者是设计者来说都是激动人心的体验。但是,游戏物品作为游戏衍生品,其流通交易所带来的溢价又大部分被其他链上产品瓜分:游戏 nft 的交易费可能被 nft 交易所瓜分,游戏 token 的交易又被 defi 瓜分。好的游戏创造出来的价值,并不能有效地回流到游戏中去支持游戏团队。

Token 的价值波动会导致动态放大的游戏内产出。游戏 token 的价值被低估时,游戏费率偏低,游戏产出和实际游戏 token 的投入往往正相关导致 token 低价,消耗相同游戏 token 所需代价较低,产出反而更高。而在游戏币高企的时候,过高的游戏 token 价值阻挠了游戏内的消费冲动。这样的放大效应让游戏 token 的价值起伏受到场外和场内产出的双重影响,增大了代币经济学设计相关的挑战。

App As A rollup + zkVM:一个可能的出路

在列举了这一系列挑战时候,我们意外地发现,Application As Rollup 的架构能够适当有效地缓解相关问题。

首先,自有的 rollup 的真实 gas 会较全链游戏显著降低到 1/20 甚至更少。这可以让项目方完全在游戏初期免除 gas fee 干扰,提供真正的 free to play 的游戏体验,给游戏初期聚量冷启动创造更好的环境。

其次,Application As Rollup 可以提供一键式的借贷平台,在游戏的初期以用 USDC 借贷游戏内部 Token 的方式,鼓励用户在游戏中尝试付费功能。由于游戏的正向期望产出往往大于消费,用户在产出大于消费之后,完全可以赎回当初借贷用的 USDC 抵押品。

在流通环节,Application As a Rollup 可以有效地充当游戏资产的跨链桥。当我们需要转移在不同链上的资产时,只需要 Deposit 到游戏中,然后再去另一条链上 Withdraw 即可。这种原生的跨链功能,让游戏衍生品交易的一部分价值被游戏本身获取。

更为激进的是,游戏可以提供 deposit 稳定币功能来做借贷,让以前只有链才能捕获的 TVL 价值如今可以被游戏本身捕获。最后,Application Rollup 可以提供通过在游戏的中引入对氪金玩家的类似 gas 费的机制,最终将传统的链 gas 费用捕获。这种机制一个较为可能的设计就是在 token 价值较高时 gas 费用较低,而 token 价值较低时 gas 费用较高:其本质是得益于通过 layer 3 的独立性将 gas 价值和 token 价值绑定缓解 token 价值波动。

当然这一切都不会在一夜之间发生,Delphinus Lab zkWASM 作为将 zkVM 推向游戏应用的早期玩家,最近发布了 zkWASM Mini Rollup。这是一个用于快速开发和部署 ZK Rollup 应用的工具包。它允许开发者编写 Rust 代码,将其编译为 WebAssembly,然后在 Node.js 环境中运行。这个 SDK 处理交易、生成零知识证明,并与区块链交互。

Web3游戏的困境与出路

其核心流程是:接收交易、在 WASM 虚拟机中处理交易、使用 zkWASM 云服务生成证明,最后将证明提交到区块链进行验证和结算。整个过程保证了交易的隐私性和安全性,同时大大提高了区块链的扩展性。开发者只需关注应用逻辑,而不必深入理解复杂的零知识证明技术细节。它还包含了一个 Rollup 监控系统,可以使用证明和交易数据触发链上结算,通过存储 Merkle 根和 verify API 来验证证明,确保按照链上 Merkle 根的顺序进行结算。此外,该 SDK 还简化了本地开发环境的搭建,只需启动 MongoDB 和 Redis,运行 dbservice,然后在 ts 目录下执行 npm run server 即可启动完整的本地服务。

Web3游戏的困境与出路

zkWASM Mini Rollup SDK 的出现为Web3游戏面临的双重挑战提供了一个极具潜力的解决方案。通过 Application As A Rollup 的架构,它不仅简化了游戏内容的更新流程,还为游戏经济模型的优化提供了新的可能性。

这种创新方法首先是利用 WASM 的兼容性,让大量传统开发者得以使用他们最熟悉的编程预言如 Rust 来编写游戏代码;其次是允许游戏开发者更容易地实现数据复用和逻辑升级,大大降低了 gas 费用,甚至可能实现真正的“ 0 gas 畅玩”“先玩后氪体验。同时,它为游戏项目提供了更多捕获价值的机会,包括跨链资产转移、借贷功能等,有助于建立更加可持续的游戏经济体系。

使用 zkWASM 一键发 rollup,意味着我们可以在开发者侧和用户侧的 mass adoption 都迈出坚实的一步。虽然这一技术还在早期阶段,Web3游戏也在这个周期面临着圈内圈外的双重不信任,在质疑中艰难前行,但它为解决当前Web3游戏面临的核心问题指出了一条路。

随着更多游戏开发者采用这种技术,越来越多的游戏运营方和借贷协议愿意参与到前文所建言的这种经济模式中来,我们有理由相信,Web3游戏将逐步克服现有困境。我们并不奢望会拥有自己的黑神话悟空或使命召唤,但是做难而正确的事,朝着最终目的不懈努力而不是投机取巧,Web3游戏也终将迎来自己“直面天命”的时刻,并带动整个行业一起度过大规模应用的漫长前夜。

美联储降息和牛市的关联性

来源:道说区块链

关于留言提问的一些杂感:

我在现在的疑问解答中已经越来越少回复关于具体某个代币、某个项目的问题了。

一个主要原因是这些代币和项目绝大部分都是以前有读者问过并且我也解答过的,而且这些项目的后续发展并没有什么新的亮点和进展,所以如果读者翻翻我前面的文章都能看到曾经的解答。我当时对它们的观点至今也没变。

另外,我特别注意到一些读者开始有了自己的思考,并且开始跳脱具体的项目和代币,开始在投资逻辑和投资思路上产生了自己的想法、有了自己的观察。如果这种变化是因为看我的文章而产生的,那简直就是对我莫大的鼓舞和激励。

因为这才是我写文章的终极目的。

网上有很多文章今天讨论币价涨跌、明天讨论哪个项目可以冲、后天讨论XX准备上什么币。

诚然这些都是绝大多数投资者高度关注和感兴趣的话题。

但我很少在文章里写这些,一个重要的原因是我不太习惯这种跟风走、四处打游击的方式。

我更喜欢的方式是找到一种可靠的投资框架,用这种框架不仅能牢牢地从“压舱石”上面挣到安全可靠的利润;也可以在一个新蓝海出现时,迅速找到适合自己的领域并在其中大展拳脚。

而当这样的蓝海没有出现时,那就让自己彻底松弛下来,安心地读书、学习,尤其是读经典的书、学习前辈的经验。

而当这种蓝海渐渐变成红海时,我也会减小关注度,对红海里出现的新项目渐渐淡化兴趣——因为这些所谓的新项目绝大部分在我看来都没有创新。

下面继续疑问解答。

1. 我好奇的还是估值问题,加密和公司股票的盈利这些不同,高估和低估,该怎么定义和估算呢?

这个问题也是我长期以来一直在探索的。

最近,DeFi生态中我认为创新能力属于顶流的AAVE推出了一系列改革措施,其中最重要的在我看来就是把代币赋能与项目盈利挂钩了。

我正好趁这个机会,按照传统股市的盈利估算方法(比如P/E、ROE等指标)核算了一下AAVE改革后的财务状况。

但计算的结果可以说是惨不忍睹。如果把这样的“公司”放在股市里衡量,那简直就是垃圾股,现在AAVE的“股价”就是泡沫中的泡沫。

因此,至少当下看,用传统股市的方式来衡量加密项目恐怕还行不通。但我非常笃定地相信,至少对于有清晰盈利模式的项目,走向传统股市的评价标准是个大趋势。但是具体到用什么标准来衡量加密项目的盈利,或许会和传统股市有较大的不同。

但这个方向已经越来越明显了。我们总不能说代币没有任何盈利赋能,永远只凭借治理功能就能维持当下的币价吧?

此外,最近我所读的费舍尔的书中所描述的情形也非常类似我们今天在加密生态中所面临的问题。

比如他在1950年代所投资的一些当时新兴行业的股票如果单纯用我们今天所熟知的盈利模式来衡量也是很难经得起考验的。

但他为什么敢于投资那些股票?他的的思考方式和策略是什么?这些都是很值得今天的我们学习和借鉴的。等我详细看完他的书会找机会在文章里分享。

2. 未来就怕美联储就算降息,币圈也不一定有牛市了。

我觉得不用太担心这些。重要的还是我们自己有没有应对这些状况的相应策略。

如果这一轮没有牛市?我以前在文章中也写过好几次——–我的做法就是继续持有下去,继续等下一个牛市。

另外我始终认为,币圈真正的大牛市还是要发自生态内的应用创新,而不是单纯的外部放水。

这几年美股的大牛是在美联储加息的情况下走出的。

为什么能这样?

根本原因是人工智能的创新带来了一系列巨大的红利。这股内在的强大动力极大抵消了外部金融环境的压力。

所以在我看来,内在要素的重要性远大于外在要素。

一天涨 10 倍的 EtherVista 是什么?

作者:anymose 来源:X,@anymose96

TL;DR

  • 一个基于以太坊的新 DEX 标准

  • 创新的 LP 和费用机制

  • LP 锁定 5 天,第一个代币明天解锁(可能引发抛压)

  • 被戏称为以太坊上的 Pumpfun

  • 一个彩蛋

一天涨 10 倍的 EtherVista 是什么?

在发布短短 3 天后,EtherVista 的主代币从 $0.12 飙升至 $16.8,完全稀释市值(FDV)达到 $16.2M,流动性池的总金额为 $2.1M。

这只是一个普通的、昙花一现的土狗项目吗?仔细研究白皮书后发现,开发者在以太坊虚拟机(EVM)市场的创新窘境中做出了一些独特尝试,虽然不算大创新,但确实产生了不错的效果。

一天涨 10 倍的 EtherVista 是什么?

项目概述

与 Pump 类似,EtherVista 提供了公平的启动模式,100% 的代币供应会分配给流动性提供者(LP)并锁定 5 天。与其他项目不同的是,用户需要自己创建代币,LP 销毁也不受平台管理。EtherVista 更像一个去中心化交易所(DEX),它改变了传统按金额收费的模式,采用每次交易收取固定费用的方式,费用奖励给 LP 和开发者。

项目的核心目标是通过奖励流动性提供者和协议费用,激励长期项目的成功。

一天涨 10 倍的 EtherVista 是什么?

$VISTA 代币机制

平台代币 $VISTA 是一个通缩代币,总量为 100 万个,每天销毁一定数量的代币,通过手续费减缓抛压和死亡螺旋效应。值得注意的是,LP 锁定期为 5 天,明天将迎来首次解锁,可能会面临较大的抛压风险。

其中,最大的单一持币地址(合约)占有 6.2880%。

一天涨 10 倍的 EtherVista 是什么?

更大的规划:Beyond DEX

DEX 只是 EtherVista 规划的一部分,网站上还有多个未开放的入口,包括闪电贷、期货合约、借贷等功能。此外,平台还推出了类似 Pumpfun 的 Superchat。从产品架构来看,EtherVista 更像一个集成了多种功能的“缝合怪”。

一天涨 10 倍的 EtherVista 是什么?

如何参与?

  1. 买币:最简单的方法是直接购买平台代币。除了平台币 $VISTA 外,还有很多其他代币在这里发射,但需要特别注意交易风险。平台更倾向于奖励项目方和 LP,短期交易的博弈风险较高。

  2. 发行自己的代币:使用平台的「launcher」功能,可以自己规划和发行代币,这个功能相对复杂,建议自行研究。

总体评价

总体来看,EtherVista 是一个融合和迭代了 Uniswap、Pumpfun 以及各类借贷协议的“缝合怪”。虽然算不上重大创新,但它通过固定费用模式为大额操作提供了奖励,同时让小额参与者可能望而却步。这种尝试颇有趣味,值得列入观察清单。毕竟,在过去大半年,以太坊上鲜有有趣的新项目,而 EtherVista 则是个不错的探索。

一个彩蛋

值得一提的是,EtherVista 白皮书的作者名字署名为 Vitalik Nakamoto,这也为项目增添了几分神秘感。

一天涨 10 倍的 EtherVista 是什么?

零知识证明编程——用Circom、Groth16构建证明及验证

来源:登链社区

为工作程序员提供的 ZKP 教程介绍。

你知道为什么斑马有条纹吗?一种理论是这是一种伪装。当斑马聚集在一起时,这使得狮子更难以区分它们的猎物。狮子必须将猎物从群体中隔离出来才能追捕它[^1]。

人类也喜欢在人群中隐藏。一个具体的例子是,当多个人在一个集体名称下作为一个整体行动时。《联邦党人文集》就是这样创作的[^2]。 另一个例子是 Bourbaki,这是 1930 年代一群法国数学家的集体笔名。这导致了现代数学大部分内容的彻底重写,重点在于严谨性和公理化方法[^3]。

零知识证明编程——用Circom、Groth16构建证明及验证
Bourbaki Congress

在数字时代,假设你在一个群聊中,想要发送一条有争议的信息。你想证明你是其中的一员,而不透露是哪一位。我们如何在数字领域使用密码学来做到这一点?我们可以使用一种叫做 群签名 的东西。

从传统上讲,群签名在数学上相当复杂且难以实现。然而,使用零知识证明(ZKP),这个数学问题变成了一个简单的编程任务。在本文结束时,你将能够自己编写群签名。

介绍

这篇文章将向你展示如何从零开始编写基本的零知识证明(ZKP)。

在学习新的技术栈时,我们希望尽快掌握编辑-构建-运行的循环。只有这样,我们才能开始从自己的经验中学习。

我们将首先让你设置环境,编写一个简单的程序,执行所谓的可信设置,然后尽快生成和验证证明。之后,我们将识别一些改进我们程序的方法,实施这些改进并进行测试。在此过程中,我们将建立一个更好的心理模型,以便在实践中编程 ZKP。最后,你将熟悉(某种方式)从零开始编写 ZKP。

我们将逐步构建一个简单的签名方案,你可以证明你发送了特定的消息。你将能够理解这段代码的作用及其原因:

<span 1="" 9="" 18="" 10px="" 40px="" no-repeat="" height:="" width:="" margin-bottom:="" border-radius:="" code="" template="" signmessage="" signal="" input="" output="" component="" identityhasher="Poseidon(<span" span="" identity_commitment="==" signaturehasher="Poseidon(    # 克隆仓库并运行准备脚本
    git clone git@github.com:oskarth/zkintro-tutorial.git
    cd zkintro-tutorial
    
    # 在执行之前浏览此文件的内容
    less ./scripts/prepare.sh
    ./scripts/prepare.sh

我们建议你浏览 ./scripts/prepare.sh 的内容,以查看这将安装什么,或者如果你更喜欢手动安装。执行后,你应该看到 Installation complete 并且没有错误。

如果你遇到问题,请查看最新的官方文档 这里[7]。完成后,你应该安装以下版本(或更高版本):

    pragma circom 2.0.0;
    
    template Multiplier2 () {
      signal input a;
      signal input b;
      signal output c;
      c <== a * b;
    }
    
    component main = Multiplier2();

这就是我们的特殊程序或 _电路_。 [^6] 按行分析:

  • pragma circom 2.0.0; – 定义所使用的 Circom 版本

  • template Multiplier() – 模板是大多数编程语言中对象的等价物,是一种常见的抽象形式

  • signal input a; – 我们的第一个输入,a;输入默认是私有的

  • signal input b; – 我们的第二个输入,b;同样默认是私有的

  • signal output b; – 我们的输出,c;输出始终是公共的

  • c <== a * b; – 这做了两件事:将信号 c 赋值 约束 c 等于 ab 的乘积

  • component main = Multiplier2() – 实例化我们的主组件

最重要的行是 c <== a * b;。这是我们实际声明约束的地方。这个表达式实际上是两个的组合:<--(赋值)和 ===(等式约束)。 [^7] Circom 中的约束只能使用涉及常量、加法或乘法的操作。它强制要求方程的两边必须相等。 [^8]

关于约束

约束是如何工作的?在类似数独的上下文中,我们可能会说一个约束是“一个介于 1 和 9 之间的数字”。然而,在 Circom 的上下文中,这不是一个单一的约束,而是我们必须使用一组更简单的等式约束(===)来表达的东西。 [^9]

为什么会这样?这与底层的数学原理有关。从根本上讲,大多数 ZKP 使用 _算术电路_,它表示对 多项式 的计算。在处理多项式时,你可以轻松引入常量,将它们相加、相乘并检查它们是否相等。 [^10] 其他操作必须用这些基本操作来表达。你不必详细了解这一点才能编写 ZKP,但了解底层发生的事情可能会很有用。 [^11]

我们可以将电路可视化如下:

零知识证明编程——用Circom、Groth16构建证明及验证

构建我们的电路

供你参考,最终文件可以在 example1-solution.circom 中找到。有关语法的更多详细信息,请参见 官方文档[9]

我们可以通过运行以下命令来编译我们的电路:

零知识证明编程——用Circom、Groth16构建证明及验证

这是调用 circom 创建 example1.r1csexample1.wasm 文件的一个简单包装。你应该会看到类似以下内容:

    {
      "pi_a": ["15932[...]3948", "66284[...]7222", "1"],
      "pi_b": [
        ["17667[...]0525", "13094[...]1600"],
        ["12020[...]5738", "10182[...]7650"],
        ["1", "0"]
      ],
      "pi_c": ["18501[...]3969", "13175[...]3552", "1"],
      "protocol": "groth16",
      "curve": "bn128"
    }

这以一些数学对象(三个椭圆曲线元素)pi_api_bpi_c 的形式指定了证明。[^20] 它还包括有关协议(groth16)和使用的 _curve_(bn128,我们暂时忽略的数学实现细节)的元数据。这使得验证者知道如何处理此证明以正确验证。

请注意,证明是多么简短;无论我们的特殊程序多么复杂,它的大小都只有这个。这展示了我们在 _友好的零知识证明介绍_[10] 中讨论的 ZKP 的 succinctness 属性。上述命令还输出了我们的 _公共输出_:

这是与我们的见证和电路对应的所有公共输出的列表。在这种情况下,有一个公共输出对应于 c:33。[^21]

我们证明了什么?我们知道两个秘密值 ab,它们的乘积是 33。这展示了我们在上一篇文章中讨论的 隐私 属性。

请注意,证明在孤立状态下没有用,它需要随之而来的公共输出。

验证证明

接下来,让我们验证这个证明。运行:

just verify_proof example1

零知识证明编程——用Circom、Groth16构建证明及验证

这需要验证密钥、公共输出和证明。通过这些,我们能够验证证明。它应该打印“证明已验证”。请注意,验证者从未接触到任何私有输入。

如果我们更改输出会发生什么?打开 example1/target/public.json,将 33 更改为 34,然后再次运行上述命令。

你会注意到证明不再被验证。这是因为我们的证明并没有证明我们有两个数字,其乘积是 34。

恭喜你,你现在已经编写了你的第一个 ZKP 程序,进行了可信设置,生成了证明并最终验证了它!

练习

  1. ZKP 的两个关键属性是什么,它们意味着什么?

  2. 证明者的角色是什么,她需要什么输入?验证者呢?

  3. 解释 c <== a * b; 这一行的作用。

  4. 为什么我们需要进行可信设置?我们如何使用其产物?

  5. 代码:完成 example1,直到你生成并验证了一个证明。

第二次迭代

通过上述电路,我们证明了我们知道两个(秘密)数字的乘积。这与 质因数分解 问题密切相关,这是许多密码学的基础。[^22] 这个想法是,如果你有一个非常大的数字,找到两个质数使其乘积等于这个大数字是很困难的。相反,检查两个数字的乘积是否等于另一个数字是非常简单的。[^23]

然而,我们的电路存在一个大问题。你能看到吗?

我们可以轻松地将输入更改为“1”和“33”。也就是说,一个数字 c 始终是 1 和 c 的乘积。这一点并不令人印象深刻,对吧?

我们想要做的是添加另一个 _约束_,使得 ab 不能等于 1。这样,我们就被迫进行适当的整数因式分解。

我们如何添加这个约束,需要做哪些更改?

更新我们的电路

我们将为这些更改使用 example2 文件夹。不幸的是,我们不能仅仅写 a !== 1,因为这不是一个有效的约束。[^24] 它不是由常量、加法、乘法和等式检查组成的。我们如何表达“某物不是”?

这并不是立即直观的,这种类型的问题是编写电路的艺术所在。发展这种技能需要时间,并超出了本初始教程的范围;幸运的是,有许多好的资源可以参考。[^25]

不过,有一些常见的习语。基本的想法是使用 IsZero() 模板来检查一个表达式是否等于零。它对真值输出 1,对假值输出 0。

使用真值表[^26] 来显示可能的值通常是有帮助的。以下是 IsZero() 的真值表:

零知识证明编程——用Circom、Groth16构建证明及验证

这是一个如此有用的构建块,以至于它被包含在 Circom 的库 circomlib 中。在 circomlib 中还有许多其他有用的组件。[^27]

我们可以通过创建一个 npm 项目(JavaScript)并将其作为依赖项添加来包含它。在 example2 文件夹中,我们已经为你完成了这一步。要导入相关模块,我们在 example2.circom 的顶部添加以下行:

include "circomlib/circuits/comparators.circom";

使用 IsZero(),我们可以检查 ab 是否等于 1。修改 example2.circom 文件,使其包含以下行:

<span 1="" 12="" 4000="" 10px="" 40px="" no-repeat="" height:="" width:="" margin-bottom:="" border-radius:="" code="" component="" iszerocheck="IsZero();
    just generate_proof example2
    just verify_proof example2

它仍然按预期生成和验证证明。

如果我们将 example2/input.json 的输入更改为 133 并尝试运行上述命令,我们将看到一个断言错误。也就是说,Circom 甚至不会让我们生成证明,因为输入违反了我们的约束。

完整流程图

现在我们已经经历了整个流程两次,让我们退后一步,看看所有部分是如何结合在一起的。

零知识证明编程——用Circom、Groth16构建证明及验证

希望事情开始变得有些明朗。接下来,让我们提升一下,让我们的电路更有用。

练习

  1. 为什么我们必须运行 example2 的第 2 阶段,而不是第 1 阶段?

  2. 上一个例子的主要问题是什么,我们是如何解决的?

  3. 代码:完成 example2,直到你无法生成证明。

第三次迭代

通过上述电路,我们已经证明了我们知道两个秘密值的乘积。单靠这一点并不是很有用。在现实世界中,有用的是 _数字签名方案_。通过它,你可以向其他人证明你写了特定的消息。我们如何使用 ZKP 来实现这一点?要实现这一点,我们必须首先涵盖一些基本概念。

现在是短暂休息的好时机,去喝一杯你最喜欢的饮料。

数字签名

数字签名已经存在,并且在我们的数字时代无处不在。现代互联网没有它们是无法运作的。通常,这些是使用 公钥密码学 实现的。在公钥密码学中,你有一个私钥和一个公钥。私钥仅供你自己使用,而公钥是公开共享的,代表你的身份。

数字签名方案由以下部分组成:

  • 密钥生成:生成一个私钥和相应的公钥

  • 签名:使用私钥和消息创建签名

  • 签名验证:验证消息是否由相应的公钥签名

虽然具体细节看起来不同,但我们编写的程序和上述密钥生成算法共享一个共同元素:它们都使用 _单向函数_,更具体地说是 _陷门函数_。陷门是容易掉进去但难以爬出来的东西(除非你能找到一把隐藏的梯子) [^30]。

零知识证明编程——用Circom、Groth16构建证明及验证

对于公钥密码学,从私钥构造公钥是容易的,但反过来却非常困难。我们的前一个程序也是如此。如果这两个秘密数字是非常大的质数,那么将该乘积转回原始值是非常困难的。现代公钥密码学通常在底层使用 _椭圆曲线密码学_。

传统上,创建像这些数字签名方案这样的密码协议需要大量的工作,并需要提出一个涉及一些巧妙数学的特定协议。我们不想这样做。相反,我们想使用 ZKP 编写一个程序,以实现相同的结果。

而不是这样:[^31]

零知识证明编程——用Circom、Groth16构建证明及验证

我们只想编写一个程序,生成我们想要的证明,然后验证这个证明。

哈希函数和承诺

我们将使用两个更简单的工具:_哈希函数_ 和 _承诺_,而不是使用椭圆曲线密码学。

哈希函数也是一种单向函数。例如,在命令行中,我们可以这样使用 SHA-256 哈希函数:

    commitment = hash(some_secret)
    signature = hash(some_secret, message)

此时你可能有一些问题。让我们解决一些你脑海中可能存在的问题。

首先,为什么这有效,我们为什么需要 ZKP?当有人验证证明时,他们只能访问承诺、消息和签名。没有直接的方法可以验证承诺是否对应于秘密,而不揭示秘密。在这种情况下,我们只是在生成证明时“揭示”秘密,因此我们的秘密保持安全。

其次,为什么在 ZKP 内部使用这些哈希函数和承诺,而不是公钥密码学?你绝对可以在 ZKP 内部使用公钥密码学,并且这样做是有合理理由的。就约束而言,它的实现成本远高于上述方案。这使得它比上述更慢,更复杂。正如我们将在下一节中看到的,哈希函数的选择非常重要。

最后,为什么在我们已经拥有公钥密码学的情况下还要使用 ZKP?在这个简单的例子中,没有必要使用 ZKP。然而,它作为更有趣的应用的构建块,例如本文开头提到的群签名示例。毕竟,我们想要 _编程密码学_。

这真是太多了!幸运的是,我们已经过了难关。让我们开始编码吧。如果你一开始没有完全理解上述内容,也不用担心。习惯这种推理方式需要一些时间。

回到代码

我们将从 example3 目录开始工作。

要实现数字签名,我们需要做的第一件事是生成我们的密钥。这些对应于公钥密码学中的私钥和公钥。由于密钥对应于一个身份(你,证明者),我们将分别称其为 identity_secretidentity_commitment。它们共同形成一个身份对。

这些将作为电路的输入,与我们要签名的消息一起使用。作为公共输出,我们将拥有签名、承诺和消息。这将允许某人验证签名确实是正确的。

由于我们需要身份对作为电路的输入,因此我们将单独生成这些:just generate_identity

这会产生类似于以下内容:

    include "circomlib/circuits/poseidon.circom";

Poseidon 哈希模板的使用如下:

<span 10px="" 40px="" no-repeat="" height:="" width:="" margin-bottom:="" border-radius:="" code="" component="" hasher="Poseidon(2);
    component main {public [identity_commitment, message]} = SignMessage();

默认情况下,我们电路的所有输入都是私有的。通过这个,我们明确标记 identity_commitmentmessage 为公共。这意味着它们将成为公共输出的一部分。

有了这些信息,你应该有足够的知识来完成 example3.circom 电路。如果你仍然卡住,可以参考 example3-solution.circom 获取完整代码。

像之前一样,我们必须构建电路并运行受信任设置的第 2 阶段:

    {
      "identity_secret": "21879[...]1709",
      "identity_commitment": "48269[...]7915",
      "message": "42"
    }

随意将身份对更改为你自己使用 just generate_identity 生成的身份对。毕竟,你想把身份秘密保留给自己!

你可能会注意到消息只是一个作为字符串引用的数字 ("42")。不幸的是,由于约束在数学上的工作方式(使用线性代数和 _算术电路_),我们只能使用数字而不能使用字符串。电路内部支持的唯一操作是基本的算术操作,如加法和乘法。[^37]

我们现在可以生成和验证一个证明:

    ["48968[...]5499", "48269[...]7915", "42"]

这分别对应于签名、承诺和消息。

让我们看看如果我们不小心,事情可能会出错。 [^38]

首先,如果我们将身份承诺更改为 input.json 中的随机内容,会发生什么?你会注意到我们无法再生成证明。这是因为我们还在电路内部检查身份承诺。保持身份秘密和承诺之间的关系至关重要。

其次,如果我们不将消息包含在输出中,会发生什么?我们确实得到了一个证明,并且它得到了验证。但消息可以是 _任何东西_,因此它实际上并不能证明你发送了特定的消息。类似地,如果我们不将身份承诺包含在公共输出中,会发生什么?这意味着身份承诺可以是任何东西,因此我们实际上不知道 签署了消息。

作为思考练习,想想如果我们省略这两个关键约束中的任何一个会发生什么:

  • identity_commitment === identityHasher.out

  • signature <== signatureHasher.out

恭喜你,现在你知道如何编程加密了![^39]

练习

  1. 数字签名方案的三个组成部分是什么?

  2. 使用像 Poseidon 这样的 “ZK-Friendly hash function” 的目的是什么?

  3. 什么是承诺?我们如何将它们用于数字签名方案?

  4. 为什么我们将身份承诺和消息标记为公共?

  5. 为什么我们需要身份承诺和签名约束?

  6. 代码:完成 example3,直到你生成并验证了一个证明。

下一步

通过上述数字签名方案,以及我们在文章中看到的一些技巧,你拥有了实现文章开头提到的 群签名方案 的所有工具。[^40]

example4 中存在骨架代码。你只需要 5-10 行代码。唯一的新语法是 for 循环,它的工作方式与大多数其他语言相同。[^41]。

这个电路将允许你:

  • 签署一条消息

  • 证明你是三个人之一(身份承诺)

  • 但不透露是哪一个

你可以把它看作一个谜题。关键的见解基本上归结为一个算术表达式。如果可以的话,尝试在纸上解决它。如果你卡住了,可以像之前一样查看解决方案。

最后,如果你想要一些额外的挑战,这里有一些扩展的方法:

  1. 允许组内任意多的人

  2. 实现一个新的电路 reveal,证明你签署了特定的消息

  3. 实现一个新的电路 deny,证明你没有签署特定的消息

使用经典工具创建这样的加密协议将是一项巨大的任务,需要大量的专业知识。[^42] 使用 ZKP,你可以在一个下午变得高效和危险,将这些问题视为编程任务。这只是我们可以做的冰山一角。

练习

  1. 群签名与普通签名有什么不同?它们可以如何使用?

问题

这些问题是可选的,需要更多的努力。

  1. 找出 IsZero() 是如何实现的。

  2. 代码:完成上述群签名方案(见 example4)。

  3. 代码:扩展上述群签名示例:允许更多人并实现 reveal 和/或 deny 电路。

  4. 你将如何设计一个 “ZK 身份” 系统来证明你已满 18 岁?你可能想证明的其他属性是什么?从高层次来看,你将如何实现它,以及你看到的挑战是什么?研究现有解决方案以更好地理解它们是如何实现的。

  5. 对于像以太坊这样的公共区块链,有时会使用 Layer 2 (L2) 来允许更快、更便宜和更多的交易。从高层次来看,你将如何使用 ZKP 设计一个 L2?解释你看到的一些挑战。研究现有解决方案以更好地理解它们是如何实现的。## 结论

在本教程介绍中,我们熟悉了如何从头开始编写和修改基本的零知识证明(ZKPs)。我们设置了编程环境并编写了一个基本电路。然后我们进行了可信设置,创建并验证了证明。我们识别了一些问题并改进了电路,确保测试我们的更改。之后,我们使用哈希函数和承诺实现了一个基本的数字签名方案。

我们还学习了足够的技能和工具,以便能够实现群体签名,这在没有零知识证明的情况下是很难实现的。

我希望你对编写零知识证明所涉及的内容有了更好的心理模型,并对实际中的编辑-运行-调试周期有了更好的理解。这将为你将来可能编写的任何其他零知识证明程序打下良好的基础,无论你最终使用什么技术栈。

致谢

感谢 Hanno Cornelius、Marc Köhlbrugge、Michelle Lai、lenilsonjr 和 Chih-Cheng Liang 阅读草稿并提供反馈。

图片

  • Bourbaki Congress 1938 – 未知,公有领域,通过 Wikimedia[11]

  • Hartmann’s Zebras – J. Huber,CC BY-SA 2.0,通过 Wikimedia[12]

  • Trapdoor Spider – P.S. Foresman,公有领域,通过 [Wikimedia](https://commons.wikimedia.org/wiki/File:Trapdoor_(PSF “Wikimedia”).png)

  • Kingsley Lockbox – P.S. Foresman,公有领域,通过 Wikimedia[13]

参考资料

[1] AI翻译官: https://learnblockchain.cn/people/19584

[2] 翻译小组: https://learnblockchain.cn/people/412

[3] learnblockchain.cn/article…: https://learnblockchain.cn/article/9178

[4] 零知识的友好介绍: https://learnblockchain.cn/article/6184

[5] git 仓库: https://github.com/oskarth/zkintro-tutorial

[6]git 仓库: https://github.com/oskarth/zkintro-tutorial

[7]这里: https://docs.circom.io/getting-started/installation/

[8]zkrepl.dev: https://zkrepl.dev/

[9]官方文档: https://docs.circom.io/circom-language/signals/

[10]友好的零知识证明介绍: https://learnblockchain.cn/article/6184

[11]Wikimedia: https://commons.wikimedia.org/wiki/File:Bourbaki_congress1938.png

[12]Wikimedia: https://commons.wikimedia.org/wiki/File:Hartmann_zebras_hobatereS.jpg

[13]Wikimedia: https://commons.wikimedia.org/wiki/File:Kingsley_lockbox.jpg

[14]AI 翻译官: https://learnblockchain.cn/people/19584

[15]这里: https://github.com/lbc-team/Pioneer/blob/master/translations/9178.md

[16]^2]:  参见 [联邦党人文集(维基百科): https://en.wikipedia.org/wiki/The_Federalist_Papers#Authorship

[17]^3]:  参见 [Bourbaki(维基百科): https://en.wikipedia.org/wiki/Nicolas_Bourbaki#Membership

[18]^8]:  这使得编写约束相当具有挑战性,正如你可以想象的那样。有关 Circom 中约束的更多详细信息,请参见 [https://docs.circom.io/circom-language/constraint-generation/: https://docs.circom.io/circom-language/constraint-generation/

[19]^12]:  线性约束意味着它可以仅通过加法表示为线性组合。这相当于使用常数进行乘法。需要注意的主要是线性约束比非线性约束更简单。有关更多详细信息,请参见 [约束生成: https://docs.circom.io/circom-language/constraint-generation/

[20]算术电路: https://docs.circom.io/background/background/#arithmetic-circuits

[21]^13]:  从数学上讲,我们所做的是确保方程 Az * Bz = Cz 成立,其中 Z=(W,x,1)ABC 是矩阵,W 是见证(私有输入),x 是公共输入/输出。虽然知道这一点很有用,但编写电路时并不需要理解这一点。有关更多详细信息,请参见 [Rank-1 约束系统: https://docs.circom.io/background/background/#rank-1-constraint-system

[22]^15]:  正如在 友好的介绍 文章中提到的那样,2016 年 Zcash 举办的仪式有一个很好的外行播客,你可以在 [这里: https://radiolab.org/podcast/ceremony

[23]^17]:  我们称之为 1-out-of N 信任模型。还有许多其他信任模型;你最熟悉的可能是多数规则,即你信任大多数人做出正确的决定。这基本上就是民主和大多数投票的运作方式。 [↩: #user-content-fnref-17

[24]^22]:  也称为 _密码学难度假设_。请参见 [计算难度假设 (维基百科): https://en.wikipedia.org/wiki/Computational_hardness_assumption#Common_cryptographic_hardness_assumptions

[25]^23]:  有关更多信息,请参见 [https://en.wikipedia.org/wiki/Integer_factorization: https://en.wikipedia.org/wiki/Integer_factorization

[26]^24]:  虽然我们可以添加 _asserts_,但这些实际上不是约束,仅用于清理输入。有关其工作原理,请参见 [https://docs.circom.io/circom-language/code-quality/code-assertion/: https://docs.circom.io/circom-language/code-quality/code-assertion/

[27]https://www.chainsecurity.com/blog/circom-assertions-misconceptions-and-deceptions: https://www.chainsecurity.com/blog/circom-assertions-misconceptions-and-deceptions

[28]^25]:  这份由 0xPARC 提供的资源非常出色,如果你想深入了解编写 (Circom) 电路的艺术: [https://learn.0xparc.org/materials/circom/learning-group-1/circom-1/: https://learn.0xparc.org/materials/circom/learning-group-1/circom-1/

[29]^26]:  由于编写约束的性质,这种情况经常出现。请参见 [https://en.wikipedia.org/wiki/Truth_table: https://en.wikipedia.org/wiki/Truth_table

[30]^27]:  有关 circomlib 的更多信息,请参见 [https://github.com/iden3/circomlib: https://github.com/iden3/circomlib

[31]^28]:  请参见 [https://github.com/iden3/circomlib/blob/master/circuits/comparators.circom: https://github.com/iden3/circomlib/blob/master/circuits/comparators.circom

[32]^29]:  人们通常在项目之间共享这些 ptau 文件以提高安全性。有关详细信息,请参见 [https://github.com/privacy-scaling-explorations/perpetualpowersoftau: https://github.com/privacy-scaling-explorations/perpetualpowersoftau

[33]https://github.com/iden3/snarkjs: https://github.com/iden3/snarkjs

[34]^30]:  这里的梯子代表某种值,使我们能够以相反的“困难”方式进行。另一种思考方式是将其视为一个挂锁。你可以轻松锁定它,但很难解锁,除非你有钥匙。陷门函数也有更正式的定义,请参见 [https://en.wikipedia.org/wiki/Trapdoor_function: https://en.wikipedia.org/wiki/Trapdoor_function

[35]^31]:  来自维基百科的截图。请参见 [ECDSA (维基百科): https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm#Signature_verification_algorithm

[36]^38]:  在现实世界的数字签名方案中,当多个消息交换时,我们可能还希望引入一个加密随机数。这是为了避免重放攻击,即某人可以在稍后时间重用相同的签名。请参见 [https://en.wikipedia.org/wiki/Replay_attack: https://en.wikipedia.org/wiki/Replay_attack

[37]^40]:  在 ZKP 中实现群签名的灵感来自 0xPARC,请参见 [https://0xparc.org/blog/zk-group-sigs: https://0xparc.org/blog/zk-group-sigs

[38]^41]:  请参见 [https://docs.circom.io/circom-language/control-flow/: https://docs.circom.io/circom-language/control-flow/

[39]^42]:  相比之下,实施群签名的论文如 [https://eprint.iacr.org/2015/043.pdf: https://eprint.iacr.org/2015/043.pdf