MJSEC 활동/비트코인포렌식(2025-2학기겨울)

1주차 - 비트코인 거래 프로그램 설치하고 다뤄보기

stw0218 2026. 1. 19.

비트코인 네트워크는 실제 자산이 이동하는 Mainnet과 테스트를 위해 사용되는 testnet, signet, regtest(로컬) 등이 있다.

테스트넷은 누구나 채굴할 수 있고 변동적이다. signet은 서명자들만 블록을 생성할 수 있고 블록생성이 일관되고 예측가능하다.

 

실습을 위해 bitcoin core를 사용했다.

windows 환경으로 먼저 설치해보았으나, 대부분의 자료가 cli로 다루는것 같아서 wsl ubuntu 24.04에다가 새로 설치했다.

 

설치과정

https://bitcoincore.org/en/download/

 

Download - Bitcoin

Download - Bitcoin

bitcoincore.org

 

압축 풀고 /usr/local/bin에 폴더를 옮겼다.

 

bitcoind를 그냥 실행하면 메인넷의 데이터 800GB와 동기화를 진행하게 되는데,

학습용이니 regtest에서 진행하였다.

 

서버 실행

bitcoind -regtest -daemon

 

지갑 만들기 (이름은 mytest로 설정함)

bitcoin-cli -regtest createwallet "mytest"

 

새 주소 생성하고 블록 101개 생성

ADDR=$(bitcoin-cli -regtest getnewaddress)

bitcoin-cli -regtest generatetoaddress 101 $ADDR

 

잔액 확인

bitcoin-cli -regtest getbalance

 

101개를 생성했는데 왜 잔액은 50일까?

비트코인은 채굴 후 100번의 확인이 더해져야 사용가능해진다고한다.

 

getbalances 명령어로 확인해보면 trusted: 50, immature:5000인 것을 확인할 수 있다.

 

다른 사람들과의 거래가 이뤄지는 실제 네트워크와 유사한 환경을 체험해보기 위해 testnet4에도 지갑을 만들어보았다.

서버 실행

bitcoind -testnet4 -daemon

지갑 만들기

bitcoin-cli -testnet4 createwallet "test4_wallet"

채굴 시도를 위해 주소 가져오기

ADDR4=$(bitcoin-cli -testnet4 getnewaddress)

얻은 주소: tb1qfxejjamagq5lvs0pktt9xwhva5atzcr7xkd7h4

bitcoin-cli -testnet4 generatetoaddress 1 $ADDR4

이렇게 입력하면 채굴을 시도할 수 있지만 쓰레드로 계속 돌려도 1번 성공하는 것은 쉽지 않았다...

그래서 faucet에서 코인을 받아오는 방법을 택했다.

https://coinfaucet.eu/en/btc-testnet4/

https://faucet.testnet4.dev/

 

이게 trusted로 바뀌면 다시 faucet 기부 주소나 다른 testnet4 지갑에 전송 테스트를 해볼 수 있겠다.

 

지갑의 키는 ~/.bitcoin/regtest/wallets/mytest/wallet.dat 여기에 들어있다.

 

bitcoin-cli encryptwallet 을 사용하면 지갑의 암호화를 할 수 있다. 지금 이 지갑은 암호화가 되어있지 않아서 내용이 그대로 보이는 상태이다.

 

 

댓글