비트코인 주소 검증법 (feat.PHP)

GBT
Grabity
Published in
3 min readNov 7, 2019

안녕하세요! GBT Protocol 커뮤니티 여러분

​오랜만에 인사드립니다.

​​저희의 모바일 지갑인 #​PlanetWallet​이 출시가 되었는데 사용 중이신가요?

사용해 보지 않았다 혹은 출시된 지 몰랐다 하시는 분들은 Play Store, App Store를 통해 다운로드하셔서 사용해보시길 바랍니다!

오늘은 저희 서버의 관리자 페이지에서 사용 중인 비트코인의 주소를 등록할 때 쓰이는 소스를 간략히 설명드리려 합니다.

출처 [Mastering Bitcoin]

블록체인의 네트워크에서는 개인키를 통해 공개키를 생성, 공개키를 통해 지갑 주소를 생성하는 구조입니다.

하지만 지갑 주소를 안다고 공개키, 개인키를 알아낼수는 없습니다.

그러기에 생성된 주소가 해당 코인의 주소 체계에 맞게 생성이 되었는지를 확인을 해보려 합니다.

비트코인의 앞자리는 1,3 (메인넷), m,n(테스트넷) 으로 시작을 하며 자릿수는 26~35자리 입니다.

1. 앞자리 수를 1,3,m,n으로 시작을 하는지 체크를 합니다.

2. base58을 이용해 decoding을 시작합니다.

3. 디코딩된 변수를 0 부터 21자리까지 짜른 후 sha256 함수로 암호화 작업을 합니다.

4. 그 다음 또 sha256으로 암호화를 합니다.

5. 마지막으로 디코딩된 decoded 변수와 d2 변수를 21번째 자리부터 4자리를 비교를 합니다.

비교를 해서 true면 0 이 떨어지며 false 이면 0 이외의 숫자가 나오게 됩니다.

이렇게 오늘은 비트코인의 주소 검증법을 소개해드렸습니다.

​항상 응원해주시는 커뮤니티 여러분들 감사합니다.

​더욱더 소통하는 #GBT Protocol이 되겠습니다.

​감사합니다.

플래닛월렛이 궁금하신 분들은 아래 링크를 참고해주시길 바랍니다.

홈페이지 : https://planetwallet.io/

#GBT_Protocol #GBT #planetwallet #makeyourownplanet #지비티프로토콜 #지비티 #플래닛월렛 #비트코인 #비트코인주소 #비트코인주소검증법 #PHP #블록체인 #블록체인공부 #블록체인기술 #blockchain

--

--