42

区块链学习记录01(6.21)

 5 years ago
source link: http://blog.sina.com.cn/s/blog_493a84550102xi8r.html?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

区块链本质上是一个去中心化的分布式账本数据库,其本身是一串使用密码学相关联所产生的数据块,每一个数据块中包含了多次比特币网络交易有效确认的信息。 从这个定义来看,需要了解清楚去中心化的概念,区块的概念,区块组合组成链条,存储的数据是账本,如何分布式存储的?存储的数据如何通过密码学进行安全保障的,双方交易的信息通过什么机制来确认有效的?

本文参考: https://www.zhihu.com/question/37290469/answer/107612456

即从定义里面拆分出来的这些内容都理解清楚后,基本才能够理解清楚区块链。以下所有的场景分析还是用A向B发起一次现金转账交易来进行说明。

去中心化: 传统转账是A通过银行转账给B,那么A和B之间的中介是银行,银行来确保交易的安全和有效性,同时防止B抵赖。而去中心化就是没有这么个信用中介机构,A和B直接进行交易完成,那么这种交易本身就是一种去中心化的交易。

那么A和B直接交易如何保证交易有效并防止抵赖?如果是传统交易,B还可以写一个签字后按手印的收条,A拿到收条后可以防止抵赖,毕竟签名和指纹很难进行伪造。但是如果是网络交易,那么B就很难进行签名或按指纹这种操作,这个来确保交易有效和防止抵赖就很重要了。

去中心化是区块链技术的颠覆性特点,它无需中心化代理,实现了一种点对点的直接交互,使得高效率、大规模、无中心化代理的信息交互方式成为了现实。在去中心化以后,整个系统中没有了权威的中心化代理,信息的可信度和准确性便会面临问题。

其一:由于去掉了中介方,在A和B双方通信的情况下,完全可能出现A说转账了,B说每收到这种情况,双方各执一词,这个时候各有个的证据和说明,那么如何判断究竟谁说的对?其二:在一个去中心的系统中,有可能出现节点坏掉,那么节点就会传输坏的信息,如何确保信息传输的准确性?

最简单的去中心化系统和分布式账本

比如A向B转账100块钱,首先是A和B相互确认了,即A确认已经转钱,B确认已经收到,那么这个时候A和B直接的转账100块前的交易就是成立的。即A向B转账了100元,就是我们说的账本里面的一条数据。这个数据就要通知到另外的100个人或者更多人。这100个人都在自己的账本里面记录了A向B转账了100元钱,那么这个时候B如果还想抵赖就很困难了。

注意刚才的一条账本数据,在所有100个人的账本里面都会记录,而没有一个集中化的数据库,因此是一个典型的分布式账本数据库。每个账本都是一套完整的数据。

区块和区块链

如果对于A和B每个人都维护有一个账本,一个账本是一个区块的话,那么区块链是如何的?任何一次交易都涉及到A和B双方,比如A转账给B了100块钱,那么账本就会记录下来A转给B了100元钱。但是A的这100块前哪里来的?可能是C转给A的钱。因此任何一笔当前的交易,我们还需要去维护这个交易的上次交易是如何的 (任何一次交易都必须有输入和输出两部分信息以方便追溯) ,这样就将交易过程完全串联起来,形成一个链状结构。

刚才谈到A转给B了100块钱,100个人的账本都进行了记录并认可了这笔交易,但是是否真正A转给B了100块钱已经不重要,或者是这100块钱可能是一个虚拟的货币,这可以看做是比特币的原型。但是这个虚拟的货币如何产生的,即涉及到比特币里面常说的挖矿。

即当A和B发生交易后,首先监听到这个交易日志,并进行了账本记录的人就是成功挖矿的人,这个人再将这个账本数据和交易记录在整个分布式账本中进行传递。而第一个记账的人本身也可以得到相应的奖励。而如何确保你能够最快监听到?那么就涉及到你电脑或服务器的性能,而影响最大的就是GPU性能,即我们经常说到的专门挖矿的服务器(矿机)。

注意对于A和B交易的过程,交易账本记录,如果是C首先挖矿到这个记录,那么其他人就都没有记这第一笔账的权力,只有等C记录账后,将账本的副本进行传递并接受副本信息的权利。

对于C发出的副本信息,给到其他的100个人,那么这100个人如何来检验C发出的副本信息是有效的?这个就一个信息有效性的校验标准,如果校验通过后,那么这100个人就需要停止正在进行的挖矿行为,同时将该条账本的账本的副本信息追加到自己的区块链末尾。

6beeU3J.jpg!web

上图就是从无数打包进区块内的小纸条中,抽取出来的一张,以及它最终被格式化后的缩影。单看右侧的图可能很容易产生误会,虽然看起来有多行,但实际上就是“盗盗转账给张三40个比特币”这一条交易数据另外的一种呈现形态。 因为区块链世界里面这么规定,每一条交易记录,必须有能力追溯到交易发起者 发起这笔交易、其中所涉及金额的上一笔全部交易信息;即这笔钱从何而来的问题(即任何一笔交易,都包含了输入和输出)。 这其实很容易理解,在去中心化的网络中,通过建立交易链、和通过交易链上的可溯源性间接保证数据安全和有效。

这条内部重新处理过的复杂交易记录被塞进区块,埋到地下,等待节点挖出来,一旦区块被挖矿成功,并且该区块最终被连在了区块链的主链上。张三将最终拥有了这条交易记录,而先前的“小A转账给盗盗10 btc” 、“小B转账给盗盗20 btc” 、“小C转账给盗盗25 btc”都将被视为已经使用过的交易记录——从此被贴上“无效”的标签,意味着这些交易记录将永远不会再被追溯到。

我们最后一次重申,只是希望让你加深印象: 拥有数字货币=拥有交易记录!

数据加密存储

对于A转账给B了100块钱,这个交易信息在传递的时候需要进行加密存储,而这个加密只有A和B各自手里面的钥匙才能够解开。既然涉及到加密,就涉及到密码学和加密算法,涉及到公钥和私钥的问题。即一般说的用公钥进行加密,但是只能用私钥才能够解密。

对于数据加密存储和密码方面内容,将在后续进一步学习和理解。

今天上面的内容核心仍然是要理解区块链本身就是一个去中心化的分布式账本数据库,这个理解清楚了再去理解整个分布式账本如何形成并形成链状结构,同时传递的交易信息如何确保有效,如何确保安全。这些都理解清楚基本的区块链即理解清楚。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK