从事了十五年的分布式系统工作, 并且与区块链领域进行了无数次的交互接触。说得直白一些, 区块链算法的核心内容主要包含三个方面: 第一是如何在记账的过程中避免发生数据造假行为;第二是如何使得一群参与者在不依赖任何中间商的情况下也能够达成一致的共同意见;第三是如何将整个账本锁定从而保证数据无法被修改。
这件事并没有那么神秘或者高深, 从本质上来讲, 它是一套结合了数学验证过程以及密码学握手协议的组合式措施。
区块链算法到底啥
哈希函数充当了基础性的地基角色, 针对每一笔交易, 它都会将其压缩成为长度固定的指纹状数据, 当这个指纹里仅仅发生一个字节的内容改变时, 整体的指纹就会呈现出全面变化的状态, 这正是账本一旦产生之后篡改成本极其高昂的原因所在的情况, 随后再加上Merkle树的辅助作用, 将成百上千份交易资料进行层层汇总最终形成根节点, 以此使得验证效率的实现从需要检查所有数据的O n复杂度直接下降至仅需对数级时间的O log n复杂度。
真正让人感到头疼的, 是共识算法这一块内容。PoW这种方案是通过挖掘nonce值来消耗算力并拼凑计算能力的总和。PoS这种机制则是通过进行资产质押来参与竞争权重的大小。
PBFT这类协议则需要依靠进行多轮次的投票动作来达成共识以获取同意。在选择使用哪一种方式的时候, 这完全取决于你究竟是更看重抗审查性这个属性, 还是更关注吞吐量以及运行效率的表现, 目前是不存在所谓的万能解决方案的。
区块链算法怎么运转
让整条链都转起来, 节点收到了新的块, 在验完签名之后, 查过哈希链接对不对, 就会把新块广播给所有人。这里面的数字签名用的是那个叫secp256k1的椭圆曲线, 只要私钥不小心泄露出来, 整个系统全完了。

每一个区块里都带着前一个块的哈希, 这就像牵一发动全身那样, 想要去改掉历史数据的话, 就必须往后重算所有的块, 如果没有足够的算力, 就别惦记着能改得动。
当我在带领新人进行相关工作时, 我总会向他们强调这样一个观点, 那就是大家千万不要把区块链技术想象成某种具有颠覆性质的革命性事物, 实际情况往往非常清晰,它就是一群人中的工程师们, 将这些关于密码学的教材内容直接搬运到了工程项目之中, 接着又为这些工程项目套上了一层属于去中心化的外壳。
如果你能够真正看懂这一层外壳的存在与意义, 就会发现其背后的核心算法本身并没有那么多的神秘色彩需要去探究。
转载请注明出处:枣强文明网,如有疑问,请联系()。
本文地址:https://www.zqwxw.com/imqb/9938.html
