关于区块链入门的一些思考
这学期选修了区块链技术及其应用,了解了一些区块链的基础知识。现整理出一份技术总结。
1、问题引入
在分布式系统通信安全性中有一个著名的“拜占庭将军问题”。该问题为:拜占庭的一些将军出发攻打敌军。他们每个人手握一支军队(方便起见设为数量相等),分布在不同的地方扎营,彼此地位平等(即不存在相互命令)。现在的战况为:只有进攻敌人的将军数达到一定数量,才能战胜敌军,不然会战败。但是,由于每个将军都分布在不同的地方,通信只能靠传令兵,极为不方便。于是,每一位将军很自然地都会想这样一个问题:我如何信任传令兵发来的消息?如果他所在将军是叛徒,告诉我明天上午九点会有五位将军发动进攻,加上我六位,打赢妥妥的。结果明天上午我发动进攻时,发现只有我一个,那不是凉凉了,军队打光了要变光杆司令了。如果无法达成共识,即让所有参与进攻的将军都相信明天上午九点会有足够战胜敌人的将军发起进攻,那进攻将难以组织。
此问题反应了分布式系统的核心问题:在一个去中心化的分布式系统中,在没有大家都信任的一个中心的情况下,每个节点该如何信任其他节点发布的信息?信任(或者说共识)该如何达成?
2、加密算法
区块链依赖网络通信,网络通信需要考虑信息安全,即不能发送信息明文,不然被截获就暴露了,而应发送加密后的密文。
区块链中广泛使用的加密算法为非对称加密和哈希加密。
非对称加密的算法原理主要基于大质数分解极为困难,会生成一把可以发送出去的公钥(public key)和一把只能保存在自己手中的私钥(private key)。用公钥加密的消息只能用私钥解密,用私钥加密的消息只能用公钥解密,加密和解密不是一把密钥是此算法“非对称”的由来。
而哈希加密的特点则在于无法倒推,用哈希加密的消息无法解密。当消息发生了一点点变化,哈希值就会发生巨大改变。常用的哈希加密算法为SHA-256
3、共识的达成
区块链的本质是一个去中心化,高安全性,有加密的去中心化分布式系统。