主页 > imtoken官方版 > 区块链 Pow 算法详解 - 傻瓜式程序员

区块链 Pow 算法详解 - 傻瓜式程序员

imtoken官方版 2023-12-02 05:08:56

pow按照自己的理解写,适合程序员理解,简化一些概念

1. 总结算法

首先,我们需要知道什么是摘要算法。 摘要算法一般分为两步。 1. 分割和填充

比特币算法软件_比特币pow算法_比特币地址算法

2.压缩

压缩刚才得到的值。 压缩函数的细节我就不写了。 你需要记住几个概念:

一种。 抽象算法不可逆比特币pow算法,无法获取原文

b. 为了保护原文,摘要算法一般会在原文后面加上一些字符串。 这个过程叫做加盐。

C。 摘要算法具有崩溃的特性,对原文的少量改动都会引起摘要价值的巨大变化

d. 不同的原文产生的抽象值一般是不同的。 不同原文生成相同摘要的概率非常小。 这叫做碰撞

2.生成特殊汇总值

包主

进口 (

“加密/sha256”

“调频”

“字符串”

)

功能主要(){

因为我:= 0; 我 < 100; 我++ {

数据 := "test@example.com"+string(i)

c := getSha256Code(数据)

索引:=字符串。 索引(c,“0”)

如果索引 == 0{

fmt.Println(c,i)

休息;

}

}

}

func getSha256Code(s 字符串) 字符串 {

h := sha256.New()

h.Write([]byte(s))

数据:= h.Sum(无)

十六进制 :=fmt.Sprintf("%x", 数据)

返回十六进制

}

打印值:

069896a4318eca6ef060f14db5b967d5dab38233d6e9ca2a3d8bdaf3a8c88398 28

当 i 为 28 时,生成以 0 开头的摘要。 假设我们指定需要6个从0开始的汇总值比特币pow算法,此时计算机计算需要十分钟。 这个计算时间的长短就是你电脑的计算能力。 强大的计算机会先计算出这个摘要值,POW算法会把这个值作为最新的区块摘要。

3.抽象链

最后一个哈希值+当前区块内容+随机数生成的哈希值就是最新区块的哈希值。 这些哈希值组成的链就是汇总链。 pow的原理大致是这样的