(本文阅读时间:15 分钟)
欢迎阅读“科研上新”栏目!这里汇聚了微软亚洲研究院最新的创新成果与科研动态,助你快速捕捉前沿技术脉搏,保持对 AI 领域发展的敏锐嗅觉。
第 20 届 USENIX 操作系统设计与实现研讨会(OSDI)于 7 月 13 日至 15 日举行。本期“科研上新”将分享微软亚洲研究院入选的两篇论文,分别聚焦区块链共识协议的排序公平性与操作系统内核性能常量的运行时调优,从底层系统核心挑战出发,在系统设计的不同层面提出新的解决思路。
机会平等:有序共识的正确性条件
Xkernel:原则性的操作系统内核可调性
机会平等:有序共识的正确性条件

论文链接:
https://www.microsoft.com/en-us/research/publication/equal-opportunity-a-correctness-condition-for-ordered-consensus/
在区块链应用中,状态机复制协议的排序公平性长期面临隐性挑战。传统共识规范仅要求所有正确副本按相同顺序处理请求,未约束具体排序结果。然而在实际金融场景中,排序直接关联收益分配。即便不存在拜占庭节点,网络延迟差异、物理距离优势等无关特征仍会导致系统性偏差。例如,来自欧洲的清算请求因靠近更多节点,被优先上链的概率显著高于澳大利亚的同质请求,造成约十万美元的预期收益差距。
在三笔同时发起的交易中,攻击者可通过私域中继操控排序实现“三明治攻击”,仅在以太坊上就能造成超 1.74 亿美元的损失。现有公平排序方案要么依赖领导者轮换却无法消除地理偏差,要么严格遵循先到先服务却放大了网络优势带来的不公,均未能从根源区分影响排序的相关特征与无关特征。
为破解这一困境,研究员引入社会科学中的“机会平等”理念,将调用时间、交易手续费等定义为排序相关的合法特征,将地理位置、网络带宽等归为无关特征,据此提出了ε-排序平等与Δ-排序线性化两个可量化属性。前者要求具有相同相关特征的请求,其所有可能排序的概率差不超过ε;后者确保调用时间相差超过Δ的请求,按真实发起顺序上链。
为实现这两个属性的平衡,研究员设计了秘密随机预言机组件,为系统提供容错且无偏的随机源。该组件支持基于可信执行环境和阈值可验证随机函数两种实现方案,可在共识达成前隐藏随机数,避免节点利用随机信息操纵排序。在此基础上,研究员对现有有序共识协议 Pompé进行了改进:在命令的分配时间戳基础上叠加均匀采样的随机噪声,形成 Bercow 协议。该协议通过调节噪声强度,在公平性与时效性之间实现可控权衡。
理论分析证明,在部分同步模型下,当噪声强度是网络延迟上限的 5 倍时,ε可控制在 0.1 以内,符合美国平权法案中“五分之四规则”的公平阈值。相关实验基于模拟以太坊全球节点分布的测试环境开展。结果显示,现有基线协议中华盛顿与伦敦同时发起的请求排序概率差达 0.52,而 Bercow 将同一对请求的偏差进一步压缩至 0.007,所有城市对的最差地理偏差均收敛到 0.087 以内。此外,针对三明治攻击,随机噪声也大幅降低了攻击者的期望收益。
性能层面,Bercow 与基线协议吞吐量持平,49 个节点部署下中位数共识延迟仅增加 14%。秘密随机预言机的可信执行环境实现仅需 3 微秒即可生成随机数;阈值可验证随机函数方案虽延迟略高但无需依赖硬件信任假设,可适配不同去中心化需求。

图 1:Bercow 模型中ε排序等价性与Δ排序线性化之间的权衡关系。左图展示了华盛顿 - 东京两个客户的数据结果;右图展示了伦敦 - 慕尼黑两个客户的数据结果。
这项工作突破了传统共识排序公平的认知边界,将社会选择理论中的 impartiality(无偏性)与 consistency(一致性)公理系统引入分布式系统设计。该理论表明,评分制是兼顾无偏性与一致性的唯一可行机制,也是实现机会平等的合理路径。Bercow 以调用时间作为排序评分,并使用一个秘密随机预言机来决定平局时的先后顺序。这一权衡框架为区块链治理提供了可量化的配置依据,既适用于联盟链的合规清算场景,也为公链抵御 MEV 攻击提供了新的技术范式。未来,该框架还可进一步拓展至多相关特征加权排序、动态噪声调节等方向,持续优化公平性与效率的平衡。
Xkernel:原则性的操作系统内核可调性

论文链接:
https://www.microsoft.com/en-us/research/publication/xkernel-rethinking-performance-tunability-of-operating-system-kernels/
代码链接:
https://github.com/xkernel-org/Xkernel
如今的操作系统将大量性能决策固化为编译期常量,如宏、字面量以及各种魔术数字(magic number)。这些参数一旦编译完成便无法在线修改,而其最优取值却高度依赖应用负载(workload)行为和底层硬件条件。研究员发现,仅仅调优这些常量,性能最高可提升 50 倍。换言之,内核中蕴藏着大量尚未被释放的性能潜力。而现有系统缺乏一套原则性机制,能够在运行时调整这类常量,更无法让同一台机器上的不同 workload 并发使用不同的取值。
为此,研究员提出了 Xkernel。作为首个支持在运行中的 Linux 内核里动态修改“固定”性能决策的系统,Xkernel 无需重新编译内核或重启系统,即可在线完成性能调优。研究员认为,内核可调性应具备三个关键特征:
- 可编程:用户可以编写策略,针对不同 workload 和硬件配置选择不同的取值
- 安全:每次更新都有作用域限定并经过验证
- 在线且快速:新的调优策略可在毫秒级部署到运行中的内核
论文给出了一个案例:块层常量 BLK_MAX_REQUEST_COUNT 用于控制 I/O 请求在下发前的攒批数量。对于 HDD,更大的攒批能创造更多顺序合并(sequential merge)的机会,吞吐显著提升;而对于 NVMe SSD,由于设备本身速度足够快,攒批反而会引入额外延迟,此时将该参数设置为 1 往往能获得更低延迟和更高效率。当一台机器同时连接 SSD 和 HDD,并运行不同 workload 时,最佳参数配置需同时考虑具体负载特征和硬件环境。而这个最优值在部署前往往无法确定,它取决于运行时的信息动态(runtime information)。
借助 Xkernel,这一过程将变得十分简单。在任意 Ubuntu 系统上,加载 Xkernel 后,即使是一个在编译期写死的性能常量,也能被动态编程控制。然后,再加载一个 eBPF 程序就能完成在线重调。
图 2:RocksDB 展示效果。BLK_MAX_REQUEST_COUNT 在运行中的内核里被在线从 32 调成 1,vanilla 与 Xkernel 调优后的 db_bench(multireadrandom,NVMe)并排对比:吞吐提升 1.2 倍,P50 延迟降低 1.37 倍,P75 降低 1.41 倍。
Xkernel 背后的机制是 Scoped Indirect Execution(SIE)。SIE 的核心洞察在于:虽然常量被编译器“烤进”了二进制代码,比如#define V5 经过编译优化后以 V*2 的形式融入某条指令,但它最终会以某种形式进入程序运行时状态,如寄存器或内存。只要能够在这个关键位置把值替换掉,就等价于换掉了常量本身。
具体做法是:通过二进制 diff 与符号执行,推导出常量参与的符号表达式(如 eax ← eax * V * 2),据此确定两个作用域——Critical Span(值在哪里被替换)和 Safe Span(何时替换是安全的)。当用户调用 x_set(V′) 时,SIE 依据表达式自动合成一段“反向”的间接执行代码,把旧值还原再按 V′重算,之后挂载到 Critical Span 边缘,但初始为 OFF。等线程退出 Safe Span,并不再有旧值残留的副作用后,开关才会翻转为 ON。此后的每次执行,效果就如同 V′当初就被编译进去一样。
图 3:SIE 工作机制。从#define V5 编译进二进制,到符号执行推导表达式、圈定 Critical Span 与 Safe Span,再到 x_set(V′) 合成间接执行代码并在安全点生效,最终实现同一内核 per-PID / per-device 取不同值(HDD→128,NVMe→1)。
当调优接口是可编程、有作用域、经过验证、毫秒级生效的,那它的价值便不再局限于人工操作,而可以成为 AI agent 安全操作的接口。Agent 可以在线观测 workload(Xkernel 兼容 eBPF,可与 eBPF 观测体系结合)、在线生成并部署调优代码,为每个 workload 和每套硬件持续搜索特化的最优配置,安全机制则确保整个过程不会破坏系统的正确性和稳定性。
更进一步,这套方法并不限于内核。它可以泛化到数据库等用户态(user space)的系统软件,系统性地增强其可调性与可特化性。未来,代码生成不再只是运行在系统之外的辅助工具,而有机会成为系统自身的一部分。

