博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BCH升级在即,什么是OP_CHECKDATASIG和Canonical Transaction Ordering(一)
阅读量:7125 次
发布时间:2019-06-28

本文共 980 字,大约阅读时间需要 3 分钟。

作者:行走的翻译C 如题,小编今天主要解释下BCH11月份升级会新添的两个技术特征:OP_CHECKDATASIG和Canonical Transaction Ordering。今天先讲一下OP_CHECKDATASIG。

OP_CHECKDATASIG是BCH11月份升级拟增加的操作码。我知道大家一听到技术术语就头大,这里我尽量用最简单的语言解释一下。

众所周知,数字签名是比特币至关重要的一个课题。在创建一笔交易时,需要提供一份由你的私钥生成的数字签名。这个签名就是你授权了这笔交易的证明。或者用加密学用语来说,你签名了一则信息(signed a message)。这则信息就是你签名签了什么。

(注:签名相当于现实生活中,我们给一张收据签个字。message指的就是这张收据,你在这张收据上签了字。)

在一笔正常的比特币交易中,你签名的这则信息包括构成交易的输入和输出两部分。或者也可以简单理解成比特币的“发送”和“接收”地址。

创建一笔标准交易的比特币脚本使用的操作码叫做OP_CHECKSIG。其作用就是要确保比特币在花费前签名是正确的,以防止他人窃取你的币(前提是他们无法生成一个有效签名)

操作码OP_CHECKDATASIG的功能也差不多就这么一回事。不同的是信息(message)本身。OP_CHECKDATASIG不是签名交易输入或输出,而是提供一个签名来授权其他你想要包括在交易中的外部数据(技术术语即“入栈”push on the stack)

有一种常见的误解认为使用这个操作码脚本的数据,可以被外部调用。事实上并不可以。被签名的外部数据(信息)必须是使用这个操作码的交易的一部分;也必须包括在使用这个操作码的每一笔交易之中。

这操作码有啥用呢?

假设现在有一个去中心化的竞技博彩应用,有一家公司叫做Fyookball Sports Oracle (FSO)。Alice跟Bob用比特币脚本创建了一个点对点的赌注,由任何一方解锁比特币。两人的赌注如下:

Alice签名 + FSO签名 赌 “费城赢" 或者 Bob签名+ FSO签名 赌 "纽约赢” (费城赢,纽约赢就是通过OP_CHECKDATASIG这个操作码从外部获取的信息)

这就是新增的这个操作码能干的事情。这个操作码可以丰富整个BCH生态,实现预言机相关的特定使用案例。

转载地址:http://otael.baihongyu.com/

你可能感兴趣的文章
shell 脚本简介
查看>>
【Transact-SQL】一句SQL删除重复记录
查看>>
bash编程之算术运算
查看>>
服务器类型
查看>>
安装VIM8和vim-go插件
查看>>
安装SCCM2012 R2
查看>>
CentOS6.5 NFS服务器的安装与基本参数
查看>>
I/O多路转接之select
查看>>
让有些“-l”链接静态库,而另一些链接共享库?
查看>>
使用Webstorm操作git
查看>>
uboot移植之start_armboot()函数分析
查看>>
移动办公是不能阻挡的未来办公趋势
查看>>
docker简单介绍及安装
查看>>
DNS服务(1)基本概念详解
查看>>
Redhat7DNS搭建
查看>>
python之rabbitMQ
查看>>
sys和shutil
查看>>
Django模板——html转义
查看>>
数理统计总结篇第一章
查看>>
javascript开发模式
查看>>