Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

以太坊中部分技术PoW的理解和举例 #15

Open
dako40 opened this issue Mar 12, 2020 · 4 comments
Open

以太坊中部分技术PoW的理解和举例 #15

dako40 opened this issue Mar 12, 2020 · 4 comments

Comments

@dako40
Copy link

dako40 commented Mar 12, 2020

任何解答问题比验证答案难度系数大得多的算法多可以用POW方案是什么意思?如果可以请举个例子,谢谢。
璇233

@TaibiaoGuo TaibiaoGuo added the Issue描述不清晰 解决这个问题需要更多信息 label Mar 12, 2020
@TaibiaoGuo
Copy link
Owner

请描述清楚上下文,可以提供更多信息吗?

@dako40
Copy link
Author

dako40 commented Mar 12, 2020

前文是说pow工作量证明被用于以太坊中,后文是防止中心化特殊化使用硬件,具有抗ASIC计算的能力,更加具有去中心化分布式安全能力。

@TaibiaoGuo
Copy link
Owner

TaibiaoGuo commented Mar 12, 2020

这种性质可以被称为单向性,指的是对于每一个输入,函数值都容易计算(多项式时间),但是给出一个随机输入的函数值,算出原始输入却比较困难(无法在多项式时间内使用确定性图灵机计算)。

现举一个现实生活中的例子帮助大家理解,打碎碗碟是一个很好的单向函数的例子,我们将碗碟打碎成数千片的碎片是一件很容易的事情,但要把这些碎片再拼成一个完整无缺的碗碟,却是一件非常困难的事情。

质数分解 是一个满足这种要求的方法:

质数分解将一个正整数写成几个约数的乘积,例如45这个数,它可以分解成45=3^2 × 5。根据算术基本定理,这样的分解结果应该是独一无二的,即只有一种质因子组合。我们在计算时,为了得到一个质数的约数,往往要经过多次尝试,而验证只需要一次,这就满足了单向性,也就可以被用于设计PoW算法。

更复杂一点 330 = 2 3 × 5 × 11
更复杂一点 4294967296 = 3 × 5 × 17 × 257 × 65537

那么我给出一个问题:4294967296的质数分解答案,则需要进行很多次计算得到正确的结果,而只需要一次就可以验证答案是否正确,计算这个问题的过程,就证明了你工作了,所以叫PoW(Proof of Work),以太坊的PoW算法也采用了类似的机制。

@TaibiaoGuo TaibiaoGuo added 共识算法 密码学 and removed Issue描述不清晰 解决这个问题需要更多信息 labels Mar 12, 2020
@dako40
Copy link
Author

dako40 commented Mar 12, 2020

谢谢

@TaibiaoGuo TaibiaoGuo changed the title 以太坊中部分技术理解问题 以太坊中部分技术PoW的理解和举例 Mar 12, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants