개발 인원 : 4명
기여도 : 25% (PE)
프로젝트 목적 : 비트코인을 대상으로 한 사이버 범죄 수사 지원
수상 : 2023 상반기 프로젝트 경진대회 최우수상
개요
BTDS(Bitcoin Tracking Detecting Solution)는 고용노동부가 주관하는 '미래내일 일경험 사업’으로 진행되어 수사 기관을 위해 개발된 솔루션입니다. 해당 솔루션은 비트코인 거래가 진행된 사이버 범죄를 추적할 때 그래프 형태로 시각화하여 단순화된 데이터를 바탕으로 범죄 수사의 효율을 높히고 자동 추적 기능을 통하여 거래의 흐름을 신속히 분석할 수 있도록 해줍니다.
주요 담당 역할
•
C++을 사용한 휴리스틱 기술 활용 점수 기반 결정 모듈 개발
•
Bitcoin Core 풀 노드를 운영하여 트랜젝션 데이터 수집
•
BlockSci를 사용한 트랜젝션 데이터 분석 및 전처리
•
Next.js와 vis.js를 사용한 Network Views 형태의 Node Graph 시각화 모듈 개발
기술 스택 (I used)
•
언어 : JavaScript TypeScript C++
•
프레임워크 : Next.js TailwindCSS
•
데이터베이스 : MongoDB Neo4J
•
AWS : EC2 IAM
•
ETC DevOps : Git/Github Notion.so JIRA Zeplin Bitcoin-core NGINX Atlas
구조
실험
문제 & 목표
•
문제 : 블록체인 데이터 및 거래 흐름 구조가 복잡하여 가상화폐 범죄 추적이 힘들다.
•
목표 : 비트코인 거래 내역을 쉽게 추적할 수 있도록 거래 흐름을 시각화하여 제공
가설
•
거래 추적에 가장 큰 어려움을 주는 것은 잔돈지갑의 유무 때문이 크다. 따라서 잔돈지갑을 식별해낸다면 거래 흐름 추적 정확도가 상승될 것이다.
•
주소 재사용, 동일한 주소 포맷, 가장 큰 입력 금액, 어림수 등의 여러 휴리스틱 알고리즘을 사용한다면 잔돈지갑 주소 식별률이 높아질 것이다.
실험 및 검증
•
트랜잭션 대상을 무작위 선별하여 휴리스틱을 적용시켜보고 적중률이 높은 순서대로 랭크를 매겨 그룹을 3가지고 나눈다.
•
검증 결과 동일한 주소 포맷, 주소 재사용 휴리스틱의 적중률이 가장 높음.
•
검증 내용을 바탕으로 각 휴리스틱 그룹마다 점수 가중치를 다르게 주어 최종적으로 점수 기반 결정을 내려 정확도 향상
•
클러스터링 단일 사용 때보다 점수 기반 결정 로직 추가 사용 떄의 적중률이 약 12%P 더 높음.
정량적 성과
•
비동기 작업 병렬 처리, 부분 조회, 주 데이터 캐싱 처리
◦
데이터 처리 시간 1분 → 1초 감소
•
Bitcoin Core RPC에서 BlockSci로 기본 프로세서를 변경
1.
데이터 접근 속도 50~100배 향상
2.
주소 기반 트랜젝션 검색 속도 1~2분에서 1~2초로 단축
•
AWS Neptune에서 Neo4j로 변경하며 AWS 부가 비용을 감축시켜 약 20%~50%의 비용 절감
•
2023 상반기 프로젝트 경진대회 최우수상
정성적 성과
•
기획서, 설계서, 요구사항 명세서, 보고서 등과 같은 개발 문서화 작업 경험
•
Jira를 통한 작업 관리 진행 경험
•
팀 내부 코드 스타일 및 네이밍 규칙을 지정해보며 협업 능력을 향상시켜본 경험
•
이전 프로젝트에서 사용했던 Page Router 방식이 아닌 App Router를 사용하여 CSR에서 SSR 중심의 라우팅으로 기반을 변경함에 따라 기존과는 다른 Data Fetching 방식과 경로 설정 등을 코딩해 보고 이전 프로젝트와 비교해 보면서 지식을 습득
◦
Next.js의 직관적 라우팅 시스템, Navigation, 내장CSS 와 같은 React 프로젝트 성능 향상 기술에 대해 알아보고 적용
◦
SEO 친화적에 대해 어떻게 검색 엔진과 연관이 되어져 있는지 어떤 프로젝트에 사용되는 것이 좋은지에 대한 지식을 습득
•
vis.js를 사용한 그래프 형태 가시화
•
다양한 AWS 서비스(EC2, Neptune 등)를 사용/시도한 프로젝트 경험
•
대용량 트래픽을 FE/BE에서 처리해보는 경험
피드백
•
코어 서버가 무거워 성능 모니터링이 필요하다고 판단됨
→ AWS CloudWatch와 같은 도구를 사용해 EC2 인스턴스와 각종 데이터베이스의 성능을 모니터링하고, 리소스 사용량에 대한 분석을 통해 필요한 부분에 최적화 진행 필요.
•
사용자 교육 문서 및 가이드 필요
→ 수사 기관 사용자가 시스템의 기능을 원활하게 사용할 수 있도록 사용자 가이드 및 교육 자료를 문서화하고 제공하여 도구 적응에 필요한 시간을 단축시킬 수 있다고 보임.