日本交易所bitFlyer详细图文教程1 – 注册与认证

bitFlyer比特币交易平台隶属于bitFlyer Inc.公司,成立于2014年1月9日,公司的主营业务是比特币市场交易与结算。bitFlyer是目前日本交易量最大的比特币交易所,并且自从日本政府承认比特币支付合法化后,bitFlyer的比特币交易量更是一举跃升至世界第一。

 

目前bitFlyer已经支持中文,而且支持绑定(日本的)信用卡、储蓄卡等,可以直接以法币(日元)买卖操作。所以,有日本朋友或有日本银行账户的朋友这次有福了。

 

本文,冬瓜同学(公众号:春来冬往)就与大家聊一聊bigFlyer的注册与认证。

 

1、注册

 

进入网址 https://bitflyer.jp/,网站会根据访问者的IP自动选择语言,当前网站支持五种语言:中文、日文、英文、法文、韩文。如果读者进入网站时没有自动显示中文,可以点击网站右上角的国旗图标,选择中国国旗,使网站显示成中文,如图1所示。
日本交易所bitFlyer详细图文教程1 - 注册与认证
图1 bitFlyer中文首页
介绍网站之前冬瓜(公众号:春来冬往)先吐槽几句,这网站的风格还真是满满的槽点,有一种上个世纪八十年代的感觉。
通过首页可以看到,网站支持使用Yahoo和Google的帐号创建bitFlyer的帐号,点击这两个按钮之后是连接到这两个系统的帐号系统,确认注册授权,类似国内的“使用微信登录”或“使用QQ帐号登录”,相信国内的读者都比较熟悉,本文不再演示了。
如果不想用这两种帐号注册,读者也可以点击网站右上角的“创建帐户”,使用自己的邮箱注册,如图2所示
                                                

日本交易所bitFlyer详细图文教程1 - 注册与认证
                                                                     图2 创建帐户页面

 

帐户分为个人帐户和企业帐户,我们用默认的个人帐户就好。

 

填写好要注册的电子邮箱地址和要设置的密码,点击“免费注册!”,需要注意的是这里密码需要在9到100个字符之间,包含至少2个小写字母,1个大写字母,1个特殊字符和1个数字,特殊字符就是按住键盘上的Shift键再输入上面的数字,如~!@#¥%等。而且只要求输入一次密码,不像其他网站那样会要求用户再输入一次密码以保证没有输入错误。读者在这里需要小小注意一下。点击“免费注册”之后,会提示注册成功,如图3所示。
日本交易所bitFlyer详细图文教程1 - 注册与认证
图3 注册成功,等待确认

 

网站提示已经发送了确认邮件,进入注册时填写的邮箱查看,如图4所示。
日本交易所bitFlyer详细图文教程1 - 注册与认证
图4 注册确认邮件

 

点击邮件中的箭头指向的链接,或者将【关键词】下面的一行字符串拷贝到图3所示的“关键词”输入框中,单击“注册”按钮完成注册,系统会自动跳转到控制面板页面,同时会跳出一个对话框,要求用户同意网站的相关条款,以及确认自己非美国人,如图5所示。
日本交易所bitFlyer详细图文教程1 - 注册与认证
图5 确认条款

 

点击图5中用红色方框一标出来的四项(这四项必须全部选中),之后点击“启动bitFlyer”按钮,进入控制页面后,会再次跳出一个对话框,提示完成个人身份认证,如图6所示。
     

日本交易所bitFlyer详细图文教程1 - 注册与认证
图6 提示认证个人信息

 

我们暂时先略过这一步,点击右上角的“X”,直接进入到控制面板页面,如图7所示。
日本交易所bitFlyer详细图文教程1 - 注册与认证
图7 控制面板页面

 

虽然首页做得很有年代感,这个控制面板页面做得相对好一些了。

 

面板分为几个区域,左侧是买卖比特币、信用卡购物区域;中间上面的“我的资产”24小时变化情况,中间下面是网站可以交易的虚拟币种,包含比特币、以太坊、莱特币等;右侧上面是当前的实时市场信息情况;右侧下面是帐户信息区域,包含双重验证、个人信息等。

 

2、开启双重验证

 

为了帐号的安全,建议打开双重验证,点击红底的“双重验证未启用”,进入设置页面的安全设置,如图8所示。
                                                               

日本交易所bitFlyer详细图文教程1 - 注册与认证
                                                                    图8 设置双重验证

 

最后一行英文的意思是,如果使用email做双重验证,还需要设置一个4位的数字pin码,后评论会介绍,这里点击“Change two-factor authentication settings”,进入双重验证设置页面,如图9所示。
                                                  

日本交易所bitFlyer详细图文教程1 - 注册与认证

                                

                                                           图9 双重认证设置

 

提示相关代码已经发往邮箱,邮件内容如图10所示。

 

日本交易所bitFlyer详细图文教程1 - 注册与认证
图10 验证码通知

 

输入收到的验证码,点击“新一代”,其实这个“新一代”的意思是“下一步”,可能他们也是用的翻译软件直接翻译的吧。点击“新一代”后,提示用户选择收取验证码的方式,如图11所示。
                                                         

日本交易所bitFlyer详细图文教程1 - 注册与认证
                                                                   图11 选择如何收取验证码

 

右下方为选择什么时候使用验证码,共四个选项:
  • 登录时
  • 注册外部地址时(什么是外部地址?俺也不知道。。)
  • 提现日元时
  • 向外部发送数字货币时

 

其中前三项是可选项,最后一项是必选的,用户可以根据自己的情况选择,之后点击“新一代”按钮,如图12所示。
                                                           

日本交易所bitFlyer详细图文教程1 - 注册与认证
                                                                         图12 验证邮箱

 

笔者选择了邮箱验证,所以把验证码发到了邮箱中。如果读者选择了不同的验证码接收方法,这里可能稍有不同。再次去邮箱中收取验证码,输入到这里的输入框中,点击“启用双重验证”,如图13所示。
日本交易所bitFlyer详细图文教程1 - 注册与认证
图13 提示设置4位数字PIN码

 

前文已经说过,如果设置了使用邮箱进行双重验证,还需要设置一个4位的数字pin码,点击“Next, set a 4-Digit PIN”,进入设置页面,如图14所示。
日本交易所bitFlyer详细图文教程1 - 注册与认证
                                                                        图14 4位pin码设置页面

 

页面上的英文提示用户不要把pin码设置得太简单,例如不要设置像 “0000”、 “1111”、 “1234” 这种。

 

设置好pin吗后,点击“Set”按钮,页面会提示设置成功,如图15所示。
                                                        

日本交易所bitFlyer详细图文教程1 - 注册与认证
                                                                     图15 pin码设置成功

 

点击页面中的“Done”按钮,网站再次跳转回“安全设置”页面,如图16所示。
日本交易所bitFlyer详细图文教程1 - 注册与认证
图16 完成了双重验证

 

可以看到双重验证和4位pin码已经设置完成了。

 

3、身份认证

 

虽然设置了双重验证,但是到目前为止还是不能交易的,还需要进一步对个人身份进行验证。

 

点击左侧的“主页”进入控制面板,在页面的右下解,是用户的帐户信息,如图17所示。
日本交易所bitFlyer详细图文教程1 - 注册与认证
图17 帐户信息未认证

 

3.1 个人信息注册

 

点击“个人信息”,进入信息输入页面,如图18所示。
日本交易所bitFlyer详细图文教程1 - 注册与认证
图18 个人信息输入页面

 

在国家一项中,默认是Japan,即日本,选择下拉菜单中的China,改成中国。其他信息根据自己的情况填写即可。其中性别一项的第三个选项“I prefer not to say”,意思是不想说,保密。

 

中间的家族地址,一定要与你要提交的身份证件(如身份证或护照)上面的一样,不然可能会无法审核通过。冬瓜同学(公众号:春来冬往)第一次填写时就是由于地址写得与身份证上不一致,又重新提交审核了一次。

 

后面的电话号码一项中,需要写上国家代码,中国的国家代码是+86,就是说在输入电话号码或手机号码的时候,前面需要加上”+86″,且与自己的手机号之间不能有空格,如图19所示。
日本交易所bitFlyer详细图文教程1 - 注册与认证
图19 设置电话号码

 

填写完成后,点击蓝色的“请确认您的注册信息”,系统会跳转到一个信息确认页面,如图20所示。
                                                         

日本交易所bitFlyer详细图文教程1 - 注册与认证
                                                                     图20 个人信息确认页面

 

如果信息没问题,点击“请注册您的个人信息”按钮,会弹出一个对话框,如图21所示。
日本交易所bitFlyer详细图文教程1 - 注册与认证
图21 注册确认

 

3.2 身份证明

 

个人信息注册完成之后,还需要对个人身份进行证明。点击“提交个人验证文件”,进入身份证明页面,如图22所示。
日本交易所bitFlyer详细图文教程1 - 注册与认证
图22 身份证明页面

 

在“Type of submitted document”的下拉列表中选择“外国公共机关发行的证件(仅限外国人)”,之后就是对自己身份证正反面照片的提交,认证过国内交易所的读者一定不会陌生,本文不在复述,提交好照片后,点击“提交您的人个身份证明文件”按钮,资料上传成功之后,出现图23所示页面。
日本交易所bitFlyer详细图文教程1 - 注册与认证
图23 个人资料上传成功

 

这个页面的蓝色按钮相当于图17中的交易时确认,点击这个蓝色按钮,进入另一项确认,如图24所示。
日本交易所bitFlyer详细图文教程1 - 注册与认证
图24 交易时确认

 

第一项是确认用户是不是“外国的重要公众人物或其亲属”,所谓的重要公众人物,指的是国家的政要人物等。本人显示不是“重要人物”,这里直接选第一个,“我不是海外的重要公众人特或其亲属”,读者如果有特殊身份,可根据自身实际情况选择。

 

选择结束之后,点击“输入”按钮,完成认证。之后是对个人银行卡帐号的绑定,如果不想绑定,这里可以暂时不用绑定,需要的时候再绑定即可。绑定的位置还是在面板页面的右下解。如图25所示。
日本交易所bitFlyer详细图文教程1 - 注册与认证
图25 认证过程中的帐户信息

 

可以看到身份证明目前正在确认过程中,其他的已经确认。
经过近一天的审核(速度还是相当快的,其中还包括一次因地址信息填写不正确的重填重审),再次看的时候已经通过了,如图26所示。
日本交易所bitFlyer详细图文教程1 - 注册与认证
图26 完成身份验证

 

这时已经可以对比特币或其它虚拟货币进行买卖了。

 

关于其他的几项验证,方法大同小异,相信看过本文的朋友都能完成操作,本文就不再继续显示了。如果有问题,可以留言与我交流。

 

P网(Poloniex)注册教程

Poloniex是美国的数字货币交易所,是一个交易量大、币种多且比较正规的交易平台,网站全英文,但操作比较简单,注册需要科学的上网




注册
1.打开poloniex.com,选择“Create Your Account”按钮开始创建账号。

最好用的P网(Poloniex)注册教程

▲ poloniex.com主界面

2.填入注册信息,此处假设用btc2100@outlook.com演示注册。
最好用的P网(Poloniex)注册教程
▲ 注册界面

 

3.注册后提示验证邮件
最好用的P网(Poloniex)注册教程


▲ 注册完成提示

 

4.在邮箱中完成验证操作
最好用的P网(Poloniex)注册教程


▲ 邮箱验证界面

 

注意:
    如果收件箱中没有找到邮件,检查垃圾箱,防止邮件被过滤。

登陆和认证

1.点击右上角“Sign in”按钮,或者打开 https://poloniex.com/login,进行登陆操作。
最好用的P网(Poloniex)注册教程
▲ 登陆界面

 

2.登陆成功后,会提示认证,如果不进行认证,账户的可操作余额为0,即无法进行交易。而如果认证成功后,每天充值提现代币的额度可以提升到到25000USD。
最好用的P网(Poloniex)注册教程

 

▲ 身份验证界面

 

注意:
    身份认证信息需要英文,以下是一个认证的例子,假设认证人为王小六,住在腾讯大厦,那么认证的信息为:
最好用的P网(Poloniex)注册教程

 

▲ 身份验证模版

 

手持身份证照片,需要同时包含当天日期和POLONIEX的字样,如下图所示。
最好用的P网(Poloniex)注册教程
▲ 官方给出的正确示例

 

很多人在地址这一栏会被卡住,总是不能通过认证,这里提供一个窍门,那就是:在谷歌里搜你所在的地址的英文版,然后按照谷歌地图给出的地址进行填写,例如,腾讯大厦的英文版地址就是如下图所示。如果你填写的地址比较乱,往往无法通过poloniex的验证。

 

最好用的P网(Poloniex)注册教程
▲ 谷歌搜索的腾讯大厦的地址

 

3.点击保存信息按钮,提交资料给网站审核。

 

最好用的P网(Poloniex)注册教程
▲ 底部提交的界面

 

4.认证的时间不固定,快的一两天就可以认证成功,也有提交认证后一个月都没审核结果的。如果认证成功后,点击右上角的“MY PROFILE”,即可看到认证通过的信息。

 

最好用的P网(Poloniex)注册教程
▲ 右上角个人信息菜单

 

以下是认证通过后的示例截图

 

最好用的P网(Poloniex)注册教程
▲ 认证通过的截图

 

5.由于交易所账户一般都绑定谷歌二次验证,所以,这里也提供绑定谷歌二次验证的方法。

 

通过右上角进入二次验证的入口。
最好用的P网(Poloniex)注册教程
▲ 右上角二次验证入口

 

进行常规的二次验证的绑定操作即可。

 

最好用的P网(Poloniex)注册教程
▲ 绑定谷歌二次验证

 

绑定谷歌二次验证的简易教程:
最好用的P网(Poloniex)注册教程
▲ 绑定谷歌二次验证的简易教程





充值和提现

1.右上角选择“BALANCES”下的菜单即可进行冲提币操作

 

最好用的P网(Poloniex)注册教程
▲ 进入充值和提现的界面

 

2.如果通过身份验证,就可以获得每天25000美元等值的冲提限额进行冲提币操作,否则无法充值和提现。选择相应的币种,就可以进行冲提。假设选择BTC进行充值,选择BTC的Deposit即可。
最好用的P网(Poloniex)注册教程
▲ 生成地址的界面

 

3.对生成的地址进行充值即可。

 

最好用的P网(Poloniex)注册教程
▲ 生成充值地址

 

4.选择Withdraw即可进行提现操作。
最好用的P网(Poloniex)注册教程

 

▲ 转出界面



交易

P网也提供了三种交易,这三种交易也分别对应三个独立的钱包,选择不同的交易之前,必须往该交易账户转入一定的金额才能进行。

 

EXCHANGE:普通交易,设定价格进行买卖
MARGIN TRADING:保证金交易,也称为杠杆交易,风险较高
LENDING:借款交易,设定一定的利率、时间和金额进行放款
1.点击左上角“EXCHANGE”按钮,即可进入交易市场界面。

 

最好用的P网(Poloniex)注册教程
▲ 右侧交易市场界面

 

2.选择交易的币种即可进入交易界面。

 

最好用的P网(Poloniex)注册教程
▲ 交易界面

 

3.保证金交易界面跟交易界面基本一致,只是增加了杠杆,风险很高,新手慎入,不再赘述。

 

4.放款类似于借助平台进行放款,由平台担保借款的安全性,相对安全。

 

最好用的P网(Poloniex)注册教程

 

比特币7年价格走势

2009年元月-2010年5月,近一年半,基本上没有价格.
2010.5月,拉丝勒用一万个BTC换2个披萨,现值约3.8亿人民币。
2010.8月,第一次出现在交易所,价格0.0769美分。
2011年4月,由1美元,到5美元,到10美元,到20美元。
2011年6月,第一次涨到30美元。
2012年初,最低不到2美分。
2012年底,一直在底价徘徊。最高也只有30美元的三分之一。
2013年4月,最高到260美元。
2013.5月,又狂跌到68美元。
2013.7月,价格66美元。
2013.12月,最高1147美元,约8000人民币。
2015.1月,狂跌到114美元,约900人民币,
随后又盘升至:1000多
2016年上半年2000多元,至3000多,至现在17000元左右。
看似大风大浪。长期持币稳升值。
2017年从3月5000,到8月最高35000,7月从30000跌到16000,用了一个月,可是从16000到30000只用了3天。9月,国家关闭所有交易平台,比特币却在此时坚挺,飙升到39500,破40000,而今天,比特币接近15万人民币!

轻松搞定Blockchain.info在线钱包

Blockchain.info是全球规模最大的在线钱包服务提供商,用户基数较大。

前段时间这家公司收购了比特币交易所RTBTC,之后迅速的全面更新了网站的中文页面。

3月初上海创智天地的交流会上,Blockchain.info中国区的负责人也上台跟大家分享Blockchain.info以后的发展规划。

 

在Mt.Gox事件影响之下,一定有人担心平台的安全,决定将账户里的币提到自己的钱包里面,但除了带有官方性质的bitcoin-QT之外,还有没其他更好的选择呢?提币小白教程请移步  的文章:http://www.8btc.com/withdrawal-from-trading-platforms

 

本文着重讲解一下Blockchain.info钱包的若干注意点,包括钱包找回等技巧。

(如果你对在线钱包的使用已然很熟练,可以略过这篇文章)

 

我们先来一起来建个新钱包:

1,首先登陆Blockchain.info官方网站:https://blockchain.info/zh-cn/

你可以看到如下页面,点击申请钱包。

 

blockchain-1

 

2,如图点击“我的钱包”

 

blockchain-2

 

3,按要求填写邮箱地址和密码,最好不要用QQ邮箱,QQ号被盗很容易影响QQ邮箱的安全。

126,gmail,hotmail等邮箱都是不错的选择。

 
 

blockchain-3

 

4,创建完成后我们来到登录页面(如何创建钱包过程中网站让你记下一串英文短语组成的长句时,请将其复制到本地文档,并压缩加密。

登录页面有两个部分比较重要,一是钱包识别码,二是二次验证(这个我们等下会提到),钱包识别码Blockchain.info会发到你的注册邮箱,本地一次登录后以后都会默认记住,在其他机器上登录时可以考虑设置一个方便记忆的短链。(下文有具体操作办法)

 

blockchain-4

 

5,如果这个时候你查看你的邮箱,会发现Blockchain.info已经发了一个包含钱包备份的邮件,这个后缀为.json的文件一定要保存后,这是以后找回钱包最关键的证明!

 

blockchain-5

 

6,然后我们就可以看到自己的钱包了,页面左下角是钱包地址的二维码,那一长串1带头的数字就是你的钱包地址。

 

blockchain-6

 

7,接着我们点击页面中的“账户设置”,可以看到如下警示窗口

blockchain-7

8,进入后我们可以设置恢复邮箱,账户短名,验证手机号码。

其中短连接就相当于是一个个性地址,填入英文/数字组合,设置好以后直接访问这个链接地址就可以进入钱包登陆界面。

 

blockchain-8

 

9,交易费用默认勾选标准,最好不要动它,节俭模式有可能得不到确认,慷慨模式又略坑。

 

blockchain-9

 

10,在此页面可以设置默认的计量单位,mbtc或btc。(1btc=1000mbtc)

blockchain-10

 

11,在密码设置页面,注意主密码和副密码一定都要设置,最好不要相同。

你把它理解成支付宝的登录密码和支付密码就行了。

 

blockchain-11

 

12,这一步很关键,我个人曾经使用过手机短信验证,但经常是登录的时候收不到验证短信,估计是Blockchain的中国部门没有弄好短信平台。现在我已经改成了谷歌验证,iOS和安卓平台都有官方出的软件。

iOS点击:https://itunes.apple.com/cn/app/google-authenticator/id388497605?mt=8

安卓点击:https://support.google.com/accounts/answer/1066447?hl=zh-Hant

(以上均为官方链接)

 

blockchain-12

13,Blockchain.info还提供了个有趣的功能-熔币,这其实通过系统内部机制洗(和谐)币,得到一个“不那么容易”被追踪的币,感兴趣的可以研究下,其实对普通人也没多大用处。

 

blockchain-13

14,接下来,我们看看钱包丢失了该如何找回。

首先,在登录界面的右侧,你能看到如下页面:

 

blockchain-15

 

15,选择“恢复钱包”,便能看到让你输入脑钱包和验证短信/邮箱的窗口,脑钱包密码在申请新钱包的时候由系统提供,前面已经提到,应该将其保存下来并压缩加密,有条件的话打印成纸质更好。

 

blockchain-16

 

16,如果你选择导入备份,则可以看到一个虚线窗口,此时将之前备份好的以.Json为后缀的备份文件拖进窗口即可。

 

blockchain-17

 

17,如果这两者你都搞忘了或者搞丢了怎么办?是不是钱包就再也找不回来了?不是的,我们还有最后一招。

登录Blockchain.info的首页,点击帮助页面:

 

blockchain-19

 

18,接着点击右下角的About Us

 

blockchain20

19,找到客服平台

 

blockchain21

20,在弹出窗口点击已阅读上述文件 I have read the above

 

blockchain-22

 

21,最后,在此页面提交问题描述,Blockchain.info的工作人员会人工审核信息的正确性,并会帮助你找回钱包。

目前仅支持英文。

 

比特币核心钱包(Bitcoin Core)的使用入门指南

比特币官方钱包客户端的原名是Bitcoin-qt,现在更名为bitcoin core比特币核心钱包,这是比特币核心钱包客户端最新版本0.9.2.1安装及入门教程。
这个钱包是最完整的、最安全的钱包、最早的比特币客户端,但是,他的区块链数据文件(blockchain)体积庞大,启动较慢,仅适合高端的比特币用户使用。
1.首先,到比特币官方网站下载钱包,注意选择32位或者64位。 https://bitcoin.org/zh_CN/download

2.点击下载回来的.exe文件安装钱包,然后启动钱包,设置数据存储位置,数据存储目前(截止2014-09-12)需要25GB 以上的空间。
安装完毕就可以数据同步了。

3.加速下载区块链的数据文件bootstrap.dat
新安装的比特币核心客户端需要同步数据是一个漫长的过程,一般的使用者想要快速使用的话推荐使用multibit等轻客户端。
首先,比特币项目官方每隔一段时间会把数据文件打包成bootstrap.dat 文件,在比特币的项目主页下载数据文件的种子文件。Armory 也需要下载完整的区块链数据,Armory 也会把文件进行打包,而且更新更快,推荐使用Armory 的torrent 来下载。放心,下载回来的bootstrap 文件都是一致的,而且客户端会进一步验证。
Armory 打包的bootstrap.dat.torrent:https://s3.amazonaws.com/bitcoinarmory-media/bootstrap.dat.torrent
Bitcoin 官方打包的bootstrap.dat.torrent:http://sourceforge.net/projects/bitcoin/files/Bitcoin/blockchain/
通过μTorrent软件或者迅雷打开种子文件开始下载即可。这个方法下载区块链的数据也有一个好处,就是减轻了比特币的P2P网络的流量负担。
最后把数据文件放到比特币客户端的默认数据文件夹(AppData/Roaming/Bitcoin)即可开始导入。
4.加密钱包
数据同步完成后,钱包才能正常工作。这时,请立即设置密码并备份钱包。
一个好的密码,应该包括16位以上(最好20位以上)的大小写字母、数字及特殊符号,且不要使用生日、名字、证件号码等易被猜测的密码。警告:遗忘密码等于丢失所有比特币。




5.进行交易
在“发送”选项卡,可以把你的比特币发送给其他比特币用户。请注意:交易一经确认,无法逆转!请仔细确认交易信息。系统可能根据情况征收交易费,请选择支付。(一般情况是0.0001BTC,万分之一个币,约3毛钱)

在“接收”选项卡,我们可以获取自己的钱包地址。直接点击“请求付款”,将生成一个新的地址。你可以将这个地址给别人,让他们向你发送比特币。

点击“请求付款”按钮,即可显示接收地址和二维码了。

比特币价格的四点支撑

比特币的价值支撑有四点
第一是黑市的地下交易需求,这是目前最实实在在的地位,也几乎保证了比特币永远没有归零的那一天
第二是区块链技术的远景预期,原则上说区块链和比特币是两码事,而且目前比特币公有链的应用乏善可陈。但作为最早最广泛的应用,比特币依然是区块链技术的最好的广告,也就可以不断吸引小白入场。
第三是资产跨国界转移的通道 洗钱只是一个方面,目前的跨国ico依然很火爆,想想你足不出户,就可以投资世界上任意一个角落的创业公司。
第四是比特币创世最大的梦想,取代黄金的地位,达到限制法币滥发,资产保值。这条路还很遥远,但是毫无疑问的是,比特币越普及,离这个目标越近。当筹码足够分散,就没有人能真正操控它的价格。
为什么说比特币不是郁金香泡沫?郁金香可以部分取代第一条,但是没有第二条,由于郁金香可以被政府管控,它也永远不可能有第三条和第四条价值。
当然,价值归价值,泡沫归泡沫。最终怎么样,要看这四个目标能不能一一实现,如果第四条实现,比特币不仅不是泡沫,今后也应该还有接近1000倍以上的涨幅。

精通比特币 – 附录4 sx工具下一些的命令

附录4 sx工具下一些的命令

sx 命令如下:
不赞成 DEPRECATED Electrum钱包式的确定密钥和地址 genaddr 由钱包种子或主公钥来生成一个比特币地址。 genpriv 只由种子来生成一个私钥。 genpub 由钱包种子或主公钥来生成一个公钥。 mpk 只由钱包种子来生成主公钥。 newseed 创建一个新的决定性的钱包种子。
试验中的 EXPERIMENTAL APPS wallet 试验性的命令行钱包。
离线区块链 OFFLINE BLOCKCHAIN 区块头 showblkhead 显示区块头细节
离线密钥和地址 OFFLINE KEYS AND ADDRESSES 基础操作 addr 查看公钥或私钥的比特币地址。 embed-addr 将记录数据嵌入区块链,生成新的地址。 get-pubkey 如果可行的话,得到地址公钥。 newkey 创建一个新私钥。 pubkey 查看私钥的公开部分。 validaddr 确认一个地址有效。
记忆存储BRAIN STORAGE brainwallet 从任意口令生成256位比特币私钥。 mnemonic 从128位electrum钱包或bip32种子生成12助记词。
HD / BIP32 hd-priv 从一个HD私钥创建新的HD 私钥。 hd-pub 从一个HD私钥或公钥创建一个新的HD公钥。 hd-seed 创建一个随机的新HD密钥。 hd-to-address 将 HD 公钥或私钥转为比特币地址。 hd-to-wif 将HD私钥转为WIF私钥。
MULTISIG ADDRESSES scripthash 从原始十六进制脚本创建BIP16脚本哈希值。
隐身STEALTH stealth-addr 从给定输入查看隐身地址。 stealth-initiate 初始化新的隐身支付。 stealth-newkey 生成新的隐身密钥和地址。 stealth-show-addr 显示具体隐身地址。 stealth-uncover 揭开隐身地址。 stealth-uncover-secret 放弃隐身。
离线交易 OFFLINE TRANSACTIONS mktx 创建一个未签名的tx。 rawscript 从脚本创建未处理的十六进制请求。 set-input 设置交易输入。 showscript 显示脚本细节。 showtx 显示交易细节。 sign-input 输入交易签名。 unwrap 使验证码有效,从原始十六进制串恢复版本字节和原始数据。 validsig 确认交易输入签名有效。 wrap 向十六进制串添加版本字节和验证码。
ONLINE (BITCOIN P2P) 区块链更新 BLOCKCHAIN UPDATES sendtx-node 把交易导入单个节点。 sendtx-p2p 把tx传向比特币网络。
ONLINE (BLOCKCHAIN.INFO) BLOCKCHAIN QUERIES (blockchain.info) bci-fetch-last-height 使用 blockchain.info 获取最后一个区块高度。 bci-history 从 blockchain.info 得到输出点、价值、消费总额的列表。
区块链更新 BLOCKCHAIN UPDATES sendtx-bci 把tx传向blockchain.info/pushtx。
ONLINE (BLOCKEXPLORER.COM) BLOCKCHAIN QUERIES (blockexplorer.com) blke-fetch-transaction 从 blockexplorer.com 获取交易
ONLINE (OBELISK) BLOCKCHAIN QUERIES balance 以聪为单位显示一个比特币地址的余额。 fetch-block-header 获取区块头。 fetch-last-height 获取最后的区块高度。 fetch-stealth 网络连接obelisk load balancer后台发出请求以获取隐身信息。 fetch-transaction 用网络连接向 obelisk load balancer后台请求以获取未处理交易。 fetch-transaction-index 在交易区块里获取区块高度和索引。 get-utxo 从给定地址集合里得到足够的尚未动用的交易输出,用以支付给定数量的聪。 history 从地址得到输出点、价值、消费总额列表。grep命令可以过滤未动用的输出,其结果可以被mktx命令调用。 validtx 确认交易有效。 BLOCKCHAIN UPDATES sendtx-obelisk 将tx传送到 obelisk 服务器。 BLOCKCHAIN WATCHING monitor 监控一个地址。 watchtx 通过网络搜索特定哈希值来查看交易。
OBELISK ADMIN initchain 初始化新区块链。
UTILITY EC MATH ec-add-modp 计算整数和整数相加结果。 ec-multiply 整数和点的乘积 ec-tweak-add 计算 POINT + INTEGER * G 结果。
FORMAT (BASE 58) base58-decode 从 base58 转为十六进制。 base58-encode 从 16 进制转为 base58。
FORMAT (BASE58CHECK) base58check-decode 从 base58check 转为十六进制。 base58check-encode 从十六进制转为 base58check。 decode-addr 将地址从 base58check 形式解码为内部 RIPEMD 表达。 encode-addr 将地址从内部 RIPEMD 编码为 base58check 形式。
FORMAT (WIF) secret-to-wif 将秘密指数转为WIF。 wif-to-secret 将WIF转为秘密指数。
HASHES ripemd-hash 从 STDIN 转为RIPEMD 哈希值。 SHA256 取得数据的SHA256哈希值。
MISC qrcode 生成比特币离线二维码。 SATOSHI MATH btc 转换聪币为比特币 satoshi 将比特币转换为聪币。
输入“sx help COMMAND”,可以了解命令的具体信息。 接下来,我们看一些使用 sx 工具操作密钥和地址的例子。 用 newkey 命令利用系统的随机数生成器生成一个新的私钥。将标准输出存入 private_key 文件。
$ sx newkey > private_key $ cat private_key 5Jgx3UAaXw8AcCQCi1j7uaTaqpz2fqNR9K3r4apxdYn6rTzR1PL
现在,用 pubkey 命令将前面生成的私钥转成公钥。将 private_key 文件作为标准输入,以标准输出的方式导出到新文件 public_key 。
$ sx pubkey < private_key > public_key $ cat public_key 02fca46a6006a62dfdd2dbb2149359d0d97a04f430f12a7626dd409256c12be500
我们可以用 addr 命令将 public_key 的格式重新设定为地址。将 public_key 作为标准输入。
$ sx addr < public_key 17re1S4Q8ZHyCP8Kw7xQad1Lr6XUzWUnkG
生成的密钥是所谓的type-0型非决定性密钥,也就是说每个密钥都是从一个随机数生成器生成的。 sx 工具也支持 type-2 决定型密钥,先创建了一个主密钥,然后扩展生成一个子密钥链。 首先,我们生成种子,这是整个密钥链的基础。这也可应用于Electrum钱包以及其他类似应用。我们使用 new seed 命令来生成种子值。
$ sx newseed > seed $ cat seed eb68ee9f3df6bd4441a9feadec179ff1
种子值可以通过 mnemonic 命令转化为助记词,这比十六进制数字更方便易读,也更容易存储和输入。
$ sx mnemonic < seed > words $ cat words adore repeat vision worst especially veil inch woman cast recall dwell appreciate
使用助记词也可以用 mnemonic 命令重新生成种子。
$ sx mnemonic < words eb68ee9f3df6bd4441a9feadec179ff1
利用这个种子,我们现在可以生成一系列私钥和公钥,也就是一个密钥链。genpriv 命令可以从一个种子生成一系列私钥,addr 命令可以生成对应的公钥。
$ sx genpriv 0 < seed 5JzY2cPZGViPGgXZ4Syb9Y4eUGjJpVt6sR8noxrpEcqgyj7LK7i $ sx genpriv 0 < seed | sx addr 1esVQV2vR9JZPhFeRaeWkAhzmWq7Fi7t7 $ sx genpriv 1 < seed 5JdtL7ckAn3iFBFyVG1Bs3A5TqziFTaB9f8NeyNo8crnE2Sw5Mz $ sx genpriv 1 < seed | sx addr 1G1oTeXitk76c2fvQWny4pryTdH1RTqSPW
使用这种决定性的密钥,我们可以生成和再造成千上万的新密钥,它以一种关联链的形式从一个唯一的种子 生成的。这项技术已经使用在许多钱包应用中,仅用简单几个助记词,就可以备份和重现密钥,这种方式要比创建密钥时需要把钱包的随机生成的所有密钥一起备份要方便的多。

==目录==

简介
前言
第1章 介绍
第2章 比特币的原理
第3章 比特币客户端
第4章 密钥、地址、钱包
第4章 高级密钥和地址
第5章 交易
第6章 比特币网络
第7章 区块链
第8章 挖矿与共识
第8章 区块链分叉、矿池、共识攻击
第9章 竞争币、竞争块链和应用程序
第10章 比特币安全
附录1 交易脚本的操作符、常量和符号
附录2 比特币改进协议
附录3 pycoin库、ku程序和tx交易程序
附录4 sx工具下一些的命令
本文原链接:http://zhibimo.com/read/wang-miao/Mastering-Bitcoin/Appendix4.html

附录3 pycoin库、ku程序和tx交易程序

附录3 pycoin库、实用密钥程序ku和交易程序tx

pycoin库起初由Richard Kiss 撰写和维护 ,基于 Python 脚本的处理交易密钥,不仅支持比特币交易,也支持其他非标准脚本语言的交易类型。
pycoin 库支持 Python 2 (版本 2.7.x) 和Python 3 (版本 3.3 以后)。下面介绍一些好用的命令行使用程序—— ku 和 tx。

实用密钥程序(KU)

命令行实用程序 KU ( key utility 缩写)对于处理密钥而言,就如同瑞士军刀一样灵活有用。它支持 BIP32 密钥、WIF 和地址(比特币以及竞争币均可)。下面是一些例子。
使用默认的 GPG 熵池和系统随机数设备( /dev/random )来创建BIP32 密钥,如下:

$ ku createinput : createnetwork : Bitcoinwallet key : xprv9s21ZrQH143K3LU5ctPZTBnb9kTjA5Su9DcWHvXJemiJBsY7VqXUG7hipgdWaU m2nhnzdvxJf5KJo9vjP2nABX65c5sFsWsV8oXcbpehtJipublic version : xpub661MyMwAqRbcFpYYiuvZpKjKhnJDZYAkWSY76JvvD7FH4fsG3Nqiov2CfxzxY8 DGcpfT56AMFeo8M8KPkFMfLUtvwjwb6WPv8rY65L2q8Hztree depth : 0fingerprint : 9d9c6092parent f'print : 00000000child index : 0chain code :80574fb260edaa4905bc86c9a47d30c697c50047ed466c0d4a5167f6821e8f3cprivate key : yessecret exponent :112471538590155650688604752840386134637231974546906847202389294096567806844862 hex :f8a8a28b28a916e1043cc0aca52033a18a13cab1638d544006469bc171fddfbewif : L5Z54xi6qJusQT42JHA44mfPVZGjyb4XBRWfxAzUWwRiGx1kV4sP uncompressed : 5KhoEavGNNH4GHKoy2Ptu4KfdNp4r56L5B5un8FP6RZnbsz5Nmbpublic pair x :76460638240546478364843397478278468101877117767873462127021560368290114016034public pair y :59807879657469774102040120298272207730921291736633247737077406753676825777701 x as hex :a90b3008792432060fa04365941e09a8e4adf928bdbdb9dad41131274e379322 y as hex :843a0f6ed9c0eb1962c74533795406914fe3f1957c5238951f4fe245a4fcd625y parity : oddkey pair as sec :03a90b3008792432060fa04365941e09a8e4adf928bdbdb9dad41131274e379322 uncompressed :04a90b3008792432060fa04365941e09a8e4adf928bdbdb9dad41131274e379322843a0f6ed9c0eb1962c74533795406914fe3f1957c5238951f4fe245a4fcd625hash160 : 9d9c609247174ae323acfc96c852753fe3c8819d uncompressed : 8870d869800c9b91ce1eb460f4c60540f87c15d7Bitcoin address : 1FNNRQ5fSv1wBi5gyfVBs2rkNheMGt86sp uncompressed : 1DSS5isnH4FsVaLVjeVXewVSpfqktdiQAM

使用口令创建一个 BIP 32 密钥:


本例中的口令很容易猜到。

$ ku P:fooinput : P:foonetwork : Bitcoinwallet key :xprv9s21ZrQH143K31AgNK5pyVvW23gHnkBq2wh5aEk6g1s496M8ZMjxncCKZKgb5j ZoY5eSJMJ2Vbyvi2hbmQnCuHBujZ2WXGTux1X2k9Krdtqpublic version : xpub661MyMwAqRbcFVF9ULcqLdsEa5WnCCugQAcgNd9iEMQ31tgH6u4DLQWoQayvtS VYFvXz2vPPpbXE1qpjoUFidhjFj82pVShWu9curWmb2zytree depth : 0fingerprint : 5d353a2eparent f'print : 00000000child index : 0chain code :5eeb1023fd6dd1ae52a005ce0e73420821e1d90e08be980a85e9111fd7646bbcprivate key : yessecret exponent :65825730547097305716057160437970790220123864299761908948746835886007793998275 hex :91880b0e3017ba586b735fe7d04f1790f3c46b818a2151fb2def5f14dd2fd9c3wif : L26c3H6jEPVSqAr1usXUp9qtQJw6NHgApq6Ls4ncyqtsvcq2MwKH uncompressed : 5JvNzA5vXDoKYJdw8SwwLHxUxaWvn9mDea6k1vRPCX7KLUVWa7Wpublic pair x :81821982719381104061777349269130419024493616650993589394553404347774393168191public pair y :58994218069605424278320703250689780154785099509277691723126325051200459038290 x as hex :b4e599dfa44555a4ed38bcfff0071d5af676a86abf123c5b4b4e8e67a0b0b13f y as hex :826d8b4d3010aea16ff4c1c1d3ae68541d9a04df54a2c48cc241c2983544de52y parity : evenkey pair as sec :02b4e599dfa44555a4ed38bcfff0071d5af676a86abf123c5b4b4e8e67a0b0b13f uncompressed :04b4e599dfa44555a4ed38bcfff0071d5af676a86abf123c5b4b4e8e67a0b0b13f826d8b4d3010aea16ff4c1c1d3ae68541d9a04df54a2c48cc241c2983544de52hash160 : 5d353a2ecdb262477172852d57a3f11de0c19286 uncompressed : e5bd3a7e6cb62b4c820e51200fb1c148d79e67daBitcoin address : 19Vqc8uLTfUonmxUEZac7fz1M5c5ZZbAii uncompressed : 1MwkRkogzBRMehBntgcq2aJhXCXStJTXHT

以 JSON 格式得到信息:

    $ ku P:foo -P -j    {        "y_parity": "even" ,        "public_pair_y_hex":"826d8b4d3010aea16ff4c1c1d3ae68541d9a04df54a2c48cc241c2983544de52" ,    "private_key": "no" ,    "parent_fingerprint": "00000000" ,    "tree_depth": "0" ,    "network": "Bitcoin" ,    "btc_address_uncompressed": "1MwkRkogzBRMehBntgcq2aJhXCXStJTXHT" ,    "key_pair_as_sec_uncompressed":"04b4e599dfa44555a4ed38bcfff0071d5af676a86abf123c5b4b4e8e67a0b0b13f826d8b4d3010aea16ff4c1c1d3ae68541d9a04df54a2c48cc241c2983544de52" ,    "public_pair_x_hex":"b4e599dfa44555a4ed38bcfff0071d5af676a86abf123c5b4b4e8e67a0b0b13f" ,    "wallet_key": "xpub661MyMwAqRbcFVF9ULcqLdsEa5WnCCugQAcgNd9iEMQ31tgH6u4DLQWoQayvtSVYFvXz2vPPpbXE1qpjoUFidhjFj82pVShWu9curWmb2zy" ,    "chain_code":"5eeb1023fd6dd1ae52a005ce0e73420821e1d90e08be980a85e9111fd7646bbc" ,     "child_index": "0" ,    "hash160_uncompressed": "e5bd3a7e6cb62b4c820e51200fb1c148d79e67da" ,     "btc_address": "19Vqc8uLTfUonmxUEZac7fz1M5c5ZZbAii" ,     "fingerprint": "5d353a2e" ,     "hash160": "5d353a2ecdb262477172852d57a3f11de0c19286" ,     "input": "P:foo" ,    "public_pair_x":"81821982719381104061777349269130419024493616650993589394553404347774393168191" ,    "public_pair_y":"58994218069605424278320703250689780154785099509277691723126325051200459038290" ,    "key_pair_as_sec":"02b4e599dfa44555a4ed38bcfff0071d5af676a86abf123c5b4b4e8e67a0b0b13f"}

BIP32 公钥:

$ ku -w -P P:fooxpub661MyMwAqRbcFVF9ULcqLdsEa5WnCCugQAcgNd9iEMQ31tgH6u4DLQWoQayvtSVYFvXz2vPPpbXE1qpjoUFidhjFj82pVShWu9curWmb2zy

生成一个子密钥:

$ ku -w -s3/2 P:fooxprv9wTErTSkjVyJa1v4cUTFMFkWMe5eu8ErbQcs9xajnsUzCBT7ykHAwdrxvG3g3f6BFk7ms5hHBvmbdutNmyg6iogWKxx6mefEw4M8EroLgKj

加强型子密钥:

$ ku -w -s3/2H P:fooxprv9wTErTSu5AWGkDeUPmqBcbZWX1xq85ZNX9iQRQW9DXwygFp7iRGJo79dsVctcsCHsnZ3XU3DhsuaGZbDh8iDkBN45k67UKsJUXM1JfRCdn1

WIF:

$ ku -W P:fooL26c3H6jEPVSqAr1usXUp9qtQJw6NHgApq6Ls4ncyqtsvcq2MwKH

地址:

$ ku -a P:foo19Vqc8uLTfUonmxUEZac7fz1M5c5ZZbAii

生成一串子密钥:

$ ku P:foo -s 0/0-5 -wxprv9xWkBDfyBXmZjBG9EiXBpy67KK72fphUp9utJokEBFtjsjiuKUUDF5V3TU8U8cDzytqYnSekc8bYuJS8G3bhXxKWB89Ggn2dzLcoJsuEdRKxprv9xWkBDfyBXmZnzKf3bAGifK593gT7WJZPnYAmvc77gUQVej5QHckc5Adtwxa28ACmANi9XhCrRvtFqQcUxt8rUgFz3souMiDdWxJDZnQxzxxprv9xWkBDfyBXmZqdXA8y4SWqfBdy71gSW9sjx9JpCiJEiBwSMQyRxan6srXUPBtj3PTxQFkZJAiwoUpmvtrxKZu4zfsnr3pqyy2vthpkwuoVqxprv9xWkBDfyBXmZsA85GyWj9uYPyoQv826YAadKWMaaEosNrFBKgj2TqWuiWY3zuqxYGpHfv9cnGj5P7e8EskpzKL1Y8Gk9aX6QbryA5raK73pxprv9xWkBDfyBXmZv2q3N66hhZ8DAcEnQDnXML1J62krJAcf7Xb1HJwuW2VMJQrCofY2jtFXdiEY8UsRNJfqK6DAdyZXoMvtaLHyWQx3FS4A9zwxprv9xWkBDfyBXmZw4jEYXUHYc9fT25k9irP87n2RqfJ5bqbjKdT84Mm7Wtc2xmzFuKg7iYf7XFHKkSsaYKWKJbR54bnyAD9GzjUYbAYTtN4ruo

生成相关地址:
$ ku P:foo -s 0/0-5 -a1MrjE78H1R1rqdFrmkjdHnPUdLCJALbv3x1AnYyVEcuqeoVzH96zj1eYKwoWfwte2pxu1GXr1kZfxE1FcK6ZRD5sqqqs5YfvuzA1Lb116AXZc4bDVQrqmcinzu4aaPdrYqvuiBEK1Cz2rTLjRM6pMnxPNrRKp9ZSvRtj5dDUML1WstdwPnU6HEUPme1DQayN9nm6j7nDVEM
生成对应的 WIF:

$ ku P:foo -s 0/0-5 -WL5a4iE5k9gcJKGqX3FWmxzBYQc29PvZ6pgBaePLVqT5YByEnBomxKyjgne6GZwPGB6G6kJEhoPbmyjMP7D5d3zRbHVjwcq4iQXD9QqKQL4B3ygQxK6zH2NQGxLDee2H9v4Lvwg14cLJW7QwWPzCtKHdWMaQzL2L2PZdorybUqkPjrmhem4Ax5EJvP7ijmxbNoQKnmTDMrqemY8UFL2oD6vA4TUyqPF8QG4vhUFSgwCyuuvFZ3v8SKHYFDwkbM765NrfdKzChTbc3kZFxUSJ3Kt54cxsogeFAD9CCM4zGB22si8nfKcThQn8C

通过选择 BIP32 字符串(和子密钥 0/3 相关的那个串)检查是否起作用:

$ ku -W xprv9xWkBDfyBXmZsA85GyWj9uYPyoQv826YAadKWMaaEosNrFBKgj2TqWuiWY3zuqxYGpHfv9cnGj5P7e8EskpzKL1Y8Gk9aX6QbryA5raK73pL2L2PZdorybUqkPjrmhem4Ax5EJvP7ijmxbNoQKnmTDMrqemY8UF$ ku -a xprv9xWkBDfyBXmZsA85GyWj9uYPyoQv826YAadKWMaaEosNrFBKgj2TqWuiWY3zuqxYGpHfv9cnGj5P7e8EskpzKL1Y8Gk9aX6QbryA5raK73p116AXZc4bDVQrqmcinzu4aaPdrYqvuiBEK

好了,看上去很熟悉了。
从秘密指数:

$ ku 1input : 1network : Bitcoinsecret exponent : 1 hex : 1wif : KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU73sVHnoWn uncompressed : 5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreAnchuDfpublic pair x :55066263022277343669578718895168534326250603453777594175500187360389116729240public pair y :32670510020758816978083085130507043184471273380659243275938904335757337482424 x as hex :79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 y as hex :483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8y parity : evenkey pair as sec :0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 uncompressed :0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8hash160 : 751e76e8199196d454941c45d1b3a323f1433bd6 uncompressed : 91b24bf9f5288532960ac687abb035127b1d28a5Bitcoin address : 1BgGZ9tcN4rm9KBzDn7KprQz87SZ26SAMH uncompressed : 1EHNa6Q4Jz2uvNExL497mE43ikXhwF6kZm

莱特币版本:

$ ku -nL 1input : 1network : Litecoinsecret exponent : 1 hex : 1wif : T33ydQRKp4FCW5LCLLUB7deioUMoveiwekdwUwyfRDeGZm76aUjV uncompressed : 6u823ozcyt2rjPH8Z2ErsSXJB5PPQwK7VVTwwN4mxLBFrao69XQpublic pair x :55066263022277343669578718895168534326250603453777594175500187360389116729240public pair y :32670510020758816978083085130507043184471273380659243275938904335757337482424 x as hex :79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 y as hex :483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8y parity : evenkey pair as sec :0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 uncompressed :0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8hash160 : 751e76e8199196d454941c45d1b3a323f1433bd6 uncompressed : 91b24bf9f5288532960ac687abb035127b1d28a5Litecoin address : LVuDpNCSSj6pQ7t9Pv6d6sUkLKoqDEVUnJ uncompressed : LYWKqJhtPeGyBAw7WC8R3F7ovxtzAiubdM

狗狗币 WIF:

$ ku -nD -W 1QNcdLVw8fHkixm6NNyN6nVwxKek4u7qrioRbQmjxac5TVoTtZuot

来自公用对(Testnet 上):

$ ku -nT55066263022277343669578718895168534326250603453777594175500187360389116729240,eveninput :550662630222773436695787188951685343262506034537775941755001873603 89116729240,evennetwork : Bitcoin testnetpublic pair x :55066263022277343669578718895168534326250603453777594175500187360389116729240public pair y :32670510020758816978083085130507043184471273380659243275938904335757337482424252 | Appendix C: pycoin, ku, and tx x as hex :79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 y as hex :483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8y parity : evenkey pair as sec :0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 uncompressed :0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8hash160 : 751e76e8199196d454941c45d1b3a323f1433bd6 uncompressed : 91b24bf9f5288532960ac687abb035127b1d28a5Bitcoin testnet address : mrCDrCybB6J1vRfbwM5hemdJz73FwDBC8r uncompressed : mtoKs9V381UAhUia3d7Vb9GNak8Qvmcsme

来自 hash160:

$ ku 751e76e8199196d454941c45d1b3a323f1433bd6input : 751e76e8199196d454941c45d1b3a323f1433bd6network : Bitcoinhash160 : 751e76e8199196d454941c45d1b3a323f1433bd6Bitcoin address : 1BgGZ9tcN4rm9KBzDn7KprQz87SZ26SAMH

作为狗狗币地址

$ ku -nD 751e76e8199196d454941c45d1b3a323f1433bd6input : 751e76e8199196d454941c45d1b3a323f1433bd6network : Dogecoinhash160 : 751e76e8199196d454941c45d1b3a323f1433bd6Dogecoin address : DFpN6QqFfUm3gKNaxN6tNcab1FArL9cZL

实用交易程序(TX)

命令行实用程序 tx 可将交易以一种易读的方式呈现,还可以从 pycoin 的交易缓存或者网络服务(目前支持 blockchain.info, blockr.io, and biteasy.com )中获取原始交易,合并交易,添加或删除输入或输出,以及签署交易。
下面是一些例子。
看看有名的“披萨”交易[PIZZA]:

$ tx 49d2adb6e476fa46d8357babf78b1b501fd39e177ac7833124b3f67b17c40c2awarning: consider setting environment variable PYCOIN_CACHE_DIR=~/.pycoin_cacheto cache transactions fetched via web serviceswarning: no service providers found for get_tx; consider setting environmentvariable PYCOIN_SERVICE_PROVIDERS=BLOCKR_IO:BLOCKCHAIN_INFO:BITEASY:BLOCKEXPLORERusage: tx [-h] [-t TRANSACTION_VERSION] [-l LOCK_TIME] [-n NETWORK] [-a] [-i address] [-f path-to-private-keys] [-g GPG_ARGUMENT]Key Utility (KU) | 253 [--remove-tx-in tx_in_index_to_delete] [--remove-tx-out tx_out_index_to_delete] [-F transaction-fee] [-u] [-b BITCOIND_URL] [-o path-to-output-file] argument [argument ...]tx: error: can't find Tx with id49d2adb6e476fa46d8357babf78b1b501fd39e177ac7833124b3f67b17c40c2a

糟糕!我们没有设置好网络服务。让我们现在设置:

$ PYCOIN_CACHE_DIR=~/.pycoin_cache$ PYCOIN_SERVICE_PROVIDERS=BLOCKR_IO:BLOCKCHAIN_INFO:BITEASY:BLOCKEXPLORER$ export PYCOIN_CACHE_DIR PYCOIN_SERVICE_PROVIDERS

这不是自动完成的,所以这种命令行工具不会泄漏你在第三方网站交易的隐私信息。如果你想忽略这个提醒,就可以把这些命令行加入到profile文件。
我们再试一次:

$ tx 49d2adb6e476fa46d8357babf78b1b501fd39e177ac7833124b3f67b17c40c2aVersion: 1 tx hash49d2adb6e476fa46d8357babf78b1b501fd39e177ac7833124b3f67b17c40c2a 159 bytesTxIn count: 1; TxOut count: 1Lock time: 0 (valid anytime)Input: 0: (unknown) from1e133f7de73ac7d074e2746a3d6717dfc99ecaa8e9f9fade2cb8b0b20a5e0441:0Output: 0: 1CZDM6oTttND6WPdt3D6bydo7DYKzd9Qik receives 10000000.00000 mBTCTotal output 10000000.00000 mBTCincluding unspents in hex dump since transaction not fully signed010000000141045e0ab2b0b82cdefaf9e9a8ca9ec9df17673d6a74e274d0c73ae77d3f131e000000004a493046022100a7f26eda874931999c90f87f01ff1ffc76bcd058fe16137e0e63fdb6a35c2d78022100a61e9199238eb73f07c8f209504c84b80f03e30ed8169edd44f80ed17ddf451901ffffffff010010a5d4e80000001976a9147ec1003336542cae8bded8909cdd6b5e48ba0ab688ac00000000** can't validate transaction as source transactions missing

出现最后一行是为了验证交易签名,严格说来您需要源交易。因此让我们通过添加 -a 指令来给交易补充源信息:

$ tx -a 49d2adb6e476fa46d8357babf78b1b501fd39e177ac7833124b3f67b17c40c2awarning: transaction fees recommendations casually calculated and estimates maybe incorrectwarning: transaction fee lower than (casually calculated) expected value of 0.1mBTC, transaction might not propogateVersion: 1 tx hash49d2adb6e476fa46d8357babf78b1b501fd39e177ac7833124b3f67b17c40c2a 159 bytesTxIn count: 1; TxOut count: 1Lock time: 0 (valid anytime)Input:254 | Appendix C: pycoin, ku, and tx 0: 17WFx2GQZUmh6Up2NDNCEDk3deYomdNCfk from1e133f7de73ac7d074e2746a3d6717dfc99ecaa8e9f9fade2cb8b0b20a5e0441:010000000.00000 mBTC sig okOutput: 0: 1CZDM6oTttND6WPdt3D6bydo7DYKzd9Qik receives 10000000.00000 mBTCTotal input 10000000.00000 mBTCTotal output 10000000.00000 mBTCTotal fees 0.00000 mBTC010000000141045e0ab2b0b82cdefaf9e9a8ca9ec9df17673d6a74e274d0c73ae77d3f131e000000004a493046022100a7f26eda874931999c90f87f01ff1ffc76bcd058fe16137e0e63fdb6a35c2d78022100a61e9199238eb73f07c8f209504c84b80f03e30ed8169edd44f80ed17ddf451901ffffffff010010a5d4e80000001976a9147ec1003336542cae8bded8909cdd6b5e48ba0ab688ac00000000all incoming transaction values validated

接下来,我们看看尚未使用完的输出的专用地址的(UTXO)。在区块 #1,我们看到到 12c6DSiU4Rq3P4ZxziKxzrL5LmMBrzjrJX 的 coinbase 交易。我们用 fetch_un spent 命令找到这个地址下的所有比特币。

$ fetch_unspent 12c6DSiU4Rq3P4ZxziKxzrL5LmMBrzjrJXa3a6f902a51a2cbebede144e48a88c05e608c2cce28024041a5b9874013a1e2a/0/76a914119b098e2e980a229e139a9ed01a469e518e6f2688ac/333000cea36d008badf5c7866894b191d3239de9582d89b6b452b596f1f1b76347f8cb/31/76a914119b098e2e980a229e139a9ed01a469e518e6f2688ac/10000065ef6b1463f552f675622a5d1fd2c08d6324b4402049f68e767a719e2049e8d/86/76a914119b098e2e980a229e139a9ed01a469e518e6f2688ac/10000a66dddd42f9f2491d3c336ce5527d45cc5c2163aaed3158f81dc054447f447a2/0/76a914119b098e2e980a229e139a9ed01a469e518e6f2688ac/10000ffd901679de65d4398de90cefe68d2c3ef073c41f7e8dbec2fb5cd75fe71dfe7/0/76a914119b098e2e980a229e139a9ed01a469e518e6f2688ac/100d658ab87cc053b8dbcfd4aa2717fd23cc3edfe90ec75351fadd6a0f7993b461d/5/76a914119b098e2e980a229e139a9ed01a469e518e6f2688ac/91136ebe0ca3237002acb12e1474a3859bde0ac84b419ec4ae373e63363ebef731c/1/76a914119b098e2e980a229e139a9ed01a469e518e6f2688ac/100000fd87f9adebb17f4ebb1673da76ff48ad29e64b7afa02fda0f2c14e43d220fe24/0/76a914119b098e2e980a229e139a9ed01a469e518e6f2688ac/1dfdf0b375a987f17056e5e919ee6eadd87dad36c09c4016d4a03cea15e5c05e3/1/76a914119b098e2e980a229e139a9ed01a469e518e6f2688ac/1337cb2679bfd0a557b2dc0d8a6116822f3fcbe281ca3f3e18d3855aa7ea378fa373/0/76a914119b098e2e980a229e139a9ed01a469e518e6f2688ac/1337d6be34ccf6edddc3cf69842dce99fe503bf632ba2c2adb0f95c63f6706ae0c52/1/76a914119b098e2e980a229e139a9ed01a469e518e6f2688ac/20000000e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098/0/410496b538e853519c726a2c91e61ec11600ae1390813a627c66fb8be7947be63c52da7589379515d4e0a604f8141781e62294721166bf621e73a82cbf2342c858eeac/5000000000

==目录==

简介
前言
第1章 介绍
第2章 比特币的原理
第3章 比特币客户端
第4章 密钥、地址、钱包
第4章 高级密钥和地址
第5章 交易
第6章 比特币网络
第7章 区块链
第8章 挖矿与共识
第8章 区块链分叉、矿池、共识攻击
第9章 竞争币、竞争块链和应用程序
第10章 比特币安全
附录1 交易脚本的操作符、常量和符号
附录2 比特币改进协议
附录3 pycoin库、ku程序和tx交易程序
附录4 sx工具下一些的命令
本文原链接:http://zhibimo.com/read/wang-miao/Mastering-Bitcoin/Appendix3.html

精通比特币 – 附录2 比特币改进协议

附录2 比特币改进协议

比特币改进协议(Bitcoin improvement proposals 简称BIP)是为比特币社区提供规范,完善比特币及其运行进程和外部环境特性的设计指导文件。 依据 BIP0001协议即比特币改进协议的目的与指南,比特币改进协议有以下三种类型:
标准协议(Standard BIP)
描述任何影响大多或全部比特币应用的变化,比如网络协议、交易有效性规则的变化,或者任何影响使用比特币交互操作性的变化或补充。
信息补充协议(Informational BIP)
描述比特币的设计事项而不是为其提供新特性,或者为比特币社区提供一般性的指南或信息。信息补充型协议 不一定需要比特币社区达成共识或推荐,因此用户和开发人员可以选择忽略或者接受信息补充型协议的建议。
开发指导协议(Process BIP)
描述比特币进程,或者提议更改进程或事项。Process BIP与Standard BIP 相似,但是也可以应用于除比特币协议以外的领域。在普遍达成共识的情况下,它可以向比特币以外的代码库提出改进建议。与Informational BIP不同,Process BIP 是强制性的,用户必须遵守。例如针对决策进程的过程、指南、改变,在比特币开发过程中使用的工具、环境的改变。任何meta-BIP也应被认为是 Process BIP。 比特币改进协议在 GitHub 中更新版本。
表B-1为比特币改进协议一览表(更新至2014年底) 。需要有关目前 BIP 内容的最新信息,请参考官方版本。
表B-1 BIP一览表

BIP# 链接 标题 作者 类型 状态
1 https://github.com/bitcoin/bips/blob/ master/bip-0001.mediawiki BIP Purpose and Guidelines Amir Taaki Standard Active
10 https://github.com/bitcoin/bips/blob/ master/bip-0010.mediawiki Multi-Sig Transaction Distribution Alan Reiner Informational Draft
11 https://github.com/bitcoin/bips/blob/ master/bip-0011.mediawiki M-of-N Standard Transactions Gavin Andresen Standard Accepted
12 https://github.com/bitcoin/bips/blob/ master/bip-0012.mediawiki OP_EVAL Gavin Andresen Standard Withdrawn
13 https://github.com/bitcoin/bips/blob/ master/bip-0013.mediawiki Address Format for pay-to- script-hash Gavin Andresen Standard Final
14 https://github.com/bitcoin/bips/blob/ master/bip-0014.mediawiki Protocol Version and User Agent Amir Taaki, Patrick Standard Accepted
15 https://github.com/bitcoin/bips/blob/ master/bip-0015.mediawiki Aliases Amir Taaki Standard Withdrawn
16 https://github.com/bitcoin/bips/blob/ master/bip-0016.mediawiki Pay To Script Hash Gavin Andresen Standard Accepted
17 https://github.com/bitcoin/bips/blob/ master/bip-0017.mediawiki OP_CHECKHASHVERIFY (CHV) Luke Dashjr Withdrawn Draft
18 https://github.com/bitcoin/bips/blob/ master/bip-0018.mediawikilink: hashScriptCheck Luke Dashjr Standard Draft
19 https://github.com/bitcoin/bips/blob/ master/bip-0019.mediawiki M-of-N Standard Transactions (Low SigOp) Luke Dashjr Standard Draft
20 https://github.com/bitcoin/bips/blob/ master/bip-0020.mediawiki URI Scheme Luke Dashjr Standard Replaced
21 https://github.com/bitcoin/bips/blob/ master/bip-0021.mediawiki URI Scheme Nils Schneider, Matt Corallo Standard Accepted
22 https://github.com/bitcoin/bips/blob/ master/bip-0022.mediawiki getblocktemplate – Fundamentals Luke Dashjr Standard Accepted
23 https://github.com/bitcoin/bips/blob/ master/bip-0023.mediawiki getblocktemplate – Pooled Mining Luke Dashjr Standard Accepted
30 https://github.com/bitcoin/bips/blob/ master/bip-0030.mediawiki Duplicate transactions Pieter Wuille Standard Accepted
31 https://github.com/bitcoin/bips/blob/ master/bip-0031.mediawiki Pong message Mike Hearn Standard Accepted
32 https://github.com/bitcoin/bips/blob/ master/bip-0032.mediawiki Hierarchical Deterministic Wallets Pieter Wuille Informational Accepted
33 https://github.com/bitcoin/bips/blob/ master/bip-0033.mediawiki Stratized Nodes Amir Taaki Standard Draft
34 https://github.com/bitcoin/bips/blob/ master/bip-0034.mediawiki Block v2, Height in coinbase Gavin Andresen Standard Accepted
35 https://github.com/bitcoin/bips/blob/ master/bip-0035.mediawiki mempool message Jeff Garzik Standard Accepted
36 https://github.com/bitcoin/bips/blob/ master/bip-0036.mediawiki Custom Services Stefan Thomas Standard Draft
37 https://github.com/bitcoin/bips/blob/ master/bip-0037.mediawiki Bloom filtering Mike Hearn and Matt Corallo Standard Accepted
38 https://github.com/bitcoin/bips/blob/ master/bip-0038.mediawiki Passphrase-protected private key Mike Caldwell Standard Draft
39 https://github.com/bitcoin/bips/blob/ master/bip-0039.mediawiki Mnemonic code for generating deterministic keys Slush Standard Draft
40 Stratum wire protocol Slush Standard BIP number allocated
41 Stratum mining protocol Slush Standard BIP number allocated
42 https://github.com/bitcoin/bips/blob/ master/bip-0042.mediawiki A finite monetary supply for bitcoin Pieter Wuille Standard Draft
43 https://github.com/bitcoin/bips/blob/ master/bip-0043.mediawiki Purpose Field for Deterministic Wallets Slush Standard Draft
44 https://github.com/bitcoin/bips/blob/ master/bip-0044.mediawiki Multi-Account Hierarchy for Deterministic Wallets Slush Standard Draft
50 https://github.com/bitcoin/bips/blob/ master/bip-0050.mediawiki March 2013 Chain Fork Post- Mortem Gavin Andresen Informational Draft
60 https://github.com/bitcoin/bips/blob/ master/bip-0060.mediawiki Fixed Length “version” Message (Relay-Transactions Field) Amir Taaki Standard Draft
61 https://github.com/bitcoin/bips/blob/ master/bip-0061.mediawiki “reject” P2P message Gavin Andresen Standard Draft
62 https://github.com/bitcoin/bips/blob/ master/bip-0062.mediawiki Dealing with malleability Pieter Wuille Standard Draft
63 Stealth Addresses Peter Todd Standard BIP number allocated
64 https://github.com/bitcoin/bips/blob/master/bip-0064.mediawiki getutxos message Mike Hearn Standard Draft
70 https://github.com/bitcoin/bips/blob/ master/bip-0070.mediawiki Payment protocol Gavin Andresen Standard Draft
71 https://github.com/bitcoin/bips/blob/ master/bip-0071.mediawiki Payment protocol MIME types Gavin Andresen Standard Draft
72 https://github.com/bitcoin/bips/blob/ master/bip-0072.mediawiki Payment protocol URIs Gavin Andresen Standard Draft
73 https://github.com/bitcoin/bips/blob/ master/bip-0073.mediawiki Use “Accept” header with Payment Request URLs Stephen Pair Standard Draft

==目录==

简介
前言
第1章 介绍
第2章 比特币的原理
第3章 比特币客户端
第4章 密钥、地址、钱包
第4章 高级密钥和地址
第5章 交易
第6章 比特币网络
第7章 区块链
第8章 挖矿与共识
第8章 区块链分叉、矿池、共识攻击
第9章 竞争币、竞争块链和应用程序
第10章 比特币安全
附录1 交易脚本的操作符、常量和符号
附录2 比特币改进协议
附录3 pycoin库、ku程序和tx交易程序
附录4 sx工具下一些的命令
本文原链接:http://zhibimo.com/read/wang-miao/Mastering-Bitcoin/Appendix2.html

精通比特币 – 附录1 交易脚本的操作符、常量和符号

附录1 交易脚本的操作符、常量和符号

表A-1列出了将脚本压入堆栈的操作符。

表A-1 入栈操作

关键字 值(十六进制) 描述
OP_0 or OP_FALSE 0x00 一个字节空串被压入堆栈中
1-75 0x01-0x4b 把接下来的N个字节压入堆栈中,N 的取值在 1 到 75 之间
OP_PUSHDATA1 0x4c 下一个脚本字节包括N,会将接下来的N个字节压入堆栈
OP_PUSHDATA2 0x4d 下两个脚本字节包括N,会将接下来的N个字节压入堆栈
OP_PUSHDATA4 0x4e 下四个脚本字节包括N,会将接下来的N个字节压入堆栈
OP_1NEGATE 0x4f 将脚本-1压入堆栈
OP_RESERVED 0x50 终止 – 交易无效(除非在未执行的 OP_IF 语句中)
OP_1 or OP_TRUE 0x51 将脚本1压入堆栈
OP_2 to OP_16 0x52 将脚本N压入堆栈,例如 OP_2 压入脚本“2”

表A-2列出了有条件的流量控制的操作符。

表A-2 有条件的流量控制操作

关键字 值(十六进制) 描述
OP_NOP 0x61 无操作
OP_VER 0x62 终止 – 交易无效(除非在未执行的 OP_IF 语句中)
OP_I 0x63 如果栈项元素值为0,语句将被执行
OP_NOTIF 0x64 如果栈项元素值不为0,语句将被执行
OP_VERIF 0x65 终止 – 交易无效
OP_VERNOTIF 0x66 终止 – 交易无效
OP_ELSE 0x67 如果前述的OP_IF或OP_NOTIF或OP_ELSE未被执行,这些语句就会被执行
OP_ENDIF 0x68 终止 OP_IF, OP_NOTIF, OP_ELSE 区块
OP_VERIFY 0x69 如果栈项元素值非真,则标记交易无效
OP_RETURN 0x6a 标记交易无效

表A-3列出了控制堆栈的操作符。

表A-3 堆栈操作

关键字 值(十六进制) 描述
OP_TOALTSTACK 0x6b 从主堆栈中取出元素,推入辅堆栈。
OP_FROMALTSTACK 0x6c 从辅堆栈中取出元素,推入主堆栈
OP_2DROP 0x6d 删除栈顶两个元素
OP_2DUP 0x6e 复制栈顶两个元素
OP_3DUP 0x6f 复制栈顶三个元素
OP_2OVER 0x70 把栈底的第三、第四个元素拷贝到栈顶
OP_2ROT 0x71 移动第五、第六元素到栈顶
OP_2SWAP 0x72 如果栈项元素值不为0,复制该元素值
OP_IFDUP 0x73 如果栈项元素值不为0,复制该元素值
OP_DEPTH 0x74 把堆栈元素的个数压入堆栈
OP_DROP 0x75 删除栈顶元素
OP_DUP 0x76 复制栈顶元素
OP_NIP 0x77 删除栈顶的下一个元素
OP_OVER 0x78 复制栈顶的下一个元素到栈顶
OP_PICK 0x79 把堆栈的第n个元素拷贝到栈顶
OP_ROLL 0x7a 把堆栈的第n个元素移动到栈顶
OP_ROT 0x7b 翻转栈顶的三个元素
OP_SWAP 0x7c 栈顶的三个元素交换
OP_TUCK 0x7d 拷贝栈顶元素并插入到栈顶第二个元素之后

表A-4列出了字符串操作符。

表A-4 字符串接操作

关键字 值(十六进制) 描述
OP_CAT 0x7e 连接两个字符串,已禁用
OP_SUBSTR 0x7f 返回字符串的一部分,已禁用
OP_LEFT 0x80 在一个字符串中保留左边指定长度的子串,已禁用
OP_RIGHT 0x81 在一个字符串中保留右边指定长度的子串,已禁用
OP_SIZE 0x82 把栈顶元素的字符串长度压入堆栈

表A-5列出了二进制算术和布尔逻辑运算符演示。

表A-5 二进制算术和条件

关键字 值(十六进制) 描述
OP_INVERT 0x83 所有输入的位取反,已禁用
OP_AND 0x84 对输入的所有位进行布尔与运算,已禁用
OP_OR 0x85 对输入的每一位进行布尔或运算,已禁用
OP_XOR 0x86 对输入的每一位进行布尔异或运算,已禁用
OP_EQUAL 0x87 如果输入的两个数相等,返回1,否则返回0
OP_EQUALVERIFY 0x88 与OP_EQUAL一样,如结果为0,之后运行OP_VERIFY
OP_RESERVED1 0x89 终止 – 无效交易(除非在未执行的OP_IF语句中)
OP_RESERVED2 0x8a 终止-无效交易(除非在未执行的OP_IF语句中)

表A-6列出了数值(算法)操作符。

表A-6 数值操作

关键字 值(十六进制) 描述
OP_1ADD 0x8b 输入值加1
OP_1SUB 0x8c 输入值减1
OP_2MUL 0x8d 无效(输入值乘2)
OP_2DIV 0x8e 无效 (输入值除2)
OP_NEGATE 0x8f 输入值符号取反
OP_ABS 0x90 输入值符号取正
OP_NOT 0x91 如果输入值为0或1,则输出1或0;否则输出0
OP_0NOTEQUAL 0x92 输入值为0输出0;否则输出1
OP_ADD 0x93 输出输入两项之和
OP_SUB 0x94 输出输入(第二项减去第一项)之差
OP_MUL 0x95 禁用(输出输入两项的积)
OP_DIV 0x96 禁用(输出用第二项除以第一项的倍数)
OP_MOD 0x97 禁用(输出用第二项除以第一项得到的余数)
OP_LSHIFT 0x98 禁用(左移第二项,移动位数为第一项的字节数)
OP_RSHIFT 0x99 禁用(右移第二项,移动位数为第一项的字节数)
OP_BOOLAND 0x9a 两项都不会为0,输出1,否则输出0
OP_BOOLOR 0x9b 两项有一个不为0,输出1,否则输出0
OP_NUMEQUAL 0x9c 两项相等则输出1,否则输出为0
OP_NUMEQUALVERIFY 0x9d 和 NUMEQUAL 相同,如结果为0运行OP_VERIFY
OP_NUMNOTEQUAL 0x9e 如果栈顶两项不是相等数的话,则输出1
OP_LESSTHAN 0x9f 如果第二项小于栈顶项,则输出1
OP_GREATERTHAN 0xa0 如果第二项大于栈顶项,则输出1
OP_LESSTHANOREQUAL 0xa1 如果第二项小于或等于第一项,则输出1
OP_GREATERTHANOREQUAL 0xa2 如果第二项大于或等于第一项,则输出1
OP_MIN 1:26 输出栈顶两项中较小的一项
OP_MAX 1:27 输出栈顶两项中较大的一项
OP_WITHIN 1:28 如果第三项的数值介于前两项之间,则输出1

表A-7列出了加密函数操作符。

表A-7 加密和散列操作

关键字 值(十六进制) 描述
OP_RIPEMD160 0xa6 返回栈顶项的 RIPEMD160 哈希值
OP_SHA1 0xa7 返回栈顶项 SHA1 哈希值
OP_SHA256 0xa8 返回栈顶项 SHA256 哈希值
OP_HASH160 0xa9 栈顶项进行两次HASH,先用SHA-256,再用RIPEMD-160
OP_HASH256 0xaa 栈顶项用SHA-256算法HASH两次
OP_CODESEPARATOR 0xab 标记已进行签名验证的数据
OP_CHECKSIG 0xac 交易所用的签名必须是哈希值和公钥的有效签名,如果为真,则返回1
OP_CHECKSIGVERIFY 0xad 与CHECKSIG一样,但之后运行OP_VERIFY
OP_VERIFY 0xae 对于每对签名和公钥运行CHECKSIG。所有的签名要与公钥匹配。因为存在BUG,一个未使用的外部值会从堆栈中删除。
OP_CHECKMULTISIGVERIFY 0xaf 与 CHECKMULTISIG 一样,但之后运行OP_VERIFY

表A-8列出了非操作符。

表A-8 非操作

关键字 值(十六进制) 描述
OP_NOP1-OP_NOP10 0xb0-0xb9 无操作 忽略

表A-9保留关键字,仅供内部脚本调试。

表A-9 仅供内部使用的保留关键字

关键字 值(十六进制) 描述
OP_SMALLDATA 0xf9 代表小数据域
OP_SMALLINTEGER 0xfa 代表小整数数据域
OP_PUBKEYS 0xfb 代表公钥域
OP_PUBKEYHASH 0xfd 代表公钥哈希域
OP_PUBKEY 0xfe 代表公钥域
OP_INVALIDOPCODE 0xff 代表当前未指定的操作码

==目录==

简介
前言
第1章 介绍
第2章 比特币的原理
第3章 比特币客户端
第4章 密钥、地址、钱包
第4章 高级密钥和地址
第5章 交易
第6章 比特币网络
第7章 区块链
第8章 挖矿与共识
第8章 区块链分叉、矿池、共识攻击
第9章 竞争币、竞争块链和应用程序
第10章 比特币安全
附录1 交易脚本的操作符、常量和符号
附录2 比特币改进协议
附录3 pycoin库、ku程序和tx交易程序
附录4 sx工具下一些的命令
本文原链接:http://zhibimo.com/read/wang-miao/Mastering-Bitcoin/Appendix1.html