
암호화폐 채굴 작업을 위한 Red Team Coin.
RedTeamCoin은 블록체인 기반 암호화폐 채굴 풀 구현체로, 승인된 보안 테스트 및 레드 팀 운영을 위해 설계되었습니다. Go로 구축되었으며 Java 클라이언트를 지원하여 실제 환경의 크립토마이닝 공격을 시뮬레이션함으로써 조직이 탐지 역량을 평가하고 위협 행위자의 채굴 작업으로 인한 잠재적 피해를 정량화할 수 있도록 돕습니다.
이 도구를 통해 보안 팀은 기업 시스템에서 크립토마이닝 공격 시나리오를 안전하고 합법적으로 시연하고, 포괄적인 영향 보고서를 생성하며, 보안 통제를 검증할 수 있습니다. 모든 작업은 격리된 비공개 블록체인을 사용하는 통제된 환경에서 이루어집니다.
RedTeamCoin을 사용하는 이유는?
시스템 구성 요소:
5분 이내에 RedTeamCoin을 실행해 보세요:
Ubuntu/Debian:```bash sudo apt update sudo apt install -y golang-go protobuf-compiler
**macOS:**```bash
brew install go protobuf
Windows:
git clone https://github.com/xyplex3/RedTeamCoin.git cd RedTeamCoin
make install-tools make deps
make build
### Verification
빌드가 성공적으로 완료되었는지 확인하십시오:```bash
ls -lh bin/
# Expected output: server and client binaries (1-5 MB each)
./bin/server --help
# Expected output: Usage information for the server
1. 서버 시작:```bash make run-server
다음과 같은 출력이 표시되어야 합니다:```text
RedTeamCoin Mining Pool Server
Authentication Token: abc123def456...
Dashboard URL: http://localhost:8080?token=abc123def456...
gRPC server listening on port 50051
2. 채굴기 시작 (새 터미널에서):```bash make run-client
채굴 활동이 보여야 합니다:```text
Connected to mining pool at localhost:50051
Registered as miner: miner-hostname-1234567890
Mining block #1... Hash rate: 2.5 MH/s
Block found! Nonce: 98765, Hash: 000000ab1cd...
3. 대시보드 보기:
1단계의 URL을 브라우저에서 열거나 다음으로 이동하세요:```text http://localhost:8080?token=YOUR_AUTH_TOKEN_HERE
활성 채굴기, 해시 레이트, 채굴된 블록을 포함한 실시간 통계를 볼 수 있습니다.
**참고:** 서버는 모든 네트워크 인터페이스에서 수신 대기합니다 - `localhost`를
원격 접속을 위해 서버의 IP로 바꾸십시오.
## 작동 방식
채굴 풀은 작업 증명 합의 메커니즘을 사용하여 작동합니다:
1. 서버가 제네시스 블록으로 블록체인 초기화
2. 채굴기들이 gRPC를 통해 연결하고 IP/호스트네임으로 등록
3. 서버가 작업 할당(블록 템플릿) 분배
4. 채굴기들이 SHA-256 해시를 계산하여 유효한 논스(nonce) 찾기
5. 난이도 목표가 충족되면 채굴기들이 솔루션 제출
6. 서버가 블록을 검증하고 블록체인에 추가
7. 대시보드가 실시간 통계 및 채굴기 활동 표시
각 블록은 특정 개수의 선행 0을 가진 해시를 찾아야 합니다
(설정 가능한 난이도). 채굴기들은 블록당 50 RTC를 받습니다.
### 데이터 흐름```text
Client Miner Server
| |
|--RegisterMiner(IP,Hostname)->|
|<--RegistrationResponse-------|
|--GetWork()------------------>|
|<--WorkResponse(Block)--------|
| [Mining: compute hashes] |
|--SubmitWork(nonce,hash)----->|
| | [Validate proof-of-work
| | and add block to chain]
|<--SubmissionResponse---------|
|--Heartbeat(stats)----------->|
|<--HeartbeatResponse----------|
HTTP (기본값):```bash ./bin/server
- gRPC 서버: 포트 **50051**
- 웹 대시보드: **http://localhost:8080**
**HTTPS/TLS (권장):**```bash
# Generate certificates (one time)
./generate_certs.sh
# Start with TLS
RTC_SERVER_TLS_ENABLED=true ./bin/server
참고 #1: HTTPS의 경우, 브라우저는 자체 서명 인증서에 대한 보안 경고를 표시합니다. "고급" → "localhost로 이동"을 클릭하세요.
참고 #2: 웹 대시보드와 gRPC 서버는 서버의 모든 인터페이스에서 실행되며 localhost 대신 사용할 수 있습니다.
기본 사용법:```bash ./bin/client
**다중 마이너 실행:**
추가 터미널을 열고 각각에서 `./bin/client`를 실행하세요.
#### Java 마이너
RedTeamCoin은 두 가지 Java 마이너 구현체를 제공합니다:
##### Java gRPC 클라이언트 (Headless)
서버 및 자동화를 위한 프로덕션 준비 완료 gRPC 클라이언트입니다.
**전제 조건:**
- Java 11 이상
- Maven (빌드 전용)
**Makefile을 사용하여 빌드:**```bash
make build-java-client
또는 수동으로 빌드하세요:```bash cd java-client mvn clean package
**실행:**```bash
# Connect to localhost
java -jar bin/redteamcoin-miner-client.jar
# Connect to remote server
java -jar bin/redteamcoin-miner-client.jar -server 192.168.1.100:50051
Features:
그래픽 인터페이스를 갖춘 데스크톱 채굴기.
사전 요구 사항:
Makefile을 사용한 빌드:```bash make build-java-standalone
**또는 수동으로 빌드:**```bash
cd java-standalone
mvn clean package
실행:```bash
java -jar bin/redteamcoin-miner-standalone.jar
java -jar bin/redteamcoin-miner-standalone.jar --pool localhost:50051
**기능:**
- 데스크톱 GUI 인터페이스
- 시각적 통계 표시
- 간단한 JSON/소켓 프로토콜
- 애플리케이션에 내장
##### 모든 Java Miners 빌드```bash
make build-java-all
Java Miners의 장점:
전체 Java gRPC 클라이언트 문서는 java-client/README.md를 참조하세요.
기본적으로 클라이언트는 localhost:50051에 연결됩니다. 원격 서버에 연결하려면:
명령줄 플래그 사용 (권장):```bash ./bin/client -server 192.168.1.100:50051 ./bin/client -s mining-pool.example.com:50051
**환경 변수 사용:**```bash
export RTC_CLIENT_SERVER_ADDRESS=192.168.1.100:50051
./bin/client
Priority: 명령줄 플래그 > 환경 변수 > 기본값 (localhost:50051)