区块链之理论基础

      区块链技术是在比特币Bitcoin)诞生的同时诞生的,应该这么说,在“中本聪”设计比特币系统的时候采用了某种设计思想,这种设计思想被我们称为“区块链(Block Chain)”。区块链不是一门编程语言,而是一种需要使用语言表达出来的技术方案(或者说思想)。区块链有一个特性就是“去中心化”,即没有所谓的中心,整个区块链是分布式存储在互联网中的若干个节点上的,并且每个节点都拥有一个完整的区块链副本,这样做有什么好处呢?其一是如果某个节点发生故障,其余节点可以正常提供服务保证程序的正常执行。其二是这样可以保证数据的高安全性和高可靠性,因为对区块链中的某个区块的数据修改并不是单纯对单一节点中的数据做修改就可以的,只有互联网中相同区块链数据的占大多数的节点的数据才会被承认为有效数据,因此如果想要修改数据,需要对大多数节点的数据同步做修改,否则的话单一节点数据的修改是没有任何意义的。借助这个特性区块链产品可以将副本保存于互联网中若干可信节点,如:第三方安全机构等。
      在比特币系统中的货币交易点对点进行的,即没有任何第三方机构介入,完全是2个用户的直接交易行为(就好像现实中两个人现金交易一样,没有借助任何的第三方)。像:支付宝、微信、网上银行等都属于第三方机构,因为我们的货币是以数据的形式保存在这些第三方机构的数据库中,如果要实现转账功能的话操作的就是这些机构内部的数据库,一方加一方减,就实现了一次转账的操作。在区块链交易系统中,要产生交易,就需要有账户;因为没有第三方机构,所以账户可以自己创建(账户的创建其实是生成一对公钥和私钥)。账户有了,就会想到挖矿和转账。挖矿其实就是拼计算机的算力,挖矿的实质就是在一段代码中不断地用一个随机值去测试,如果测试出随机值经过一系列运算后能满足我们的要求,那么就有机会被认为你成功挖矿(因为可能在同一时刻有互联网上的其他节也算出这个随机值),这时候你们就得看运气了,你们的挖矿信息会被构建成一个区块接入区块链中(区块链从结构上看就是若干个区块构成的链表),后续新的区块会随机在你们这些同时接入区块链中的区块进行选择,一旦选择了某一个区块,那么另一个分支将会被舍弃。转账就是2个账户之间的货币交易了。总之,账户内的货币要么来自挖矿奖励,要么来自其他账户的转账。
      区块链的简单结构:
在这里插入图片描述
      区块链的第一个区块被称为“创世纪块(genesis block)”,每个区块中都存有当前区块的Hash值(这个hash是根据当前整个区块内的所有数据算出来的,为的是后面可以检测区块中信息是否发生篡改),除了创世纪块之外所有的区块都有一个前驱Hash,即指向前一个区块的Hash,这个前驱Hash就是前一个区块的当前Hash。这个Hash我们也称作:Hash指针,前面我们说区块链是由若干区块构成的链表,实际上它并不是一个普通的链表。将区块链和链表对应,区块和链表中的节点对应。我们都知道链表中的节点(除最后一个节点外)都有一个指向下一个节点的指针(这里只考虑单链表),这个指针存的是下一个节点的地址,仅此而已,就算是你对某个节点做了修改,只要地址不变,对于其他节点而言都不会有任何影响。但是区块链不同,每个区块中都存有前一个节点的Hash值(创世纪块除外),我们称为前驱Hash,它是指向前一个区块的Hash指针(这里说的指针是指可以通过这个Hash值有指向性地找到前一个区块,并非说它真的是一个指针类型)。这个Hash指针是由前一个区块中所有的信息共同进行Hash运算得出的结果,因此如果某一个区块的数据发生了篡改,那么它本身Hash出来的结果和其下一个区块保存的前驱Hash肯定是对不上的,这样的话我们就认为这个区块的数据发生了篡改。假设说这个数据修改是合法的,那么就会引发“多米诺骨牌效应”:从

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值