RBX Address Creation
Summary:
The purpose of this document is to teach you how a RBX address is created. This will walk you through from the starting step to the very end which is a human readable address.
How to create an RBX Address
The correct way to create a RBX address is to use well tested, opensource, peer reviewed wallet software. The manually handling keys can and has resulted in fund loss over and over again. Unlike other centralized systems, losses in RBX are usually unrecoverable. Please proceed at your own risk.
Here is a brief overview of how address generation works, for informational purposes:
Having a private ECDSA key
18e14a7b6a307f426a94f8114701e7c8e774e7f9a47e2c2035db29a206321725
Take the corresponding public key generated with it and add '04' hex identifier. RBX private keys are created from Ecdsa multiplication of
(curve.G, secret, curve.N, curve.A, curve.P). In code it appears as this:multiply(Point p, BigInteger n, BigInteger N, BigInteger A, BigIntegerP)Fast way to multiply point and scalar in elliptic curves
param p: First Point to multiply
param n: Scalar to multiply
param N: Order of the elliptic curve
param P:
Prime number in the module of the equation Y\^2 = X \^ 3 + A \* X + B(mod p)param A:
Coefficient of the first-order term of the equation Y \^ 2 = X \^ 3 + A \* X + B(mod p)return: Point that represents the sum of First and Second Point
This can be seen in code under EllipticCurve->Math
Please note many ECDSA libraries out there handle public keys this way, so you may not have to do the above jacobian math.
\[04\*\*added\]50863ad64a87ae8a2fe83c1af1a8403cb53f53e486d8511dad8a04887e5b23522cd470243453a299fa9e77237716103abc11a1df38855ed6f2ee187e9c582ba6 =
0450863ad64a87ae8a2fe83c1af1a8403cb53f53e486d8511dad8a04887e5b23522cd470243453a299fa9e77237716103abc11a1df38855ed6f2ee187e9c582ba6Perform SHA-256 hashing on the public key from step 1.
600ffe422b4e00731a59557a5cca46cc183944191006324a447bdb2d98d4b408Perform RIPEMD-160 hashing on the result of SHA-256 from step 2.
010966776006953d5567439e5e39f86a0d273beeAdd version byte in front of RIPEMD-160 hash (0x3C for Main Network) from step 3.
3c010966776006953d5567439e5e39f86a0d273bee(note that below steps are the Base58Check encoding, which has multiple library options available implementing it)
Perform SHA-256 hash on the extended RIPEMD-160 result from step 4.
24295fdd7e8c04bbc84f1e5151b4afa3380f900a5da58533a647c36fdc2d4cfdPerform SHA-256 hash on the result of the previous SHA-256 hash from step 5.
3699e7d4f297550311c32721b57c801f873d07ef5a886cbd07146f478178b362Take the first 4 bytes of the second SHA-256 hash. This is the address checksum from step 6.
3699e7d4Add the 4 checksum bytes from stage 7 at the end of extended RIPEMD-160 hash from stage 4. This is the 25-byte binary RBX Address.
3c010966776006953d5567439e5e39f86a0d273bee3699e7d4Convert the result from a byte string into a base58 string using Base58Check encoding from step 8.
R9Ng1rDS2YgB7R2bJMU3RKzVXSriXLRsBR