分类
Uncategorized

我们怎样才能从最低的哈希值中导出系统上所做的所有工作?

如果不是数学上的(我想证明可能相当严格),你能提供一个直观的解释为什么最低的哈希值接近系统上所做的工作总量吗?资料来源:https://youtu.be/zYzEmBlJ77s?t=4720
我的想法是:我们可以计算出找到比我们找到的哈希值低的哈希值的概率。从那里,我们可以找到一个分布的“中点”,即需要多少次尝试才能找到这样一个散列。所以它给了你一个关于分布的点。
谢谢您!
搞砸
分享
改进这个问题
跟随
昨天问
鲍勃
2122青铜徽章
新贡献者
添加评论
2个答案
4
每一次散列尝试,不管是谁做的,也不管遇到什么困难,都是对散列函数的独立求值,结果是一个均匀分布在0和2256-1之间的数字。
现在考虑N个独立样本的最小值的分布。有关推导,请参见此问题,但结果是该分布的平均值约为2256/(N+1)。
这给出了观察到的最小散列与执行的散列数之间的关系的直觉:平均而言,最小值与执行N个散列的1/(N+1)近似成比例。
从观测值中估计N的统计工具称为似然估计:我们有一个未知参数N的概率分布,并从该分布中进行一次观测。N个散列的最小值的分布(如果我们把散列的输出变成一个连续的实函数,均匀分布在[0,2256]上,把它简化一点)具有概率密度函数fN(x)=N(1-x/2256)N-1,使fN(minu hash)(最大似然估计)最大化的N的值是-1/log(1-minu hash/2256)。对于minu hash的小值,该表达式近似于2256/x-1/2。
分享
改进这个答案
跟随
9小时前编辑的
19小时前回答的
彼得·维尔
68.5k88金徽章147147银徽章224224铜徽章
添加评论
2
在比特币中使用的工作证明依赖于寻找低散列,换句话说,寻找以一定数量的零开始的散列。要找到二进制表示以30个零开始的散列,平均需要做2^30次尝试。当你找到这个散列并呈现它时,它就证明你确实做了同样多的工作。它是双向的,当你尝试2^30次时,你得到的最低哈希值将以大约30个零开始。
重要的是,这在任何规模上都有效。我能找到的最小的块散列从23个十六进制零或92个二进制零开始,这表明网络已经计算了大约2^92个散列。
如果您想更直观地看到它,请从另一个线程中查看这个答案,该线程显示了有史以来最低哈希中的零数是如何随时间而增加的。
分享
改进这个答案
跟随

时光素材-香车美女  (289)blockchainBTC比特币区块链www.qkl91.com

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注