以下内容来自比特币白皮书。目标是计算攻击者幸运并覆盖 z 个块的概率 (P),其中 q 是受控网络的百分比。
我有兴趣从这里向后移动并计算攻击者必须控制的网络百分比,以便在给定成功概率 P 的情况下回滚 x 个块。
这是可能的还是我在想这很奇怪?
我将如何表示在代码中求解 q 而不是 p?
Converting to C code...
#include <math.h>
double AttackerSuccessProbability(double q, int z)
{
double p = 1.0 - q;
double lambda = z * (q / p);
double sum = 1.0;
int i, k;
for (k = 0; k <= z; k++) {
double poisson = exp(-lambda);
for (i = 1; i <= k; i++) {
poisson *= lambda / i;
sum -= poisson * (1 - pow(q / p, z - k));
}
return sum;
}
}