隔离见证设计之初是为了解决交易延展性问题。
什么是交易延展性呢?
黑客通过攻击篡改交易签名使得交易哈希值TXID发生改变,导致用户找不到发送的交易,从而影响数字货币充值或者体现的状态,就是交易延展性问题。
比特币区块链上每笔交易记录里都包含有见证信息,交易的唯一标识TXID(交易的哈希值)也是包括了见证信息计算出来的。
由于见证算法的数学特性,任何人在拿到一个交易记录后,拿到其中的见证信息,然后可以在不需要知道私钥的情况下,很容易的拼凑出另外一个有效的见证信息。这样,他可以用拼凑出来的另外那个见证信息,拼凑上交易记录中的其他交易信息,制造出一个另外一个交易记录(哈希值不同)。如果可以让拼凑出来的交易记录先被写入区块链,那么,之前那个原始交易记录会被认为是无效的交易而失败。
这不会造成双花,也不会对区块链造成破坏,但是对原始交易记录的发起者会造成困扰,因为如果拿着原始交易记录的哈希值找不到交易的成功记录。尤其是对于一些交易所,如果没有完整的内部日志,可能无法追溯交易记录,导致攻击者利用拼凑的交易记录先成功提币,再申诉说没有提到币,要求再次提币。Mt.GoX 当年60 多万比特币被盗事件,就是黑客利用比特币交易延展性问题在用户提币之前抢先提币甚至多次提币。
隔离见证后,见证信息不再是交易记录的一部分,也就不参与交易记录哈希的计算,无法再通过修改见证信息来拼凑另外一个交易记录。
但是现如今隔离见证最广为人知的作用就是它能够对区块链进行变相的扩容。
隔离见证把签名脚本从交易中拿出放在一个新的数据结中,而且在审计区块大小的时候并不审计签名这部分的体积,因此同样体积下的区块下可以放进去更多的交易信息,进行更多的交易。
隔离见证发展的最大问题就是验证交易的时候需要单独验证签名部分的数据结构,会增加验证耗费,如何取得矿工的支持和配合是其发展重点,只有当95%的网络算力都支持启动,隔离见证才能被实装。
因为如果支持度不够,整个比特币网络就有机会被分裂成两半,然后就会出现两种不同的比特币,严重影响比特币的生态和经济价值;但只要有 95%的算力支持,其余的 5%会因为算力不足、没有足够矿工处理交易和保障网络安全而慢慢被淘汰。
本周两家大型的加密货币交易所Coinbase和Bitfinex宣布对软件进行更新,此次更新的杀手锏就是SegWit软件。他们认为,这款软件应该可以将比特币的交易费用降低20%,同时也能使交易速度变得更快。
就Segwit激活而言,目前仍旧不清楚代码更改需要多久才会传播到整个生态系统,Coinbase和Bitfinex的启用是一个好兆头。如何获得更多的用户、钱包提供商、交易所和其他基础的网络基础设施的青睐,Segwit的更大规模采用仍然需要一段时间。
闪电网络(Lightning Network)——链下交易
2015年2月份,约瑟夫·朴恩 (Joseph Poon)和萨帝厄斯·追亚(Thaddeus Dryja)发布了一篇论文,闪电网络(Lightning Network)的概念正式推出。
相比隔离见证的链上扩容,闪电网络主张通过实现链下交易加快交易速度,解决拥堵问题。闪电网络其本质上是使用了哈希时间锁定智能合约来安全地进行0确认交易的一种机制,通过设置巧妙的‘智能合约’,使得用户在闪电网络上进行快速、低成本的交易。
闪电网络是基于微支付通道演进而来,创造性的设计出了两种类型的交易合约:序列到期可撤销合约RSMC(Revocable Sequence Maturity Contract,哈希时间锁定合约HTLC(Hashed Timelock Contract)。
RSMC
闪电网络的基础是交易双方之间的双向微支付通道,RSMC(Recoverable Sequence Maturity Contract)定义了该双向微支付通道的最基本工作方式。
其原理是先在微支付通道中沉淀了一部分资金,通道的设立会记录在比特币区块链上。
交易后需共同确认资金分配的方案,并将之前的版本签字确认作废,通道也记录有双方对资金的分配方案。
若是需要提现,只需要将双方签字的余额分配方案出示区块链网络中即可。如果提现方通过被作废的方案提现,另一方证明这个提现方案是作废的,那么这个资金将会给证明作废的一方。整个交易流程只有在提现的时候才会用到区块链网络,这样就将交易过程的繁琐程度将大大降低,让交易更加便捷。
为了鼓励双方尽可能久地利用通道进行交易,RSMC对主动终止通道方给予了一定的惩罚:主动提出方其资金到账将比对方晚,因此谁发起谁吃亏。这一举措也进一步加大了交易的安全性。
HTLC
HTLC 主要用于解决了支付通道的问题。简单来说就是一个限时转账的功能,通俗的解释就是AB双方在转账时,转账人A将一笔数字货币冻结,提供一个哈希值,在一定的时间内,B拿着这个字符让就可以实现提现,如果超过协议事件则冻结的数字货币将自动解冻并归还给A。如果A和B之间没有直接的交易通道,但是有A-C-D-E-B的交易通道,同理,B提供哈希值从E中获取转账,E提供哈希值从D中获取转账,D提供哈希值从C获取转账,C提供哈希值从A获取,转账中间的差值则作为C、D和E的交易费用。