惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The Register - Security
The Register - Security
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
MyScale Blog
MyScale Blog
V
Visual Studio Blog
云风的 BLOG
云风的 BLOG
aimingoo的专栏
aimingoo的专栏
C
Check Point Blog
J
Java Code Geeks
大猫的无限游戏
大猫的无限游戏
L
LangChain Blog
Vercel News
Vercel News
阮一峰的网络日志
阮一峰的网络日志
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
S
Security @ Cisco Blogs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
人人都是产品经理
人人都是产品经理
H
Hacker News: Front Page
L
Lohrmann on Cybersecurity
T
Troy Hunt's Blog
T
Threat Research - Cisco Blogs
A
About on SuperTechFans
T
Threatpost
AWS News Blog
AWS News Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
T
Tor Project blog
Google Online Security Blog
Google Online Security Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Tenable Blog
W
WeLiveSecurity
博客园 - 叶小钗
K
Kaspersky official blog
Y
Y Combinator Blog
T
The Blog of Author Tim Ferriss
Hugging Face - Blog
Hugging Face - Blog
M
MIT News - Artificial intelligence
Hacker News - Newest:
Hacker News - Newest: "LLM"
Engineering at Meta
Engineering at Meta
有赞技术团队
有赞技术团队
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
S
Secure Thoughts
小众软件
小众软件
D
Docker
爱范儿
爱范儿
C
Cyber Attacks, Cyber Crime and Cyber Security
N
News and Events Feed by Topic
S
Schneier on Security
博客园 - 三生石上(FineUI控件)
D
DataBreaches.Net

smallyu的博客

为什么买的加密货币一定要去中心化 RISC-V 虚拟机无法代替 EVM 虚拟机 Polkadot 的 Existential Deposit 机制错在哪里 利息,套利,交易策略,金融市场 LayerZero 从来不挑战比特币的地位 默认参数引起的以太坊节点运行错误 硬件钱包与资产安全 预测市场比币圈更赌场 为什么去中心化的跨链桥不可能实现 我对于 AI 时代的答案 不要投资任何隐私币 区块链技术世界的三大真理 以太坊 AA 钱包的致命问题是什么 基于 AI 语义执行的 MCP 区块链的设计 一个集成 Geth 和 CometBFT 的兼容层 我的加密货币定投策略(二) DeFi 基础: 理解 AMM 定价机制 Go 语言 GMP 调度器的原理是什么 Web3 项目分析计划 对 Psyche Network 项目的分析 continuation 教程: 理解 CPS 如何开发一个比特币符文(Runes)协议 比特币脚本开发教程 我从王垠的计算机科学视频班学到了什么 区块链技术面试题(2025年版) Rust 语言容易让新手困惑的一个“过度优化” Solana 智能合约开发教程 (1) 尝试开发一个最小 EVM 虚拟机 基于 ZK 的链上身份系统设计 一个 Web3 打赏系统的设计 鼓吹 Cursor 的人技术能力都差 关于 Code Review 的礼节 假如启动一个新的以太坊 PoS 网络 发行加密货币的最好方式 所有 BFT 共识的区块链都是中心化的 对 2025 年区块链行业的预测 Restaking 项目的经济难题 如何看懂任意区块链项目的技术架构 为什么不要做以太坊的二次开发 为什么不要做智能合约开发和 DeFi 开发 我的加密货币定投策略(一) PoS 类型的区块链如何处理分叉 Ethereum Casper 为什么需要 EIP-7251 区块链中的 PBFT 不需要第二次投票 开发者的思维方式 发币的核心要点 炒币投资的小 tips 为什么说 PoW 比 PoS 更加去中心化 牛市对普通人来说意味着什么 如何健康地远程工作 为什么比特币不用概率加密函数 程序员的 “服从权威” 心理 区块链技术面试题 如何区分公有链和联盟链 对 Layer 2 项目创业想法的回复 对区块链共识机制的理解 PDP 文件证明的局限性 不要小瞧 ChatGPT 为什么炒币不是一个好主意 一种在区块链上生成随机数的机制 为什么以太坊的私钥计算不可逆 关于以太坊的私钥碰撞 “猜均值的2/3” dApp 游戏设计 Proof of Storage/Space/Replication 的区别 Proofs of Retrievability 文件证明的含义 对 S-PDP 文件证明的示例和解释 我的加密货币交易机器人 对区块链行业的见闻 随机确认块的共识机制 VRF + BFT 共识引起交易失败的问题 为什么要重视编程思想 对 Web 3.0 的理解 GitBook 好用吗? 一种区块链节点存储扩容的方式 一种基于“自我中心主义”的共识机制 链表常见算法题及解析 基于 Multi-Linked List 的区块链设想 理解哈希函数与序列化 联盟链比公有链差在哪儿 在 Dijkstra 算法中保存路径 为什么数字货币使用区块链是政治问题 区块链:下一代数字身份认证体系的基石 网页技术能实现 3D 建模吗? 给区块链一个定义 从 Erlang 开始了解 Actor 模型 一种侧边导航栏的交互方式 Rust 的 ownership 是什么? Haskell 中的 Monad 是什么? 浅析 Libra 背后的区块链技术 对区块链的理性认识 Rust 基础语法概述 基于 Java 的爬虫框架 WebCollector Kotlin:简化版的 Scala JavaScript 有关联数组吗? 主流编程语言的异常处理机制 Go 语言基本语法 Scala 语法基础 用 Scala 改写 Java 浅度实践 Python 获取海贼王更新信息 HTML5 音乐可视化
Pebbling Game 鹅卵石游戏
2023-05-18 · via smallyu的博客

2023-05-18

这是一个在线的网页游戏:Pebbling Game。可以看这个嵌入进来的网页:

为了直观展示 Pebbling Game 的游戏规则,经过几十次调整,GPT-4 完成了这个在线的游戏页面。

游戏的规则是:

  1. 点击节点的圆圈,可以在节点中放入鹅卵石
  2. 只有指向当前节点的所有节点,都已经放置了鹅卵石,当前节点才能够放置鹅卵石
  3. 游戏目的是在节点 0 放置鹅卵石
  4. 任何时间都能够从任意节点取走鹅卵石

如果直接点击节点 0,可以看到两个红色闪烁圆圈的提醒,意思是节点 1 和 2 都还没有放入鹅卵石,所以节点 0 不能放入鹅卵石。

节点 7 没有来源节点,所以可以直接放入鹅卵石。点击节点 7,能看到节点内出现了黑色的实心圆。此时如果想把鹅卵石放入节点 3,会提示因为节点 6 还空着,放入失败。节点 3 的来源节点是 6 和 7.

那么在这样的游戏规则下,问:最少需要多少颗鹅卵石?

如果鹅卵石足够多,这个图中一共有 10 个节点,手里有 10 个鹅卵石,就不需要取走鹅卵石的操作,直接按照顺序把节点填满就行。

如果鹅卵石有限,寻求鹅卵石数量最少的解法,这个图应该至少需要 5 个鹅卵石。

鹅卵石游戏的特点就是,总会存在一个最小值,如果鹅卵石的数量少于这个值,游戏将不能完成,因为最终的节点依赖于下层节点,而下层节点依次依赖于更下层的节点。如果中间节点的鹅卵石被取走,还需要从最下层开始重新放置。

鹅卵石游戏对于 Hard-to-pebble graphs 的数据结构具有启发意义,理解了游戏的规则,就理解了区块链如何证明磁盘空间的大小。

空间证明

Hard-to-pebble graphs 是一种结合了 Merkle 树的 DAG,特点就是需要一定数量的储存空间才能够完成最顶点的计算。就像是鹅卵石不够就无法完成游戏,储存空间不够就无法完成挑战。

由于图的多种多样,需要鹅卵石的数量没有通用的最优解,只能是针对某一种类型的图,去计算空间复杂度。

区块链场景的需求是既要占用空间大,又要验证速度快。Stack expender graph 的图结构在 Proof of Space 中使用比较广泛。在验证阶段,只需要按照 Merkle 树的特点,验证图中的某些节点,就可以确认图的完整性了,同时也能根据图的深度,推算出占用了多大的磁盘空间。

如果既要验证空间大小,又要验证空间占用的持续性,就在空间证明的基础上加上对时间的证明,比如 Chia 就用了 Delay Verifiable Function 的方式,先验一遍空间证明,等一段时间后,用 VDF 验证确实经过了足够多的时间,然后再验一遍空间证明,就达到了 Proof of Space-Time 的效果。