REDBI带你了解区块链的核心技术
首先我们来看看区块链三个字的来源,如果我们想要建立个严谨的数据库问题,用区块链的办法是:将数据库的结构进行创新,把数据分成不同的区块,每个区块通过特定的信息链接到上一区块的后面,前后用这样的方式顺连来呈现一套完整的数据,这就是“区块链”三个字的来源。
区块(block):在区块链技能中,数据以电子记载的方式被永久贮存下来,寄存这些电子记载的文件咱们就称之为“区块(block)”。区块是按时刻次序一个一个先后生成的,每一个区块记载下它在被创立期间发作的一切价值交流活动,一切区块汇总起来构成一个记载合集。
区块结构(BlockStructure):区块中会记载下区块生成时刻段内的买卖数据,区块主体实践上就是买卖信息的合集。每一种区块链的结构设计可能不彻底相同,但大结构上分为块头(header)和块身(body)两部分。块头用于链接到前面的块并且为区块链数据库供给完好性的确保,块身则包含了经过验证的、块创立过程中发作的价值交流的一切记载。
区块结构有两个非常重要的特色:榜首,每一个区块上记载的买卖是上一个区块构成之后、该区块被创立前发作的一切价值交流活动,这个特色确保了数据库的完好性。第二,在绝大多数情况下,一旦新区块完结后被加入到区块链的终究,则此区块的数据记载就再也不能改动或删去。这个特色确保了数据库的谨慎性,即无法被篡改。
望文生义,区块链就是区块以链的方法组合在一起,以这种方法构成的数据库咱们称之为区块链数据库。区块链是体系内一切节点同享的买卖数据库,这些节点依据价值交流协议参加到区块链的网络中来。
区块链是怎么做到的呢?因为每一个区块的块头都包含了前一个区块的买卖信息压缩值,这就使得从创世块(榜首个区块)到当时区块联接在一起构成了一条长链。因为假如不知道前一区块的“买卖缩影”值,就没有方法生成当时区块,因而每个区块必定按时刻次序跟随在前一个区块之后。这种一切区块包含前一个区块引证的结构让现存的区块调集构成了一条数据长链。“区块+链”的数据存储结构如下图所示。
咱们引证《区块链:互联网金融的终局》(肖风)的一段话来总结区块链的根本结构:“人们把一段时刻内生成的信息(包含数据或代码)打包成一个区块,盖上时刻 戳,与上一个区块联接在一起,每下一个区块的页首都包含了上一个区块的索引数据,然后再在本页中写入新的信息,然后构成新的区块,首尾相连,终究构成了区块链。”这个结构的奇特之处:区块(完好前史)+ 链(彻底验证)= 时刻戳
“区块+链”的结构为咱们供给了一个数据库的完好前史。从榜首个区块开端,到最新产生的区块为止,区块链上存储了体系悉数的前史数据。
区块链为咱们供给了数据库内每一笔数据的查找功能。区块链上的每一条买卖数据,都能够经过“区块链”的结构追根究底,一笔一笔进行验证。
区块+链=时刻戳,这是区块链数据库的最大创新点。区块链数据库让全网的记载者在每一个区块中都盖上一个时刻戳来记账,表明这个信息是这个时刻写入的,构成了一个不行篡改、不行假造的数据库。咱们以为,时刻戳是区块链中一项伟大的技能创新,它能够证明什么呢?
中心技能2:散布式结构——开源的、去中心化的协议
咱们有了区块+链的数据之后,接下来就要考虑记载和存储的问题了。咱们应该让谁来参加数据的记载,又应该把这些盖了时刻戳的数据存储在哪里呢?在现如今中心化的体系中,数据都是会集记载并存储于中心电脑上。可是区块链结构设计精妙的当地就在这儿,它并不附和把数据记载并存储在中心化的一台或几台电脑上,而是让每一个参加数据买卖的节点都记载并存储下一切的数据。
1.关于怎么让一切节点都能参加记载的问题,区块链的方法是:构建一整套协议机制,让全网每一个节点在参加记载的一起也来验证其他节点记载结果的正确性。只要当全网大部分节点(或乃至一切节点)都一起以为这个记载正确时,或许一切参加记载的节点都比对结果一起经往后,记载的真实性才干得到全网认可,记载数据才答应被写入区块中。
2.关于怎么存储下“区块链”这套谨慎数据库的问题,区块链的方法是:构建一个散布式结构的网络体系,让数据库中的一切数据都实时更新并寄存于一切参加记载的网络节点中。这样即使部分节点损坏或被黑客进犯,也不会影响整个数据库的数据记载与信息更新。
区块链依据体系断定的开源的、去中心化的协议,构建了一个散布式的结构体系,让价值交流的信息经过散布式传达发送给全网,经过散布式记账断定信息数据内容,盖上时刻戳后生成区块数据,再经过散布式传达发送给各个节点,完结散布式存储。
散布式记账——管帐职责的分散化(Distributedaccountability)
从硬件的视点讲,区块链的背面是大量的信息记载贮存器(如电脑等)组成的网络,这一网络怎么记载发作在网络中的一切价值交流活动呢?区块链设计者没有为专业的管帐记载者预留一个特定的方位,而是期望经过自愿准则来树立一套人人都能够参加记载信息的散布式记账体系,然后将管帐职责分散化,由整个网络的一切参加者来一起记载。
区块链中每一笔新买卖的传达都选用散布式的结构,依据P2P网络层协议,音讯由单个节点被直接发送给全网其他一切的节点。
区块链技能让数据库中的一切数据均存储于体系一切的电脑节点中,并实时更新。彻底去中心化的结构设置使数据能实时记载,并在每一个参加数据存储的网络节点中更新,这就极大的提高了数据库的安全性。
经过散布式记账、散布式传达、散布式存储这三大“散布”咱们能够发现,没有人、没有安排、乃至没有哪个国家能够控制这个体系,体系内的数据存储、买卖验证、信息传输过程悉数都是去中心化的。在没有中心的情况下,大规模的参加者达到一致,一起构建了区块链数据库。能够说,这是人类前史上榜首次构建了一个真实意义上的去中心化体系。乃至能够说,区块链技能构建了一套永生不灭的体系——只需不是网络中的一切参加节点在同一时刻团体溃散,数据库体系就能够一向工作下去。
咱们现在已经有了一套谨慎的数据库,也有了记载并存储这套数据库的可用协议,那么当咱们将这套数据库运用于实践社会时,咱们要处理最中心的一个问题(问题三)是:怎么使这个谨慎且完好存储下来的数据库变得可信赖,使得咱们能够在互联网无实名布景下成功避免诈骗?
中心技能3:非对称加密算法
什么对错对称加密?简略来说,它让咱们在“加密”和“解密”的过程中分别运用两个暗码,两个暗码具有非对称的特色:(1)加密时的暗码(在区块链中被称为“公钥”)是揭露全网可见的,一切人都能够用自己的公钥来加密一段信息(信息的真实性);(2)解密时的暗码(在区块链中被称为“私钥”)是只要信息具有者才知道的,被加密过的信息只要具有相应私钥的人才干够解密(信息的安全性)。
简略的总结:区块链体系内,一切权验证机制的基础对错对称加密算法。常见的非对称加密算法包含RSA、Elgamal、D-H、ECC(椭圆曲线加密算法)等。在非对称加密算法中,假如一个“密钥对”中的两个密钥满意以下两个条件:1、对信息用其间一个密钥加密后,只要用另一个密钥才干解开;2、其间一个密钥揭露后,依据揭露的密钥他人也无法算出另一个,那么咱们就称这个密钥对为非对称密钥对,揭露的密钥称为公钥,不揭露的密钥称为私钥。在区块链体系的买卖中,非对称密钥的根本运用场景有两种:1、公钥对买卖信息加密,私钥对买卖信息解密。私钥持有人解密后,能够运用收到的价值。2、私钥对信息签名,公钥验证签名。经过公钥签名验证的信息确以为私钥持有人宣布。
中心技能4:脚本
脚本能够理解为一种可编程的智能合约。假如区块链技能仅仅为了习惯某种特定的买卖,那脚本的嵌入就没有必要了,体系能够直接界说完结价值交流活动需求满意的条件。但是,在一个去中心化的环境下,一切的协议都需求提前取得一致,那脚本的引进就显得不行或缺了。有了脚本之后,区块链技能就会使体系有机会去处理一些无法预见到的买卖形式,确保了这一技能在未来的运用中不会过时,增加了技能的实用性。
一个脚本本质上是很多指令的列表,这些指令记载在每一次的价值交流活动中,价值交流活动的接收者(价值的持有人)怎么取得这些价值,以及花费掉自己曾收到的留存价值需求满意哪些附加条件。一般,发送价值到目标地址的脚本,要求价值的持有人供给以下两个条件,才干运用自己之前收到的价值:一个公钥,以及一个签名(证明价值的持有者具有与上述公钥相对应的私钥)。脚本的奇特之处在于,它具有可编程性:(1)它能够灵敏改动花费掉留存价值的条件,例如脚本体系可能会一起要求两个私钥、或几个私钥、或无需任何私钥等;(2)它能够灵敏的在发送价值时附加一些价值再搬运的条件,例如脚本体系能够约定这一笔发送出去的价 值今后只能用于付出中信证券的手续费、或付出给政府等。