从零认识区块链(中):区块链技术解密

3 评论 21634 浏览 132 收藏 10 分钟

上一篇《从零认识比特币(上):从比特币谈起》,我详细介绍了比特币的起源、原理、交易、存储等,这一篇,我来讲解下比特币的底层技术——区块链,同时介绍比特币的局限与改进。

我们经常看到各大媒体争相报道,区块链具有去中心化、不可篡改、不可伪造的特点,为什么具有这些特点呢?看完这篇文章,你就明白。

什么是区块链

名称的由来

前面我们说过,比特币的底层实现是区块链技术。那区块链这个词怎么来的呢?早期比特币刚出现的时候,人们用首字母大小写来区分比特币和实现比特币的技术,把比特币叫做Bitcoin,把实现比特币的技术叫bitcoin,可见当时人们对实现比特币的技术还是很关注的。到后来,比特币越来越火,舆论十分火热,为了能把比特币和实现比特币的技术区分开,根据比特币的技术特性,于是用“区块链”来代指比特币实现的技术。

区块链的定义

区块链并不特指某一个技术,而是多种技术的集合,比如时间戳、工作量证明机制、非对称加密、UTXO等。中本聪也是通过这些技术的集大成,从而创造了比特币区块链。

区块链的技术特性

开篇说到区块链具有去中心化、不可篡改、不可伪造的特点下面我们按照区块链的这些特性来了解下区块链的技术。

去中心化

区块链的去中心化特性是由非对称加密技术、分布式存储来体现的。

非对称加密技术

简单来讲就是加密和解密的时候使用不同密钥的加密算法。

举个栗子:

A要向B发送消息,A和B都要产生一对用于加密和解密的公钥和私钥。私钥,好比一把私有的钥匙,只有钥匙的拥有者才能打开,是用来加密的。公钥,好比一把公开的钥匙,可以告诉给需要的人,是用来解密用的。在这个过程中,A的私钥保密,A的公钥告诉B;B的私钥保密,B的公钥可以告诉A。A要给B发送时,A用B的公钥加密信息。B收到这个消息后,B用B的私钥解密A的消息。其他所有收到这个信息的人都无法解密,因为只有B才拥有这把私钥。

在上一篇文章中,我们介绍的比特币的转账,填写的对方比特币地址,就是公钥,转账时附上的签名,相当于你的私钥。

可能你会疑问,非对称加密怎么就体现了区块链的去中心化呢?

我认为中心化机构的存在是为了能保证交易的进行,而在比特币网络里,矿工只要验证公钥和私钥就证明该笔交易是正确的,也就保证了交易的进行,这样即使没有中心化的机构来参与,交易也可以安全地进行,所以非对称加密也就体现了去中心化。

不可篡改

区块链的工作量证明机制、最长链机制保证了区块链上任一节点都是不可篡改的,也就保证了交易的不可篡改性。

工作量证明

简单来说就是一份证明,用来确认你做过一定量的工作。比如你拿到了大学的毕业证,就能够客观证明你进行过大学四年级的学习,具备一个大学生的学习能力。在比特币网络里,工作量证明直接体现就是算力的大小,你算力越大,那你获得该区块的记账权概率越大,那么你记出来的账本就是通过一定量的计算才算出来的,该账本就能被其他矿工认可。

最长链机制

区块链要求所有节点遵守一个公式,就是所有保存到本地的区块链,都必须是被本地节点验证通过的最长链。由于区块链的每个区块必须引用它的上一个区块,所以最长链是最难推翻的。如果有人想要篡改该节点区块,必须拥有非常大的算力,至少超过50%,否则基本上没有篡改的可能。

不可伪造

这个得益于比特币的UTXO结构,英文全称Unspent Transaction Output,也就是未花费的交易输出。这种特性使得比特币世界里的每一笔转账,都能追溯到上一笔交易,也就保证了交易的真实性。

举个栗子:

假设我要给你20元钱,其中2张5元纸币,1张10元纸币。而我的这2张5元,来自水果店老板给我的找零,这1张10元来自士多店给我的找零,拿到这三张钞票之后,我还没花出去,才能给你。这就叫未花费的交易输出。水果店老板的这2张5元钞票,又来自其他人,士多店的1张10元钞票,也可能来自于其他人。这样的钞票,可以顺藤摸瓜一直追溯到发行的那一刻,由此验证这三张钞票都是真的。

好了,比特币的实现技术就介绍完了,你了解有多少呢?最后我来介绍下比特币的不足。

比特币的不足

脚本语言太复杂,开发难度大

比特币的脚本语言是基于堆栈的形式的编译语言,对开发者来说使用这种语言开发难度较大,难以上手。

生态系统基础差,缺乏足够的参与者

比特币生态没有完善的开发工具,也没有丰富的文档和教程。这不同于当今主流的Android开发环境,全球有大量的开发者、运营商、芯片厂商等活跃在整个生态中,并且有谷歌等巨头企业推进。基于这点跟上一点,比特币区块链就很难吸引开发者,更别说形成良好的开发生态了。

脚本语言不符合图灵完备标准

图灵完备是指一切可计算的问题都能计算,比特币区块链上的状态表示都是针对比特币这款应用的,只能记录交易,而对于复杂的环境,用比特币区块链上的语言无法表示。

比特币的改进

莱特币的诞生

上一篇文章我们说过比特币的原理,10分钟出一次账单,也就是你的交易至少要等10分钟才交易完成。在2011年10月,一位叫Charlie Lee的亚裔美国人,他认为比特币这种确认太慢,十分钟才能确认一次,不能满足现在的支付需求,于是通过改造算法,发明了莱特币(Litecoin)。关于莱特币的一些特性,这里不详细展开了,大家有兴趣可以去了解下。

以太坊

2013年末,一位仅19岁的俄罗斯少年Vitalik Buterin发表了以太坊白皮书《以太坊:下一代智能合约和去中心化应用平台》,从此,一个现像级、对开发者友好的区块链平台诞生了。它通过其丰富的编程语言和完善的开发工具,解决了比特币对开发者不友好的问题。对于用户端,它可以让任何人都能轻松的在以太坊上建立新的协议和智能合约,真是开发者的福利呀。

关于以太坊的详细介绍,我下篇文章会说到,欢迎大家关注哟。

好了,这篇分享就到这,我们主要讲解了区块链的技术原理、比特币的不足与改进等。在下篇文章中,我会详细跟大家分享下区块链分类及应用领域,敬请期待哟。

相关阅读

从零认识比特币(上):从比特币谈起

从零认识区块链(下):区块链的应用

 

本文由 @ lison 原创发布于人人都是产品经理。未经许可,禁止转载。

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 没明白公钥和私钥的关系

    回复
  2. 公钥和私钥的加密解密写反了吧?

    来自北京 回复