来自大神daniel social
layout | name | id | title | permalink | version | excerpt | post
| segwit-benefits
| en-segwit-benefits
| 隔离见证的好处
| /en/2016/01/25/segwit-benefits
| 1
| This page summarises some of the benefits of segregated witness that go beyond simply increasing the capacity of the block chain. 本页总结了一些隔离见证的好处, 不仅仅是增加块链的容量。
|
隔离见证软分叉(segwit)包括很多的特性,其中许多是技术性很强的。 此页面总结了那些除了增加块链的容量之外特性的好处。
修复延展性问题比特币交易是由一串64位的十六进制哈希交易ID(TxID)标识的,这是基于 交易中币的来源和币的接收者确定的。
不幸的是, TxID的计算方法允许任何人可以对交易做小的修动,虽然不会改变交易的内容,但会改变TxID。 这就是所谓的第三方延展性。BIP62("处理可塑性")试图以一些方式解决这些问题 ,但是它太复杂了,以至于无法实现为共识检查,所以已经被放弃了。
例如,您可以发送TxID为ef74... C309到比特币网络,当网络中的节点中继 这笔交易,或者矿工打包交易到区块中的时候,它们可以轻微修改这笔交易,导致您的 交易仍然花一样的币,并支付到相同的地址,但是以完全不同的TxID 683f...8bfa出现。
更通俗的说,如果一笔交易的一个或更多个签名者修改他们的签名, 那么交易仍然有效 并且支付相同的比特币,以相同的地址,但这笔交易的TxID完全改变,因为它们组成签名。 更改签名数据(但不改变output或input)来修改交易的情况称为scriptSig延展性。
Segwit可以防止第三方和scriptSig延展性, 通过把比特币交易中的的可修改部分移动到 见证交易里, 并且分离后不影响TxID的计算。
谁将从中受益?
钱包作者用来监控发出比特币: 这是最简单的,只需要监控发出的TxID的状态就 可以。 但是在存在第三方延展性问题的系统里,钱包必须添加额外的代码,以便能够 应对变化的txids。
花费未确认的交易: 如果Alice在交易1支付Bob一些币,Bob在交易2 使用收到的付款支付给Charlie,然后Alice的付款发生延展性修改,并用不同的TxID 确认,那么现在交易2现在是无效的, 而Charlie查理就不会被支付。 如果Bob是值得信赖的,他会重新发出一笔交易给查理;但如果他不是,他可以简单 地保持这些比特币给自己。
闪电网络: 第三方和scriptSig延展性问题修复后可以降低闪电网络实现的的复杂性 , 而且在使用blockchain的空间上将更加有效. scriptSig延展性删除后,它也可能运 行轻量级的lighting客户端服务去监测区块链,而不是每个lightning客户端都运行比特 币完整节点。
任何使用区块链的人: 目前的智能合约,比如小额支付通道,预期新的智能合同, 将会变得不用那么复杂的设计,理解和监控。
注意:segwit交易只能在当所有input都是segwit交易(直接或经由一个向后兼容 的segwit P2SH地址)下避免延展性问题。
更多信息
- Bitcoin Wiki on Malleability
- Coin Telegraph article on 2015 Malleability attack
- Bitcoin Magazine article on 2015 Malleability attack
- "Overview of BIPs necessary for Lightning" transcript
- BIP 62
- BIP 140 -- alternative approach to malleability fixesStack exchange answer regarding 683f...8bfa transaction
线性增长sighash的操作用简单的方法来增加比特币区块大小的一个主要问题是,对于某些交易,签名散列增长 是平方增长的, 而不是线性增长的。
在本质上,一个交易的大小增加一倍,签名操作的个数也增加一倍, 以及那些进行验证签名 需要哈希的数据也应该增加一倍. 但曾经已经出现过,一个单独的块需要25秒验证,其他 一些恶意设计的交易可能需要超过3分钟。
Segwit通过改变交易哈希签名的计算方式可以解决此问题,使得交易的每个字节只需要至 多两次哈希。 这提供了相同的功能但更有效率,使得大的交易仍可以产生而不会有签名 哈希问题,即使有人生成恶意的或更大的块(并较大的交易)也是支持的。
谁将从中受益?删除验证签名需要的哈希数据的平方伸缩问题,使增长块大小更安全。这样做并没有 限制交易大小, 所以仍然可以继续支持支付或者接收来自于大的组织的比特币,比如 挖矿 奖励或众筹服务。
修改后的哈希仅适用于从witness数据发起签名操作,所以从旧的区块发起的签名操作将 继续需要限制签名操作数下限。
https://github.com/danielsocials/website/blob/segwit-cn/_posts/zh_CN/posts/2016-01-25-segwit-benefits-zh_cn.md |