파일 2/7 · 확률적 계층 선택 · 잔액 불변성 검증 · 5단계 거래 검증
오픈해시는 모든 종류의 데이터 위변조를 방지하는 기술이지만, 본 문서는 이해를 돕기 위한 예시로 상업적 거래 데이터를 기준으로 설명합니다. 확률적 계층 선택 모듈은 거래 당사자 간의 최하위 공통 계층을 기준으로 기록 계층을 확률적으로 선택합니다. 가령, 두 거래 당사자가 각기 제주시(Layer 2) 한림읍(Layer 1)과 서귀포시(Layer 2) 안덕면(Layer 1)에 위치하면, 두 거래 당사자의 최하위 공통 계층은 제주특별자치도(Layer 3)입니다. 그러므로, 두 사람 간의 거래 데이터의 Hash를 기록하는 계층은 제주시와 서귀포시의 직속 상위 계층인 제주특별자치도(Layer 3) 또는 그 상위 계층인 한국(Layer 4) 중 어느 하나를 확률적으로 선택합니다. 가령, 70%의 확률로 제주특별자치도 노드를 선택하고, 30%의 확률로 한국 노드를 선택할 수 있습니다.
이처럼, 확률적으로 기록 계층을 분산하는 이유는 크게 두 가지입니다. 첫째는 적대적 공격자가 특정 거래 데이터의 Hash를 기록하게될 계층을 확정할 수 없으므로, 공격 대상 노드를 특정할 수 없고, 둘째, 후술하는 직조(weaving) 메커니즘에 의해, 모든 계층과 모든 사용자의 Hash Chain이 마치 직물의 수많은 실오라기처럼 가로 세로 연동되기 때문입니다.
성능: 1,024바이트 문서 기준 SHA-256 이중 재해싱에 평균 0.0127밀리초 소요됩니다.
| 최하위 공통 계층 | 선택 가능 계층 |
|---|---|
| 읍면동 계층(100) | 읍면동(100), 시군구(110), 광역시도(120), 국가(125), 글로벌(130) |
| 시군구 계층(110) | 시군구(110), 광역시도(120), 국가(125), 글로벌(130) |
| 광역시도 계층(120) | 광역시도(120), 국가(125), 글로벌(130) |
| 국가 계층(125) | 국가(125), 글로벌(130) |
| 글로벌 계층(130) | 글로벌(130) (100% 확률) |
데이터의 중요도에 따라 확률 분포가 차등 적용됩니다. 가령, 버스 요금 지불 데이터와 부동산 매매 계약서의 중요도는 다릅니다.
최하위 공통 계층이 읍면동(100)인 경우:
| 중요도 | 읍면동 | 시군구 | 광역시도 | 국가 | 글로벌 |
|---|---|---|---|---|---|
| 낮음 | 50% | 30% | 12% | 6% | 2% |
| 높음 | 15% | 20% | 30% | 25% | 10% |
최하위 공통 계층이 시군구(110)인 경우:
| 중요도 | 시군구 | 광역시도 | 국가 | 글로벌 |
|---|---|---|---|---|
| 낮음 | 55% | 27% | 13% | 5% |
| 높음 | 20% | 35% | 30% | 15% |
최하위 공통 계층이 광역시도(120)인 경우:
| 중요도 | 광역시도 | 국가 | 글로벌 |
|---|---|---|---|
| 낮음 | 60% | 30% | 10% |
| 높음 | 25% | 45% | 30% |
최하위 공통 계층이 국가(125)인 경우:
| 중요도 | 국가 | 글로벌 |
|---|---|---|
| 낮음 | 70% | 30% |
| 높음 | 40% | 60% |
중요도 판정은 거래 금액, 데이터 카테고리, 콘텐츠 키워드를 종합하여 점수를 산출합니다:
(이러한 점수 기준 및 분류 체계는 시스템 운영자가 필요에 따라 조정 가능)
확률적 계층 선택 메커니즘에 의해, 계층(Layer)을 결정하면, 선택된 계층 내에서 구체적으로 어느 노드에 해시를 전송할지는 별도의 노드 결정 정책에 따릅니다.
행정 소속 기반 방식:
현재 위치 기반 방식:
혼용 방식: 행정 소속 기반과 현재 위치 기반을 혼용하여, 공격자가 해당 노드를 더욱 알 수 없게 합니다.
| 보안 측면 | 설명 |
|---|---|
| 예측 불가능성 | 공격자는 특정 거래가 어느 계층에 기록될지 사전에 알 수 없습니다. 거래 해시와 타임스탬프는 거래 당사자만이 생성 시점에 알 수 있으므로, 공격자가 원하는 계층에 기록되도록 조작하는 것이 사실상 불가능합니다. |
| 다중 계층 동시 공격의 어려움 | 공격자가 특정 거래를 위변조하려면, 해당 거래가 기록된 모든 계층의 노드를 동시에 장악해야 합니다. 최상위 계층인 글로벌 계층과 국가 계층에 기록된 거래는 해당 국가 노드뿐만 아니라 그 하위의 모든 경로까지 동시에 제어해야 하며, 이는 현실적으로 불가능에 가깝습니다. 반대로, 최하위 계층인 개별 사용자가 보유한 거래 데이터를 위변조하려면, 해당 사용자가 Hash를 전송한 모든 노드를 위변조해야 하며, 직조(weaving) 메커니즘은 Layer 1부터 Layer 5까지 모든 계층의 노드를 상호 연동하므로, 결국, 전세계 모든 노드들과 모든 사용자의 데이터를 동시에 위변조해야 합니다. |
| 확률적 분산 | 공격자가 특정 노드를 장악하더라도, 그 노드에 기록될 거래는 전체 거래 중 일부에 불과합니다. 확률적 분포 덕분에 공격자의 영향력이 국한됩니다. |
| 암호학적 안전성 | SHA-256은 현재까지 알려진 양자 컴퓨터 공격에도 안전한 암호학적 해시 함수입니다. 두 번 해싱함으로써 충돌 공격 가능성을 더욱 낮춥니다. |
다음 애니메이션은 제주시 한림읍의 사용자 A와 서귀포시 안덕면의 사용자 B의 거래 예시를 보여줍니다. 두 사용자의 최하위 공통 계층은 제주특별자치도(Layer 3)입니다. 제주특별자치도는 Layer 3에 속하는 여러 광역시도 노드들 중 하나이며, 다시 복수의 2차 노드로 구성됩니다. 실제로 한국의 17개 광역시도 각각이 Layer 3의 1차 노드이고, 그 중 제주특별자치도는 3개의 2차 노드를 가집니다. 사용자 A와 B가 거래 데이터의 Hash를 전송할 계층은 확률적으로 제주특별자치도(70%) 또는 한국(Layer 4, 30%) 중 선택됩니다. 만약 제주특별자치도가 선택되면, 다시 그 내부의 3개 2차 노드 중 하나가 무작위로 선택됩니다. 한국이 선택되면 한국의 3개 2차 노드 중 하나가 무작위로 선택됩니다.
이 과정을 통해 사용자 A, 사용자 B, 그리고 선택된 계층의 선택된 노드의 Hash Chain이 상호 연동됩니다. 모든 사용자들과 모든 계층, 모든 노드의 Hash Chain이 상호 연동되고, 모든 Hash Chain이 공개되므로, 누구나 다른 모든 사용자와 노드들의 Hash Chain 무결성을 검증할 수 있습니다.
계층별 잔액 불변성 검증 모듈은 행정 계층 구조를 기반으로 거래 당사자의 공통 계층을 탐색하고, 해당 계층 이상의 총 잔액 불변성을 검증합니다.
사례 1: 동일 시군구 내 서로 다른 읍면동 거래
사례 2: 서로 다른 시군구 거래
사례 3: 서로 다른 국가 거래
5단계 거래 검증 모듈은 모든 거래에 대해 다음의 5단계 검증 파이프라인을 순차적으로 수행합니다.
| 항목 | 내용 |
|---|---|
| 검증 대상 | 발신자의 현재 잔액 ≥ 거래 금액 |
| 실패 시 처리 | 거래 즉시 실패, 재시도 불가능 |
| 항목 | 내용 |
|---|---|
| 검증 대상 | 발신자와 수신자의 신원 확인, 본인 인증 상태, 계층 등록 여부 |
| 실패 시 처리 | 본인 인증 절차 요청 |
| 항목 | 내용 |
|---|---|
| 단일 거래 한도 | 기본 100T (시스템 운영자 조정 가능) |
| 일일 거래 한도 | 개인별 설정 |
| 초과 시 처리 | 승인 대기 상태로 전환, 명시적 승인 요구 |
| 이상 탐지 조건 | 설명 |
|---|---|
| 거래 횟수 이상 | 1시간 내 거래 횟수 10건 이상 |
| 거래 금액 이상 | 1시간 내 거래 금액 500T 이상 |
| 급격한 변화 | 거래 금액이 평균의 5배 이상 |
| 이상 거래 판정 시 | 승인 대기 상태로 전환 |
| 항목 | 내용 |
|---|---|
| 블랙리스트 확인 | 블랙리스트 및 국제 제재 대상 여부 확인 |
| 고액 거래 보고 | 1,000T 이상 거래는 통화 거래 보고 대상으로 기록 |
| 위반 시 처리 | 거래 즉시 실패, 감사 로그에 기록 |
| 서명 방식 | 평균 시간 | 중앙값 | 최소값 | 95백분위 |
|---|---|---|---|---|
| BLS 서명 | 1.4031ms | 1.3762ms | 1.3518ms | 1.4416ms |
| Ed25519 서명 | 0.1323ms | 0.1272ms | 0.1260ms | 0.1476ms |
ⓒ Openhash 특허 출원 기반. 이 문서는 요약본이며, 자세한 내용은 특허 명세서를 참조하십시오.