juli/taint

GitHub: juli/taint

TAINT 是一种基于加密协议的软件供应链完整性测试方案,通过智能合约自动奖励能够证明篡改软件工件的研究人员。

Stars: 16 | Forks: 0

# TAINT:通过不可抵赖的篡改测试工件完整性 一种奖励研究人员的协议,鼓励他们以加密方式证明自己可以将数据偷偷植入你所依赖的软件中。 ## 一分钟了解核心理念 现代软件由数千个陌生人编写的组件构建而成。当你在安装一个 package 时,你实际上是在信任一条由 maintainer、构建系统和依赖项组成的冗长链条。现有的防御手段(签名、可复现构建、 溯源)只能告诉你某个工件*确实是按照某人所说的那样构建的*。它们无法告诉你其中涉及的人员或系统是否已经被入侵。 TAINT 采取了不同的切入点。它不问*这构建得正确吗?*,而是问*有人能把任意字节塞进这里面吗?* 研究人员提交一个秘密,协议会返回一个不可预测的挑战,研究人员必须让一个派生出的“flag”出现在已发布的工件中——然后证明它确实存在。如果他们成功了,智能合约会自动向他们支付奖励。 这不是传统的漏洞赏金。漏洞赏金是为需要人工审查的*报告*付费。而 TAINT 是为一次*实际演示*付费——研究人员不需要描述某个弱点,而是直接利用它,成功的加密证明就是所需的全部证据。其中的逻辑在于:如果有人能植入一个无害的 flag,他们就同样能植入恶意软件。通过奖励这种无害的操作,我们就能在有人恶意滥用这种能力之前将其揭露。 ## 为什么这很有趣 * **无需人工分类筛选。** 声明要么在加密层面上有效,要么无效。不需要再和赏金计划争论你的发现是否算数。 * **无许可。** 任何人都可以为任何工件设立赏金。任何人都可以尝试去获取赏金。 * **一次证明,多次收益。** 如果研究人员成功将数据植入了一个广泛使用的库,他们就可以从针对该库设立赏金的每一个下游项目中获得收益。 * **经济信号。** 赏金质押显示了生态系统对完整性的关注点;成功的声明则展示了信任真正破裂的地方。两者在链上都是可见的,并由市场定价。 ## 当前状态 这是一个早期阶段的项目。基本的协议设计原则已经足够成熟可供分享,但我们期待社区的反馈能对其产生积极的影响。
标签:区块链, 密码学协议, 智能合约, 软件完整性验证