Bitcoin Forum
May 04, 2024, 07:02:51 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: формат адреса?  (Read 9144 times)
bitcoinex (OP)
Sr. Member
****
Offline Offline

Activity: 350
Merit: 252


probiwon.com


View Profile WWW
August 05, 2010, 08:45:20 PM
 #1

Какой формат адреса у биткоинов? Нужно для приблизительной проверки валидности адреса

New bitcoin lottery: probiwon.com
- Может, ты ещё и в Невидимую Руку Рынка веруешь? - Зачем же веровать в то, что можно наблюдать непосредственно?
1714806171
Hero Member
*
Offline Offline

Posts: 1714806171

View Profile Personal Message (Offline)

Ignore
1714806171
Reply with quote  #2

1714806171
Report to moderator
According to NIST and ECRYPT II, the cryptographic algorithms used in Bitcoin are expected to be strong until at least 2030. (After that, it will not be too difficult to transition to different algorithms.)
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714806171
Hero Member
*
Offline Offline

Posts: 1714806171

View Profile Personal Message (Offline)

Ignore
1714806171
Reply with quote  #2

1714806171
Report to moderator
1714806171
Hero Member
*
Offline Offline

Posts: 1714806171

View Profile Personal Message (Offline)

Ignore
1714806171
Reply with quote  #2

1714806171
Report to moderator
throughput
Full Member
***
Offline Offline

Activity: 158
Merit: 100


View Profile
August 06, 2010, 09:06:38 AM
 #2

Какой формат адреса у биткоинов? Нужно для приблизительной проверки валидности адреса
А там точно предусмотрена возможность error-detection, как в ИНН или ISBN?
LZ
Legendary
*
Offline Offline

Activity: 1722
Merit: 1072


P2P Cryptocurrency


View Profile
August 06, 2010, 09:21:49 AM
 #3

Разумеется, проверка есть, но, я так понял, не строгая. Вот код проверки.
Code:
    vector<unsigned char> vch;
    if (!DecodeBase58Check(psz, vch))
        return false;
    if (vch.empty())
        return false;
    unsigned char nVersion = vch[0];
    if (vch.size() != sizeof(hash160Ret) + 1)
        return false;
    memcpy(&hash160Ret, &vch[1], sizeof(hash160Ret));
    return (nVersion <= ADDRESSVERSION);
Как видим, сначала декодируется по Base58, затем извлекается номер версии адреса.

My OpenPGP fingerprint: 5099EB8C0F2E68C63B4ECBB9A9D0993E04143362
throughput
Full Member
***
Offline Offline

Activity: 158
Merit: 100


View Profile
August 10, 2010, 12:54:04 PM
 #4

Разумеется, проверка есть, но, я так понял, не строгая. Вот код проверки.
Code:
    vector<unsigned char> vch;
    if (!DecodeBase58Check(psz, vch))
        return false;
    if (vch.empty())
        return false;
    unsigned char nVersion = vch[0];
    if (vch.size() != sizeof(hash160Ret) + 1)
        return false;
    memcpy(&hash160Ret, &vch[1], sizeof(hash160Ret));
    return (nVersion <= ADDRESSVERSION);
Как видим, сначала декодируется по Base58, затем извлекается номер версии адреса.
Я надеялся на детектирование любого ошибочно введённого бита или двух-трёх-восьми Smiley
LZ
Legendary
*
Offline Offline

Activity: 1722
Merit: 1072


P2P Cryptocurrency


View Profile
September 13, 2010, 04:00:18 PM
Last edit: January 22, 2018, 05:32:24 AM by LZ
 #5

Сделали проверялку на питоне, которая учитывает контрольную сумму: ссылка.

My OpenPGP fingerprint: 5099EB8C0F2E68C63B4ECBB9A9D0993E04143362
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!