为什么在 Bittorrent v2 中使用 SHA-256?

Why SHA-256 used in Bittorrent v2?

自从在 SHA-1 中发现冲突后,BitTorrent 转向更安全的哈希函数 SHA-2,但为什么不创建像 magnet:?xt=urn:bt_[hash_function_name]:info_hash ?

示例: 磁铁:?xt=urn:bt_sha3:123456789101112131415

人们将继续构建更先进的计算机,这就像 2+2。 并且在不久的将来可能会发生碰撞,并且在研究新协议时,我们已经可以看到它的采用进展非常缓慢,如果说在 2030 年发生新的碰撞那将不是最好的事情,那么开发人员将不得不更改此协议又是?

无论如何,V1 DHT 与 V2 不兼容。

所以我的新手问题转到@the8472

It's like 2+2 that people will continue building up more advanced computers.

碰撞攻击的主要原因是散列函数的弱点。更快的计算机只会提供非常适度的改进,因为每增加一点,您的计算能力就会增加一倍。即使是仍然非常假设的通用量子计算机也只会将碰撞阻力从 N/2 降低到 N/3。

此外,碰撞攻击并不是 bittorrent 的主要威胁。他们可以破坏建立在 bittorrent 之上的基于证书的系统,例如其中一些第三实体保证哈希描述的内容的正确性。但是 bittorrent 中散列的主要用途(完整性,即获取发布的任何初始种子的精确位副本)只容易受到 preimage attacks.

的影响

and looking into new protocol, we can already see that its adoption is happening very slowly, it wouldn't be nicest thing if say in 2030 new collision occured, then developers will have to change this protocol again?

Bittorrent v2 指定了一个 meta version 字段 in the info dictionary 并要求客户端在尝试使用 torrent 之前首先检查兼容性,这将使未来的升级更小且更容易推出。 但是它们没有提前指定,因为我们不知道将来需要哪些哈希或其他与安全相关的更改。指定和协商不止一种受支持的加密原语往往容易出错并增加实现的复杂性。

v2 magnet link 已经通过采用多重哈希格式提供了灵活性。

V1 DHT is not compatible with V2 anyway.

这是不正确的。