比特币是什么?
比特币是一种创新的支付网络和一种新型货币。它是以区块链作为底层技术的加密货币,他通过使用点对点技术在没有中央机构或银行的情况下运作;由网络集体进行管理交易和发行。
由于比特币是开源的,它的设计是公开的,没有人可以完全拥有或控制比特币,每个人都可以参与,通过其许多独特的属性,比特币拥有令人兴奋的用途,这是以前任何支付系统都无法比拟的。
但凡事都有两面性,比特币也存在一个很严峻的问题,他有智能合约但不是图灵完备的。
图灵完备是什么意思?
所谓图灵完备,就像现代计算机,计算机就是图灵完备的。通过计算机我们可以设计计算很多事情,开发出各种各样工具,我们用它设计产品,创造出现在的数字化体系等等。
非图灵完备就是这个计算机不能做所有事情。比特币在设计之初,就不是图灵完备的,他只能做一些很简单的智能合约,稍微复杂一点的工作就做不了。受到这个限制,比特币只能做支付和支付相关的一些简单的事情,像发行Token、NFT这些就做不了,但是身份验证是可以做的,换句话说,只要涉及到很复杂的计算,比特币就没有伸展的余地。那么为了解决这一个问题,诞生了区块链行业。
为了解决比特币非图灵完备的问题,提出了“扩充比特币的智能合约体系”这个方式。比特币智能合约是一个脚本,换句话说,比特币的脚本就是一个智能合约。如果我要扩充这个脚本,使得这个比特币的脚本图灵完备,那么就需要增加一些功能,所以大概在2012-2013年时候,维塔利克·布特林(V神)向比特币社群提出想要扩充脚本,但他努力了一阵子之后,发现比特币社区并不接受他的理念,所以他就自己创造了以太坊。
以太坊的原理和比特币差不多,只是多增加了图灵完备的智能合约。正因为此以太坊可以做更多的事情,在区块链上可以实现更多的应用,因此发展非常迅速。经过这几年的发展,诞生了很多其他的链,如BSC,波场,solana等。
我们统称比特币这一类为区块链1.0,类似以太坊这种类型的为区块链2.0,到目前为止还没有真正的区块链3.0,因为现在所有更改都是对以太坊的优化。
在区块链1.0时期也有其他的链,像莱特币等等,他们和比特币一样,没有图灵完备的智能合约,有的甚至连智能合约都没有。在区块链2.0时期,因为此时的区块链是图灵完备的,所以可以设计很多复杂的内容,由于区块链的智能合约需要在每一个节点上执行,例如一条链上有很多节点,每一个节点都在做同样的事情,这意味着每一个智能合约在每一个节点上都要执行一次,当我们有非常复杂的智能合约之后,计算量和网络通讯量就会变得非常大。受到区块链不可能三角的影响(去中心化,安全,可扩展性):我们可以得到一个结论:如果想要安全的去中心化区块链,想做复杂的智能合约,这意味着你需要牺牲可扩展性。这也是“不可能三角”到现在还没有被攻破的原因。
为了解决区块链的效率问题和可扩展性问题这个问题,目前为止有过三大方案:
分片技术
假设一条链上有很多很多节点,每两个节点分成一组,这一组干一件事,另一组干一另件事,由于两件事可以并发执行,倘若将他们分成三组,那么性能就可以提升三倍,分100组性能就可以提升100倍,理论上看起来很好,但是在实操当中就会发现,由于分片和分片之间需要通讯,分片内部也需要通讯,这又引起另一个问题,由于智能合约是图灵完备的,如果不把合约内容跑一遍,我们是无法预知它产生的结果和对方的结果。由于比特币是非图灵完备的,因此我们可以通过静态分析(通过读一遍代码,就能得到结果,这种方式不占用计算机资源)进行处理。而以太坊不可以进行静态分析。这就意味着我需要将所有内容执行一遍,但这引发一个状况:如果现在有两个分片执行合约A,由于执行这个合约A的分片节点运行过这个合约,所以他知道结果是什么,而其他节点没有运行过,因此无法判断,我们也无法人为判断这个合约的结果会对接下来的数据产生什么影响,所以还是需要我们将所有节点执行一遍,可是这样分片就失去了意义。
在Defi项目中大量的智能合约之间用的都是搭积木的模式(合约与合约之间的调用是任意的、不受任何限制的),所以就造成一种结果:如果执行了一个合约x,我不知道别人有没有影响到这个结果,所以我要问所有的分片,是否有执行这个合约会影响到x,对于每一个分片来说,我每执行一个合约,我就询问其他的分片,所以它的通讯复杂度为n的二次方,分片之间的通讯复杂就瞬间上去了,因此分片的数量不能太多,一旦数目多了通讯复杂度就容易呈现平方级的,网络就容易崩溃,区块链是个非常消耗网络资源的东西。
从2017年开始有分片的概念以后,很多很多项目都做了分片,包括以太坊2.0,但是关于分片本身的技术细节还在不断攻关中,还没有成功,所以目前看来这个方案想法是很好的,但是这并不能解决通讯复杂的情况,因此到现在也没有好的解决方案。
学习笔记上篇主要是分享了我对比特币相关知识的了解,也介绍了为解决区块链有关问题提出的一种解决方案:分片技术,在学习笔记下篇里,我还会给大家继续分享另外的两个解决方案:侧链和Layer2。并且我也会和大家分享目前为止我关注到的比特币侧链项目INFINITAS,分析一下INFINITAS的创新和优点,大家尽请期待!
来源:金色财经