64比特币密钥
① 比特币密钥是什么意思
比特币的所有权是通过数字密钥、比特币地址和数字签名来确定的。
比特币包含一系列密钥对、每个密钥对包含一个公钥和私钥。
私钥是一个随机数、私钥通过椭圆曲线算法生成公钥、公钥再通过单向加密哈希函数生成比特币地址。
比特币使用非对称加密、使得签名只能由私钥产生、且在不泄露私钥情况下所有人都可以验证该签名p。
私钥和公钥有可以被编码成多种类型格式、无一例外的作用就是为了方便识别及钱包操作方便。
② 4. 比特币的密钥、地址和钱包 - 精通比特币笔记
比特币的所有权是通过密钥、比特币地址和数字签名共同确定的。密钥不存在于比特币网络中,而是用户自己保存,或者利用管理私钥的软件-钱包来生成及管理。
比特币的交易必须有有效签名才会被存储在区块中,因此拥有密钥就拥有对应账户中的比特币。密钥都是成对出现的,由一个公钥和一个私钥组成。公钥相当于银行账号,私钥就相当于银行卡密码。通常情况下密钥由钱包软件管理,用户不直接使用密钥。
比特币地址通常是由公钥计算得来,也可以由比特币脚本得来。
比特币私钥通常是数字,由比特币系统随机( 因为算法的可靠性与随机性正相关,所以随机性必须是真随机,不是伪随机,因此比特币系统可以作为随机源来使用 )生成,然后将私钥作为输入,使用椭圆曲线算法这个单向加密函数生成对应的公钥,再将公钥作为输入,使用单向加密哈希函数生成地址。例如,通过公钥K得到地址A的计算方式为:
其中SHA256和PIPEMD160被称为双哈希或者HASH160,Base58Check是带有验证功能的Base58编码,验证方式为先计算原始数据(编码前)的验证码,再比较编码后数据的验证码,相同则地址有效,否则无效。而在使用Base58Check编码前,需要对数据做处理。
处理方式为: 版本前缀 + 双哈希后的数据 + 校验码
其中版本前缀是自定义的,如比特币私钥的前缀是0x80,校验码是把版本前缀和双哈希后的数据拼接起来,进行两次SHA256计算,取前4字节。得到处理的数据后,再进行Base58编码,得到最终的结果。
下图是Base58Check版本前缀和Base58编码后的结果
密钥可以采用不同的编码格式,得到的编码后结果虽然不同,但密钥本身没有任何变化,采用哪种编码格式,就看情况而论了,最终目的都是方便人们准确无误的使用和识别密钥。
下图是相同私钥采用不同编码方式的结果:
公钥也有很多种格式,不过最重要的是公钥被分为压缩格式和非压缩格式,带04前缀的公钥为非压缩格式的公钥,而03,02开头的标识压缩格式的公钥。
前面说过,公钥是椭圆曲线上的一个点,由一对坐标(x, y)表示,再加上前缀,公钥可以表示为:前缀 x y。
比如一个公钥的坐标为:
以非压缩格式为例,公钥为(略长):
压缩格式的公钥可以节省一定的存储,对于每天成千上万的比特币交易记录来说,这一点点的节省能起到很大效果。
因为椭圆曲线实际上是一个方程(y2 mod p = (x3 + 7)mod P, y2是y的平方,x3是x的立方),而公钥是椭圆曲线上的一个点,那么公钥即为方程的一个解,如果公钥中只保留x,那么可以通过解方程得到y,而压缩公钥格式有两个前缀是因为对y2开方,会得到正负两个解,在素数p阶的有限域上使用二进制算术计算椭圆曲线的时候,y坐标或奇或偶,所以用02表示y为奇数,03表示y为偶数。
所以压缩格式的公钥可以表示为:前缀x
以上述公钥的坐标为准,y为奇数为例,公钥K为:
不知道大家发现没有,这种压缩方式存在一个问题,即一个私钥可以得出两个公钥,压缩和非压缩公钥,而这两个公钥都对应同一个私钥,都合法,但生成的比特币地址却不相同,这就涉及到钱包软件的实现方式,是使用压缩公钥还是非压缩公钥,或者二者皆用,这个问题后面来介绍。
比特币钱包最主要的功能就是替用户保管比特币私钥,比特币钱包有很多种,比如非确定性(随机)钱包,确定性(种子)钱包。所谓的非确定性是指钱包运行时会生成足够的私钥(比如100个私钥),每个私钥仅会使用一次,这样私钥管理就很麻烦。确定性钱包拥有一个公共种子,单向离散方程使用种子生成私钥,种子足够回收所有私钥,所以在钱包创建时,简单备份下,就可以在钱包之间转移输入。
这里要特别介绍下助记码词汇。助记码词汇是英文单词序列,在BIP0039中提出。这些序列对应着钱包中的种子,种子可以生成随机数,随机数生成私钥,私钥生成公钥,便有了你需要的一切。所以单词的顺序就是钱包的备份,通过助记码词汇能重建钱包,这比记下一串随机数要强的多。
BIP0039定义助记码和种子的创建过程如下:
另外一种重要的钱包叫做HD钱包。HD钱包提供了随机(不确定性) 钥匙有两个主要的优势。
第一,树状结构可以被用来表达额外的组织含义。比如当一个特定分支的子密钥被用来接收交易收入并且有另一个分支的子密钥用来负责支付花费。不同分支的密钥都可以被用在企业环境中,这就可以支配不同的分支部门,子公司,具体功能以及会计类别。
第二,它可以允许让使用者去建立一个公共密钥的序列而不需要访问相对应的私钥。这可允许HD钱包在不安全的服务器中使用或者在每笔交易中发行不同的公共钥匙。公共钥匙不需要被预先加载或者提前衍生,但是在服务器中不具有可用来支付的私钥。
BIP0038提出了一个通用标准,使用一个口令加密私钥并使用Base58Check对加密的私钥进行编码,这样加密的私钥就可以安全地保存在备份介质里,安全地在钱包间传输,保持密钥在任何可能被暴露情况下的安全性。这个加密标准使用了AES,这个标准由NIST建立,并广泛应用于商业和军事应用的数据加密。
BIP0038加密方案是: 输入一个比特币私钥,通常使用WIF编码过,base58chek字符串的前缀“5”。此外BIP0038加密方案需要一个长密码作为口令,通常由多个单词或一段复杂的数字字母字符串组成。BIP0038加密方案的结果是一个由base58check编码过的加密私钥,前缀为6P。如果你看到一个6P开头的的密钥,这就意味着该密钥是被加密过,并需个口令来转换(解码) 该密钥回到可被用在任何钱包WIF格式的私钥(前缀为5)。许多钱包APP现在能够识别BIP0038加密过的私钥,会要求用户提供口令解码并导入密钥。
最通常使用BIP0038加密的密钥用例是纸钱包一一张纸张上备份私钥。只要用户选择了强口令,使用BIP0038加密的私钥的纸钱包就无比的安全,这也是一种很棒的比特币离线存储方式(也被称作“冷存储”)。
P2SH函数最常见的实现时用于多重签名地址脚本。顾名思义,底层脚本需要多个签名来证明所有权,然后才能消费资金。这类似在银行开设一个联合账户。
你可以通过计算,生成特殊的比特币地址,例如我需要一个Hello开头的地址,你可以通过脚本来生成这样一个地址。但是每增加一个字符,计算量会增加58倍,超过7个字符,需要专门的硬件或者矿机来生成,如果是8~10个字符,那么计算量将无法想象。
③ 比特币定义和用途分别是什么
比特币(BTC)是一种总量恒定2100万的数字货币,和互联网一样具有去中心化、全球化、匿名性等特性。意思就是向地球另一端转账比特币,就像发送电子邮件一样简单,低成本、无限制,比特币也因此被用于跨境贸易、支付、汇款等领域。
比特币的流通性和有限性,决定了比特币是可以充当相当于一般等价物的货币功能,或者充当货币的衡量物,只不过这种衡量不是像黄金一样的实体衡量,而是一种数字产品。
相关概念:
1、地址
比特币世界的地址大概长得像这样:。地址本身只是一串代码,就像你的银行账号3210000003288372一样,用来标示一个账户。每个人可以有无数个地址。地址是公开的。
2、比特币记录
银行账号里面有多少钱,是银行记录的。
比特币地址里面存有多少钱,是整个比特币网络共同记录的。每一份完整的比特币数据,都会记录着这个地址里面存了多少个比特币。
每个参与比特币网络的节点都可以保存一份完整的比特币数据,人人手头都有备份,防止造假。
3、密钥(私钥)
密钥是你自己才知道的另一串字符,密钥用来操作比特币地址里面的钱。密钥和地址是一把钥匙一把锁的关系,每个地址只有一个密码,每个密码也操作一个比特币地址。
有了密钥以后,你就可以控制比特币地址里面的钱,支付给任何人。密钥要绝对安全,丢失、删除的密钥永远找不回来,对应比特币地址里面的钱也就永远不能用了。
密钥需要绝对保密,任何知道密钥的人都可以偷走你的所有比特币。
4、钱包
比特币的交易过程会涉及很多复杂计算,为了简化操作,大家制作了钱包。钱包有计算机上的客户端软件,也有在线网页版的。钱包的功能是轻轻一点就可以付钱,背后的复杂计算交给钱包去完成
5、安全性
如果使用计算机客户端软件的话,推荐MultiBit,也可以用Bitcoin-QT。这两个都是比特币社区的官方推荐软件。安装这两个软件一定只能从官方网站直接下载,下载前后一定要检查校验码。这么做是为了防止有人篡改钱包软件、盗窃密钥。
6、挖矿
大约每10分钟,比特币网络中都会新出现一些比特币,可以想象成天上在撒钱。这些撒下来的钱落到谁的口袋里,主要看谁的电脑算得快。算得越快,就越有可能捡到这些钱。挖矿就是用电脑拼命算,去捡这些钱。
④ 比特币地址密钥怎么查我申请20个,只能查到一个密钥啊,还不知道是那一个的,其它全无效了用不了了
1、钱包加密是指对储存有私钥的钱包进行自动加密存储。 比特币官方客户端从0.4.0 版本开始支持钱包加密。加密的钱包在每次付款的时候,都会提示您输入密码。如果密码错误,客户端会拒绝付款。
2、如果用最早备份的钱包(wallet.dat)替换回来,还是一样可以正常交易。考虑到比特币的原理应该也可得出,只要有私钥(钱包)存在,就可以证明你是这个钱包的合法拥有者,不管对这个钱包(核心就是某个地址对应的私钥)是进行了加密还是删除,都不能否定它。
3、备份比特币钱包时,还需注意由于比特币支付找零机制的存在(比如把一个完整的100 btc中的50 btc发送给某个地址,系统会发送其中的50 btc到对方的地址,并退回50 btc到你客户端的一个新地址上,这个地址不会直接显示在你的地址列表中)。
4、每发送了100次比特币给其它地址或者使用了100个不同的地址接收比特币后,请重新备份钱包,否则后面交易退回的和接收到的比特币会永久丢失。 除了给钱包加密外,用户还可以自行生成离线的纸钱包和脑钱包。
⑤ 知道比特币的秘钥,怎么找回呢
1. 比特币密钥丢失怎么办?这位极客开发的工具可以帮你恢复它
据Bitcoinist 3月16日报道,一名程序员发布了一个可以使用部分密钥数据来恢复丢失的比特币的工具。当钱包数据被损坏或破坏时,用户可以使用这个程序让恢复数据这个痛苦的过程变得十分简单。此外,用户还可以使用其他技巧来找回丢失的资金。 图片来源:pixabay 助记词恢复工具 这个名为“FinderOuter...
知识: 比特币
2. 加密钱包的一些东西,学习提高安全认识
...部分用户的疑惑:为什么这里只能存放四个字母块一个单词空间内,存不下怎么办的问题。那么当你使用助记词密盒存储你的助记词时如果你要倒钱包时候怎么办?别急,在 imKey 硬件钱包内当你输前四个字动可以帮你匹配到唯一的一个单词,千万不要觉得己备份的单词不全就觉得丢失了你的比特币。如...
知识: 私钥,钱包,公钥,比特币钱包
3. 如何使用U2F密钥保护您的加密帐户
...将要使用的2FA。将Yubikey与Binance配对如果您想知道U2F钥匙丢失,损坏或被盗怎么办,许多站点都可以让您配对多个钥匙,从而在丢失钥匙时提供冗余。不幸的是,币安不是其中之一。丢失密钥,您将需要启动Binance的帐户恢复过程,该过程可能需要几天才能完成,并且需要备用验证。每次您登录Binance时,...
知识: 加密货币,密钥,的比特,比特币区块浏览器
4. 了解下不用助记词的ZenGo钱包及门限签名技术
..., 我们分别考虑下设备丢失和ZenGo服务关停的问题。 设备丢失(或盗窃)怎么办? 当设备丢失(或盗窃)时,获得设备的人由于没有我们的 TouchID/FaceID ,可以确保我们的资金不会被转移。 那么如何取回自己的资产呢?ZenGo 钱包提供了一个对设备部分的秘钥备份的方案:设备秘钥通过加密之后存储在...
知识: 钱包,区块链,数字货币
5. 3种比特币钱包选项,如何选择最佳
...进入和离开的许可。真的是谁的房子?如果该第三方丢失或窃取了您的钥匙怎么办?在比特币中,没有锁匠,因此,如果您丢失了私钥,最好与金钱道别。优点缺点恢复访问密码的选项需要对第三方的信任易于使用对私钥的共享控制潜在的资金访问延迟财务缺乏隐私权资金被盗的风险网络或应用钱包我...
知识: 私钥,钱包,加密货币,硬件钱包
6. EOS的账号设计:说说steem和EOS的异同
...法,随着技术的不断发展,相信EOS会变得越来越容易使用。steem和EOS的钱包密钥steem和EOS的密钥设计较为类似,首先说说steem的设计。Steemit里面有四种密钥,分别是Owner Key(主密钥);post key(发帖密钥);Active Key(活动密钥);Memo Key(备注密钥)。四种密钥分别有不同的权限和功能,下面来一个个介...
知识: 密钥,钱包密钥,区块链性能,钱包
7. 万一硬件故障导致比特币丢失该怎么办
...硬件钱包已消除了这种危险。 但是,如果您由于硬件钱包故障而丢失比特币怎么办? 也有解决方案,但是您不应该尝试它们。 在这种紧急情况下,您需要专业的帮助,而不是搜索如何修复Internet上检测到的Windows硬盘问题。 这种情况是独特的,需要区别对待。 让我们来看看。什么是比特币硬件钱包?...
⑥ 比特币私钥在哪里
私钥是一个保密的数据块,通过加密的签名,证明你有权从一个特定的比特币地址花销比特币 。每个比特币地址有它自己唯一的私钥。如果你使用的是钱包软件,你的私钥就存储在你的计算机内;如果使用的是在线钱包,你的私钥就存储在远程服务器上;私钥不可以泄露,因为有了它就可以花销掉它所对应的比特币地址里的比特币。---代 币 网 论 坛 提 供。
⑦ 比特币的加密(秘钥、地址、脚本验证)
https://en.bitcoin.it/wiki/Address
https://www.cnblogs.com/zhaoweiwei/p/address.html
生成方式:
P2PKH的交易脚本
举个真实的例子:
ScriptSig:
PUSHDATA(72)[9701] PUSHDATA(33)
[]
这里面的一个scriptSig由2部分组成,第一部分是签名,第二部分是公钥,PUSHDATA(N),表示要压入栈顶的byte,1个byte表示2个字符,PUSHDATA(72)表示压入144个字符
Output Scripts
HASH160 PUSHDATA(20)[] EQUAL
DUP HASH160 PUSHDATA(20)[] EQUALVERIFY CHECKSIG
第二个找零output地址因为是P2PKH开头的,所以格式和描述的一样
https://www.hibtc.org/2428.html
结合多重签名一起使用
scriptSig: ..signatures... <serialized script>
scriptPubKey: OP_HASH160 <scriptHash> OP_EQUAL
表示一共有n个参与方,只要有m个参与方同意了这笔交易,则这笔交易就生效了,具体的规则是通过scriptHash里面的脚本内容决定的
m-of-n multi-signature transaction:
scriptSig: 0 <sig1> ... <script>
script: OP_m <pubKey1> ... OP_n OP_CHECKMULTISIG
ScriptSig:
0[] PUSHDATA(72)[1201] PUSHDATA(71)[01] PUSHDATA1[]
HASH160 PUSHDATA(20)[] EQUAL
结合P2SH的新特征
https://en.bitcoin.it/wiki/Transaction
目前比特币支持两种类型的交易:Pay-to-PubkeyHash、Pay-to-Script-Hash
验证一笔P2PKH交易的一个输入是否合法:
总结:先验证这笔output是不是属于该用户,再验证该用户的签名是否有效
参考:
https://blog.csdn.net/jerry81333/article/details/56824166
初级版的比特币交易
https://www.jianshu.com/p/a57795ec562c
⑧ 比特币私钥是52位还是64
比特币私钥是64位,WIFI格式是52位
比特币私钥是一个256位的随机数,通过SHA-256算法产生。比特币私钥的定义非常简单,一个是256位(256个二进制数字)另一个是随机数,意思是这个数的产生没有规律。
比特币私钥是一个数字,这个数字可以取从0到2___-1之间的任意值。
⑨ 比特币的私钥怎么生成的
私钥是密文持有人设置的随机的数字。
私钥的生成是随机的数字,通过抛硬币将正面向上的计为0,反面向上计为1,连续抛256次,就随机得到一个256位的二进制数字。生成了私钥,就可以通过加密函数来生成一个地址。私钥是一个64个字符长的代码,包括字母a到f和数字1到9的任何混合。