区块链的工作原理
区块链的核心部分就是挖矿算法,接来下我们就以比特币的算法为例。它被称为 SHA-256,也就是“256 位安全散列算法”的缩写,它可接受任何内容的输入,包括文本、数字,或者任何长度的计算机文件。而产生输出称为“哈希”,且每次长度都相同为 256 位机器代码。
同样的输入将得到同样的输出,并不会随机。但如果你对输入进行了微小的改变,则输出会完全不同。
而且该算法也被称为单向函数,这就意味着你不能根据输出来计算出输入。你只能对输入进行猜测,然而你猜对的几率是 2^256 分之一,这几乎是不可能的,换句话该算法是安全的。
现在我们已经知道什么是算法,那接下来我们就用一个简单的交易示例来演示区块链是如何运行的。
现有 Alice 和 Bob 两个人,且我们知道他们俩的比特币余额。我们假设 Alice 欠 Bob2 个比特币。
Alice 如果想要向 Bob 发送那两枚比特币,则 Alice 需要向网络中的矿工们广播她想要进行交易的消息。
在广播中,Alice 将 Bob 的公共地址、她想要发送的比特币数量,以及数字签名和她公钥提供给矿工们。该签名是通过 Alice 的私钥生成的,由此矿工们就可以验证那些比特币是属于 Alice 的,且她也想要进行交易。
一旦矿工确定该交易是有效的,则他们就会将该交易与其他交易一起纳入到区块中,并尝试对该区块进行挖矿。且区块中的这一输入是通过 SHA-256 算法来完成的。而输出则需要从具体的 0's 数值开始,以便才能被认为有效。具体 0's 的数值则将根据所谓的“difficulty (难度)”来决定,而“difficulty”也将根据网络中的计算能力进行更改。
想要根据最开始要求的 0's 数值来生成输出哈希值,矿工则需要在区块中添加一个“noncee number (随机数)”。由于输入的很小改变会完全更改输出,所以矿工要不断随机 nonces,直到找到一个有效的输出哈希值为止。
如果该区块已经被挖掘,则该矿工就会向其他矿工们广播该新的已被挖掘的区块。之后矿工们就开始检查该区块以确保是有效的,之后再将该区块添加到他们的区块链副本中,至此交易就完成了。并且矿工也需要在已完成的区块中纳入前一区块的输出哈希值,以此才能使得所有的区块都相互连接,而区块相互链接的线性链也就被命名为区块链。因为系统是基于信任工作的,所以这一过程尤为重要。
每一位矿工的电脑上都有他自己的区块链副本,且所有人都相信投入计算工作最多的区块链,就将成为最长的区块链。如果一位矿工更改了之前区块中交易,则该区块的输出哈希值也将改变,而这就导致了其后的所有哈希值都会改变(因为区块是通过哈希值链接的)。该矿工就不得不重新开始所有的工作,以便于其他人接收到正确的区块链。因此,如果一位矿工想要作弊,则他的算力就必须要超过网络计算能力的 50%,这几乎是不可能的。而网络中类似的攻击也就被称为 51% 攻击。
为了生成区块而使计算机运行的模式被称为工作量证明(PoW)。也存在其他模式列入权益证明(PoS),而该模式下则不需要太多的计算能力,这就意味着只需要相对较少的电力,并且该模式也将扩展到更多的用户。
以上就是区块链的基本原理!
- 免责声明
- 世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
- 风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
- 世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。