我在做一个区块链项目这件事上, 已经干了三年了, 我看到了不少方案书把去中心化这个概念当口号来喊, 也看到了不少方案书把不可篡改这个概念当口号来喊, 但是这些方案书并没有讲清楚底层的技术到底是怎么跑通的, 所以我在这里直接说一个结论, 我认为区块链的技术特性不是什么玄学的东西, 它其实就是密码学和分布式系统的工程组合。
关于共识机制, 它负责确定谁有资格进行记账的操作, 而链式结构则确保了数据一旦上了链, 就会接受全网范围内的验证, 如果我们能够把这两点内容彻底地弄清楚, 理解透彻, 那么对于区块链的大部分其他特性, 我们自然就可以把它们串联起来, 形成一个完整的认知。
区块链凭什么去中心化
没有中心节点, 并不代表意味着不存在规则。每一个计算节点都会运行同一套共识算法, 这种算法的典型例子是PBFT。在产生新的区块之前, 必须获得超过总量三分之二的有效签名。
这不叫做没有人进行管理, 而是所有参与者共同进行管理。原本由单一家机构承担的管理成本, 现在被分摊到了众多节点之上。与此同时, 没有任何一个单独的主体能够独自篡改账本数据。

在进行实际的落地执行工作的时候, 纯P2P全节点共识机制因为导致延迟过高的问题而出现弊端, 因此许多联盟链会选择退一步进行妥协处理, 具体做法是选取十个被授权的节点来运行Raft算法, 同时在对外的表现形式上保持无单一控制方的架构特征, 去中心化程度实际上更像是一根可以随意调节的滑杆, 而不是那种非黑即白的开关状态, 需要根据业务场景选择适合的粒度水平这种做法比盲目追求绝对去中心化的理念要更加符合实际情况也更具务实精神。
区块链数据为何改不了
每一块数据的开头, 都存在着前一块的哈希值。只要你去改动哪怕一个字节, 后面的那些哈希链接就会被立刻切断。从理论上来说, 你是可以进行暴力重算的。可是计算能力的需要随着链条的长度呈现出指数级上升的趋势。等到变得有一定的规模之后, 在经济方面就完全没有什么可能性了。经济上完全不可行。
所以, 就别一直在那个“能不能修改”上面去纠结了, 真正应该去问的一个问题其实是, 这个改动的成本最后到底是由谁来承担的那一边。
然后, 51%攻击这件事儿的实质内容, 它压根就不是在说修改数据这件事儿,它实际上是在做回滚交易那个事情, 从本质上来讲, 这个过程就是在拿自己去跟全网总算力进行一个赛跑的动作, 至于说赢面怎么样, 其实是非常小的, 而且所付出的代价是远远超过了所带来的收益的。
这些特性从来都不是孤立的卖点, 它们都是互相咬合在一起工程约束。在进行选型工作之前, 把那些已经明确的约束条件都画成图表弄明白清楚, 这种做法比起去追逐那些新的名词要更有用处得多。
