프로토콜 데모 내장 사용자 정의 노드 4부작 중 4부 · 전체 시뮬레이션

DID Auth 데모

클라이언트와 서버 워크플로우를 사용자 정의 노드로 등록해 매 실행마다 새 키쌍과 nonce로 연결한 학습용 예제.

프로토콜 설명용 예제이며 실서비스에서 사용하지 마십시오. 표시된 키는 공개 데모 키입니다.

앱에서 열기 .ncw 내려받기

DID Auth 데모

개요 및 암호학적 배경

이 워크플로우는 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)
  1. 임시 설정(Server Keypair, Client Keypair, Nonce): 실행할 때마다 양쪽의 새 P-256 키쌍과 새 32바이트 CSPRNG 챌린지 nonce를 만듭니다.
  2. 클라이언트 챌린지 응답(DID Auth - Client): Client Keypair(개인키와 공개키), Server Keypair.publicKey, Nonce를 받아 클라이언트의 공개키와 8바이트 응답 MAC을 출력합니다.
  3. 서버 검증(DID Auth - Server): Server Keypair.privateKey, Nonce, 클라이언트의 pub·mac 출력을 받아 ECDH-CBC 태그를 다시 계산하고 Verified = true를 Workflow Output으로 내보냅니다.

노드 구성 및 설정

노드역할과 주요 매개변수개수
ECC Keypair Generatorcurve = "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
Verifiedbooltrue