比特币压缩格式
A. 在.net上BCR是什么的缩写
Bitcoin compression
比特币压缩版BCR(Bitcoin Compression),缩写为BCR,发行总量为210万枚,在比特币区块高度为210000时诞生,是比特币原链的优化升级版本,也就是我们常说的比特币分叉币。
相比于比特币原链而言,比特币压缩版BCR提升了交易速度并且降低了交易手续费,在区块大小容量方面,比特币压缩版BCR也做出了较大的修改扩大了单位区块大小,并支持每个区块大小作为动态值,将原来1M的区块限制增加到了8M,大幅增加了网络可以支持的交易量,它能够灵活地处理每个区块中的事务
除此之外,比特币压缩版BCR的区块生成速度每10分钟生成一个块,每个区块奖励5枚BCR,每天奖励720枚BCR,每4年奖励减半。
B. 【区块链】什么是比特币地址
比特币地址是一串由字母和数字组成的26位到34位字符串,看起来有些像乱码。但它就是你个人的比特币账户,相当于你的银行卡卡号,任何人都可以通过你的比特币地址给你转账比特币。
它与比特币私钥不同,不会因为信息泄露而造成比特币丢失,因此你可以将比特币地址放心的告诉任何人。
通过区块链浏览器可以查看每个比特币地址所有的转账交易记录。
常用的比特币区块链浏览器有:
https://btc.com/block
https://www.blockchain.com/zh-cn/explorer
我们常用的比特币地址格式一般有如下四种。
1、BASE58格式
BASE58格式是人们常见的比特币地址格式,一般由1开头的。
例如:
2、HASH160格式
HASH160格式为RIPEMD160算法对130位公钥的SHA256签名进行计算得出的结果 。
例如:
3、WIF压缩格式
WIF压缩格式即钱包输入格式,是将BASE58格式进行压缩后的结果130位公钥格式 这是最原始的由ECDSA算法计算出来的比特币公钥。
例如:
4、60位公钥格式
60位公钥格式即130位公钥进行压缩后得出的结果。
例如:
比特币是建立在数学加密学基础上的,中本聪大神用了椭圆加密算法(ECDSA)来产生比特币的私钥和公钥。
由私钥是可以计算出公钥的,公钥的值经过一系列数字签名运算会得到比特币地址。
比特币地址是由算法随机生成,那么就会有人问,既然都是随机生成的,那么比特币的地址会不会重复呢?关于这个问题,想必就更不用担心。
因为比特币的私钥长度是256位的二进制串,那么随机生成的两个私钥正好重复的的概率是2 ^ 256 ≈ 10 ^ 77之一,这个数字大到你根本无法想象,比中彩票的概率还要小好多;所以不用担心的啦,每个人的比特币地址都是独一无二的。
C. 如何把比特币,莱特币和山寨币的数据放程序目录下
此教程分五步,
第一步:下载钱包并解压缩/安装到D盘某个你选定的目录下(本文截图以CatCoin为例):
第二步:在catcoin-qt.exe点右键,创建快捷方式(建议
你把这个快捷方式重命名一下,以免和原来的exe文件混淆)。
第三步:在新生成的快捷方式上面点右键,点击属性。
第四步:在目标一栏里添加“
-datadir=./data” (-datadir 之前是有个空格的,切记)。
第四步:在当前目录新建一个文件夹,文件夹名为“data”。
第五步:如果你是新钱包,直接打开那个快捷方式就可以了。打开后,你可以进入data目录,看看所有的数据是不是在里面。
如果你是旧钱包,请把原
%appdata% 里钱包对应目录里的数据拷到data目录里。
PS1,切记以后一定要用这个快捷方式来打开钱包。你也可以把这个快捷方式复制到桌面上,这样可以从桌面直接打开钱包。
PS2,经小编测试,XmasCoin
无法用这种方式设置数据文件的目录,不知道是什么原因。
D. 比特比怎样挖
步骤一、注册账号以及账号设置
1
首先,我们需要找一个操作方便产出稳定的比特币矿池,然后通过挖矿客户端软件连接到指定的服务器上挖矿。这里以“BTC Guild”网站为例,先打开这个网站,点击左边的用户注册。注册过程比较简单,输入英文用户名,密码和确认密码即可,如图所示
2
注册成功之后,我们会在网页上看到一条这样的信息“Your account has been successfully registered and logged in!”,意思是注册成功并已登录,如图所示
3
我们点击左上角的“Dashboard”按钮,可以看到账户的整个监控状态,如图所示
注:在这个监控仪表盘中我们最为关心的是“Total Earnings”,这就是我们当前账户所挣的比特币。以后只要我们打开网站,进入监控仪表盘就可以看到自己账户的相关信息了。
4
接下来请点击页面导航栏中的“Settings”。在设置页面中,我们可以设置电子邮件地,比特钱包地址,更改密码等,如图所示
5
如果在帐户中设置电子邮件地址,日后要是忘记密码或者被盗的情况下,可以通过设置的电子邮件来恢复密码。首先在“Email Address”一栏输入我们的常用的电子邮件地,然后点击“Change”按钮,如图所示
6
接下来页面中会显示一封确认邮件已经发送到我们之前设置的邮件中,如图所示
7
然后我们打开自己的电子邮箱,找到 BTC Guild 发送的邮件。点击确认链接即可,之后会在页面中显示我们的邮箱已经成功设置,如图所示
8
如果我们在帐户设置中设置了电子邮件的话,我们还可以对开采矿工的行为设置邮件通知。在设置页面上找到“Idle Warnings”一栏,点击下拉列表,选择想要发送邮件的时间,然后点击右边的“Change”按钮即可。当我们设置10分钟以后,如果有矿工停止开采,系统会在10分钟后自动向我们的邮件发送一封通知邮件。收到邮件以后,我们就知道具体是那个矿工罢工了。
9
另外在设置中,我们比较关心一个是“Bitcoin Wallet”即钱包地址。这个地址可以先不用设置,等我以后真正开采到了比特币是再填写也不迟。
10
帐户设置完成以后,接下来我们要对“Worker”进行设置。什么是 Worker 呢?就是我们之后在比特币开采客户端上要用到的登录矿工帐户名。系统会默认为我们创建一个矿工名,矿工名是以我们注册帐户名加一个下划线和数字组成。比如我们注册的帐户是XXX,那第一个矿工名就叫“XXX_1”,如图所示
11
如果我们要设置多个矿工名的话,在“Create Worker”一栏中输入一个数字如“2”,再点击“Create”按钮即可添加一个新矿工的帐户名,如图所示
12
在 Worker 设置页面里,我们还可以分别对矿式帐户的开采支付模式进行设置。Payment method,即开采支付方法。这里有二种类型可供选择,PPS和PPLNS,区别在于开采模式和手续费上。PPS的手续费为7.5%,而PPLNS的手续为3%。系统默认为采用 PPLNS,如果要更改,请点击 Payment method 下方的“change”按钮。
13
另外我们还可以对开采模式的难度进行选择,如果我们的电脑有多个显卡GPU,或者一些专用的机器的话,可以在 Minimum Difficulty 下对分别对矿工帐户名进行设置,如图所示
END
步骤二、下载挖矿客户端软件
1
当我们注册设置完成以后,接下来请点击页面导航菜单中的“Support”,我们会看到客户端的下载链接。
挖矿客户端软件有二种类型:
BFGMiner:命令行操作界面,可直接下载。
CGMiner: 也是命令行格式操作的,不过下载步骤过于复杂。
我们这里以下载 BFGMiner 为例,点击如图所示下载。
2
随后会跳转到挖矿工具的下载页面,挖矿工具有二种格式,一种是32位系统,另一种是64位系统。根据自己的系统位数,下载相应的工具版本,如图所示
3
挖矿工具客户端大小不足5M,是一个 ZIP 压缩文件。下载完成之后,找到并打开文件。点击鼠标右键,选择“复制”选项,如图所示
4
这里我以粘贴提取到桌面为例,如图所示
END
步骤三、挖矿客户端软件详细设置
1
打开挖矿目录以后,双击点击打开目录下的“bfgminer”文件,如图所示
2
接下来来看到 BFG minier 的窗口,在 URL 处输入矿池的地址。矿池地址可以在 BTC GUILD 的 support 页面中看到,如 stratum.btcguild.com:3333 ,按回车键,如图所示
3
然后在 Username 后输入自己先前在 BTC GUILD 网站上设置的矿工名,按回车键,如图所示
4
随后在 password 密码处,可任意输入,发图所示
5
最后就可以看到上面有很多数字在变化,表示正在挖矿了。值得注意的是如图标注的地方表示当前机器按钮的速率,如图所示
6
除了开采客户端软件上可以看当前开采的速度,我们还可以在 BTC Guild 网站上的 “Dashboard”页面中的“Active Worker Summary”列表中看到每上矿工开采的具体速度,如图所示
7
如果要关闭挖矿工具,直接 X 掉即可,也可以直接按 Q 键退出。如果想要多开几个的话,在 BFG miner 目录中再打开一个挖矿工具即可。
END
步骤四、CGminger命令行客户端软件
1
如果真要想挖矿的话,官方是推荐我们用“CGMiner”,也就是在命令提示符下运行的。在 BTC Guild 页面上点击“Support”,再点击“CGMiner”下载链接页面,选择对应系统的版本,如图所示
2
随后会跳转到 CGminer 的下载页面,点击如图标注的链接。
3
然后选择一个 CGminer 的版本,我这里下载一个 Windows 版本为例,如图所示
4
这里以 Windows 版的 CGMiner 为例,下载完成以后,解压到电脑中,如图所示
5
打开CGMiner的目录,找到“CGMiner ”,如图所示
6
用鼠标双击“CGMiner”会弹出一个命令行窗口,提示我们输入连接服务器的 URL 地址。输入“stratum.btcguild.com:3333”,按键盘上的回车键,如图所示
7
然后提示我们输入“Username”即矿工帐户名,按键盘上的回车键,如图所示
8
接着输入“password”密码,按键盘上的回车键,如图所示
9
稍等片刻,当客户端与服务在建立连接之后就会看到机器开始开采了,如图所示
10
若要退出开采,请在窗口上按键盘上的“Q”键。
E. 挖矿难度表示
比特币的挖矿难度可以使用Target Threshold,nBits或Difficulty表示,它们互相等价:
这三个值的转化关系可以采用下面的实例来说明:
首先获取哈希值为 的区块原生十六进制信息如下:
区块中nBits采用小端格式表示,解析区块信息,得到nBits字段值为0x4c86041b。因此转化为大端格式为0x1B04864C,这个值是Target Threshold的压缩格式表示,可以将它转化成256位的Target Threshold值:
开头的一个字节为指数,后面三个字节为系数,则:
计算出Target Threshold值为 。
再计算Difficulty的值,它有两个值,计算公式分别为:
由此可以使用 Python 计算出bdiff的值:
因此,得到在比特币客户端中的difficulty值bdiff为14484.162361225399。
为了检验上述结果,可以在比特币核心客户端中使用 getblock "" 命令得到该区块的json格式信息:
最终,可以发现该区块的bits和difficulty字段信息与上面分析计算的相关结果一致。
nBits的大端格式表示法中,其系数最大为0x7fffff,这是因为Target Threshold数据类型是无符号整型,而它继承自有符号数据类,则在实际中Target Threshold系数的最高位有可能是1,这可能会被解析成一个负数。则在挖矿过程中难度值永远无法小于一个负数。因此,为了解决这个问题,比特币核心在生成nBits值时需要首先检查一下生成的nBits是否会被解析为一个负数。如果是,首先在系数开头补8位0,即除以256,然后指数再加上1。这样由nBits转化为Target Threshold过程中转化公式就与普通值相同了,即指数位都是减去3,转化过程上面已经提到。
举个例子说明:
哈希值为 的区块信息如下:
发现bdiff值为1,则利用bdiff与Target Threshold关系可以计算出:
将Target Threshold值 转化为nBits的过程中可以发现其系数为0xffff00,指数为0x1c,这样:
然而由于系数最高位为1,则如果这样表示的话就可能将Target Threshold解析为负数。因此,我们将系数除以256,指数加上1,得到系数为0x00ffff,指数为0x1d。这样:
最终,nBits值为0x1d00ffff(大端表示),与json格式信息一致。
F. 什么是比特币的数字签名
比特币中的数字签名,是交易中的发起方产生的,为了保证这笔交易确实是由此人发起,并且数据在传输时没有被篡改。数字签名简单点来说,就是完整的交易信息,通过数字摘要技术压缩成固定格式的字符串,然后通过非对称加密技术,生成一个私钥。将完整的交易信息和数字签名传送给矿工,矿工用交易发起方的公钥对数字签名进行解密,解密成功,就将此交易数据写到区块中。
G. 比特币压缩格式私钥你理解对了吗
压缩格式私钥: 大家看到压缩格式私钥这几个字是不是认为这个私钥是被压缩了的?其实我一开始是这么认为的,但随着对概念的深入学习与理解,我发现我理解错了,因为 私钥 本身并 不能被压缩 ,压缩格式私钥反而比非压缩格式私钥 多了1个字节 ,这多出来的1个字节是私钥被加了 后缀"01" ,用以表明该私钥是来自于一个较新版本的钱包,只能用于生成压缩格式的公钥。就是说该私钥只能用于生成压缩格式的公钥,其本身并不是压缩格式。反之,非压缩格式私钥是只能用于生成非压缩格式的公钥。具体转换关系如图所示:
从上面的定义和图示,大家可以看出压缩格式私钥这个词用得不太恰当,容易让人产生误解,让人误以为私钥是可以被压缩的,其实这种理解是不对的,如上述概念给出的,压缩格式私钥其实比非压缩格式私钥还多了1个字节,在非压缩格式私钥的基础上添加后缀"01"用以表示为压缩格式私钥,压缩格式私钥提出的作用是为了节省钱包存储空间而新研制出的一种私钥编码格式。
如果一个比特币钱包实现了压缩格式公钥,那么它将会在所有交易中使用该压格式缩公钥。钱包中的私钥将会被用来生成压缩格式公钥,压缩格式公钥然后被用来生成交易中的比特币地址。当从一个实现了压缩格式公钥的比特币钱包导出私钥时,钱包导入格式(WIF)将会被修改为WIF压缩格式,该格式将会在私钥的后面附加一个字节大小的后缀01。最终的Base58Check编码格式的私钥被称作WIF(“压缩”)私钥,以字母“K”或“L”开头。而以“5”开头的是从较老的钱包中以WIF(非压缩)格式导出的私钥。
表4-4展示了同样的私钥使用不同的WIF和WIF压缩格式编码。
Hex(十六进制):
WIF(非压缩私钥):
Hex-compressed(压缩十六进制):01
WIF-compressed(压缩私钥):
H. 如何保存比特币
方法/步骤
1关闭比特币客户端并找到 wallet.dat 这个文件。
WinXP开始菜单,选择“运行”输入如下内容:explorer%APPDATA%BitCoin
Windows Vista 或 Windows 7,直接在开始菜单的“搜索程序和文件”框中输入 wallet.dat进行搜索
2在这个文件上点右键,选择“添加到压缩文件…”,之后会出现如下对话框:
3设置一个文件名,勾选“压缩后删除源文件”。
然后点“高级”选项卡:
4点击“设置密码…”,在弹出的对话框中输入两次相同的密码
点击“确定”按钮,再点击一次“确定”按钮,加密即完成。
5你会看到钱包文件夹下原来的 wallet.dat 文件没有了,而多出来一个 .rar 的文件。
6加密成功。
恢复钱包
1您只要按照“备份钱包”的步骤 (在上一篇经验值有介绍)打开 Bitcoin 比特币官方客户端的钱包文件夹。
2将备份的 wallet.dat 文件复制到该文件夹,覆盖原文件即可。
注意事项
如果您用 WinRAR 加密备份,首先需要输入正确的密码,才能恢复 wallet.dat。