Is @AQSTR AI quality check down? It’s returning a 503 error: “We couldn't rate your response right now. Please try again in a minute.”
yfaming
yfaming@coinos.io
npub1jz8m...rg8y
- coder: Rust, Python, Racket(learning...)
- Nostr 中文圈 https://following.space/d/musdrpjpdmbr 值得关注的 nostr 中文用户都在这儿!
- 博客 https://yfaming.com/
在我看来,Scheme 最核心的特性有 3 个:S 表达式、宏 macro,和 continuation。
S 表达式,使得对「代码」进行编程成为可能,即 code as data。
宏,使得扩展语言特性成为可能,即语法抽象 syntax abstract。
Scheme 不支持 OOP,但可以自己实现。
Scheme 不支持 Python 的列表推导和 with 资源管理协议,但可以自己实现。
Scheme 不支持 Rust 的模式匹配,但可以自己实现。
Scheme 不支持 Prolog 的逻辑编程,但可以自己实现。
continuation,使得对控制流进行编程成为可能。generator、coroutine、异常,都可以自己实现了。
其他特性,如表达式导向、词法闭包、一等函数、动态类型与 GC 等等,要么并非核心,要么其他语言也支持。
#Scheme
#DeFi实盘 2026-10-18
当前市值 193.44,净值 0.9441。本周 LP 收益 0.61。
BTC price = 81883;SOL price = 103.89。
# 本周概况
上周说,自从 8 月中旬以来的反弹,看来是要告一段落了。果然如此。
BTC 回到 80,000 附近,SOL 回到 100 附近。
净值跌入水下,回本之路再次开启。
# 杂感
据说,人生追求的很多东西,一开始就拥有的,比如快乐,比如回本。
除了钱。


刚刚 BTC 跌破 80,000,这会又 V 回来了。😂
View quoted note →
差点又能买到 80,000 以下的 BTC,100 以下的 SOL 了 😂
今天是 10.11 闪崩一周年!😂
主流币跌幅:BTC -12.97%,ETH -14.76%,SOL -18.69%。


这几年,眼看着 AI 在编程方面突飞猛进,心里真是苦涩,毕竟事关我的吃饭手艺。
最近看到 AI 在数学领域的进展,终于释然了。
如果连智商爆表的数学家们都被 AI 单方面“屠杀”,那我也没啥好挣扎的了。😂😭
#AI
#DeFi实盘 2026-10-11
当前市值 204.13,净值 0.9962。本周 LP 收益 0.55。
BTC price = 83117;SOL price = 109.63。
# 本周概况
LP 收益持续下降,明显感觉到交易活跃度下降了。自从 8 月中旬以来的反弹,看来是要告一段落了。净值也到了回本线附近。
# 杂感
近期两件大事,一是 Drift 被盗后的赔偿进展,二是 Ledger 硬件钱包被植入后门。
## Drift 被盗赔偿
今年 4 月初,Drift 被盗近 3 亿刀,近期开始了赔偿进程。对于每位受损失的用户,其损失按照被盗前的价格,将损失折算为 U。每 1 U 的损失,发行一个 DFX 代币。
Drift (已更名为 Velocity)在链上开了一个 recovery pool。当时被盗后,钱包里还剩下约 300M 资金,已全部投入 pool。并且,每天会将 Velocity 的协议收入,按照一定比例,转入 pool。总之,目前 pool 里只有 300M 左右资金,占被盗总额的 1% 左右。
Velocity 目前在 beta 阶段,没有正式上线。协议收入忽略不计。Drift 宣称,被盗资金中有 9.2M 已被冻结。后续如果打官司拿回来后,也将投入到 pool 里。
Drift 还和 USDT 背后的公司 Tether 达成协议,将根据 Velocity 上线后的业务表现,最多配套提供 127.5M 的资金,而战略合作伙伴也将提供 20M 资金。但这份协议从未公布细节,提供资金的条件是什么,有多少能分配到 recovery pool,都未知。
总之,冻结的资金追加,耗时可能会很久;而 Tether 及合作伙伴提供的资金,更是难以指望,二者只是渺茫的美好愿望。目前 pool 里的 300M,才是受损用户实打实能拿到的钱。这些钱只是黑客还没来得及偷走的钱,本来就是属于用户的。
说起来,被盗事件是 Drift 运营方多签钱包管理不善而造成的。捅这么大娄子,赔偿时 Drift 管理层和基金会,却一毛不拔,可见其奇葩。即使舍不得掏真金白银,从 Drift 发币收入里拿出一部分,或者把还没卖的 Drift 币卖掉一部分,也是一个姿态。但它们啥也没干。
受损用户可以从 recovery pool 赎回,即 burn DFX 并拿回相当于被盗资产的 1%。用户也可以在二级市场卖掉 DFX,由于溢价,卖掉的话可以拿回约被盗资产的 3%。
## Ledger 硬件钱包后门
Ledger 在东南亚的授权经销商 CryptoBilis 售出的 Ledger 硬件钱包,被发现植入了后门,目前被盗近一亿美金。
钱包里面,被植入了一个硬件后门模块,里面包含微型芯片及 LTE/eSIM 模块与天线。当屏幕显示助记词时,这个模块会监听屏幕传输的数据,从而记录下助记词,并远程传输给攻击者。硬件钱包的安全芯片保证私钥无法从芯片里导出,但无法阻止通过物理线路截获屏幕正在显示的内容(毕竟需要在屏幕上展示助记词给用户,以方便备份)。
CryptoBilis 的创始团队跳出来说,2026-03 月 CryptoBilis 就被收购了,并且和收购方签订了保密协议,在 2026-10-19 之前,不得透露相关信息。😂😂😂
这世界,再没一个安全的地方了。😂


#DeFi实盘 2026-10-04
当前市值 224.53,净值 1.0958。本周 LP 收益 0.83。
BTC price = 85113;SOL price = 121.31。
# 本周概况
本周 LP 收益继续保持不错,价格也与上周差不多,净值保持大于 1,持续享受回本的快乐。😂
# 杂感
本周无事,享受假期!


越来越觉得 Scheme 挺有意思。现在,我也能写出令人畏惧的代码了。😂
用宏和 call/cc 实现 while 循环。
是的,Scheme 本身不支持循环,只有递归。但是,有了宏让你自定义语法,有 call/cc 让你任意跳转,手搓一个循环就不成问题了。
这个 while 循环,调用时得带着 `(break continue)` 很是碍眼。这是 syntax-rules 卫生宏的限制(为了你好😂)。
可以改用 syntax-case 来实现这个宏,并去掉碍眼的地方,但我现在还不会 syntax-case。


今晚币 Alpha 突袭发 6 万份空投,22:30 开始,到现在还没领完。积分门槛从 230 降到 165 了。😂
#DeFi实盘 2026-09-27
当前市值 224.24,净值 1.0944。本周 LP 收益 0.81。
BTC price = 84527;SOL price = 121.63。
# 本周概况
本周 LP 收益继续保持不错。如果每周都能达到 0.8~1,仅 LP 收益年就超过 20% 了。
连续两周,SOL 价格涨幅超过 BTC。
今年以来,SOL 价格跌幅略好于 BTC(-3.34% vs -4.59%)。
最惨的时候,SOL 比 BTC 多跌了 16 个百分点。
如果价格再涨一丢丢,今年将会是四年周期里第一次出现熊而不跌的年份了。
本周最大事件是,9 月 25 日凌晨(北京时间),BitGet 被盗 3.875 美元。
当然,又是金将军的手笔。
好在金额不大,在 BitGet 保险资金覆盖范围之内。据说只相当于 BitGet 大部分年收入,过段时间就回血了。相比去年 Bybit 被盗 15 亿美元,算是小 case 了。
交易所是金将军的 ATM 啊。😂
# 杂感
回本了,家人们!
赚不赚钱不重要,回本才是最快乐的!
😂😂😂


#DeFi实盘 2026-09-20
当前市值 199.08,净值 0.9716。本周 LP 收益 0.92。
BTC price = 80524;SOL price = 108.15。
# 本周概况
本周 LP 收益不错,SOL 价格涨幅也难得地超过了 BTC。
本周最大新闻可能是 CLARITY 法案的失败,但对价格也没产生太大影响。
大家是不是期待着四年周期的熊年快快过去,牛心蠢蠢欲动了?😂
# 杂感
净值也快回到 1 了,盈亏平衡线大概是 SOL 价格为 110 左右。
开张以来,LP 收益大约是 26,约 12%,年化 20% 看来有望。
按照现在的 SOL 分配计划,大概可支撑 SOL 涨到 350。
(DeFi AMM 本质上与市场做对手方,随着价格上涨,会把 SOL 逐渐卖光。)


Validating Lightning Signer (VLS)
近期在 AI 加持下的攻击事件越来越多,加密行业越来越不安全。闪电网络的 Validating Lightning Signer (VLS) 技术,可以缓解闪电网络节点被攻击的风险。
普通的闪电网络节点,包含一个热钱包,当节点被攻破,就可以盗取里面的 BTC。VLS 则将钱包的「交易签名」功能隔离出来,即使节点被攻击,也无法盗取资金。
闪电网络的节点在运行过程,凡涉及资金状态变更,都会生成一笔交易并需要签名。交易只在通道的两个 peer 之间共享,不会发送到链上。只有当关闭通道时,才需要发到链上。
使用 VLS 时,节点向 VLS 发送签名请求,VLS 则验证签名请求是否合法,并拒绝不合法的请求。我们可以给 VLS 设置各种策略,只有符合策略的请求才能得到签名。打个比方,如果策略只允许将钱包里的 BTC 发送给指定的地址,这样即使节点被攻破,攻击方也无法拿到 BTC。
因此,VLS 的安全性就至关重要了。VLS 可以部署到 HSM (Hardware Security Module) 硬件,或者 Enclave 中,通过专用硬件解决问题。云厂商如 AWS 等都提供了 Enclave 产品。
目前 VLS 支持 Blockstream 家的 Core Lightning 节点,以及 LDK。Blockstream 的 Greenlight 闪电网络节点服务,已经用上了 VLS。
以前看的 ACINQ 的博客文章,Securing a $100M Lightning node,也深入讨论了如何保证路由节点的安全性。它的最终方案落到了 Enclave + Leadger,那时可能还没有 VLS。这家公司的产品是自托管钱包 Phoenix,它还运营着世界上最大的闪电网络节点 ACINQ,它的容量(270 BTC)和通道数量(955),都是第一。
Zeus 钱包也打上了 VLS 的主意。它出了一个报告 Lightning Economics: The Bridge Between Bitcoin's Two Identities,借助 VLS 开发了 self-custody LN routing service,自托管的闪电网络路由服务。这个服务是准备卖给比特币储备公司的,可以使比特币储备公司在囤币待涨之外,额外赚取约 5% 的币本位收入。
简单地说,用户存入 BTC,交给 Zeus 运营闪电网络路由节点,赚路由费收入。但通过 VLS 确保 Zeus 无法偷用户的 BTC,从而实现 BTC owner 最看重的 self-custody。报告数据以 Zeus 运营的节点 Olympus 为例,容量 10 BTC,路由费率只有 8.62bp,但资本周转率达到 7.03,从而将年毛收益提升到 5.58%,扣除运营成本后,年净收益约 4.65%。通道再平衡成本占到运营成本的 95% 左右。
如果运营路由节点能赚 5%,我觉得是很不错了。之前看到的各种信息,都说搞路由节点很难赚钱。我估计少于 1 BTC 的节点,应该是没什么前途的。


VLS
Scale Lightning liquidity without compromising security
Move Lightning keys off-node and enforce policy at a dedicated signer, so you can raise channel limits without raising risk.
#DeFi实盘 2026-09-13
当前市值 181.65,净值 0.8865。本周 LP 收益 0.57。
BTC price = 76615;SOL price = 99.57。
# 本周概况
本周价格略降,LP 收益和上周差不多,算是正常。
本周事件:Liquid Network 被攻击,损失约 4000 BTC。
攻击者在交易里留了一句话:we are whitehats. contact us on chain。几天后黑客归还了 3400 BTC。再然后,双方突然谈崩了。
开发 Liquid Network 的公司 Blockstream 突然在 X 上发推,指责对方是贼。如果不归还剩下的 600 BTC,将采取一切行动。
Blockstream 是比特币行业的大玩家,包括闪电网络节点 Core Lightning (CLN),硬件钱包 Jade,云端闪电网络节点服务 Greenlight 等等,都是它家的产品。
5 月份停止刷币安 Alpha,最近又开始了。交易损耗还算可以接受,下周就能领空投了,希望多少赚两毛钱吧。😂
# 杂感
AI 的极速进步,给 crypto 行业带来了巨大风险。接下来的几年,任何 crypto 项目都可能一朝暴毙。
惨啊。


看完了 Crafting Interpreters 第 29 章,Superclasses。
这一章支持了继承。
声明一个类时,如果它继承了另一个类,则生成字节码时在 `OP_CLASS` 后面增加 `OP_INHERIT` 指令。
运行时,`OP_INHERIT` 为将 superclass 的方法全部添加了 subclass 的方法列表里面。这样使得方法的 resolve 效率更高。
Lox 中我们可以通过 `super.method()` 直接调用 superclass 的方法,也可通过 `super.method` 获取 superclass 的方法作为值。
但是 super 与 this 的 resolve 规则非常不同。不论 this 出现在 superclass 还是 subclass 里,this 总是指向当前实例。也就是说,this 指向的实例是运行时决定的。而 super 指向的类是编译时决定的,它指向的是当前正在被编译的类的 superclass。以作用域类比的话,this 更像动态作用域,而 super 更偏静态作用域。
在类声明的作用域里,compiler 先定义一个作用域,然后创建一个名为 `super` 的局部变量。在类的方法里面使用 super 时,将会通过 closure 的 upvalue 机制捕获。
在编译使用了 super 的表达式时,我们先生成代码依次将 this 和 super 的值入栈,然后生成 `OP_GET_SUPER <method>` 指令。执行 `OP_GET_SUPER` 时,则使用这几个值,调用 `bindMethod` 生成 `ObjBoundMethod` 对象。
另外,由于 `super.method()` 是最常用的使用方式,我们可以使用超级指令 `OP_SUPER_INVOKE` 进行优化。
胜利在望,只剩最后一章 Optimization 了。
View quoted note →
今天看完了 Crafting Interpreters 第 28 章,Methods and Initializers。
这一章实现了类的方法。
## 方法声明
我们为 `ObjClass` 添加字段 `Table methods` 用于保存类声明的方法。table 的 key 是方法名,value 是 `ObjClosure`。
具体地,先通过 `OP_CLASS` 指令声明类,它是空的,不包括任何方法。然后把对应的 `ObjClass` 放到栈上。接下来,对于每个方法,编译得到 `ObjClosure` 并放到栈上。并通过 `OP_METHOD` 指令定义为方法。执行 `OP_METHOD` 时,会将 `ObjClosure` 放到类的 `methods` table 里。在类声明结束时,还需要添加一条 `OP_POP` 指令,将类对应的 `ObjClass` 从栈上清理掉。
## 方法和访问和调用
在 Lox 中,我们可以通过 `ins.method()` 进行方法调用,也可以通过 `var f = ins.method` 将方法赋值给一个变量。这里的关键是,`ins.method` 的值不仅仅是一个函数(或 closure),它还需要「记得」它绑定的实例是哪一个。
我们通过 `ObjBoundMethod` 来表示一个绑定了实例的方法。它有一个 receiver 字段表示绑定的实例,还有一个 method 字段表示对应的方法。
我们用 `OP_GET_PROPERTY` 指令访问实例的字段和方法。执行时,优先按名字查找字段,没有的话则查找方法。找到方法后,生成 `ObjBoundMethod` 对象放到栈上。
然后,我们通过 `OP_CALL` 指令来调用 ObjBoundMethod。至此,我们可以当作函数调用的对象包括 `ObjBoundMethod`、`ObjClass`、`ObjClosure` 和 `ObjNative`。
## `this`
方法内部需要通过 `this` 访问当前实例。clox 支持 `this` 的方式非常巧妙,甚至有点 hack。
编译时,将 `this` 当作方法里定义的局部变量。开始编译方法时,将 `this` 作为第一个局部变量,放到方法的局部变量数组里。使用 `this` 时,则视为普通的变量进行 resolve。
运行时,由于 `this` 是第一个局部变量,因此需要把它放到方法调用的 CallFrame 的第一个 slot 里面。形如 `instance.method()` 进行方法调用时,被调用的是上面定义的 `ObjBoundMethod`。执行 `OP_CALL` 时,如果被调用的是 `ObjBoundMethod`,则将 `ObjBoundMethod.receiver` 即当前实例,放到参数列表中第一个参数的下面,并使得它的此次调用对应的新的 CallFrame 的第一个 slot,与 `this` 对应。
这个 slot 之前保存的是被调用的函数/方法对象。好在被覆盖也没什么后果。
在进行函数/方法调用时,CallFrame 及操作数栈是相互配合的细节,非常重要。我发现,读到这一节,才意识到 clox 在函数调用时,操作数栈的细节处理问题。
调用开始时,栈的内容为:
```
<fn> | arg1 | arg2 ... | argN
```
`CallFrame.slots` 指向 `<fn>`。操作数栈的 top 指向 `argN` 的后面一个位置。
注意这里,clox 把第 0 个位置放上了 `<fn>` 而不是 Lox 代码里定义的局部变量。事实上在编译函数时,clox 在用户代码之前,先手动往局部变量数组里添加了一个元素来占位。
如果是方法,则将 `this` 定义为第一个局部变量,即 `arg0`,并把对应实例放到 `<fn>` 位置。即形成:
```
<instance> | arg1 | arg2 ... | argN
```
当函数调用结束后,返回值放到 `<fn>`/`<instance>` 的位置。操作数栈的 top 则指向下一个位置。
## `init`
类的初始化方法 `init` 需要特殊处理。
创建实例时,我们是把类当作函数调用的。在这段逻辑中,我们还要检查类是否定义了 `init` 方法,如果定义了,则继续调用 `init` 以完成初始化。进一步,我们要限制 `init` 的返回值,避免返回其他东西,保证调用完成后,留在栈顶的是类的实例。
优化方法调用的性能
目前方法调用需要两条指令,比较慢。第一条是用 `OP_GET_PROPERTY` 访问方法,第二步是 `OP_CALL` 发起调用。但方法调用是高频操作,我们可以在编译时将它识别出来,并为它生成一条新的指令,专用于方法调用,并提高性能。
虚拟机经常会连续执行相同的字节码指令序列。一种经典的优化技术是定义一条新的指令,称为超级指令,它将这些指令融合为一条与整个序列行为相同的指令。这样可以减少 decode 与 dispatch 开销。
在编译时,当我们遇到 `.` 时,多进行一步检查,如果发现下一个 token 为 `(` 即可确定为方法调用,于是我们生成 `OP_INVOKE` 指令。而不是像之前那样,生成 `OP_GET_PROPERTY` 和 `OP_CALL` 两条指令。
`OP_INVOKE` 用一条指令完成 `OP_GET_PROPERTY` 和 `OP_CALL` 两条指令的工作,因此可以提高性能。
这里还有更重要的原因,之前的 `OP_GET_PROPERTY` + `OP_CALL` 方案中,执行 `OP_GET_PROPERTY` 指令时,需要为 `ObjBoundMethod` 对象分配内存,而 `OP_INVOKE` 方案是不需要进行内存分配的。
View quoted note →
最新消息,谈崩了。。。Blockstream 要求归还剩下的 600 BTC,否则将采取一切行动。😂
Blockstream 这样做不地道啊,对方归还了大部分资金,你突然反悔还发出威胁,以后白帽子谁还跟你合作?
归还多少比例都可以谈判,但完全撕破脸就有点蠢了。作为弱鸡被动防守方,你敢 100% 保证未来一个安全漏洞都不会被发现?
如果黑客大佬展示神迹,把 Liquid Network 再攻破一遍,那就封神了。😎
如果这事没能圆满解决,对于 Blockstream 家的产品就要小心避开,再出事没人救了,比如闪电网络节点 Core Lightning (CLN),硬件钱包 Jade,云端闪电网络节点服务 Greenlight 等等。
有人做了个网站,整理了双方在链上的对话。
View quoted note →
OP_RETURN Messenger
OP_RETURN Messenger — the Liquid saga, live
3,998 BTC, a consensus bug, and a negotiation happening one OP_RETURN at a time.