应对51%攻击的解决方案

in cn •  7 years ago 

QcMVpAHafSq


(1)矿工按上一个块总计算难度的大约十万分之一为基准进行计算,然后加上一个空地址进行广播(对应的公钥保密,要等待5分钟后再广播,作为矿工依据)。每个工作量获得十万分之一的矿工可能性。

(2)每10分钟取工作量(计算难度)排名的前10万名参加抽签。如果不到10万名,按实际数即可。

(3)等待5分钟之后,将提交的所有空地址进行Hash运算出矿工公钥(全部空地址用SHA256运算出唯一私钥,再推算出公钥就是矿工公钥),数值最接近矿工公钥的对应公钥成为矿工(公钥转换为10进制进行对比);如果接近值相同,则小数胜出(例如:4,6,7,9参加;结果为1,则9成为矿工;结果为5,则4成为矿工)。

(4)如果相同的公钥成为矿工,用各自挖矿点的公钥分别进行Hash运算,数值最接近矿工公钥的挖矿点胜出.

(5)为防止恶意大量攻击挤爆网络,如果提交的计算难度不到上一个块平均值的30%,则节点不予广播。


说明:如果矿工拥有51%的算力进行攻击,比如连续打包100个块,故意不广播,100个块之后一次性全部广播。由于51%的算力参加抽签,仅仅是51%的可能而已,也就是100个块中大约有49个块是别的矿工,他不能保证100个块都是自己中签(每个块有10万名矿工参加随机抽签,中签的才是矿工)。

之所以先广播地址后隔5分钟后再广播公钥,是为了防止参与的矿工先运算,因为地址不能推算出公钥,每个矿工都不知道别人的公钥(因为是空地址,公钥从未广播),5分钟后再用所有空地址进行Hash运算出矿工公钥,不能预先知道,可以实现公平。


欢迎打赏:1M3JW4SNBLgG76GmmDskC8RudfC87bGPDq

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

您好。我是 steem 中文区的机器人。昨天,您在 steem 的 cn 社区第二次发布文章。为了让更多的人读到新人的文章,您的文章被列入了中文区新人之家的“希望工程”,欢迎点击查看

新人之家欢迎你,这里有帮助新手了解 steem 的指南。请注意,新手最容易忽视的两点:1. 千万不要丢失您的密码;2.千万不要抄袭,非原创的文字、图片、视频资料请务必注明出处,否则可能会得到差评并列入黑名单。

欢迎参加之家举办的各种活动,并期待您在未来继续发布优质原创文章!

您不必回复我。当然,如果您回复,我会非常高兴的,即使我只是个卑微的机器人!

Hello. I am a bot from Steem CN community. Yesterday you posted in CN category for the second time. Your post is listed in the Welcome Center for New Steemians. Welcome to CN community. Please do not forget your password. Do not plagiarise. Looking forward to more high-quality posts from you in the future!

You do not have to reply me. But if you reply me, I would be happy, even I am a bot!

您好。我是 steem 中文区的机器人。昨天,您在 steem 的 cn 社区第二次发布文章。为了让更多的人读到新人的文章,您的文章被列入了中文区新人之家的“希望工程”,欢迎点击查看

新人之家欢迎你,这里有帮助新手了解 steem 的指南。请注意,新手最容易忽视的两点:1. 千万不要丢失您的密码;2.千万不要抄袭,非原创的文字、图片、视频资料请务必注明出处,否则可能会得到差评并列入黑名单。

欢迎参加之家举办的各种活动,并期待您在未来继续发布优质原创文章!

您不必回复我。当然,如果您回复,我会非常高兴的,即使我只是个卑微的机器人!

Hello. I am a bot from Steem CN community. Yesterday you posted in CN category for the second time. Your post is listed in the Welcome Center for New Steemians. Welcome to CN community. Please do not forget your password. Do not plagiarise. Looking forward to more high-quality posts from you in the future!

You do not have to reply me. But if you reply me, I would be happy, even I am a bot!