We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
博客停更已经一阵子了,原因林林总总,从毕业到搬家,人生踏入了另一段旅程。今天我们的话题聊一聊区块链。这是我与我毕设相关的主题。大家对于区块链的争议,似乎一直存在。币圈那些陈谷子的事情,影响着区块链的发展。目前,众多区块链团队中,真正在研究区块链应用场景的,少之又少,同样能让区块链应用落地,也需要时间。但是,区块链技术的出现,可以说是一个金融领域和互联网领域的一个里程碑。下面我们来聊聊区块链技术吧。如果你喜欢我的文章,欢迎评论,欢迎Star~github博客
其实,早在比特币大火之前,我就听说过区块链(看过一篇公众号讲述区块链与人才链之间的相关性)。当初,对于区块链的理解,并没有特别深刻,同时也毫不在意。在经济社会中,资本已经能够推动技术的发展了。直到比特币大火时,才对区块链技术感到一丝兴趣。
看过比特币的白皮书,发现区块链技术是比特币的一个基础。同时,毕业设计选择的主题也是与区块链相关的方向,所以,在此聊聊区块链。
简单来说,区块链就是一个分布式的账本,或者说分布式的数据库。这个数据库可以同步到节点网络中的每个节点。用阮一峰老师博客中的一张图来形容,如图:
这种图中,我们可以看到,之所以说是去中心化,是因为在整个节点网络中,每个节点都是参与者,每个节点都能够进行数据处理的操作,并没有一个统一的中心化服务器来进行业务处理。然后,每个节点处理的结果会被传播到整个网络中去,来同步全部的网络。
区块链的英文比较有意思,叫做blockchain。我们可以将blockchain拆分开来看就是block+chain(块+链)。所以,我们可以先来了解一下区块的内容。
区块是什么?区块就是一个类似于数据库的东西,用来记录数据的地方。所以,每次系统写入数据时,都会创建区块。
下面,我们来看一下一副区块的实例图,如下:
这里开头有个Previous Hash就是用来记录上一个区块的Hash值的。这样就可以上一个区块和下一个区块连接起来。
同时,它也记录了区块的时间和区块内部的Data。Hash值,就是一种加密后得出来的字符串。Hash是一种单向加密,现实中很少出现Hash碰撞的事件。一般而言,Hash值的破解只能使用只能使用彩虹表等手段才能达到。其本身的安全性就是相对一般的加密方法要高的。我们会接触到的Hash加密有MD5加密、SHA128和SHA256。目前而言,SHA256是很难破解的。
说了这么多Hash相关的内容,回过头来说一下Block。我们可以来看一下,实际的一些Block表内容,如图:
这是一个测试网络的区块列表,我们可以看到它的block ID就是一个hash值。同时,它具备高度等特殊字段,来记录整个区块的内容大小。
了解了区块之后,我们来看一下区块链的形成。
拿比特币举例,交易比特币的过程就是,区块形成的过程。区块的建立,就像账本的数据一样,有了数据就有了区块。同样的,生成区块的过程会产生一定的奖励。下面生成的区块会连接上一个区块的hash,这样可以保证整个区块链的不可更改性。如图所示:
如果黑客修改了第51块的内容,那么他就必须修改52块中51的Hash值。同时,修改了52的内容,导致了52本身的Hash值发生了变化。所以,这就导致了一系列的连锁反应。同时,区块链会往整个网络广播整个过程。这样,网络节点中的每个节点都会收到改变,改变自身的区块内容。
这样的设计,可以保证整个网络中的内容没有办法被外力而改变。这也说明整个网络是安全的。那么什么是51%的攻击呢?
我们来举个例子:
假设我具备了全网51%的算力,那么,我可以偷偷的计算出一个这样的区块链,包含我所有的比特币交易到我的私人账户的信息。这个区块链的长度为10,但是我不向全网进行广播。同时,我将所有的比特币放入到交易市场进行售卖。这笔交易记录在正常的区块链中。
当我交易所得美元进行提取时,正常的区块链长度应该是9。而我的隐藏的区块链长度是10,同时,将这个区块链广播到网络中去,然后通过观察网络会认为我后发的区块是正确的,从而到达修改了那笔交易记录的目的。
之后,就是双花问题的解决了。
何为双花问题?从表意上来说,就是一个人在同一时间进行了两笔交易。这个问题,一直是支付系统的难点。无论是中心化的支付系统,还是去中心化的交易系统,都得面对这个问题。举个例子:
某某人,手里有20块钱。他同时与两个人进行了一笔20块钱的交易。现实生活中,你可以明确地发现问题。但是,相对于支付系统而言,并发的情况经常发生。一旦一个不完善的支付系统,双花问题是很容易发生的。当然,后端处理过程中,可以通过队列的形式来解决问题。但是,对于去中心化的交易系统而言,这个问题也需要解决。
每一笔交易的产生,都会产生一个区块,那么,往往会发现这么一种情况,如图:
我们可以看到,Block A和Block B就会同时去连接上一个区块。那么,相对于这个问题,比特币系统采用的规则就是选最长的那条链。通常,比特币采用的是6次确认规则。在1小时内,根据10分钟产生一个区块的原则,往往会生成一条6个长的区块。那么,只要确认下这条区块,就可以避免去连接其他区块了。
理论上是,区块链越长,准确性越高。
#总结
相对于中心化的高成本的方式,区块链技术可能是一种解放生产力的技术。当然了,区块链的实际落地场景并不多,比特币是为数不多的,真正落地的应用。作为一名开发者,我相信区块链的未来。这篇内容中,我们讲述了:
最后,希望大家能够对区块链感兴趣。
如果你对我写的有疑问,可以评论,如我写的有错误,欢迎指正。你喜欢我的博客,请给我关注Star~呦github博客
欢迎订阅微信公众号
The text was updated successfully, but these errors were encountered:
No branches or pull requests
前言
博客停更已经一阵子了,原因林林总总,从毕业到搬家,人生踏入了另一段旅程。今天我们的话题聊一聊区块链。这是我与我毕设相关的主题。大家对于区块链的争议,似乎一直存在。币圈那些陈谷子的事情,影响着区块链的发展。目前,众多区块链团队中,真正在研究区块链应用场景的,少之又少,同样能让区块链应用落地,也需要时间。但是,区块链技术的出现,可以说是一个金融领域和互联网领域的一个里程碑。下面我们来聊聊区块链技术吧。如果你喜欢我的文章,欢迎评论,欢迎Star~github博客
正文
其实,早在比特币大火之前,我就听说过区块链(看过一篇公众号讲述区块链与人才链之间的相关性)。当初,对于区块链的理解,并没有特别深刻,同时也毫不在意。在经济社会中,资本已经能够推动技术的发展了。直到比特币大火时,才对区块链技术感到一丝兴趣。
看过比特币的白皮书,发现区块链技术是比特币的一个基础。同时,毕业设计选择的主题也是与区块链相关的方向,所以,在此聊聊区块链。
简单来说,区块链就是一个分布式的账本,或者说分布式的数据库。这个数据库可以同步到节点网络中的每个节点。用阮一峰老师博客中的一张图来形容,如图:
这种图中,我们可以看到,之所以说是去中心化,是因为在整个节点网络中,每个节点都是参与者,每个节点都能够进行数据处理的操作,并没有一个统一的中心化服务器来进行业务处理。然后,每个节点处理的结果会被传播到整个网络中去,来同步全部的网络。
区块链的英文比较有意思,叫做blockchain。我们可以将blockchain拆分开来看就是block+chain(块+链)。所以,我们可以先来了解一下区块的内容。
区块
区块是什么?区块就是一个类似于数据库的东西,用来记录数据的地方。所以,每次系统写入数据时,都会创建区块。
下面,我们来看一下一副区块的实例图,如下:
这里开头有个Previous Hash就是用来记录上一个区块的Hash值的。这样就可以上一个区块和下一个区块连接起来。
同时,它也记录了区块的时间和区块内部的Data。Hash值,就是一种加密后得出来的字符串。Hash是一种单向加密,现实中很少出现Hash碰撞的事件。一般而言,Hash值的破解只能使用只能使用彩虹表等手段才能达到。其本身的安全性就是相对一般的加密方法要高的。我们会接触到的Hash加密有MD5加密、SHA128和SHA256。目前而言,SHA256是很难破解的。
说了这么多Hash相关的内容,回过头来说一下Block。我们可以来看一下,实际的一些Block表内容,如图:
这是一个测试网络的区块列表,我们可以看到它的block ID就是一个hash值。同时,它具备高度等特殊字段,来记录整个区块的内容大小。
了解了区块之后,我们来看一下区块链的形成。
链的形成
拿比特币举例,交易比特币的过程就是,区块形成的过程。区块的建立,就像账本的数据一样,有了数据就有了区块。同样的,生成区块的过程会产生一定的奖励。下面生成的区块会连接上一个区块的hash,这样可以保证整个区块链的不可更改性。如图所示:
如果黑客修改了第51块的内容,那么他就必须修改52块中51的Hash值。同时,修改了52的内容,导致了52本身的Hash值发生了变化。所以,这就导致了一系列的连锁反应。同时,区块链会往整个网络广播整个过程。这样,网络节点中的每个节点都会收到改变,改变自身的区块内容。
这样的设计,可以保证整个网络中的内容没有办法被外力而改变。这也说明整个网络是安全的。那么什么是51%的攻击呢?
我们来举个例子:
假设我具备了全网51%的算力,那么,我可以偷偷的计算出一个这样的区块链,包含我所有的比特币交易到我的私人账户的信息。这个区块链的长度为10,但是我不向全网进行广播。同时,我将所有的比特币放入到交易市场进行售卖。这笔交易记录在正常的区块链中。
当我交易所得美元进行提取时,正常的区块链长度应该是9。而我的隐藏的区块链长度是10,同时,将这个区块链广播到网络中去,然后通过观察网络会认为我后发的区块是正确的,从而到达修改了那笔交易记录的目的。
之后,就是双花问题的解决了。
双花问题
何为双花问题?从表意上来说,就是一个人在同一时间进行了两笔交易。这个问题,一直是支付系统的难点。无论是中心化的支付系统,还是去中心化的交易系统,都得面对这个问题。举个例子:
某某人,手里有20块钱。他同时与两个人进行了一笔20块钱的交易。现实生活中,你可以明确地发现问题。但是,相对于支付系统而言,并发的情况经常发生。一旦一个不完善的支付系统,双花问题是很容易发生的。当然,后端处理过程中,可以通过队列的形式来解决问题。但是,对于去中心化的交易系统而言,这个问题也需要解决。
每一笔交易的产生,都会产生一个区块,那么,往往会发现这么一种情况,如图:
我们可以看到,Block A和Block B就会同时去连接上一个区块。那么,相对于这个问题,比特币系统采用的规则就是选最长的那条链。通常,比特币采用的是6次确认规则。在1小时内,根据10分钟产生一个区块的原则,往往会生成一条6个长的区块。那么,只要确认下这条区块,就可以避免去连接其他区块了。
理论上是,区块链越长,准确性越高。
#总结
相对于中心化的高成本的方式,区块链技术可能是一种解放生产力的技术。当然了,区块链的实际落地场景并不多,比特币是为数不多的,真正落地的应用。作为一名开发者,我相信区块链的未来。这篇内容中,我们讲述了:
最后,希望大家能够对区块链感兴趣。
欢迎订阅微信公众号
The text was updated successfully, but these errors were encountered: