4. PSAN 네트워크 아키텍처
PSAN(Role-Polymorphic Self-Adjusting Network, 역할 다형성 자율 조정 네트워크)은 UBMS의 P2P 네트워크 설계 철학.
핵심 원리
1. 역할 다형성: 하나의 노드가 릴레이/투표자/채굴자 역할을 동적으로 수행
2. 자율 조정: 네트워크 규모에 따라 BP(Blueprint) 수를 자동 산출
3. CF 완화: 메시지 플러딩 방지, 결정론적 경로로 대역 낭비 제거BP(Blueprint) 계산 공식 (백서 인용)
R=max(3,⌊log2(N)/2⌋×2+1)R=max(3,⌊log2(N)/2⌋×2+1)
V=max(5,⌊log2(N)/1.2⌋×2+1)V=max(5,⌊log2(N)/1.2⌋×2+1)
N = 전체 노드 수, 항상 홀수로 설정하여 다수결 명확화
노드 수별 BP 예시
100개 노드: log₂(100) ≈ 6.64 → R = 3, V = 11
1,000개 노드: log₂(1000) ≈ 9.96 → R = 5, V = 21
10,000개 노드: log₂(10000) ≈ 13.28 → R = 7, V = 51
100,000개 노드: log₂(100000) ≈ 16.61→ R = 11, V = 101최소 합의 요건
릴레이 노드 3개 이상
투표 노드 5개 이상
채굴 노드 1개 이상
합계 최소 9개 노드로 합의 가능
비콘 체인 없는 완전 분산형 합의:
별도의 비콘 체인이나 중앙 코디네이터 없이
노드 간 직접 투표로 합의를 달성함4.1 스레딩 모델
메인 스레드
UBMS::EventBase (신호 처리)
P2P 허브
UBMS::UringPool (CPU 코어 수만큼 스레드)
UBMS::ServerBinP2P (인바운드 P2P)
UBMS::ServerWeb (웹소켓)
워커 스레드들 (각각 독립 큐 보유)
UBMS::DecodeWorker (바이너리 프레임 디코딩)
UBMS::SendWorker (메시지 직렬화 + 전송)
UBMS::NodeWorker (피어 관리, 토폴로지)
UBMS::ChainWorker (블록 채굴, 검증, 동기화)
UBMS::TxWorker (트랜잭션 전파)
UBMS::HttpWorker (REST API)4.2 메시지 흐름
수신:
UBMS::ServerBinP2P::onRead (UBMS::UringPool 스레드)
-> DecodeWorker 큐에 push
-> 32바이트 메시지 ID 중복 확인
-> 평문 해제 또는 복호화
-> p2p::execPlain/execCrypto (라우팅)
-> NodeWorker / ChainWorker / TxWorker 큐에 push전송:
워커에서 UBMS::SendWorker::sendToOutbound() 호출
-> 직렬화 + 압축(평문) 또는 암호화
-> 32바이트 메시지 ID 생성
-> UBMS::ClientBinP2P::sendMessageBinary()4.3 P2P 프로토콜
메시지 구조 (UBMS::S_MESSAGE):
messageId 32바이트 해시
header 명령 식별자 (REQUEST_INIT, VOTE_BLOCK, ADD_BLOCK 등)
type 페이로드 타입
payload 직렬화된 데이터
ttl 가십 전파 수명 (기본값 5)
priority 우선순위
path 라우팅 경로피어 핸드셰이크:
아웃바운드 연결 -> REQUEST_INIT(평문) -> RESPONSE_INIT(평문)
-> REQUEST_PEER_LIST(암호) -> RESPONSE_PEER_LIST(암호)
-> 토폴로지 구성가십 3가지 모드:
GOSSIP 무작위 5개 피어에 전파 (전통 가십, 보조용)
TTL=5, XOR 모듈러2 기반 피어 거리 계산
GOSSIP_PATH 경로 내장형 전달 (3경로: 최단 + 좌편향 + 우편향)
메시지에 path[]를 싣고 다음 노드 한 칸만 전진
루프 구조적 차단, 중간 판단 불필요
GOSSIP_DIR 지향성 가십 (결정론 격자 기반 부채꼴 전파)
방향 벡터 u=(sx,sy)를 메시지에 내장
전방 이웃만 선택 (delta dot u > 0)
팬아웃 최대 3, TTL = max(3, floor(0.8 * 대각선))4.4 합의 흐름 (PoW + PoS + PoB 하이브리드)
RESET (라운드 초기화)
-> REQUEST_MINE_INFO (TX 목록 수집)
-> MINE (PoW: 블록 생성, 난이도 충족 해시 탐색)
-> DISTRIBUTE_BLOCK (PSAN 경로로 검증자에게 전달)
-> VOTE_BLOCK (PoS: 스테이커 검증자가 투표)
-> VOTE_BLOCK_AGREE (70% 이상 승인, BFT 2/3 기준 + 안전 여유)
-> ADD_BLOCK (체인에 추가)
+-> 채굴자 보상 5%
+-> 스테이커 보상 95% (Shifted Sigmoid 분배)
+-> TX 수수료 -> 5단계 유통인 분배 (PoB: 60/20/10/7/3%)
-> 새 RESET블록 부족 시:
REQUEST_BLOCK -> RESPONSE_BLOCK -> ACCEPT_RESPONSE_BLOCK
-> 높이가 따라잡으면 정상 모드 전환5. 검증 체계
UBMS::InspectManager가 9개의 세부 검증기를 통합 관리.
UBMS::InspectTx TX 구조 검증
UBMS::InspectUtxo UTXO 유효성
UBMS::InspectBlock 블록 해시, 이전해시, 머클루트, 난이도, 타임스탬프
UBMS::InspectInput 입력 유효성
UBMS::InspectSpent UTXO 소비 여부
UBMS::InspectStake 스테이크 검증
UBMS::InspectReferral 추천인 검증
UBMS::InspectBalance 잔액 검증
UBMS::InspectSignature 서명 검증서명 중복 방지: 최근 서명을 윈도우 기반으로 추적.
Inspector (감사 도구):
buildReport()로 주소별 종합 감사 실행
- UTXO 스냅샷 vs DB 일치성
- 마이닝 보상 테이블 검증
- 전체 블록 리플레이 시뮬레이션
- 이중 지불 탐지

🎉 100% 당첨! UBMS 무료 코인 참여 이벤트 🎉
간단한 참여 완료 시 이벤트 보상을 100% 전원 지급해 드립니다! UBMS 커뮤니티만을 위한 특별 혜택을 지금 바로 확인하세요. 🎁
이벤트 참여하고 무료코인 받기 🎁