jeck猫
在 ECC 中有一种方法,叫做多样化密钥。它存在于苹果的 CommonCrypto 中,来自CommonECCryptor.h@function CCECCryptorTwinDiversifyKey@abstract Diversifies a given EC key by deriving two scalars u,v from the given entropy.@discussion entropyLen must be a multiple of two, greater or equal to two times the bitsize of the order of the chosen curve plus eight bytes, e.g. 2 * (32 + 8) = 80 bytes for NIST P-256. Use CCECCryptorTwinDiversifyEntropySize() to determine the minimum entropy length that needs to be generated and passed. entropy must be chosen from a uniform distribution, e.g. random bytes, the output of a DRBG, or the output of a KDF. u,v are computed by splitting the entropy into two parts of equal size. For each part t (interpreted as a big-endian number), a scalar s on the chosen curve will be computed via s = (t mod (q-1)) + 1, where q is the order of curve's generator G. For a public key, this will compute u.P + v.G, with G being the generator of the chosen curve. For a private key, this will compute d' = (d * u + v) and P = d' * G; G being the generator of the chosen curve.就像您的情况一样,加密货币也可能需要它。通过多样化,人们可以实现某种程度的匿名性。如果一个人总是使用相同的公钥,那么他们一直都与这个公钥相关联。如果一个人可以用他们的私钥/公钥使他们的公钥多样化,那么他们就能够使用多样化的新身份。身份多元化,很难与原本的身份联系起来。在上述方案中,新的公钥u和v将是多元化[u]P + [v]G的,多元化的私钥将是d' = (d \cdot u + v)并验证多样化的公钥P' = [d']G = [d \cdot u + v]G = [d \cdot u]G + [v]G = [u]P + [v]G总之,你有了新的身份,但在幕后,依然是你。