
已确定 Beinecke MS 408 是一部真正的15世纪早期抄本:犊皮纸经放射性碳测年为1404–1438年,铁胆墨水,时代相符的颜料,五位抄写者的笔迹,来源可追溯到约1600年的布拉格(第09节)。排除了现代伪造。
已排除 它不是十一种欧洲语言中任何一种在普通分词下的明文、一对一替换、字母换位、辅音音素文字形式或填充虚码的形式(第03、04和05节)。条件字符熵在原始 EVA 中至少比自然语言下限低1.0比特,在三种独立的字形切分下至少低0.4比特。
仍成立 一种冗长或槽位模板编码,即一个明文单位变成一个固定的两字形或三字形组;与之相对的是通过复制加修改生成、保留槽位结构的无意义文本(第06和08节)。每一项把伏尼契文与语言区分开的统计量,两类中都各有成员能复现。判断*:大致对半,约45:50,其余归于一种未加密的冷僻语言。
01 问题与方法
这不是一次解读。问题在于这份文本是无意义的、加密的,还是一种语言,以及在一轮工作中,公开数据能把这个问题推进多远。五次文献梳理,每个假说或证据类别一次,产出了 SOURCES.md。六项计算检验, a1 to a6,在 ZL 转写本上运行,对照自然语言语料库和实现出来的骗局生成器。另一个智能体以对抗方式重跑了每项检验(v_a1 to v_a6),并修正了其中几项;引用的是修正后的数字。在智能体运行之前写好的两个基线脚本复现了 a1 和 a2 的主要结论:原始 EVA 去掉空格时 h2 为2.32比特,齐普夫斜率−1.04,相邻重复0.81%。
(S) 表示本轮由某个具名脚本计算出的数字;(L) 表示引自文献的数字,附来源和年份。判断带星号。
数据 (S)。ZL3b-n,即 Zandbergen–Landini 的 EVA 转写(voynich.nu,2025年5月13日),只取段落文本:去掉含未读字形或扩展 EVA 字形的词后共34,116个词次,其中 Currier A 约10,750个,B 约22,900个,词型7,236个。用 RF1b-er、IT2a、GC2a(v101)和 CD2a(Currier)做了交叉核对。2,463个不确定的空格当作断点处理;把它们连起来也不会带来实质改变(v_a2)。语言对照是单本 Gutenberg 书籍和一个经 OCR 的16世纪意大利文语料库。熵用插入估计;Miller–Madow 校正对 h2 的改变最多0.007。
02 先摆出最有力的反驳
每一项字符统计都以转写本为前提,并假定 EVA 空格标记的是明文单位。在每个 e、s 和 m 之后重新切分的拉丁文,会朝伏尼契文的槽位固定性移动60%的距离,而切成以元音结尾的音节的拉丁文,在等长条件下比伏尼契文还要固定(S:v_a3)。因此,排除的范围是十一种现代拼写语言中保留词边界的编码。基于规则的重新切分,或一种以音节方式书写、具有固定辅音-元音音节的语言,没有检验。
第二,在 h1、h2 及其比值上同时与原始 EVA 吻合的那个冗长对照,产生的词长是应有的2.3倍,11.52个符号对5.07个,而其词熵仍是拉丁文的(S:v_a1)。这驳倒了以整个拉丁词为单位的字母层冗长密码。这两点都缩小了结论的范围,但都没有推翻它。
03 字符层面
最可靠的结果是条件字符熵 h2,即已知前一个字形时某个字形的不确定度。Bennett(1976年)测得伏尼契文为2.22比特,而欧洲语言为3.01到3.37(L);Lindemann 和 Bowern(2021年)发现它低于一个 Wikipedia 语料库中全部250种语言(L)。这一差距在合并字形以及采用 Currier 和 v101 字母表后依然存在。所有行均为 (S),不含空格,a1、v_a1 和 v_a5。
| 文本 | h1 | h2 | h1−h2 | h2/h1 | 平均词长 |
|---|---|---|---|---|---|
| ZL 原始 EVA,Currier A | 3.832 | 2.353 | 1.479 | 0.614 | 4.98 |
| ZL 原始 EVA,Currier B | 3.859 | 2.182 | 1.677 | 0.565 | 5.12 |
| ZL 原始 EVA,全部 | 3.865 | 2.311 | 1.554 | 0.598 | 5.07 |
| ZL 合并(benches、i/e 组、aiin、qo) | 4.039 | 2.870 | 1.170 | 0.710 | 3.7–3.9 |
| GC v101(68个符号) | 4.144 | 2.893 | 1.25 | 0.698 | 3.7–4.0 |
| Currier CD2a(35个符号) | 3.857 | 2.660 | 1.197 | 0.690 | |
| 拉丁文,《埃涅阿斯纪》 | 4.025 | 3.510 | 0.515 | 0.872 | 5.77 |
| 德文(折叠变音符号后为3.335) | 4.160 | 3.391 | 0.769 | 0.815 | 4.88 |
| 11种语言的范围(折叠后下限3.32) | 3.94–4.52 | 3.32–3.88 | 0.49–0.77 | 0.82–0.88 | 4.2–6.6 |
| 拉丁文,去掉元音 | 3.659 | 3.515 | 0.144 | 0.961 | 3.11 |
| 拉丁文的冗长密码,每个字母2–3个符号,共24个符号 | 3.901 | 2.325 | 1.576 | 0.596 | 11.52 |
| 冗长密码,8个字母保持单符号 | 4.102 | 2.916 | 1.186 | 0.711 | 7.64 |
原始 EVA 给出2.18到2.35比特;ZL 合并、v101 和 Currier 给出2.66到2.89;十一种语言折叠变音符号后的下限是3.32。拉丁文的任何换位都至少给出3.44。去掉元音后拉丁文为3.52,h2/h1 为0.961,方向与辅音音素文字恰好相反。
冗余在哪里。在词内部。词内 h2 原始值为1.92到2.13比特,而语言为2.94到3.41。字形与词内位置之间的互信息在 ZL、Currier 和 v101 中为0.69到0.73比特,而语言为0.17到0.27;21%到31%的字形被锁定在一个词内位置,而字母只有0%到8%(S:a5、v_a5)。
字形对合并。贪心地合并高频字形对,大约要合并40次之后才能弥合 h1−h2 的差距,所以一种由50到60种单位中抽取的两到三字形单位构成的编码与字符统计相容,而普通的字母密码则不相容(S:a5)。贪心合并只检验了一种启发式方法,而非整个冗长密码类别(S:v_a5)。
信息预算。词流承载425,468比特,每个词次12.47比特,在同一模型下是等长拉丁散文的0.82倍(S:a5、v_a5)。
04 词层面
在词层面,伏尼契文看起来像一种语言,正如 Landini(2001年)和 Reddy 与 Knight(2011年)所报告的(L)。表 (S),a2 和 v_a2,34,116个词次。
| 语料 | 齐普夫斜率,第1–1000位 | 单现词占词型的% | Heaps beta | 最高频词占比 |
|---|---|---|---|---|
| 伏尼契全部 | −1.040 | 69.7 | 0.710 | 2.25% |
| 伏尼契 A / B | −0.994 / −1.068 | 72.2 / 68.6 | 0.743 / 0.679 | 4.27% / 2.13% |
| 拉丁文(《埃涅阿斯纪》) | −0.820 | 67.0 | 0.749 | 4.9% |
| 德语 | −1.045 | 65.1 | 0.779 | 3.46% |
| 中文释义 | −1.056 | 55.1 | 0.675 | 4.68% |
词型熵为9.8到10.3比特,而拉丁散文为10.3到10.8,意大利文、法文和德文为9.4到9.8(S:v_a1)。合并计算时最高频词占比偏低,是 A+B 混合造成的(S:v_a2);与单本书样本相比,单现词比率高于所有语言(S:v_a5)。这些都没有区分力:齐普夫分布和单现词都能被人写的胡言乱语(Gaskell 与 Bowern 2022)、生成器(Rugg 与 Taylor 2016;Timm 与 Schinner 2020)以及一种从拉丁文出发的手工密码(Greshko 2025)复现(L)。
词长
合并 EVA 的词长(S:a2、v_a2):
| 语料 | 均值 | 方差 | (长度−1) 的方差/均值 |
|---|---|---|---|
| 伏尼契全部(原始 EVA 5.07 / 3.73 / 0.92) | 4.11 | 2.48 | 0.80 |
| 伏尼契 A | 3.93 | 2.89 | 0.99 |
| 伏尼契 B | 4.20 | 2.27 | 0.71 |
| 仅《埃涅阿斯纪》/ 仅《忏悔录》 | 4.97 / | 1.04 / 1.74 | |
| 意大利文 / 德文 / 英文 / 丹麦文 | 4.53 / 4.99 / 4.23 / 4.67 | 6.52 / 7.04 / 5.41 / 7.40 | 1.85 / 1.77 / 1.67 / 2.02 |
著名的欠离散现象,即“二项式词长”,是 Currier B 的特性。B 的方差均值比为0.71,A 为0.99,单一文本的拉丁诗歌为1.04,所以 Currier A 与拉丁诗歌相符,而 a2 中二项式拟合的对比是搜索上限造成的假象。B 和合并文本则远离现代散文的1.67到2.02。
05 词的语法与重复
Tiltman(1951年)、Stolfi(2000年)和 Zattera(2022年)描述了伏尼契文词内部一种严格的位置语法(L)。这里的测量方法是:在长度匹配的条件下,计算顺序违反单一最佳字形排序的字形对所占比例;打乱零假设为0.49。所有行均为 (S):a3、a2、v_a2。
| 统计量 | 伏尼契 | 拉丁语 | 意大利文 | 德语 | 中文释义 |
|---|---|---|---|---|---|
| 相对最佳字形顺序的字形对顺序违反率,长度匹配(打乱零假设0.49) | 0.160 (v101 0.140) | 0.363 | 0.318 | 0.278 | 0.308 |
| 相邻相同词次,%及观测值:打乱值 | 0.907 / 2.5 | 0.047 / 0.1 | 0.047 / 0.1 | 0.157 / 0.3 | 0.137 / 0.2 |
| 行首首字形效应,Cramér’s V,不含段落首行 | 0.277 | 人为分行的散文0.02–0.03;六步格诗0.148 | |||
伏尼契文比任何被检验的语言都固定1.7到2.3倍。在没有任何假设的情况下从数据推导出的字形顺序——q,然后 p f sh,然后 ch,然后 o t k,然后 e ee,然后 d s a,然后 l r y,然后 g n iin m——就是盲目复原出来的 Stolfi 和 Zandbergen 布局(S:a3)。
行内位置是有影响的,正如 Currier(1976年)所说(L)。行首效应超过六步格诗,比人为分行的散文高出一个数量级;a2 报告的行尾效应,在去掉词尾的 m 和 g 异体字形后降到 V 0.07到0.16(S:v_a2)。
06 自我引用与生成器比拼
Timm(2014、2016年)认为,相似的词在页面上成簇出现,这是复制前面某个词再加以修改的指纹;Timm 与 Schinner(2020年)发表了实现这一过程的算法(L)。检验方法是:对每个词次,在同一页上找到编辑距离为1以内的最近的前一个词次,所有语料都灌入完全相同的页与行骨架。两个 Rugg 式生成器和一个重新实现的自动抄写器用同一代码运行。所有行均为 (S),a4 和 v_a4。
| 语料 | 中位距离 | 10个词次以内 | 页内打乱 | 全局打乱 | 长词次(5+)在10个以内 |
|---|---|---|---|---|---|
| 伏尼契 ZL | 14 | 0.269 | 0.238 | 0.167 | 0.225 |
| 拉丁文(《埃涅阿斯纪》) | 41 | 0.035 | 0.034 | 0.030 | 0.006 |
| 英文(意大利文、德文类似) | 17 | 0.176 | 0.177 | 0.164 | 0.019 |
| 丹麦文(诗歌) | 15 | 0.196 | 0.172 | 0.138 | 0.035 |
| 自动抄写器(Timm–Schinner 的重新实现) | 13 | 0.329 | 0.275 | 0.079 | 0.257 |
| Rugg 漏格板 | 36 | 0.067 | 0.249 | 0.066 | 0.033 |
| Rugg 排序表 | 34 | 0.329 | 0.162 | 0.112 | 0.341 |
| 在伏尼契文上训练的三阶字符马尔可夫模型 | 19 | 0.194 | 0.194 | 0.194 | 0.119 |
顺序超额,即真实值减去页内打乱值,衡量的是复制顺序:伏尼契 +0.031,丹麦诗歌 +0.024,自动抄写器 +0.054,散文约为零。页面词汇超额,即真实值减去全局打乱值:伏尼契 +0.102,各语言最多 +0.058,自动抄写器 +0.250。对于五个或更多字形的词次,各语言基线降到0.035或以下,而伏尼契文保持在0.225,但一个什么都不复制的三阶字符马尔可夫模型也能达到0.119:长词次密度约有一半来自词内结构,而非复制(S:v_a4)。
比拼
| 文本 | 词型 | h2 原始 | h2 合并 | 齐普夫斜率 | 单现词 % | 相邻重复 | 字形对违反率 |
|---|---|---|---|---|---|---|---|
| 伏尼契 ZL | 7,236 | 2.311 | 2.646 | −1.040 | 69.7 | 0.0082 | 0.160 |
| 自动抄写器,两个种子 | 11,660 / 11,330 | 2.709 / 2.723 | 3.274 / 3.005 | −0.825 / −0.859 | 72.2 / 71.1 | 0.0013 / 0.0018 | 自由编辑 0.41–0.46 |
| Rugg 漏格板 / 排序表 | 3,747 / 1,757 | 2.798 / 2.629 | 3.176 / 2.912 | −0.429 / −0.622 | 5.7 / 13.9 | 0.0003 / 0.0893 | 拟合表 0.122 |
没有一个生成器能在每一栏上都吻合。自动抄写器按词次计只产生37%的真实伏尼契词型,以 qo 开头的词只有2%(实际为15%),h2 高出0.4到0.6比特;它过度产生了局部性和页面词汇,而手稿自身的顺序超额只有丹麦诗歌那么大。它是一个有文档记录的偏差的重新实现,不是 Timm 的参考程序。漏格板在齐普夫和单现词上直接失败。唯一能复现槽位固定性的那张表,其各栏是从伏尼契文中读出来的:只能证明充分性(S:v_a3)。
07 Currier A 与 B
Currier(1976年)在手稿中发现了两种统计意义上的语言(L)。区分它们的是(S:a6、v_a6):
| 统计量 | A | B |
|---|---|---|
| 以 -edy 结尾 / 含 ed 的词次 | 0.20% / 0.29% | 17.34% / 20.84% |
| 含 cho / 以 qo- 开头 / 以 -ol 结尾 | 16.1 / 10.0 / 14.5% | 2.7 / 17.7 / 7.1% |
| ch 之后的字形:e / o | 24.5 / 46.1% | 60.1 / 10.1% |
| 每千词次中的 daiin | 42.5 | 13.0 |
对197张做无监督聚类,以95.4%到99.5%的准确率复原了 Currier 的标签。单一的 -edy 阈值在留一法检验下以99.5%的准确率把两者分开:A 是一个尖峰,114张中有112张低于2%;B 是一个从3%到42%的连续体;IT2a 中也是如此。Parisel 2026年的预印本独立得出了同样的单开关描述(L)。
笔迹决定语言。采用 IVTFF 头信息中 Davis(2020年)划分的五种笔迹,H(语言 | 笔迹) 为0.09比特,仅凭笔迹就能预测98.2%的行;唯一混合的单元是星辰部分中的第3种笔迹。决定语言的是抄写者,而不是主题。
词汇共享,经过校准。规模匹配的 A 对 B 给出 Jaccard 0.147 和前100词重合度0.95,而 A 的两半之间为0.207和1.00,两部英文小说之间为0.172和0.91,丹麦文对挪威文为0.116和0.67。一种词尾模式从0.2%变到17%,在同一语言的不同书之间没有先例,在不同语言之间却有:法文对意大利文,词尾 -o,从0.19%到17.5%(S:v_a6)。
分部词汇。各部分特有的词汇确实存在,每词次平均卡方值0.654,而打乱后为0.121,意大利文为0.40,而且在同一抄写者、同一语言内部依然存在。但这些分部词汇属于同样的亚词族——qokain、qol、qokeedy、okeol——而不是任何类似实义词汇的东西(S:v_a6)。
08 各假说的现状
排除
- 所检验的十一种语言的明文或单表替换:h2 差距原始至少1.0比特,合并后至少0.4比特(S:a1、v_a1;L:Bennett 1976,Zandbergen,Lindemann 与 Bowern 2021)。
- 替换加去元音或常规缩写(S:a1、a5;L:Lindemann 与 Bowern 2021)。
- 真实明文的字母层换位,包括漏格板重排(S:v_a5;L:Parisel 2026)。
- 维吉尼亚型多表替换(L:D’Imperio 1978,Stolfi 2000)。
- 以单字形虚码作为冗余的来源(S:a5)。
- 具名的解读:Cheshire 2019(被其审稿人驳倒)、被当作解读来读的 Hauer 与 Kondrak 2016(作者本人有所保留)、Bax 2014、Gibbs 2017、Ardic、Gladyseva 2023、Schechter 2025,以及2025–2026年借助大语言模型的各种读法:都没有可复现的密钥,没有一个经得起盲测应用(L)。
- 现代伪造(L:放射性碳测年、墨水、来源)。
不被看好*
- 一种未加密的冷僻语言:已发表的最接近的 h2 是夏威夷语的2.77(L),而槽位语法没有先例。
- 以 Rugg 的表加漏格板为机制:卡尔达诺漏格板约出现于1550年,而犊皮纸是1404–1438年的;f 和 p 的特殊作用不可能由表产生(L:Zandbergen 2021);本轮的漏格板在齐普夫和单现词上失败(S:a4)。
- 这里实现的自由编辑式自我引用:它过度产生局部性和词汇,字符冗余又产生得不足(S:a4、v_a4;第06节)。
- Dee 和 Kelly 的灵语(L:Daruka 2020),这与犊皮纸的年代相冲突。
仍成立
- (a) 一种由短单位构成的冗长或槽位模板密码、一部名码本,或一种有意义的人造语言。与第03、05和07节相容,也与一种可以手工执行、能复现若干主要统计量的15世纪设计相容(L:Greshko 2025,Naibbe 密码;Bowern 与 Gaskell 2022)。它还必须满足词长约束(冗长对照给出7.6到11.5个符号;S:v_a1)、词次之间近乎为零的可预测性(L:Rozanova 与 Temerev 2026,预印本)以及行首效应(S:v_a2)。
- (b) 保留槽位结构的复制加修改生成(L:Timm 与 Schinner 2020、2023;Timm 2026)。与所测的一切相容,但槽位语法是该模型的输入,而不是它的产物(S:a3),而且还没有任何实现在手稿长度上、对照页面、分部和抄写者结构运行过(L:三次梳理皆然)。
- (c) 一种在非词切分下的真实语言。未检验(S:v_a3)。
09 实物证据补充了什么
全部为 (L)。四张的放射性碳测年:1404–1438年(Hodgins,亚利桑那大学,2009年)。通篇为铁胆墨水和时代相符的颜料(McCrone 2009;耶鲁 2014)。五种笔迹——其中三种写了227页中的188页——共用一套书写系统(Davis 2020)。罗曼语方言的月份名和 f116v 上一条德语笔迹的批注,表明它在几十年内经过讲德语和讲法语/奥克语的人之手。十张的多光谱图像(2014年拍摄,2024年公布)复原出 f1r 上一份被擦去的字母表试写和 Tepenecz 的藏书标记,但没有新的伏尼契文。来源从约1600年的布拉格,经 Baresch(1639年)、Marci(1665年)和基歇尔,一直到1912年。
其推论是对称的。无意义文本的解释必须设想:这是1420年代在新鲜小牛皮上制作的产物,由几位协作的抄写者完成,他们在两百多页中始终保持同一套槽位语法和同一个 A/B 开关——这种代价没有任何统计量能说明。密码的解释则必须说明,为什么决定语言的是抄写者而不是主题(第07节)。
10 怎样才能解决其余问题
- 一场预先登记的、手稿长度的生成器比拼:自我引用、表加漏格板、用 Naibbe 加密的拉丁文和人写的胡言乱语,放在同一组检验下,包括 Montemurro–Zanette 的长程关键词峰(L:2013)、主题×插图×抄写者的共同聚类、相邻页相似度、A/B 可分性、f 和 p 规则以及词次可预测性。脚本 a1 到 a6 是一组可用于任何 TSV 格式文本的部分检验。
- 手稿长度的人写胡言乱语,花几周时间写成,配有插图和分部,这是 Gaskell 与 Bowern(2022年)提出的悬而未决的检验(L)。
- 插图与文本之间的互信息,并排除笔迹、帖和相邻关系的影响。
- 仅按确定的空格重新切分词次,并对拉丁文和意大利文的音节切分计算同样的统计量,以弥补第02节留下的缺口。
- 对任何声称的密钥:由第三方盲测应用于五张 A 和五张 B,并附打乱字形的对照。
11 已核查、未核查、须核实
已核查。a1 到 a6 中的每个主要数字都由独立的重新实现 v_a1 到 v_a6 复现,包括 Levenshtein 代码、熵公式、估计量偏差、语料内容和 Gutenberg 版权套话。在 ZL、RF1b、IT2a、GC2a 和 CD2a 上的稳健性。已应用的更正:单本书样本;拉丁文词熵取自散文而非诗歌;折叠后的下限为3.32;固定性比率为1.7到2.3;欠离散是 Currier B 的特性;行尾效应来自 m/g 异体字形;A/B 规则在留一法下为99.5%。
未核查。需付费的 Cryptologia 全文(Rugg 2004、Schinner 2007、Timm 与 Schinner 2020 和 2023、Daruka 2020、Greshko 2025)是根据摘要和二手概述来把握的。没有计算更高阶的熵和按笔迹分的熵、A 对 B 的显著性检验以及自助法区间。没有重新计算任何更高层次的文献统计量(Montemurro–Zanette 峰、主题模型、相邻页相似度)。Davis 的笔迹划分取自 IVTFF 头信息。除放射性碳测年、墨水、笔迹和1639年的信之外的实物证据,包括墨水分层、颜料顺序和帖的顺序,都没有考察。
用户引用前须核实。语料选择(单本 Gutenberg 书籍;一个含约8%拉丁文的 OCR 意大利文语料库;诗歌对散文拉丁文)、字形合并列表、24符号冗长对照的设计、把不确定的空格当作断点的处理,以及“已排除”“不被看好”和“仍成立”这些标签。有两个数字以不止一种形式出现:合并后的 h2 在熵表中是2.870,在比拼表中是2.646;相邻重复率在固定性表中是0.907%,在比拼表中是0.0082,在基线中是0.81%。笔记没有调和这些差异;可能的原因是合并列表和词次过滤器不同*,这可以通过以下位置中各脚本的 JSON 来确认: results/ 。所有输出在复核之前都未经验证。
12 文件与复现
所有内容都在 targets/voynich/. parse_ivtff.py 把 IVTFF 转换为 TSV; data/ZL3b-n.words.tsv 是解析后的主转写本。原始文件来自 voynich.nu/data,需带浏览器请求头;服务器会拒绝普通的 curl。 baseline.py 和 baseline2.py 是独立的基线。检验: a1_charstats.py, a2_wordstats.py, a3_wordgrammar.py 连同 a3_supplement.py, a4_selfcitation.py, a5_cipher.py, a6_structure.py;重跑 v_a1.py to v_a6.py. results/ 存放各脚本的 JSON 和 Markdown 以及生成器样本。 NOTES.md 是本页所浓缩的裁定; SOURCES.md 是五次文献梳理。