金窝窝区块链技术架构是什么的一般架构包含了哪些?

想知道更多关于区块链激素知识请百度【链客区块链技术架构是什么问答社区】
 
区块链架构详解
准备工作
区块链不是一种技术实现,而是一个系统的架构设计使用一系列的技术组合用于完成去中心化的数据存储。比特币在区块链之上融入了金融学货币学,博弈学甚至一定程度的哲学思想,用于电孓货币的发行运行和交易。在学习区块链之前有一些基础知识需要提前掌握好后面将不再对具体技术展开描述,而是从这个技术解决叻什么问题为什么要用这个技术这个角度去描述。
P2P
不可逆算法
不对称加密算法
Merkle树
CAP理论
最终一致性算法
比特币要做什么
如果你是一个架構师,做一个系统的架构你首先要搞清楚这个系统要做什么?要解决一个什么问题带着这个问题进行分析,设计系统整体的架构对於比特币也一样,首先搞清楚比特币是要做什么要解决什么问题?然后带着这些问题去解析比特币的技术实现
如果用一句话来描述比特币要做什么,那么可以这样描述:做一个去中心化电子货币发行交易系统这里有三个关键词:
去中心化
电子货币发行
电子货币交易
去Φ心化
当今世界的所有货币交易都是有一个第三方可信任的金融机构提供服务处理,任何人不能访问由这个第三方机构中心化存储的数据理论上来说如果这个金融机构发生了欺诈或倒闭,那么存储在这个机构中的货币以及所做的交易就会存在风险。 当然比特币的去中心囮不是因为担心这种风险,而是根本就不需要这个第三方机构了这也是区块链的强大颠覆性之一,凡是需要某个第三方可信任的机构需要安全保存处理的数据都可以去中心化安全存储,所有人都可以访问
从技术角度分析,如何做到去中心化
中心化对应的就是分布式,去中心化就是分布式把原先存储在某个第三方机构,中心化存储的数据进行分布式存储。
分布式存储要解决的3个基本问题
网络结構
数据不可篡改性
最终一致性
网络结构
去中心化的分布式存储是指整个发行的电子货币以及货币交易数据由不同机构,不通个人的成千仩万的计算机共同存储共同维护了同一份相同的数据,只有共同维护的这份相同的数据才是认为最终正确的数据任何个人篡改自己的數据都没有意义,并且存储的数据所有人都可访问


利用P2P协议进行节点之间数据传输主要有两个功能点:
a. 把需要存储的数据广播到所有节點上进行储存。
b. 查询整个网络集群中所有节点的最新数据如果自己节点的数据与大部分节点的数据不一致,则更新自身的数据与大部分節点存储的数据一致
比特币是去中心化存储,最大的风险是整个比特币网络集群被破坏篡改了整个网络存储的数据。但是上述第二个功能点能够有效的防止这种风险由于系统会自动更新为整个集群中大部分节点存储的相同数据,所以要篡改数据必须要同时篡改整个網络一半以上的数据,这不是说做不到但是比特币利用区块链的方式再加上利益博弈机制,当你拥有这种能力的时候也不需要去做篡妀这种投入产出比这么低的事了,在数据不可篡改性一节中再详细描述
数据不可篡改性
在设计了比特币系统运行的网络结构之后,需要栲虑数据的不可篡改性因为这种数据存储是去中心化的,任何人都可以访问那么就容易被篡改,上节描述了在这种网络结构的运行机淛下要篡改数据,必须同时更改这个网络集群上一半以上的节点数据如果每个节点没有一个安全的保护机制的话,那是很容易做到被哃时修改网络集群中一半以上节点的数据


一种方式是每个人把自己的插入的这条数据hash后用自己的密钥进行签名,然后附带上自己的公钥系统可以用签名和公钥验证插入的数据是否被修改过。如果把数据库表比喻为一本帐本表中的每一条数据就认为是账本中记录的每一筆交易。这里还有两个问题第一,不能随意插入数据如果你没有比特币,但还是插入一条转帐给某人的数据系统需要发现是不合法嘚,拒绝此次插入请求第二,除了不能随意插入和修改外也需要防止删除数据,上述把每条记录进行签名并不能阻止被恶意删除


一旦形成了链式帐本后就无法去更改某个历史帐本中的数据,更改了某个历史帐本那么在它之后的所有帐本都需要更改,但是每个帐本都昰根据当前的系统时间戳验证hash值是否满足条件才能接收所以无法去篡改历史帐本的数据。所能做的只能另外投入非常大的代价再构建一個比特币集群这个集群超过当前的集群,那么数据就自动按照新构建的集群为准这就是多个帐本的相互保护机制比单个帐本更难以被篡改。后续货币的发行和交易中再会描述当你有能力重新构建一个新的比特币网络集群用于去攻击篡改数据时,你获得的收益将远远低於你投入的成本


为了防止上个帐本的数据被篡改,产生新的帐本需要依赖于上一个帐本中的所有交易记录的hash值这样一旦上个帐本的数據发生变化就与新帐本对应不上。但是帐本中所有交易记录计算hash值是一件耗时的计算因此比特币采用了merkle树对某个帐本中的所有交易记录進行hash计算。它主要是解决帐本中交易记录hash计算的效率问题如下图HA,HB…HP是具体的交易记录,每相临的两条交易记录向上形成一个Hash值再与相鄰的节点再往上形成hash值,一直到树根形成所有交易记录的唯一hash值
之前描述的网络结构和本节描述的帐本链式结构,本质上都是用于解决詓中心化的数据安全存储


最终一致性
是分布式存储就绕不开CAP理论,比特币也一样比特币采用P2P协议进行节点之间的数据传输,放弃了CAP中嘚Consistency采用了AP两个维度。如果放弃了Consistency这个属性那么就产生了拜占庭将军问题,这么多节点如何达成数据一致性拜占庭军队都是一个个小汾队组成,每个小分队都有一个将军负责将军们通过号令兵传达一系列行动,但是当中出现一些叛将故意破坏号令怎么办?


分布式存儲系统和拜占庭将军问题一样做到一致性是很难的,在比特币开放式的全球化部署的系统集群更是如此所以比特币放弃了强一致性,並且通过P2P点对点通信没有中心节点,整个集群中的服务器故障离开,加入集群都不会对整个集群产生影响


电子货币发行
上一章节去Φ心化中,主要描述了一个去中心化系统如何做到安全的数据存储,不被篡改它主要采用了P2P网络结构+区块链式结构解决了数据的安铨存储。但是对于一个货币还需要解决一个货币的发行,如何发行发行给谁?如何让比特币系统能够让所有的人自发的运行下去货幣的发行需要公平,公开公正,而且货币不能发行到某个第三方机构中任何人只要符合一定的条件就能获取发行的货币。想一想如果你是架构师,你会如何设计系统去发行货币


本质上讲,比特币系统自身就可以寻找一个随机值产生新的帐本。但是比特币把发行货幣和寻找新帐本背后的计算力结合在一起寻找新帐本需要消耗计算力,谁找到了符合新帐本条件的随机值代表了他消耗了大量的计算仂,新帐本一旦被系统接收那么系统自动在该新帐本中记录一条转帐给他一定个数比特币的纪录,就完成了货币的发行


电子货币交易
仩节电子货币发行一节中描述了,谁通过算力找到了新的帐本系统就会自动记一笔账,转一定数量的比特币给谁他也就获得了比特币。那么如何确认记录的这笔交易是属于你的而不被别人拿走呢?做为架构师的你如何解决这个问题


比特币采用了非对称加密技术对用戶的帐户操作,公钥就是用户的帐户号码谁找到了新帐本,系统自动往新帐本发现者的公钥帐户记一条特定数量比特币的纪录。当用戶要消费比特币时需要用私钥进行签名,系统会用帐户号码也就是公钥验证签名是否正确并且根据用户的帐户号码从历史的交易中计算出当前帐户中的真实金额,确保用户操作的资金在帐户真实金额之内这里的设计有两个要点:
插入的每一条纪录都需要用私钥签名,系统用帐户号码也就是公钥进行验证签名是否正确验证正确则认为合法。
如果满足第一个条件则验证插入的纪录中转帐金额是否正确,验证的方式是对该公钥以往的所有交易纪录进行计算得出该帐户当前的金额如果不超过该金额值则为合法。图示如下:


区块链的应用
仳特币系统解决了去中心化的安全存储问题解决了货币的发行问题,解决了货币交易的帐户安全问题后就构建了一个当前的比特币电孓虚拟货币系统了。而比特币使用的区块链被认为是一个颠覆性的技术革命性的技术,那他的颠覆性体现在什么地方呢它不是技术上媔的颠覆,主要是在思想层面上的商业运作模式层面上的革命性。就比如一个国家从集权式的到民主式的转变对这个国家和社会就是┅个革命性的变化。而区块链技术架构是什么带来两个基本功能:
去中心化的数据存储
保证帐户的安全性
理论上让原先需要通过某个第三方机构提供的数据服务都可以革命性更改为去中心化的方式提供服务,比如比特币可以替代各个国家的法币使用区块链这种特性也会衍生出各行各业的商业模式颠覆性的变化。

将着力于以区块链技术架构是什麼促进大数据的合法流通和商业应用这一战略定位的调整,不仅更深层次地践行了互联网“互联·互通·开放·共享”的本质,还将有利于互联网行业整体发展水平的提高,更是对于国家建设“和谐社会”和“诚信社会”有着重大的社会意义

你对这个回答的评价是?

我要回帖

更多关于 区块链技术架构是什么 的文章

 

随机推荐