跳至内容
深圳市捷比信实业有限公司 · 产品选型与采购咨询联系业务人员
高频电阻捷比信 · 专业器件主题站

区块链中的不变性是什么意思

不变性一词已成为区块链的代名词。字典将不变性定义为“不变性”。该术语是指区块链的特征,即写入到区块链的任何数据都不能更改或修改。如何更好地理解它?我们可以将其与Google电子表格进行比较。后者具有行和列,您可以随时添加,编辑或删除这些行和列。在区块链中输入任何数据时,除非达成共识,否则无法更改数据。因此,尽管区块链中的数据不是100%不可变的,但是更改它非常复杂。如果区块链不是完全不可触摸的,为什么将其称为不可变的?为了避免混淆和误解,我们需要讨论与防篡改和明显篡改密切相关的两个词。篡改某些内容后,每个人都会注意到每一个小的更改和修改。另一方面,防篡改意味着该对象确实不可访问。不可能找到防篡改的东西,因为几乎所有东西都容易发生变化。但是,有些事情很难改变。牙膏就是一个例子。当有人从牙膏管中挤出牙膏时,无论您多么努力地将其恢复到原始状态,都很难。这就是防篡改的含义。尽管您可以触摸或更改某些内容,但是由于所做的更改非常明显,因此很难执行。区块链也是如此。因此,我们可以说区块链是防篡改的,而不是显而易见的。因此,存储在区块链中的任何数据均被视为安全合法。不变性在区块链中如何工作?现在我们已经确定了区块链是不可变的,因为将有明显的证据证明它是否被篡改,下一个问题是:区块链在多大程度上是不可变的?为了理解不变性是如何工作的,我们必须讨论哈希。散列是一组创建数字签名(也称为校验和)的数学运算。它的工作方式类似于您的真实签名,但是您将数字签名附加到任何数字数据上,而不是纸上。大多数现代编程语言都具有各种哈希函数。其中之一是安全哈希算法2或SHA-2。在此哈希函数下,存在更多类型的实现,其中最流行的是SHA-256。尝试输入一组字节,哈希函数将产生唯一的校验和。例如,让我们使用这三行Python代码,它们可以访问SHA-256和其他SHA-2实现。使用该算法,我们将输入字符串“ this is magic”。 》》》导入hashlib》》》''; h = hashlib.sha256('这是魔术...')》》》》 h.hexdigest()' 49240b3cc693fd281422bbcabb5f207ae2此hashlib将提供一个由64个字符组成的字符串-不少于不少。无论输入的大小,它都会生成一个具有相同字符数的校验和。为了证明这一点,让我们输入一个更长的字符串: h = hashlib.sha256(“矮矮胖胖的矮胖坐在墙上,矮胖矮胖的摔倒很大”) h.hexdigest()' 518e3f99fb2b26b4613c8597b371d11543如果您计算校验和,则总共有64个字符,但是校验和是唯一的。唯一性是哈希函数最重要的属性之一。因此,即使您计算出看起来相同的两个文件,在计算它们的数字签名或校验和时,也会发现是否存在任何差异。即使变化很小,您看不到它,哈希也不会说谎,它会告诉您差异。在第一哈希输入“ this is magic ...”中,校验和为“ 49240b3cc693fd281422bbcabb5f207ae2a390003534989fb55080799ee08d8c”。如果在句子中添加句点,则会得到另一个结果。计算: h = hashlib。 sha256(这是魔术。...‘)’ “” h.hexdigest()“ 6 c3e6636db1eb2fa8fcf8d4fdbf33bff4129ccb985c24848ef25311d506dde73”通过在字符串中添加一个额外的字符(句点),它会产生不同的哈希输出。散列输出的另一个令人着迷的特征是它在计算上是“不可能的”。返回并确定哪个输入影响了此唯一输出。即使您要求有经验的开发人员找出创建的输入值,他们也会告诉您这是不可能的。另一方面,如果您要求同一个开发人员从“这真是不可思议...”中给您SHA-256签名。字符串,他将为您提供相同的价值。事实在区块链上的安全性和有效性如何?区块链由链接的数据块组成,创建了一个链。每个块都包含多个事务或事实。该软件将计算每个块的校验和。输入到计算中的数据包含很多信息,包括