“从零开始学习区块链”将学习隔离见证,这个在比特币扩容中经常提及的词语。主要介绍产生背景,具体内容和优点。
隔离见证的提出
隔离见证的提出要从比特币扩容讲起了。
中本聪将区块内存大小定为1MB,刚开始交易量较小不需要太大的区块,所以足够用。但是随着比特币的发展,交易量越来越大,区块的内存就不够用了,比如1MB的区块只能记录十条交易信息,每十分钟产生一个区块,现在每分钟会产生数百条交易信息,那么一个区块就放不下了,大家想确认交易就需要排队等候。这样,比特币系统就变得拥堵了,如果不解决这个问题,大家可能会放弃使用比特币系统,比特币扩容迫在眉睫。
这时候,就出现了我们耳熟能详的软分叉和硬分叉之争,随之,我们今天的主人公——隔离见证也登场啦。隔离见证用于软硬分叉均可,其中软分叉中搭建闪电网络中做隔离见证是很重要的。
认识隔离见证
我们大致了解一下转账过程,A给B转账时不仅需要提供金额信息还要要自己的私匙进行签名(身份验证)、提供B的公匙地址,这样才能形成转账。
因此在比特币交易中,每笔交易信息包含两部分:基础交易数据、见证数据。基础交易数据记录账户资金结余,见证是验证用户身份、证明交易合法性(隔离见证一词也是由此而来,就是将见证信息与交易基础数据隔离)。
比特币系统中,交易交易基础数据和签名信息(见证)是一起记录在区块上的。但是1只有矿工需要验证签名信息记账,普通用只需要了解交易状态;2签名信息占用了大量的内存,3两个信息放在一起会带来交易可变性。
于是,隔离见证 (Segregated Witness) 由比特币核心开发员Pieter Wuille在2015年12月提出。隔离见证需要做的其实就是一件事情,把签名脚本从交易信息中提出了单独存放,这样见证信息在区块中占据的内存就释放了,也可以理解为每条交易信息占用的内存变小了,于是一个区块就可以容纳更多的交易信息,从而缓解拥堵问题,提高交易速度,同时见证分离也解决了交易延展性的问题。
下面的图片很形象,大家可以参考
但是,见证隔离后矿工在验证交易时需要单独验证签名部分的数据结构,增加验证耗费,因此需要矿工的配合。同时为了防止升级造成硬分叉,开发人员设定只有获得95%以上用户支持下才会激活见证隔离。
隔离见证的优点
解决有交易延展性引起的问题
交易延展性:由于见证信息的数学特性,任何人拿到一个交易记录中的见证信息后,可以在不知道私匙的情况下拼凑出另一个有效的见证信息,然后再添加一些其他交易信息就可以弄出另一个交易记录。如果这个拼凑的交易记录最先记入区块链,那么那个真实的就变成无效交易了。
激活隔离见证后,见证信息从交易记录中剥离,不再参与哈希计算,就不能通过上述途径拼凑交易记录了。
缓解交易拥堵
就像我们上面分析的,见证隔离将占据大量内存的签名信息剥离出来,减小了一个交易记录的内存,变相提高了区块的容量。
总的来说,隔离见证是一种很聪明的解决方法。