分类
外汇基本知识

如何创建比特币钱包?

父chain code、父公钥、索引index计算HMAC-SHA512的过程如下:父公钥(256bits)和子密钥的index(32bits)进行拼接,公钥在高位索引在地位,合并后的字节序是大端,对合并后的数据进行HMAC-SHA512运算,父chain code作为哈希密钥。可以看出来,父私钥和对应代际的chain code可以算出子私钥,然后用point()和子私钥可以算出子公钥,还可以用子公钥和point(父chain code)算出子公钥,这样也可以在不需要私钥的情况下,只知道某一代际的公钥和对应代际的chain code就可以算出下一代的公钥。

如何创建比特币钱包?

官网公开的bitcoin-cli 关于钱包的API有53个之多。本文只说明一下bitcoin-cli 常用到的几个命令

1. 创建钱包/CreateWallet

2. 加密钱包/EncryptWallet

encryptwallet调用使用指定的密文加密钱包。该操作只需调用一次,一旦启用加密, 每次需要使用钱包中的密钥时,就需要输入密文。如果在命令行使用这个调用,需要注意你使用的shell可能会保存输入的命令(包括输入 的密文)。另外,一旦钱包启用加密,目前没有其他的RPC接口可以禁用其加密。如果需要一个不加密的钱包,你只能再创建一个新的钱包,然后使用dumpwallet调用的输出来恢复加密钱包中的密钥。

3. 获取钱包信息/GetWalletInfo

4. 生成新地址/getnewaddress

5. 获取地址信息/GetAddressInfo

6. 获取余额/getbalance

7. 用密码解锁钱包/walletpassphrase

比特币节点常用命令

补充2 更换默认比特币钱包

  1. 首先停止比特币节点
  1. 覆盖默认钱包目录的数据文件
    钱包所在目录为 ~/.bitcoin/wallets。注意做好备份。

MYSQL数据库实验(用户与权限管理)_weixin_30673611的博客-程序员宅基地

高效开发 Web 单页应用解决方案_weixin_46020146的博客-程序员宅基地

高效开发 Web 单页应用解决方案

【51单片机】汽车里程表之测速功能_电科_银尘的博客-程序员宅基地

交通标志 | 中美两国警告标志异同分析_智能交通技术的博客-程序员宅基地

图文详解YUV420数据格式_man9953211的博客-程序员宅基地

图文详解YUV420数据格式 YUV格式有两大类:planar和packed。对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。对于packed的YUV格式,每个像素点的Y,U,V是连续交*存储的。 YUV,分为三个分量,“如何创建比特币钱包? Y”表示明亮度(Luminance或Luma),也就是灰度值;而“U”和“V” 表示的

linux中date命令PDT,linux下hwclock及clock命令详解_Hank君的博客-程序员宅基地

linux系统分为3个时间,分为当前时间,系统时钟和硬件时钟,可分别用date,clock及hwclock查看。当前时间使用date命令更改后过一段时间才同步到系统时间,可用clock -w立即同步hwclock由硬件掌握,hwclock 如何创建比特币钱包? -r显示当前硬件时间hwclock -s |--hctosys 将硬件时间设为当前时间hwclock -w |--systohc 将系统时间设为硬件时.

OPENCV_PYTHON官方文档学习_17.轮廓的性质_xiyou_1996的博客-程序员宅基地

本小节我们将要学习提取一些经常使用的对象特征。你可以在 Matlabregionprops documentation更多的图像特征。长宽比边界矩形的宽高比x,y,w,h = cv2.boundingRect(cnt)aspect_ratio = float(w)/hExtent轮廓面积与边界矩形面积的比。area = cv2.contourArea(cnt)x,y,w,h .

什么是系统可用性_weixin_30800807的博客-程序员宅基地

在一个阳光明媚的周二下午,我正在公司里面看着即将发布的Java 12的新特性,这时候女朋友打来电话。晚上下班后,女朋友回到家里面和我说,发现淘宝无法访问的十几分钟后又可以了。系统可用性系统的可用性,英文名字为System Usability,即系统服务不中断运行时间占实际运行时间的比例。所以,可用性其实是一个百分比,如99.9%。我们通常.

vue混入mixins 理解_暖光_&的博客-程序员宅基地

vue混入 混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项。个人理解:vue混入主要是提取公用的js,减少不必要的代码,对相同代码的封装。注意点:混入对象的内容必须是一个对象。 当使用混入时,相同的内容都会合并。 数据对象如果有相同的,则以被混入的对象中data数据为准。 一旦使用全局混入对象,将会影响到 所有 之后创建的.

配置域名映射_B624023251的博客-程序员宅基地

Python函数与变量作用域_lalalala256的博客-程序员宅基地

函数与变量作用域一、函数1.1 函数定义def 如何创建比特币钱包? 函数名([参数1][,参数2][,参数3]. ): [函数语句]#函数语句和return语句不能同时省略 [return [返回值]]#return后面可以没有返回值1.2函数调用在Python中,所有语句都是实时执行的,不存在C/C++的编译过程,def也是一条可执行语句,定义一个函数。所以函数的调用必须在

比特币钱包 api Python比特币教程3:创建比特币钱包、读取余额、快速免费转账、标准转账

EOS 的充值地址与其他币种有些不同。它由两部分组成:account_name 如何创建比特币钱包? 和 account 标签。如果您将EOS存入Mixin Network,您需要填写两条数据:账户名为eoswithmixin,在备注中输入您的account_tag,如0aa2b00fad2c69059ca1b50de2b45569.

当然,比特币网络中的交易费用相当昂贵。费用中位数为 0.001BTC。按照目前4000美元的价格,在4美元左右。有一个方便的方法。如果你有一个里面有比特币的 Mixin 如何创建比特币钱包? Messenger 账户,你可以直接将比特币提取到新创建的账户的比特币充值地址。他们在同一个 Mixin Network 网络中,手续费为 0,1 秒到账。

Mixin Network 网络免费,即时确认

Mixin Network 账户之间的比特币支付

通过 Mixin Messenger,我们可以先将比特币转给机器人,然后让机器人转币给新用户。

如果您想将币存入您的冷钱包或第三方交易所,您必须先在第三方交易所获取冷钱包或您的钱包地址,然后将钱包地址提交给 Mixin Network。

添加目标钱包地址到 Mixin Network

调用 createAddress API 将返回一个 address_id,将在下一次提款操作中使用。

这里14T129GTbXXPGXXvZzVaNLRFPeHXD1C25C是一个比特币钱包地址,如下图比特币钱包 api,提现手续费为0.0034802 BTC,address_id为“345855b5-56a5-4f3b-ba9e-d99601ef86c1”。

創建加密貨幣錢包及轉帳、收款教學

所以,使用加密貨幣錢包轉帳的時候,務必要非常注意「是在哪一個網路(network)」、「哪一個鏈」、「轉什麼幣」,那如果要把不屬於那個鏈上的貨幣轉到其他鏈上要怎麼辦呢?如:把比特幣轉到以太鏈上,那就是要經過「Wrapped」,Wrapped Bitcoin就是一種代幣化的比特幣(BTC) 版本,在以太坊(ETH) 區塊鏈上運作。BTC跟Wrapped BTC的價值是1:1,不用擔心因為Wrapped 而造成價值流失。

比特币钱包介绍

在上图所示的标准形式中,父chain code、父公钥和索引index被输入到单向哈希HMAC-SHA512中,生成确定代际但是看起来随机(determistically-generated-but-seemingly-random)的512 bits数据。哈希输出总共512 bits,右边的256 bits(低256 bits)数据被用来作为新的子chain code。哈希输出的左边256 bits被当作一个整数和父私钥或者父公钥组合(父私钥和哈希输出的高256bits椭圆曲线上做加法模G运算),来创建子私钥或者子公钥:

父chain code、父公钥、索引index计算HMAC-SHA512的过程如下:父公钥(256bits)和子密钥的index(32bits)进行拼接,公钥在高位索引在地位,合并后的字节序是大端,对合并后的数据进行HMAC-SHA512运算,父chain code作为哈希密钥。

可以看出来,父私钥和对应代际的chain code可以算出子私钥,然后用point()和子私钥可以算出子公钥,还可以用子公钥和point(父chain code)算出子公钥,这样也可以在不需要私钥的情况下,只知道某一代际的公钥和对应代际的chain code就可以算出下一代的公钥。

因为创建子密钥需要密钥和chain code两者,密钥和chain code合在一起被称作扩展密钥。一个扩展私钥和对应的扩展公钥具有相同的chain code。 主私钥(最顶层)和主chain code是由随机数生成。

根种子(root seed)是由123 bits、256 bits或者512 bits的随机数生成的。这个根种子,最少128 bits是需要用户备份的唯一数据,将来用于通过特定的钱包和设置来分散所有的密钥。

根种子通过哈希来创建512 bits看起来随机的数据,通过这些数据来创建主私钥和主chain code(合在一起称作主扩展密钥)。主公钥通过主私钥使用point()计算得出,主公钥和主chain code合在一起称作主扩展公钥。主扩展密钥和其他扩展密钥在功能上等效,只是因为它位于最上层的位置,所以才显得不同。

根种子的哈希后512 bits的输出,左边256 bits作为主私钥,右边256bits作为主chain code

强化密钥 Hardened Keys

强化扩展密钥(Hardened extended keys)修复了普通扩展密钥的一个潜在问题。如果攻击者获得了一个普通扩展密钥的父chain code和父公钥,他就可以暴力获得所有的通过这个chain code派生出来的chain code。如果攻击者还获得了一个子私钥、孙子私钥或者更下一代的私钥,他就可以使用chain code生成这个私钥后代所有的私钥了。

因为扩展公钥中有对应层级的chain code,所以可以得到这个公钥后代任意代际的公钥,所以只要获得了这个公钥后代的私钥,就可以算到这个私钥上一代的chain code,然后通过私钥-chain code计算出上一代私钥,最后推算出这个公钥和后代的所有密钥。

上面的强化公示将索引index、父chain code和父私钥组合在一起用来创建产生子chain code和子私钥的数据。这个公示让在不知道父私钥的情况下不能创建子公钥。换句话说,父扩展公钥不能创建强化子公钥。

强化密钥生成过程,在父私钥前面补一个0x00字节,父私钥和索引index拼接,私钥在高位,索引在低位,字节序为大端。对拼接后的数据进行HMAC-SHA512运算,哈希密钥是父chain code,父私钥和哈希的高256 bits做椭圆曲线上的加法模运算生成子私钥,低256 bits是子chain code。如果ECC模运算结果出现0,那么索引值递增,然后再次计算密钥。子公钥可以通过子私钥计算出来。

这个压缩描述进一步结合斜杠和m或者M前缀,指示层次(hierarchy)和密钥类型。m表示私钥,M表示公钥。例如,m/0'/0/122'表示主私钥的第1代(index=0)强化子密钥的第1代(index=0)普通子密钥的第123代(index=122)强化子私钥(通过索引index)。

保存根种子 Storing Root Seeds

HD协议里的根种子(root seeds)是128、256或者512 bits的随机数,这些种子需要备份保存。为了方便,可以使用非数字化备份的方法,比如记忆、手抄等。BIP39定义了一个方法,通过助记符来创建512 bits的根种子。

Entropy BitsWords
12812
16015
19218
22421
25624

密码短语(passphrase)可以是任意长度,它可以简单得追加到助记符pseudo-sentence,mnemonic和password将使用2048次HMAC-SHA512运算,产生一个看起来随机的512 bits种子。

松散密钥钱包 Loose-Key Wallets

松散密钥钱包似乎中文也有叫零型非确定钱包,也被称作Just a Bunch Of Keys(JBOK),是一种Bitcoin Core客户端早期的钱包形式,已经被弃用。Bitcoin Core客户端钱包通过伪随机数发生器自动创建100个公私钥对供以后使用。

这些没有使用的私钥存储在一个虚拟的密钥池(key pool)中,之前生成的密钥被使用后,就会生成新的密钥放到池中,保证池中有100个未使用的密钥。