区块链是如何工作的?从开发层面来解析解析

从技术上讲,区块链是在非信任对等网络中排列的一系列区块链。每个块引用前一个块,并包含数据,自己的散列和前一个块的散列。

存储在块内的数据单元可以根据区块链的类型由任何值表示。一个区块可以存储一笔钱,一个公司的份额,一张数字化的所有权证书,一次选举中的投票或者任何其他的价值。一个块存储加密的详细信息,这些加密的详细信息涉及到交互导致存储在块中的数据。一个加密货币块也包含发送者和接收者的加密标识符。例如,电子商务交易的块将包含零售商和消费者的标识符。每个块也有一个散列。这个散列是一个使用数学函数从一串文本中产生的值。散列可以与指纹进行比较,因为每个散列都是唯一的。它的作用是识别一个块和块的内容。

一旦创建了一个块,就会计算出一个散列。改变块内的东西会导致哈希值改变。所以一个散列也表示一个块的变化。

而且,每个块都包含前一个块的散列。例如,如果区块链中有三个区块,则区块3将包含区块2的散列,区块2将包含区块1的散列。

如果有人更改单个数据块中的数据,该特定数据块的散列会发生变化,但是也会导致整个链条无效。

散列是识别尝试更改块中数据的好工具。然而,单靠哈希算法不足以确保区块链的安全性。为了减轻企图破坏区块链并确保安全,区块链技术也使用了一个称为“proof-of-work”的过程。

验证工作

工作证明是生成难以获得但易于验证的数据的过程。在区块链的背景下,工作证明是关于解决数学问题的。如果问题成功解决,则可以将新块添加到区块链中。平均来说,进行工作量计算并在链上增加一个新的区块大约需要10分钟。工作证明过程的背后是什么?这个机制可以比作骰子游戏。比方说,有一个具体的数字 - 例如九个玩家需要滚动。最有可能的是,玩家需要多次尝试。但迟早他会得到九个。现在让我们添加更多的玩家到游戏中。谁先掷出正确的数字,谁就赢了。

这是有效的工作证明功能。当然,在区块链中,需要解决的问题比骰子游戏中的滚动九要困难得多,但是概念是一样的。形成区块链网络竞赛的计算机解决数学问题以获得奖励,并成为第一个将下一个块添加到链中的计算机。区块链中的数学问题必须难以解决,但容易检查,以防止作弊。哈希和工作证明机制一起确保整个区块链网络的安全。

最长的链

由于区块链由大量节点组成,因此每个区块链都同时执行工作量验证。因此,几个节点设法用有效的结果完成工作证明的情况很常见。当发生这种情况时,它被称为硬叉,它描述了区块链发生了什么 - 叉。

当新块创建并添加到这些分叉链中的一个时,它成为最长也是唯一有效的链。来自其他分叉链的块被区块链节点拒绝,并且包含在这些块中的所有交易被再次发送用于验证。

到目前为止,最长的叉子连续不超过五块。

钱包

除了散列和工作证明,区块链钱包还可以确保交易安全并防止欺诈行为。钱包生成配对的公钥和私钥,进一步确保交易的安全性。公钥可以与邮箱进行比较。任何人都可以在里面写信,但是他们不能把这封信拿回来。只有拥有私钥的邮政工作者可以打开邮箱并获得信件。这与区块链中的密钥是如何工作的相似。任何人都可以使用公钥将事务发送到接收者的地址。这类似于在邮箱中放置一封信。但只有拥有该私钥的该地址的所有者才能访问该事务的值。

分布式网络

任何人都可以加入区块链点对点网络。当某人加入网络时,此人获得区块链的完整副本。分布式存储数据以及有效的散列和工作证明机制有助于防止几乎任何欺诈行为。例如,为了添加一个包含无效散列或无效数据的块,复制一个现有的块,或执行欺诈性事务,攻击者必须破解每个区块链参与者的计算机,并在无效块中滑行。

但是,即使这是可能的,没有任何节点会验证这样的块。它会被忽略,就好像它从来没有存在过。

总结

区块链技术代表了点对点经济的下一个步骤。通过将对等网络,加密算法,分布式数据存储和分散式共识机制相结合,它为人们提供了一种方式,以便以一种安全和可验证的方式就特定事态达成一致并记录该协议。区块链仅仅是由计算机网络记录的交易的按时间顺序的数据库。每个区块链都被加密并组织成更小的数据集,称为“区块”。每个区块都包含关于一定数量交易的信息,对区块链中前一个区块的引用,以及对复杂数学难题的回答用于验证与该块关联的数据。

文章参考

Tania H.

rubygarage

astarlabs

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180106A0KV5200?refer=cp_1026

同媒体快讯

相关快讯

扫码关注云+社区