프로토콜 데모
내장 사용자 정의 노드
4부작 중 4부 · 전체 시뮬레이션
DID Auth 데모
클라이언트와 서버 워크플로우를 사용자 정의 노드로 등록해 매 실행마다 새 키쌍과 nonce로 연결한 학습용 예제.
프로토콜 설명용 예제이며 실서비스에서 사용하지 마십시오. 표시된 키는 공개 데모 키입니다.

개요 및 암호학적 배경
이 워크플로우는 DID Auth 학습 모음의 네 번째이자 마지막 편입니다(키쌍 → 클라이언트 → 서버 → 종단 간 데모). NodeCrypto의 강력한 구조적 기능 하나를 보여 줍니다. 여러 노드로 된 하위 워크플로우를 내용 주소 방식의 사용자 정의 노드(sha256:<digest>)로 묶어 .ncw 파일의 definitions 맵 안에 직접 내장하는 기능입니다.
하위 수준 노드 17개를 한 캔버스에 늘어놓는 대신, DID Auth - Client와 DID Auth - Server가 상위 수준의 프로토콜 블록으로 나타납니다. 이 블록들은 ECC Keypair Generator 노드 둘과 32바이트 Random Value 챌린지 Nonce에 연결됩니다.
파이프라인 배선 구조와 단계별 흐름
Server & Client Keypairs + Random Nonce (32B)
──►
DID Auth - Client (Custom Node)
──►
DID Auth - Server (Custom Node)
──►
Verified (true)
- 임시 설정(
Server Keypair,Client Keypair,Nonce): 실행할 때마다 양쪽의 새 P-256 키쌍과 새 32바이트 CSPRNG 챌린지 nonce를 만듭니다. - 클라이언트 챌린지 응답(
DID Auth - Client):Client Keypair(개인키와 공개키),Server Keypair.publicKey,Nonce를 받아 클라이언트의 공개키와 8바이트 응답MAC을 출력합니다. - 서버 검증(
DID Auth - Server):Server Keypair.privateKey,Nonce, 클라이언트의pub·mac출력을 받아 ECDH-CBC 태그를 다시 계산하고Verified = true를Workflow Output으로 내보냅니다.
노드 구성 및 설정
| 노드 | 역할과 주요 매개변수 | 개수 |
|---|---|---|
| ECC Keypair Generator | curve = "p256"인 두 인스턴스(Server Keypair, Client Keypair) | 2 |
| Random Value | 이름 Nonce. type = "bytes", length = 32로 설정 | 1 |
| DID Auth - Client (파일에 내장된 사용자 정의 노드) | 8개 노드로 된 클라이언트 워크플로우를 캡슐화한 내용 주소 방식 사용자 정의 노드 | 1 |
| DID Auth - Server (파일에 내장된 사용자 정의 노드) | 9개 노드로 된 서버 워크플로우를 캡슐화한 내용 주소 방식 사용자 정의 노드 | 1 |
| Workflow Output | 불리언 판정 Verified 출력 | 1 |
입출력 명세 및 시험 벡터 검증
검증 출처: independent implementation: Node crypto (reference/did-auth/did-auth.mjs); keys and nonce are random on every run, only the verdict is compared
키와 nonce가 실행마다 무작위이므로 독립 구현(Node crypto)과는 불리언 판정만 비교합니다.
기대 출력
| 이름 | 타입 | Value |
|---|---|---|
Verified | bool | true |