比特币的TxHash为什么会发生改变
比特币中TxHash为什么会变化?
一直不理解比特币的Tx在被打包确认之前TxHash为什么会发生变化,这次终于找到了依据.
交易可延展性
虽然交易签名后,签名当前不会覆盖经过哈希处理以创建事务哈希的事务中的所有数据。因此,虽然不常见,但网络上的节点可能会以散列无效的方式更改您发送的事务。请注意,这只会更改哈希值; 交易的输出保持不变,比特币将转到他们的预期收件人。然而,这确实意味着,例如,在任何情况下接受一系列确认块数不够的交易是不安全的,因为后来的交易将取决于先前交易的哈希值,并且这些哈希值可以被更改,直到它们在链上被确认为止。
签名可延展性
可延展性的第一种形式是签名本身。每个签名都只有一个DER编码的ASN.1八位位组表示,但OpenSSL不会强制执行此操作,只要签名没有严重错误,它就会被接受。[1]此外,对于每个ECDSA签名(r,s),签名(r,-s(mod N))是同一消息的有效签名。[2]
从块363724开始,BIP66软分叉使得块链中的所有新事务都必须严格遵循DER编码的ASN.1标准。目前仍在努力关闭DER签名中其他可能的延展性。
任何有权访问相应私钥的人都可以更改签名。 这句话的意思是私钥拥有者对同一笔交易反复签名,他们每次签名都不一样,但是都是有效的.
scriptSig Malleability
比特币中使用的签名算法不会签署全部的scriptSig来创建签名。虽然签署整个scriptSig是不可能的 - 签名本身就是签名 - 这意味着可以添加额外的数据,然后再将所需的签名和公钥推送到栈上。比如可以添加OP_DROP,执行效果和完全没有添加一样。
正在考虑防止scriptSig延展性。当前在其scriptSig中具有除数据推送操作之外的任何操作的事务被认为是非标准的并且不会被广播,并且最终该规则可以扩展为强制执行后堆栈具有恰好一个项目。但这样做可能会影响以后对比特币的扩展。
BIP62
BIP_0062是2014年初提出的比特币改进方案,旨在解决延展性问题。它旨在找到所有可能的延展性方法并逐一修复它们。BIP被撤销,因为发现这对于延展性阻止的用例(例如[闪电网络](https://en.bitcoin.it/wiki/Payment_channels)是不够的[4](https://en.bitcoin.it/wiki/Transaction_malleability#cite_note-4) 5 6 BIP文件本身包含作者可以想到的所有延展性方法。
Segwit
隔离见证是对比特币的更新,其目的之一是修复所有形式的可塑性。仅花费segwit输出的交易不易受延展性影响。
比特币的TxHash为什么会发生改变的更多相关文章
- IDFA的值什么时候会发生改变
在何种情况下 , 应用的IDFA值会发生改变? 近期工作中须要获得一个能够唯一地标示每个不同应用的ID,之前的苹果UDID已经不让使用了. 那么我们须要使用新的IDFA来引用.可是在某些情况下这个ID ...
- 点击checkbox后,$(this).attr('checked')得到的值不会发生改变
这两天遇到一个问题,就是在点击checkbox后,$(this).attr('checked')得到的值要么是undefined,要么是checked,同一个表单一直点击却一点都不会发生改变,调试了一 ...
- 通过AWS的DHCP自动获取的IP地址是否会发生改变?
针对您的问题,分析如下:1.在一个VPC内,通过AWS的DHCP自动获取的IP地址,在如何情况下会发生改变?例如我把vpc的内所有100个ec2实例全部关闭,再全部重新打开,是否会发生IP地址变化的情 ...
- 单击改变input的边框颜色
input边框变色 今天布局页面的时候发现设计稿多了一项要求,就是点击input框的时候要求框框变色,以前没有遇到过,平时很多时候都用的:hover这次想着一样吧,看了之后发现不是想要的效果,ho ...
- Json解析数据导致顺序改变问题
json解析的时候,通常顺序会发生改变,如果我们有保持原有顺序的需求的话可以通过如下方式 1.使用fastJson的Feature.OrderedField JSONObject respJson = ...
- 解决Android中,禁止ScrollView内的控件改变之后自动滚动 - 转
问题: 最近在写一个程序界面,有一个scrollVIew,其中有一段内容是需要在线加载的. 当内容加载完成后,ScrollView中内容的长度会发生改变,这时ScrollView会自动下滚,如下图所示 ...
- python装饰器中@wraps作用--修复被装饰后的函数名等属性的改变
Python装饰器(decorator)在实现的时候,被装饰后的函数其实已经是另外一个函数了(函数名等函数属性会发生改变),为了不影响,Python的functools包中提供了一个叫wraps的de ...
- nRF52832 改变ATT_MTU提高蓝牙数据发送速率(nRF5_SDK_14.2.0)
nRF52832 作为一个低功耗蓝牙芯片,其数据发送发送速率一直都偏低(高就不叫低功耗了^_^),作为初学者在网上找了很多资料,终于找到通过修改ATT_MTU来提升发送速率的方法,最快能达到8.2KB ...
- 比特币钱包Armory使用指南
转自:http://news.yibite.com/application/2014/0525/21603.shtml 比特币钱包Armory(https://bitcoinarmory.com/)是 ...
随机推荐
- FTP和TCP、UDP
应用:TFTP客户端 1. TFTP协议介绍 TFTP(Trivial File Transfer Protocol,简单文件传输协议) 是TCP/IP协议族中的一个用来在客户端与服务器之间进行简单文 ...
- 一个检测网页是否有日常链接的python脚本
在大的互联网公司干技术的基本都会碰到测试.预发布.线上这种多套环境的,来实现测试和线上正式环境的隔离,这种情况下,就难免会碰到秀逗了把测试的链接发布到线上的情况,一般这种都是通过一些测试的检查工具来检 ...
- Python 使用 Postfix 发送邮件
最近在做一个监控程序,需要用邮件发送告警.以前是使用注册的免费邮来发送,但是这样不免有很多限制,而且有时还会当作恶意登录,帐号异常等,还不让登录邮箱了.利用Postfix提供邮件SMTP服务,可以很自 ...
- Win10 安装 及应用遇到的问题
IOS https://www.microsoft.com/zh-cn/software-download/techbench setup win10安装必须用administrator账号安装 在w ...
- Firefox 被Snap.do 劫持
Firefox IE 被劫持 windows的控制面板,卸载程序, 找任何跟「Snap.do」有关的软件,找到後先移除「Snap.Do Engine」再移除「Snap.Do」. 注册表里查找 Snap ...
- JSP的动态导入
<body> <!-- 动态引入 他们引入的相互独立的代码段 所以可以运行 代码段之间存在重复的变量 --> this is a test dy include 01 < ...
- Python运维开发基础07-文件基础
一,文件的基础操作 对文件操作的流程 [x] :打开文件,得到文件句柄并赋值给一个变量 [x] :通过句柄对文件进行操作 [x] :关闭文件 创建初始操作模板文件 [root@localhost sc ...
- JavaScript中call,apply,bind方法
why?call,apply,bind干什么的?为什么要学这个? 一般用来指定this的环境,在没有学之前,通常会有这些问题. var a = { user:"追梦子", fn:f ...
- windchill StatementCache: wt.util.Cache%828007782 [size=50, count=4, hits=36, misses=4, aged=0]
StatementCache: wt.util.Cache%828007782 [size=50, count=4, hits=36, misses=4, aged=0] 方法: EXEC sys.s ...
- linux shell脚本编程笔记(五): 重定向
I/O重定向 简述: 默认情况下始终有3个"文件"处于打开状态, stdin (键盘), stdout (屏幕), and stderr (错误消息输出到屏幕上). 这3个文件和其 ...