昨天我读到了一篇有关区块链的文章,据此,区块链是否非常安全?我无法理解它的安全性? 区块链如何使数据安全,即使普通人也可以使用?
答案 0 :(得分:3)
@saurabh提供了很好的解释, 这是一个复杂的主题,需要详细的解释,请阅读有关不同共识和工作量证明算法的更多信息,以实际了解区块链的美丽。互联网上有很多不错的博客供您浏览。让我尝试为您提供我的分布式账本知识有限的简短摘要。
从理论上讲,区块链实际上是防篡改的(有人仍然可以对区块链进行51%的攻击,但这需要巨大的计算能力)
为什么会这样?两个原因:
每个区块唯一的加密指纹
共识协议,网络中的节点就共享历史达成共识的过程。
指纹(称为哈希)最初需要花费大量的计算时间和精力(此时间和精力的增加或减少取决于矿工的总计算能力)。因此,这可以证明将区块添加到区块链中的矿工完成了计算工作,从而获得了比特币奖励(因此,据说比特币使用了“工作量证明”协议)。此哈希只是此块中包含的所有交易的Merkle哈希。它也可以用作一种密封,因为更改块将需要生成新的哈希。但是,验证散列是否匹配其块很容易,并且一旦节点这样做,节点便会使用新块更新其各自的区块链副本。这是共识协议。
最后一个安全元素是,散列还充当区块链中的链接:每个区块都包含前一个区块的唯一哈希。因此,如果您想追溯性地更改分类账中的条目,则不仅要为其所在的区块还要为每个后续区块计算一个新的哈希。而且您必须比其他节点向链中添加新块的速度更快(平均每10分钟添加一个新块)。因此,除非您拥有的计算机的功能比其余节点的总和还要强(即使那样,也不能保证成功),所有更改都需要在10分钟内完成,否则您添加的任何块都会与现有的块冲突,其他节点将自动拒绝您的更改。这就是使区块链不受篡改或“不可变”的原因。
如果您使用工作证明来部署自己的区块链会发生什么? 这实际上取决于您的区块链上已经存在多少块以及工作量证明算法的难度。如果复杂度较低,并且几乎没有矿工在争夺下一个区块,那么将所有矿工加在一起具有更高计算能力的任何人都可以制定自己的有效分叉,并进行适合其需求的交易。
我想在第n-10个区块处处理交易吗?
让我们说,截至目前,比特币区块链中的区块数量为n,而您想在第n-10个区块处更改交易,即回溯10个区块。
矿工将竞争将下一个区块放在第n + 1个区块上,该区块的时长约为10分钟,您也可以竞争,但要赢得胜利,与矿工相比,您必须具有计算能力,约为51200544泰铢/ s。 概率上讲,如果您具有1TH / s的采矿能力,则解决区块的机会是1/51200544,可以说,计算1TH / s成本大约为1000美元的硬件,只需计算一下成本就可以了。
如前所述,每个区块的标头中都包含一个Merkle哈希,而该哈希又取决于区块中所包含的每个事务以及需要解决的困难(矿工计算)。 merkle根包含在下一个块的标题中。
因此,如果要在第n-10个区块中更改一个事务或多个事务,则需要对第n-10个区块做两件事。 1.随着交易发生变化,再次计算Merkle根。 2.解决困难。
由于merkle根已更改,您需要解决此块之后的每个块的困难,直到此时此刻,才能使其成为有效分支。
完成所有这些操作的时间仅需10分钟,因为在接下来的10分钟内,矿工将进一步推销另一个区块。
答案 1 :(得分:2)
区块链的基本概念:一个分布式数据库,维护着不断增长的有序记录列表。
记录的不断增长的列表称为块,它们使用密码术进行链接和保护。每个块均包含前一个块的加密哈希,时间戳和交易数据。
这是一个开放的分布式分类帐,可以有效且可验证的方式记录两方之间的交易。
要使用分布式分类帐,通常由对等网络共同管理区块链,该对等网络共同遵守用于节点间通信和验证新块的协议。记录后,任何给定区块中的数据都不能追溯更改,而无需更改所有后续区块,这需要网络多数同意。
答案 2 :(得分:1)
例如:在区块链中,“普通人可用的数据”类似于以下内容
在这种情况下,这些数据可用于验证交易。知道这些数据对所涉及的任何人都无害,并且没有人可以仅仅因为他们有权访问这些数据而操纵交易或区块链。
如果某人想要更改/操作块2(please refer to the Image)中的数据并将其添加到块链中,就像@GraphicalDot所解释的那样,这是一件非常困难的事情。
答案 3 :(得分:0)
例如,比特币网络从一开始就需要一个引导程序 ,在那个阶段,您不能说网络是安全的。每年,越来越多的矿工加入游戏,这意味着很难接管整个网络(考虑到所花费的成本,这是非常昂贵的)。但这并不意味着有人可能会不惜一切代价妥协它而失败。