6단계: 원장에 있는 문서 검증 - Amazon Quantum Ledger Database(QLDB)

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

6단계: 원장에 있는 문서 검증

Amazon QLDB를 사용하면 SHA-256 암호화 해싱을 사용하여 원장 저널에 있는 문서의 무결성을 효율적으로 검증할 수 있습니다. 이 예에서 알렉시스와 브렌트는 자동차 대리점에서 VIN이 1N4AL11D75C109151인 차량을 트레이드하여 새 모델로 업그레이드하기로 결정합니다. 딜러는 등록 사무소를 통해 차량 소유권을 확인하는 것으로 절차를 시작합니다.

QLDB에서 검증 및 암호화 해싱이 작동하는 방식에 대한 자세한 내용은 Amazon QLDB에서의 데이터 확인을 참조하십시오.

이 단계에서는 vehicle-registration 원장의 문서 개정을 확인합니다. 먼저 다이제스트를 요청합니다. 다이제스트는 출력 파일로 반환되며 원장의 전체 변경 내역에 대한 서명 역할을 합니다. 그런 다음 해당 다이제스트와 관련된 개정 증거를 요청합니다. 이 증거를 사용하면 모든 유효성 검사를 통과한 경우 개정 내용의 무결성을 확인할 수 있습니다.

다이제스트를 요청하려면

  1. https://console.aws.amazon.com/qldb에서 Amazon QLDB 콘솔을 엽니다.

  2. 탐색 창에서 원장을 선택합니다.

  3. 원장 목록에서 vehicle-registration을 선택합니다.

  4. 다이제스트 가져오기를 선택합니다. 다이제스트 가져오기 대화 상자에는 다음과 같은 다이제스트 세부 정보가 표시됩니다.

    • 다이제스트 – 요청한 다이제스트의 SHA-256 해시 값.

    • 다이제스트 팁 주소 – 요청한 다이제스트에 포함된 저널의 최신 블록 위치. 주소에는 다음과 같은 두 가지 필드가 있습니다.

      • strandId - 블록을 포함하는 저널 스트랜드의 고유 ID입니다.

      • sequenceNo – 스트랜드 내 블록의 위치를 지정하는 인덱스 번호.

    • 원장 – 다이제스트를 요청한 원장 이름.

    • 날짜 – 다이제스트를 요청한 시점의 타임스탬프.

  5. 다이제스트 정보를 검토합니다. 그런 다음 저장을 선택합니다. 기본 파일 이름을 유지하거나 새 이름을 입력할 수 있습니다.

    이 단계는 콘텐츠가 포함된 일반 텍스트 파일을 Amazon Ion 형식으로 저장합니다. 파일의 파일 이름 확장자는 .ion.txt이며 이전 대화 상자에 나열된 모든 다이제스트 정보를 포함합니다. 다음은 다이제스트 파일의 내용을 보여주는 예제입니다. 필드 순서는 브라우저에 따라 다를 수 있습니다.

    {   "digest": "42zaJOfV8iGutVGNaIuzQWhD5Xb/5B9lScHnvxPXm9E=",   "digestTipAddress": "{strandId:\"BlFTjlSXze9BIh1KOszcE3\",sequenceNo:73}",   "ledger": "vehicle-registration",   "date": "2019-04-17T16:57:26.749Z" }
  6. 나중에 액세스할 수 있는 위치에 이 파일을 저장하십시오. 다음 단계에서는 이 파일을 사용하여 문서 개정을 검증합니다.

원장 다이제스트를 저장한 후 해당 다이제스트를 기준으로 문서 개정을 확인하는 프로세스를 시작할 수 있습니다.

참고

검증을 위한 프로덕션 사용 사례에서는 두 작업을 연속해서 수행하는 대신 이전에 저장한 다이제스트를 사용합니다. 가장 좋은 방법은 나중에 확인하려는 개정 내용이 저널에 기록되는 즉시 다이제스트를 요청하여 저장하는 것입니다.

문서 개정을 검증하려면

  1. 먼저 검증하려는 문서 개정의 idblockAddress를 원장에서 쿼리하십시오. 이 필드는 문서의 메타데이터에 포함되며 커밋된 뷰에서 쿼리할 수 있습니다.

    문서 id는 시스템에서 할당한 고유 ID 문자열입니다. blockAddress는 개정이 커밋된 블록 위치를 지정하는 Ion 구조입니다.

    QLDB 콘솔의 탐색 창에서 PartiQL 편집기를 선택합니다.

  2. vehicle-registration 원장을 선택합니다.

  3. 쿼리 편집기 창에서 다음 문을 입력한 후 실행을 선택합니다.

    SELECT r.metadata.id, r.blockAddress FROM _ql_committed_VehicleRegistration AS r WHERE r.data.VIN = '1N4AL11D75C109151'
  4. 쿼리가 반환하는 idblockAddress 값을 복사하여 저장합니다. id 필드의 큰따옴표는 반드시 생략하십시오 Amazon Ion에서 문자열 데이터 유형이 큰따옴표로 구분됩니다.

  5. 이제 문서 수정본을 선택했으니 확인 프로세스를 시작할 수 있습니다.

    탐색 창에서 검증을 선택합니다.

  6. 문서 검증 양식의 검증하려는 문서 지정에 다음 입력 파라미터를 입력합니다.

    • 원장vehicle-registration를 선택합니다.

    • 블록 주소 – 3단계에서 쿼리를 통해 반환된 blockAddress 값.

    • 문서 ID – 3단계에서 쿼리를 통해 반환된 id 값.

  7. 확인에 사용할 다이제스트 지정에서 다이제스트 선택을 선택하여 이전에 저장한 다이제스트를 선택합니다. 파일이 유효하면 콘솔의 모든 다이제스트 필드가 자동으로 채워집니다. 또는 다이제스트 파일에서 직접 다음 값을 수동으로 복사하여 붙여넣을 수 있습니다.

    • 다이제스트 – 다이제스트 파일의 digest 값.

    • 다이제스트 팁 주소 – 다이제스트 파일의 digestTipAddress 값.

  8. 문서 및 다이제스트 입력 파라미터를 검토한 다음 검증을 선택합니다.

    콘솔은 다음 두 단계를 자동화합니다.

    1. 지정된 문서에 대한 증거를 QLDB에 요청합니다.

    2. QLDB에서 반환한 증거를 사용하여 제공된 다이제스트에 대해 문서 개정을 검증하는 클라이언트 측 API를 호출합니다.

    콘솔은 검증 결과 카드에 요청 결과를 표시합니다. 자세한 내용은 확인 결과을 참조하십시오.

  9. 확인 로직을 테스트하려면 문서 개정 확인하기에서 6~8단계를 반복하되, 다이제스트 입력 문자열에서 한 글자만 변경합니다. 그러면 검증 요청이 실패하고 적절한 오류 메시지가 표시됩니다.

vehicle-registration 원장을 더 이상 사용할 필요가 없는 경우 7단계(선택 사항): 리소스 정리로 진행하십시오.