比特币的加密(秘钥、地址、脚本验证)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了比特币的加密(秘钥、地址、脚本验证)相关的知识,希望对你有一定的参考价值。

参考技术A https://en.bitcoin.it/wiki/Address

https://www.cnblogs.com/zhaoweiwei/p/address.html
生成方式:

P2PKH的交易脚本

举个真实的例子:
ScriptSig:
PUSHDATA(72)[3045022100f8df16671995baaecab5a8d91fc3c78f22c156918cefb90dd1092fcd8578567d022041395667d7e99d131bffcb908904a2417cfb74b46df8bded2517a02beda0279701] PUSHDATA(33)
[021fc349da71680b2482e4c307adbd7aa2fc16d2cd564843ab873a8efff748d87b]

这里面的一个scriptSig由2部分组成,第一部分是签名,第二部分是公钥,PUSHDATA(N),表示要压入栈顶的byte,1个byte表示2个字符,PUSHDATA(72)表示压入144个字符

Output Scripts
HASH160 PUSHDATA(20)[d3ecd0e0d42d4b617767d9d1b966216c77ebb513] EQUAL
DUP HASH160 PUSHDATA(20)[7c45023433aea27b48251d4c5a52b1d73caba74e] 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)[30450221009b37b97eb11341a5fa69d191312df12a41449cf922dbf8e72e93eb6ca7515cb60220759126a28f69525903da3e79e873c59ee7355b6a4874eed06ed6f616712ee51201] PUSHDATA(71)[304402202da30a860b7a2ee3cf614aae2ae8fb5a75de3ea9d5274701ef0ceebc94f75801022063155b788bfb7cada4e8050992b23340d9324306fbd6a201a169ff4a676ea9d701] PUSHDATA1[52210246ccf4de0c54cc7f3354cdd993c2c50cf965fd82238b89659fbd73a1b4bf05a121024fc59f72272a897fe43803374969f396058152fe4765a8d15216f94624257b1b21022593bc69ecbf3bbcc3c58082267cb49dadaf4ca8dbf1b2297338a9d628c4297653ae]

HASH160 PUSHDATA(20)[d3ecd0e0d42d4b617767d9d1b966216c77ebb513] 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

比特币是一种去中心化的加密数字货币

比特币是什么?
比特币是一种去中心化的加密数字货币。
 
1.比特币的由来
2.如何获得比特币
3.比特币存放在哪?
4.比特币的价值所在
5.如何交易比特币
6.关于挖矿
7.各个国家对比特币的态度
8.比特币的缺陷
本人接触数字货币也有几年了,对比特币的了解也不能说有多么的深入。我将尽我所能把什么是比特币写清楚,用小白能明白的文字来表述比特币。
如果有错的地方还望不吝赐教
 
1.比特币的由来
比特币的由来这里就必须要提到一个人:中本聪。中本聪是比特币的创始人,但是关于谁是中本聪直到我写这边文章的时候,仍然是一个未解之谜。
倒是有很多自称是中本聪的人,但是一个个都禁不起推敲。目前知名度最高的一个人是"澳本聪",因为人在澳大利亚,所以大家给他取了一个略带
讽刺意味的名字。
先借用一下百度百科上面的介绍:
 
比特币(Bitcoin)的概念最初由中本聪在2008年11月1日提出,并于2009年1月3日正式诞生 。根据中本聪的思路设计发布的开源软件以及建构其上的P2P网络。比特币是一种P2P形式的虚拟的加密数字货币。点对点的传输意味着一个去中心化的支付系统。
与所有的货币不同,比特币不依靠特定货币机构发行,它依据特定算法,通过大量的计算产生,比特币经济使用整个P2P网络中众多节点构成的分布式数据库来确认并记录所有的交易行为,并使用密码学的设计来确保货币流通各个环节安全性。P2P的去中心化特性与算法本身可以确保无法通过大量制造比特币来人为操控币值。基于密码学的设计可以使比特币只能被真实的拥有者转移或支付。这同样确保了货币所有权与流通交易的匿名性。比特币与其他虚拟货币最大的不同,是其总数量非常有限,具有极强的稀缺性。
我对上面的文字解释一下:
【P2P】网络是点对点,再白话一点是个人对个人的意思。
中心化:一般的像支付宝这样的系统是中心化系统,所有信息都掌握在支付宝公司的服务器中。
去中心化:就是没有一个中心化的系统。网络中的所有个体都对这个账本都有完整的记录。这里有个关键词【账本】。
什么是账本?比特币的所有转账挖矿信息加起来是一个账本。账本就是数据的意思。比特币网络中的每一台服务器都有完成的比特币转账记录【账本】。
什么是转账?如果你有一个比特币钱包,并且有比特币资产,那么你就可以转账到另一个地址。每个地址都是特有的不重复的。就像支付宝账号,但是地址并不记录个人信息,所以转账是匿名的不可查的。但是转账记录【账本】是公开的可查。
什么是钱包?你可以理解是一个软件。目前用的做多的是imtoken,用imtoken你可以生成自己的比特币账号【地址】。然后别人就可以给你转账。钱包并不是中心化的东西。钱包生成的私钥才是最重要的数据。你可以用私钥导入到其他钱包。注意密码,密码忘记就不可找回。就无法转账。目前比特币总量1800多万。但是有可能比特币遗失了,比如私钥没有了。所以一定要保存好你的私钥。
2.如何获得比特币
获取比特币的方法目前有2种
1.用电脑挖矿
比特币的产生就是挖矿而来,挖矿白话文就是:用电脑运行特定软件来运算数据,算对了就给你比特币奖励。挖矿需要高端显卡,挖矿设备首先就是杜绝NV显卡。挖矿肯定是用显卡挖矿。挖矿设备的整体结构和普通PC机器不一样的地方就是显卡数量。当然你也可以用家用的电脑来挖矿感受一下。具体的挖矿教程这里不做介绍。
2.购买
购买相对就简单不少。但是目前市面上交易所成百上千家,优劣不齐。选择的时候要慎重。要选排名靠前的交易所。这里介绍几个大型交易所:火币,币安。这两个已经可以满足你的所有需求。
3.比特币存放在哪
比特币可以存放在任意一个数据存储介质里,包括手机、U盘、移动硬盘、电脑等。比特币在进行交易的时候,只需要使用比特币交易软件发送比特币地址即可。比特币软件可以自动生成地址,同时在生成地址时不需要联网。比特币地址和私钥是成对出现的,他们的关系就像银行卡号和密码。比特币地址是用来记录你在该地址上有多少比特
4.比特币的价值所在
比特币的价值非常大。说几点实用的价值。
1.去中心化的货币,没人可以随意冻结你。不用担心哪个国家冻结你的资产
2.隐秘的交易 购买东西只需转账比特币,没人可以查到你。其中的美妙可以自行想象
3.升值潜力 总量2100W,如果成世界货币。价值难以估计。目前比特币价值:6700美元 (2020年3月25日数据)
主要价值在上面几点,已经是充满无限想象
 
5.如何交易比特币
可以在交易平台交易,比如上面提到的交易所。
交易所分为中心化交易所,和去中心化交易所。对比来说中心化交易所方便很多。事实也是这样,去中心化交易所的交易量很少。

 

6.关于挖矿
比特币是由挖矿产生的。但是目前个人电脑想挖矿的话难度真的不是一般的大。由于比特币全网的运算水准在不断的呈指数级别上涨,单个设备或少量的算力都无法在比特币网络上获取到比特币网络提供的区块奖励。在全网算力提升到了一定程度后,过低的获取奖励的概率。所以不是说你挖就能挖到的。就比如个人电脑你挖个十天半个月收获的数量极极大概率还是0.
这里就不得不说一下【矿池】
 
过低的获取奖励的概率,促使一些“bitcointalk”上的极客开发出一种可以将少量算力合并联合运作的方法,使用这种方式建立的网站便被称作“矿池”(Mining Pool)。
在此机制中,不论个人矿工所能使用的运算力多寡,只要是透过加入矿池来参与挖矿活动,无论是否有成功挖掘出有效资料块,皆可经由对矿池的贡献来获得少量比特币奖励,亦即多人合作挖矿,获得的比特币奖励也由多人依照贡献度分享。
所以说过你个人想体验挖矿的话,加入一个大型矿池是一个非常不错的主意。
 
 
7.各个国家对比特币的态度
友好的国家:日本,澳大利亚,韩国,新加坡等
日本是第一个使比特币合法化的国家,并赋予了其法定货币地位。
澳大利亚是继日本之后的第二个对比特币友好的国家,在2017年宣布比特币和加密货币为法定货币。
韩国交易所也占比特币总交易量的10%以上,世界上吸引比特币交易量最大的一些交易来自韩国,这一事实本身就说明了该国对比特币的友好态度。
新加坡的比特币不被视为货币,但被视为商品。因此,需要支付商品及服务税。
不友好的国家:中国,孟加拉,卡塔尔等
中国在94的时候取缔了所有境内交易所,并明文禁止交易比特币行为。
在孟加拉交易比较币的话有可能会被逮捕
卡塔尔,阿富汗这样是神权国家在宗教上被认为是非法的
 
8.比特币的缺陷
1.比特币系统目前来看已经相当的健壮安全。但是并不是不可篡改的。有数据表明,花费几十万美元购买算力,就可能使比特币网络的交易发生篡改。因为比特币交易的正确性
是有算力来决定的。如果攻击方的算力占据超过50%那么就有可能篡改相关的转账信息。历史上也发生了这样的事情,虽然不是攻击的比特币。攻击的是ETC,但是这也证明了
BTC并不是无懈可击的系统。
2.比特币转账很慢,如果使用人数少的话可以很快的转账,但是转账用户多了之后会造成网络的阻塞。目前转账比特币的时间是以小时来计算。
3.比特币的算力现在由少部分人控制。这背离了中本聪的初衷,少部分控制也就意味着中心化,而中本聪的初衷是去中心化系统。

以上是关于比特币的加密(秘钥、地址、脚本验证)的主要内容,如果未能解决你的问题,请参考以下文章

比特币的加密算法

区块链学习交易

比特币的非对称加密技术

脚本与多重签名技术

比特币是一种去中心化的加密数字货币

区块链 虚拟机 比特币的脚本解释器evmwasm 是什么 区别