Javascript中是否有内存限制的工作证明概念?

Javascript中是否有内存限制的工作证明概念?,javascript,complexity-theory,Javascript,Complexity Theory,我寻求一种可以用Javascript实现的方法。首先,我想使用一些基于hashcash的方法,但意识到这可能不会产生可接受的保护。 这是因为部分哈希反向任务充其量是CPU密集型的。在这里,攻击者使用二进制文件生成此部分反向哈希很可能会击败任何浏览器性能。(甚至可能是增强的JIT) 因此,我寻求一个工作证明,该证明不需要占用大量CPU,但需要强制执行一定数量的内存访问才能完成,我认为这将是一项任务,在这项任务中,浏览器的Javascript元素将与解决同一任务的已编译二进制代码更为匹配。我寻求如何

我寻求一种可以用Javascript实现的方法。首先,我想使用一些基于hashcash的方法,但意识到这可能不会产生可接受的保护。 这是因为部分哈希反向任务充其量是CPU密集型的。在这里,攻击者使用二进制文件生成此部分反向哈希很可能会击败任何浏览器性能。(甚至可能是增强的JIT)


因此,我寻求一个工作证明,该证明不需要占用大量CPU,但需要强制执行一定数量的内存访问才能完成,我认为这将是一项任务,在这项任务中,浏览器的Javascript元素将与解决同一任务的已编译二进制代码更为匹配。我寻求如何/在何处找到某个内存绑定的实现的提示工作证明实现。

基于JavaScript的工作证明的最新技术似乎是,其源代码是可用的


您提供的Wikipedia链接为内存绑定的工作证明提供了许多很好的参考,如果您想使用现有的框架,kaPoW应该适合使用其中一个。请在

引用自述:

“布谷鸟周期代表了三个重要方面的突破:

1) 对于每次随机访问内存,它只执行一次非常便宜的siphash计算

2) (预期)内存使用量随图形大小线性增长,图形大小可以任意设置。在不过度减速的情况下减少内存使用量的机会可能非常有限

3) 工作证明的验证是即时的,需要2次sha256和42x2 siphash计算


布谷鸟周期中的运行时间主要由内存延迟(67%)决定。”

你可以烧掉比特币作为工作证明。没有更好的证据证明价值被破坏了。任何你“用Javascript实现”的东西都很可爱。。。但是,如果你的链有任何价值,最终会有人使用CUDA构建一个更好的链,那么Javascript将毫无用处。

这是常见问题解答告诉你的问题之一,在stackoverflow上不是一个好问题。我们希望您自己做研究,使用其他方式向社区寻求搜索帮助。Stackoverflow在这里帮助您找出为什么您已经编写的代码不起作用,尽管我们确信它应该起作用。@Mike'Pomax'Kamermans我同意这个问题可能不完美。事实上,我很乐意用Javascript为内存受限的工作证明解决方案开发代码。但是,由于这与安全有关,人们经常告诫其他人“滚他们自己的东西”,并敦促使用已知的东西,如已建立的密码、哈希等。此外,我确信,这一方面确实与编程密切相关,因此可以适用于编程。我想知道,如果用一个要求求值的伪代码来充实这个问题,是否会使这个问题变得更好?救命啊!投票关闭工具记录。乍一看,kaPoW似乎也依赖于哈希反转(至少消息来源提到了SHA1)。我必须找出维基百科中的哪些方法更像是我想要找到的需要内存绑定功能的方法answer@humanityANDpeace是的,kaPoW使用哈希。维基百科上有趣的文章都引用了变体列表中的“内存限制”项,这是最近出现的,也很高兴看到人们解决这个问题和应用图论等。希望我能够采用Javascript,或者可能已经存在我忽略的javascript实现了吗;目前还没有javascript实现。你需要自己把布谷鸟和布谷鸟放在港口。但是你可以省略一些优化,比如bucketing。我希望有一个POW是专门为GPU设计的。。。涉及多边形操作和/或光栅化操作。对我来说那将是理想的。GPU是可访问的商品,可以使这种算法具有ASIC抗性。“内存硬”算法对我来说并不有趣,因为内置大量DRAM的ASIC是可行的。@ErikAronesty你可以用内置大量DRAM构建ASIC,但它们的速度不会太快。因为“运行时…由内存延迟控制”。事实上,我们通常将具有大量DRAM的ASIC称为CPU。