每次在讲解区块链时,都会收到很多关于底层技术问题,感觉很有必要对区块链的底层技术进行分享,这也是我写这一系列文章的动力。
2015年接触比特币(可惜当时没有囤币),作为一个在IT行业摸爬滚打多年,并且是技术出身的人,成功的被比特币底层技术-区块链所吸引。区块链与其说是新兴技术,不如说是新的理念、新的概念或者说是一种架构应用,是对目前中心化系统存在问题的解决方案。
区块链涉及的技术都是很早就存在的,区块链把这些技术巧妙的结合在了一起,由于涉及到的知识领域比较多,从而增加了区块链的研发和学习难度。为了能让大家了解区块链底层技术,忙里偷闲,对区块链底层技术进行了简单整理,希望对大家学习区块链有所帮助,如果发现问题请大家及时指正,以免造成误导。
互联网上的贸易,几乎都需要借助金融机构作为可资信赖的第三方来处理电子支付信息。虽然在绝大多数情况下这类系统都运作良好,但是这类系统仍然内生性地受制于“基于信用的模式”(trust based model)的弱点。人们无法实现完全不可逆的交易,因为金融机构总是不可避免地会出面协调争端。而金融中介的存在,也会增加交易的成本,并且限制了实际可行的最小交易规模,也限制了日常的小额支付交易。并且潜在的损失还在于,很多商品和服务本身是无法退货的,如果缺乏不可逆的支付手段,互联网的贸易就大大受限。因为有潜在的退款的可能,就需要交易双方拥有信任。此外,因为商家也必须对自己的客户小心提防,所以会向客户索取完全不必要的个人信息。而实际的商业行为中,一定比例的欺诈性客户也被认为是不可避免的,相关损失视作销售费用处理。而在使用物理现金的情况下,因为此时没有第三方信用中介的存在,这些销售费用和支付问题上的不确定性却是可以避免的。
所以,我们非常需要这样一种电子支付系统,它基于密码学原理而不基于信用,使得任何达成一致的双方,能够直接进行支付,从而不需要第三方中介的参与。杜绝回滚(reverse)支付交易的可能,这就可以保护特定的卖家免于欺诈;而对于想要保护买家的人来说,在此环境下设立通常的第三方担保机制也可谓轻松加愉快。在这篇论文中,我们(we)将提出一种通过点对点分布式的时间戳服务器来生成依照时间前后排列并加以记录的电子交易证明,从而解决双重支付问题。只要诚实的节点所控制的计算能力的总和,大于有合作关系的(cooperating)攻击者的计算能力的总和,该系统就是安全的。
上面摘自中本聪论文,从中本聪的论文(论文可自行搜索)可以看出,他只是想制作一种无中心监管的货币,并且可以自由交易,为了保证货币的安全性,采用了blockchain技术,可见区块链最初是作为比特币的记账平台或者比特币数据存储平台。
很多文章提到过,区块链使用到了密码学,博弈论,数字货币,分布式等诸多理论,这些或许是中本聪事先就设计好的,也有可能是后来人的分析,总之不管怎么说,区块链是一门很综合的学科,要想学好区块链并不容易。
那么什么是区块链?下面是我个人认为比较贴切的解释,区块链是由多方参与共同维护的一个持续增长的分布式数据存储结构,通过密码学算法把一段时间系统内的全部信息打包成一个数据块,并且使用hash作为当前块的标识,用于与下一区块进行连接,从而形成以块数据为基础,带有时间戳的头尾相连的链表式数据结构,其核心在于通过分布式网络,时序不可篡改的密码学账本及分布式共识机制建立彼此之间的信任关系。
对于区块链,网上出现很多批判性的言论,这个没有错,任何新生事物都需要时间和实践来验证,比如发现了区块链存在的重大问题,这也充分证明大家都在为这方面在努力,也是一种推动,最终能不能给人类进步带来帮助,才是我们迫切需要解决的问题。目前大家讨论比较火热的是币圈,链圈,网上到处可见“薅羊毛”,“割韭菜”,抛开现在链圈或是币圈的纷争,一个技术如果不能解决现实中存在的问题,终将失败。