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

前面我们说过,比特币的底层实现是区块链技术。那区块链这个词怎么来的呢?

早期比特币刚出现的时候,人们用首字母大小写来区分比特币和实现比特币的技

术,把比特币叫做Bitcoin,把实现比特币的技术叫bitcoin,可见当时人们对实

现比特币的技术还是很关注的。到后来,比特币越来越火,舆论十分火热,为了 

能把比特币和实现比特币的技术区分开,根据比特币的技术特性,于是用“

”来代指比特币实现的技术。

中本聪也是通过这些技术的集大成,从而创造

了比特币区块链。

开篇说到区块链具有

的特点

下面我们按照区块

链的这些特性来了解下区块链的技术。

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

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

举个栗子:

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)。关于莱特币的一些特性,这里不详细

展开了,大家有兴趣可以去了解下。

你可能感兴趣的:(从零认识区块链(中):区块链技术解密)