私募网

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz

(本文以比特币为例,同时适用于绝大多数山寨币)(不适用于极少

[复制链接]
发表于 2021-1-12 07:42:07 | 显示全部楼层 |阅读模式
(本文以比特币为例,同时适用于绝大多数山寨币): W/ v0 T1 V/ z: q
(不适用于极少数改动巨大的山寨币,但是这样的币就不应该再叫山寨币了)9 s4 A5 |6 L+ w4 b2 |. P7 k
将比特币发到山寨币的地址上,会发生什么?
3 [0 j7 u! k1 P! r2 f1 P1 g2 }通常情况,因为一般的山寨币地址开头和比特币的不一样,地址是非法的,交易根本就不会成功。
6 U# e, f. b2 A3 _% Q(但是,只要稍微处理一下,依旧可以使交易成功,并且对方可以花费这些比特币,好奇宝宝请看最后的部分)
3 x( a) j* w- V: H+ h3 [& U) n如果山寨币地址的开头和比特币地址是一样的呢?0 G/ y6 K7 n: ~7 G. {
情况1,有一些山寨币,地址也是1开头的,例如开发币DVC。
( ]( E2 t4 A" b4 l6 G那么地址是合法的,交易成功,比特币发出去了。发到哪里了?
0 S, A1 h* Q: g7 C) I2 U5 O# n如果你看过《比特币和山寨币地址规律》比特币和山寨币地址规律
6 ?3 V. {5 g6 V2 m你就会明白,1开头的地址,NetworkID必然是0x00。
. Z  T9 F* A  C) w$ i9 C+ M, N' F=>BTC地址和DVC地址、私钥、公钥是完全相同的。
7 n2 Q2 t  g1 h9 I5 e9 ]=>同一个私钥,可以导入BTC客户端,可以导入DVC客户端,生成的地址也完全相同。4 h5 W6 {) p7 Y) |% R1 a" {
=>如果你把比特币发到山寨币地址,并且交易成功了,那么拥有这个山寨币地址对应私钥的人,就可以使用这些比特币了。' E. H9 b* P# j2 a# a* ]1 M0 I
(两种密码币的NetworkID一样的情况,还有狗狗币DOGE与数码币DGC)
! y4 q8 d2 d2 a* O情况2,虽然没听说过,但是山寨币可以设置其NetworkID为0x05.地址3开头。/ ?1 p; S1 U+ P4 j! V) ]
这种地址被比特币客户端识别为“合成地址”,也是合法地址,交易成功,比特币发出去了。发到哪里了?7 ]5 P: J1 \: f
想为合成地址签名(即多重签名)的时候,需要额外的参数"redeemScript",生成山寨币地址时当然不会生成多重签名用的redeemScript,所以……无法签名,这些币大概就相当于丢失了。(我对多重签名了解不深,如果错了请指教)* H8 W) I9 L% A
最后说说更有趣的事情:( O6 A( L* D4 r/ _$ y0 F" D9 i9 ]3 z
如果我只知道一个人的比特币地址,并且确信他掌握着这个地址的私钥,我能不能给他发一些山寨币?3 ^% W# {' P2 S% J" U
可以。
3 S2 u; H" c3 `2 n8 ?' Z1 d简单地说,我们可以看破比特币地址的“本质”,然后将它打包成需要的山寨币地址,然后,往这个山寨币地址发山寨币就可以了。
7 U0 ?4 U. ^7 j$ s8 Z  U接收方用同样的方法,看破比特币私钥的“本质”,将它打包成山寨币私钥,就饿可以花费这些山寨币了。& s4 Y( X& R2 O% z/ L6 P$ \
————原理————) W. }5 n4 ^* @2 w$ i6 j
我们通常看见地址和私钥,都是经过一次Base58Check处理的,这种写法会产生一部分冗余信息,冗余信息包括四个校验字节,为了防止错误输入;还有一个头字节,使地址、私钥更加容易被人类识别。
: |5 ~; X2 g& M! F去掉这些冗余信息后,比特币和山寨币的地址/私钥其实是一样的。
: p3 F9 t, {# O, O! U1 d7 J因为山寨币没有改变比特币私钥->公钥->地址的算法,所以相同的私钥,一定会生成相同的地址。
% O) H1 C% U# ?1 C! h————细节————
8 k, z# A0 I, X* j) l例:发送方知道接收方的比特币地址A1,知道接收方掌握着这个地址的私钥R1。
9 M0 X8 f# @. b; S7 n! {合法的私钥和地址都是经过Base58Check处理得到的字符串,它的逆运算是:转化为16进制,去掉前两位和后八位。0 C' \, P' i, j) P2 W, m
地址A1:1EHNa6Q4Jz2uvNExL497mE43ikXhwF6kZm) I5 `' r- }4 q/ c1 o4 V, @
十六进制:0091b24bf9f5288532960ac687abb035127b1d28a50074ffe00 w" l( I$ g( P% ]
去掉前2后8:91b24bf9f5288532960ac687abb035127b1d28a5& G. M' ~6 V+ p8 W
这就是公钥进行哈希运算的结果,HASH160。+ P2 n: j* f& [
再套上莱特币的参数48,执行Base58Check,得
7 {$ J( I9 P& g$ R2 N/ P: O) u/ }LYWKqJhtPeGyBAw7WC8R3F7ovxtzAiubdM
2 f# W9 Y) j4 E9 m2 W! [发送方可以向这个地址发送莱特币。" o* _& Z9 A1 z" E
接收方需要将R1用相同的方法处理一下,得到山寨币的私钥:& P3 y0 y8 ?2 t* ~" `1 u, t. N
私钥R1:5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreAnchuDf: O0 l: V# W& g: n( t, ?$ I
十六进制:800000000000000000000000000000000000000000000000000000000000000001a85aa87e
6 e! B# I9 }0 N4 w% ?. ?去掉前2后8:0000000000000000000000000000000000000000000000000000000000000001
) c" D5 ^  _. Z1 L) t' I这就是私钥的16进制写法,Private Key Hexadecimal Format。6 [! v/ ]: t& T: R
用参数48执行Base58Check得
! N3 G, g* i% p. R6u823ozcyt2rjPH8Z2ErsSXJB5PPQwK7VVTwwN4mxLBFrao69XQ1 i7 d1 n* P9 s! h5 b2 o
接收方可以用此私钥花费莱特币。! o* f* c3 r: S+ l! y1 H* \
————完毕————: a) l6 @* S' K1 ^  a3 [
打赏 1BfXayW2vrj6uRpoZg3nR8rMEckLpGmaiL
9 q( a* U$ ^: T% P" Q软妹币打赏 SKZkDHNBZbo8VU8d3Rcb9TcmUPsE5B5Dix
http://www.simu001.cn/x227962x1x1.html
最好的私募社区 | 第一私募论坛 | http://www.simu001.cn

精彩推荐

回复

使用道具 举报

发表于 2021-1-12 07:43:00 | 显示全部楼层
(本文以比特币为例,同时适用于绝大多数山寨币)3 D' n$ _4 p5 _0 w! _; b8 z& `
(不适用于极少数改动巨大的山寨币,但是这样的币就不应该再叫山寨币了); z/ H4 R# e& T. h3 f6 X, U" ~9 n
将比特币发到山寨币的地址上,会发生什么?
% G  P2 k) Z; x, F通常情况,因为一般的山寨币地址开头和比特币的不一样,地址是非法的,交易根本就不会成功。
1 r6 z/ R, b; z6 P  c  Y8 ^(但是,只要稍微处理一下,依旧可以使交易成功,并且对方可以花费这些比特币,好奇宝宝请看最后的部分)8 q( d  k+ @. n; z, n2 N# I, ]' b
如果山寨币地址的开头和比特币地址是一样的呢?3 @$ c) G- k1 i5 v$ [& Y
情况1,有一些山寨币,地址也是1开头的,例如开发币DVC。$ n/ O: g+ k+ D& q  |
那么地址是合法的,交易成功,比特币发出去了。发到哪里了?
) a* C1 _& |! B如果你看过《比特币和山寨币地址规律》 比特币和山寨币地址规律    h7 Q& {# Y0 q
你就会明白,1开头的地址,NetworkID必然是0x00。& ~+ U8 U+ H  W, a
=>BTC地址和DVC地址、私钥、公钥是完全相同的。$ K/ I, O% b4 a' ~9 m5 J+ z
=>同一个私钥,可以导入BTC客户端,可以导入DVC客户端,生成的地址也完全相同。
" [: c- B, @) Q=>如果你把比特币发到山寨币地址,并且交易成功了,那么拥有这个山寨币地址对应私钥的人,就可以使用这些比特币了。  V4 b0 @6 q$ C3 ]
(两种密码币的NetworkID一样的情况,还有狗狗币DOGE与数码币DGC)# @. D: I0 A" M
情况2,虽然没听说过,但是山寨币可以设置其NetworkID为0x05.地址3开头。; \3 m, l! j# a4 h1 y- H) _* H; d
这种地址被比特币客户端识别为“合成地址”,也是合法地址,交易成功,比特币发出去了。发到哪里了?+ K9 t% _2 W. ^4 n  b8 |; F* Q) Z& k
想为合成地址签名(即多重签名)的时候,需要额外的参数"redeemScript",生成山寨币地址时当然不会生成多重签名用的redeemScript,所以……无法签名,这些币大概就相当于丢失了。(我对多重签名了解不深,如果错了请指教)
0 Q8 r# R4 J% I/ @+ E0 `  ~最后说说更有趣的事情:
3 ^; q1 e3 e; h/ o. s) Q( ]4 o如果我只知道一个人的比特币地址,并且确信他掌握着这个地址的私钥,我能不能给他发一些山寨币?1 }2 h3 U+ T$ H2 v9 g& [
可以。- E& M9 g3 q" Z0 h) [
简单地说,我们可以看破比特币地址的“本质”,然后将它打包成需要的山寨币地址,然后,往这个山寨币地址发山寨币就可以了。+ \! V3 }! N- b  H
接收方用同样的方法,看破比特币私钥的“本质”,将它打包成山寨币私钥,就饿可以花费这些山寨币了。
& J9 g9 o1 s2 ?; D" {- r- c) i————原理————
2 p5 L) S9 L8 u% x: U$ c+ [* P: \我们通常看见地址和私钥,都是经过一次Base58Check处理的,这种写法会产生一部分冗余信息,冗余信息包括四个校验字节,为了防止错误输入;还有一个头字节,使地址、私钥更加容易被人类识别。2 n: M$ `5 w; s" x/ ]3 Y9 e
去掉这些冗余信息后,比特币和山寨币的地址/私钥其实是一样的。: o& I7 l5 C' y# ^
因为山寨币没有改变比特币私钥->公钥->地址的算法,所以相同的私钥,一定会生成相同的地址。
; _. [5 ^* K' h0 V————细节————
- N3 D* [! W; h例:发送方知道接收方的比特币地址A1,知道接收方掌握着这个地址的私钥R1。
" c) k4 ]+ k7 J6 S# x# |合法的私钥和地址都是经过Base58Check处理得到的字符串,它的逆运算是:转化为16进制,去掉前两位和后八位。3 ^, N3 h* Q1 F; a
地址A1:1EHNa6Q4Jz2uvNExL497mE43ikXhwF6kZm4 v# e% z* k# I- E0 k+ X) l# P
十六进制:0091b24bf9f5288532960ac687abb035127b1d28a50074ffe00 M& R9 }  a- o+ p+ r# p* d2 @1 ~3 B8 i
去掉前2后8:91b24bf9f5288532960ac687abb035127b1d28a5
8 @/ ]$ M0 K7 Y( M* s- }这就是公钥进行哈希运算的结果,HASH160。2 t8 U) h" w7 e
再套上莱特币的参数48,执行Base58Check,得: q( o; L( I5 d' P1 X1 Q
LYWKqJhtPeGyBAw7WC8R3F7ovxtzAiubdM
9 K1 J" E/ e+ ~, Y, q% G" i发送方可以向这个地址发送莱特币。5 T0 U/ x: B0 A/ ]5 _
接收方需要将R1用相同的方法处理一下,得到山寨币的私钥:5 A8 ]4 a/ _; F) _
私钥R1:5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreAnchuDf
) L# k" A* w4 U" A% G1 J十六进制:800000000000000000000000000000000000000000000000000000000000000001a85aa87e
5 N& v1 \9 S1 I去掉前2后8:0000000000000000000000000000000000000000000000000000000000000001
2 B. A9 X$ g1 t这就是私钥的16进制写法,Private Key Hexadecimal Format。" i" B  W  y; f9 H1 g- C! a
用参数48执行Base58Check得2 }7 |& M3 A8 i; p  @' I" X3 P
6u823ozcyt2rjPH8Z2ErsSXJB5PPQwK7VVTwwN4mxLBFrao69XQ
" ~! d& ?, v: o, R5 a& H/ Y接收方可以用此私钥花费莱特币。
: g- u. X: `' F6 F8 _$ W9 ^————完毕————* |8 N& O% I5 T
打赏 1BfXayW2vrj6uRpoZg3nR8rMEckLpGmaiL" \1 n, i* m: ]4 [0 P
软妹币打赏 SKZkDHNBZbo8VU8d3Rcb9TcmUPsE5B5Dix
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Archiver| ( 桂ICP备12001440号-3 )|网站地图

GMT+8, 2026-3-26 13:13 , Processed in 0.643712 second(s), 32 queries .

Powered by www.simu001.cn X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表