Nextcoin seems to convert 256-bit Curve25519 256-bit public keys into "account numbers" that have only arabic numbers and seem to only have a length of 20.
How is that done?
Examples
In the Nextcoin forum, users leave their account numbers.
Bitcoin Stack Exchange is a question and answer site for Bitcoin crypto-currency enthusiasts. It only takes a minute to sign up.
Sign up to join this communityNextcoin seems to convert 256-bit Curve25519 256-bit public keys into "account numbers" that have only arabic numbers and seem to only have a length of 20.
How is that done?
Examples
In the Nextcoin forum, users leave their account numbers.
According to these lines an accountId seems to be...
int(sha256(publicKey(sha256(passphrase)))[7:0], 256)
...which translates to 256^8 accounts or roughly 2 * 10^19, which fits the idea of around 20 arabic numerals.
Given there are only 2^64 unique accountId and the birthday paradox, you can check this collision probability table (the 16 bytes/64 bits row). If each person in the world had a single Nextcoin account, the collision probability is greater than 75%! I'm sure this is the least of their problems.
This looks really amateurish. Really amateurish. Really, REALLY, REALLY amateurish. Stay away from this coin!
signature = shared_secret(32_byte_private_key, generate_public_key(32_byte_hash(data)))
, but I don't really have the theoretical knowledge to understand the drawbacks.
– kaoD
Jan 15 '14 at 2:48
2^256
public keys to 2^160
addresses (2^96
keys per address), but 2^192
public keys per address is just awful! And only 2^64
accounts is even worse. I guess they just wanted short accounts, but they're never going to fix that without breaking their current accounts.
– kaoD
Jan 15 '14 at 2:56
Public keys are 256 bits. Account numbers (for brevity) are 64-bits. However, the person who sends first outgoing transaction with that account, controls the account with 256-bit public key.
You cannot take over an account by collision as it's protected by 256-bit public key.