武汉区块链软件技术公司:区块链
区块链的定义
那么区块链的准确定义是什么呢,1316---131---7192简单归纳下:区块链是一种分布式数据库技术,通过维护数据块的链式结构,可以维持持续增长的,不可篡改的数据记录。当然笔者觉得维基百科这个释义是有些问题的,因为它更多的是强调区块链作为数据库的属性,而没有点明其核心价值,即以去中心化的方式解决多方互信和价值转移的问题。个人认为更好的定义应该是这样:区块链是一种去中心化的价值传输协议,通过共识来验证并记录数据,具有信息透明、可溯源和不可修改的特点。它由一系列技术组合而来,是制造信任、转移价值的底层基础设施。
区块链的核心技术
比特币的技术原理,实际上也就是区块链的技术原理。区块链的核心技术包括:块链数据结构、分布式存储、非对称加密、共识算法、
P2P网络、智能合约等。可以简化并抽象成五层技术架构。
块链数据结构:将数据存储在一定容量的区块中,每个区块分为区块头和区块体
(含交易数据)两个部分。区块头中包括前一区块的哈希值(PrevHash)和用于计算挖矿难度的随机数(Nonce);区块体则包含经过加密的具体交易信息。通过头哈希和时间戳将区块首尾连接起来,形成链条式的结构。分布式存储:网络中的每个节点都可以(不是一定)选择存储完整的数据,并依据
区
块情况对节点本地数据进行实时更新。
避免了中心化存储带来的安全和单点崩溃问题,同时结合共识机制来保证数据的一致性。非对称加密:包含两个密钥:公钥
(publickey)和私钥(privatekey)。它们是成对存在的。公钥用来对数据进行加密和验签,私钥用来对数据进行解密和签名;一般公钥是公开的,私钥是自己保存,相对了传统的对称加密而言更具有安全性,是一种高级加密方式,常见的有RSA、ECDSA等。P2P网络:负责交易数据的网络传输和广播、节点发现和维护。网络中没有客户端或服务端的概念,只有平等的同级节点,每个节点既是客户端也是服务端。
信息会由发起节点开始向临近节点进行广播,收到信息的节点又会进行转发,从而实现指数级传播到全部网络节点。共识算法:也叫共识机制,主要用来解决各节点数据一致性和有效性问题。通过一套大家认可的验证方式对网络中的交易进行验证,验证通过后交易方可生效。同时也普遍作为发行
Token的一种机制,常见的有POW、POS、DPOS、PBFT等算法。 智能合约:指的是一段写在区块链上的代码,一旦某个事件触发合约中的条款,代码即自动执行。其保证在没有第三方的情况下让参与方履行承诺(交易),履约过程是完全自动且不可逆转的。
区块链的分类
目前区块链主要可以分为三类,即公有链、联盟链和私有链。这是根据其开放
(去中心化)程度来进行划分的,也是被大多数人认可的。
公有链:对所有人开放,任何人都可以参与的区块链,完全去中心化不受任何机构控制。其应用场景十分广泛,目前比较成熟的落地项目就是数字货币。
联盟链:被多个组织或个人构成的联盟控制,由指定节点进行共识验证的区块链,属于多中心化模式。主要应用于行业内多个机构之间的业务流转,例如供应链金融、商品溯源等。私有链:完全被单独的个人或某个组织控制记账权限的区块链,属于完全中心化模式。主要应用于企业内部的审计和数据管理等场景。
为什么会演变出上述的三种链,这里就不得不提到区块链领域的三元悖论
(类似于蒙代尔三角),即区块链不可能同时满足去中心化、安全、高效这三个特性。必须弱化一者才能满足其它两点特性,而安全又是必须得到满足,于是人们只能在去中心化和高效当中进行取舍,逐步分化出了这三种类型的区块链。公有链实现了完全的去中心化和安全,所以性能上就比较差;联盟链为了商业应用,在安全的前提下要大幅提高性能,就不得不通过一个多中心授权的方式来管理节点,以提高共识效率,实现了多中心化;私有链考虑到内部使用的特点,把安全和效率做到了极致,所以必然依赖单个中心进行处理,实现了完全中心化。当然随着区块链技术的不断发展,三元悖论或许有被打破的可能,值得期待。