技术文章

了解最新技术文章

当前位置:首页>技术文章>技术文章
全部 111 常见问题 5 技术文章 106

区块链应用程序真的安全吗?

时间:2023-12-11   访问量:1006

区块链技术允许多个互不信任的人或设备共享可信数据。区块链的工作方式使得恶意方几乎不可能在不被发现的情况下篡改数据,因此它被称为“不可破解的技术”。

但区块链真的不可破解吗?让我们看看区块链真正提供的安全性和隐私性。

人们普遍预测区块链将颠覆我们所知的商业实践。大多数期望是区块链技术以及在该技术上运行的应用程序比传统替代方案更安全。但这是事实还是炒作?与几乎所有技术问题一样,答案是“这取决于情况”。

区块链应用程序的安全性取决于做好以下三件事:

这三个原则听起来似乎很明显,但当日程和预算紧张时,它们经常被忽视或忽视。但由于区块链相当新,因此当目标是基于该技术设计安全应用程序时,必须有目的。


安全的基本原则:中央情报局三合会

区块链技术、区块链应用程序、区块链不可破解、区块链的安全和隐私、中央情报局三合会、区块链、应用程序和安全、关于区块链的神话、区块链安全

在讨论区块链应用程序是否真正安全之前,让我们先看看安全意味着什么。

区块链技术就是在不信任的节点之间共享数据分类帐。主要关注点是数据的安全性。

数据安全的核心是确保三个属性:

这三个安全原则非常基础,因此通常被称为中央情报局三合会

大多数传统的数据安全方法依赖于一些受信任的机构来限制对数据的访问并强制执行访问限制。这种方法的关键是所有用户都必须信任该权威。区块链使得消除可信权威成为可能,但仍然提供安全保证。

保密性
每个授权用户都可以访问整个区块链。对于公共或无需许可的区块链,这意味着每个人都可以看到所有区块。对于私有或许可的区块链,区块链所有者对谁可以访问这些区块实施访问限制。由于私有区块链重新引入了可信权威,因此我们在本文中仅关注公共区块链安全性。

公共区块链通过加密提供机密性。访问由拥有解密密钥的人控制,而不是阻止对数据的访问。尽管其他人都可以看到您存储在块中的数据,但只有您(以及您提供密钥的其他人)可以解密块内容。当然,这会导致其他密钥管理问题,但我们在这里重点关注安全保证的基础知识。

完整性
这是区块链方法新颖的一个领域。区块链数据完整性依赖于多种互补技术。

首先,所有新区块必须得到半数以上参与节点的批准才能添加到区块链中。这意味着虽然任何人都可以添加数据,但每个人都必须同意该数据对区块链有效。在区块链中,少数服从多数。所有节点都同意接受正确数据的多数观点。

一旦一个块被添加到区块链中,它就无法更改。区块链实现使用强大的加密哈希来确保每个块在添加到链后保持其原始状态。哈希可以快速、轻松地验证区块链的完整性,并且任何区块的任何微小更改都会立即显现出来。

可用性
最后一个基本安全保证是数据按需可用。大多数遗留应用程序数据存储技术都依赖于中央存储,这意味着单点故障。区块链技术的设计本身就确保了整个区块链的完整副本在许多节点之间共享,并在所有节点之间维护了区块链的完整性。

换句话说,每个全节点都存储整个区块链的相同副本。如果任何节点发生故障或离线,区块链在其他节点上仍然可用。此设计功能消除了单点故障并增强了可用性。


区块链、应用程序和安全

区块链技术、区块链应用程序、区块链不可破解、区块链的安全和隐私、中央情报局三合会、区块链、应用程序和安全、关于区块链的神话、区块链安全

数据安全是所有安全问题的核心。即使当我们谈论应用程序安全时,我们实际上谈论的是应用程序保护数据安全的程度。那么,区块链应用真的安全吗?

虽然区块链不会自动提供安全性,但其功能确实非常适合某些方面的安全性。通过了解区块链可以为您的组织做什么,然后将该技术应用于正确的用例,您将获得最佳结果。

然而,让事情变得复杂的是,围绕区块链技术的所有炒作都引入了一些不正确的看法和信念。让我们看一下区块链安全的三大误区。

误区一:区块链加密使其安全
这是我反复看到的一条评论。存储在块中的交易通常是加密的,但这不是必需的。加密数据可以提供机密性,但前提是加密密钥得到安全管理。管理密钥是一项远远超出区块链范围的挑战。

区块链并非建立在加密之上,但加密哈希确实发挥着不可或缺的作用。通过在当前块头中记录前一个块的加密哈希,每个块都连接到链中的前一个块。由于前一个块的哈希值是当前块头的一部分,因此该数据的一部分用于计算当前块的哈希值(然后存储在下一个块的块头中)。

加密散列的使用仅提供完整性保证。如果任何块被修改,则修改数据的哈希值将与下一个块中存储的哈希值不匹配。这种情况基本上会打破链条,数据很容易被检测到。虽然此功能确实提供了完整性,但它不提供机密性或可用性。

误区 2:区块链是不可破解的
据说区块链是不可变的。这意味着一旦一个区块被添加到链上,它就永远不能被修改。这通常是正确的,但并不是铁定的保证。更好的说法是区块链是防篡改的——或者至少是防篡改的。哈希值提供了轻松检测对块的任何干扰的能力。

然而,理论上可以修改区块链并逃避检测。区块链中最流行的共识机制是工作量证明,要求大多数节点验证并接受新块。一旦达成多数共识,剩余节点就会接受多数决定并允许新区块。只要节点不存在恶意串通,这种方法实际上可以保证区块链的完整性。

另一方面,如果区块链网络上51% 或更多的节点同意伪造新的区块验证,则未经授权的区块可能会被添加到区块链中,少数节点将被迫接受它。然而,节点之间的相互不信任以及进行这种共谋所需的开销使得这种类型的攻击成本高昂且不太可能发生。

误区 3:智能合约是无差错的
区块链存储的不仅仅是数据。智能合约是存储在区块链上的块中并在每个节点上运行的程序,甚至是小型应用程序。智能合约的目的是为与区块链数据交互提供一套一致的规则。智能合约对于在允许将交易记录到区块中之前验证交易至关重要。

例如,智能合约可以提供非常基本的金融交易验证。假设您使用比特币购买卡布奇诺。在您被允许将比特币转移到咖啡店之前,智能合约会检查您的比特币余额,以确保您有足够的资金来继续。这是智能合约如何管理区块链数据交互的一个简单示例。

智能合约存储在区块链块中(这意味着它们是不可变的且无法更改)并自动且一致地运行。您无法关闭智能合约,而且一旦部署就无法更改它们。它们只是开发人员为执行某些任务而编写的代码块。

就像任何其他软件一样,智能合约可能并不总是能产生预期的结果。他们可能有越野车。

安全设计和测试

区块链技术、区块链应用程序、区块链不可破解、区块链的安全和隐私、中央情报局三合会、区块链、应用程序和安全、关于区块链的神话、区块链安全

就像所有其他类型的软件一样,区块链应用程序可以是安全的,也可以缺乏良好的安全性。从设计过程的一开始就考虑数据安全非常重要。由于智能合约在部署后是不可变的,因此第一次就做好是最重要的。

如果您想知道智能合约中的错误是如何处理的,那么可以解决程序缺陷。如果您确实在智能合约代码中发现了错误,您可以简单地使旧代码失效并部署新版本。但您必须小心,对旧代码地址的所有引用都会更新,并且使用旧智能合约添加的任何区块链数据在使用新智能合约时仍然有效。在某些情况下,数据格式发生了变化。当尝试修复智能合约中的错误并尝试处理多种数据格式时,这可能会引起一些麻烦。这些问题使得第一次就把事情做好变得更加重要。

全面测试软件应用程序以识别缺陷是无可替代的。在这方面,区块链应用程序与传统应用程序没有什么不同。对正确功能和数据安全性进行全面测试将需要更多时间,但它总是会带来更干净的软件,并且需要更少的返工


上一篇:安全的加密货币真的存在吗?

下一篇:您应该运行的软件安全测试以及何时最有效地使用它们

发表评论:

评论记录:

未查询到任何数据!

在线咨询

点击这里给我发消息 售前咨询专员

点击这里给我发消息 售后服务专员

在线咨询

免费通话

24小时免费咨询

请输入您的联系电话,座机请加区号

免费通话

微信扫一扫

微信联系
返回顶部