Cardano에서 키 진화 서명은 어떻게 사용되나요

https://cexplorer.io/article/how-is-key-evolving-signature-used-in-cardano


키 진화 서명 체계는 Cardano가 원장의 불변성을 보호하기 위해 사용하는 디지털 서명 체계의 한 유형입니다. 블록 서명에 사용되는 개인 키는 정기적으로 교체됩니다. 이전 키는 삭제되어 이전에 생산된 블록을 단조하는 데 사용할 수 없습니다. 이 메커니즘을 자세히 살펴보겠습니다.

순방향 보안 이해
전통적인 서명 체계는 디지털 메시지나 문서의 신뢰성과 무결성을 확인하는 방법입니다. 이를 통해 발신자는 서명이라는 데이터 문자열을 메시지에 첨부할 수 있으며, 이는 발신자의 공개 키를 사용하는 누구나 확인할 수 있습니다.

순방향 보안을 더 쉽게 이해할 수 있도록 기존 서명 체계가 어떻게 작동하는지 설명하겠습니다.

서명 체계는 일반적으로 키 생성 알고리즘, 서명 알고리즘, 검증 알고리즘의 세 가지 알고리즘으로 구성됩니다.

발신자(메시지 작성자)는 개인 및 공개 키 세트를 생성합니다. 그는 개인 키를 조심스럽게 보호해야 하며 메시지를 확인하려는 모든 사람(검증자)에게 공개 키를 제공해야 합니다. 소위 보낸 사람은 개인 키를 사용하여 메시지(일반적으로 메시지의 다이제스트/해시)에 서명합니다. 모든 검증자는 공개 키를 통해 신뢰성과 무결성을 확인할 수 있습니다.

메시지 수신자(검증자)는 메시지가 작성자(개인 키 소유자)에 의해 생성되었으며 메시지가 변경되지 않았음을 확신합니다. 보안은 개인 키가 손상되지 않는다는 가정을 기반으로 합니다.

아래 그림에서는 Alice와 Bob 사이에 인터넷(위험 지대)을 통해 안전하게 메시지를 보낼 때 암호화 키의 모든 프로세스와 사용을 볼 수 있습니다. Alice는 생성된 개인 키를 조심스럽게 저장하고 공개 키를 Bob과 공유했습니다. 그런 다음 그녀는 메시지에 서명하여 공개 키를 통해 이를 확인할 수 있는 Bob에게 보냈습니다.

설명된 원칙은 모든 암호화폐 사용자에게 익숙해야 합니다. 트랜잭션에 서명하고 이를 블록체인 네트워크에 제출할 때 비슷한 일이 발생하기 때문입니다.

Bob이 Alice가 디지털 자산을 사용할 수 있는지 확인하는 블록체인 네트워크라고 상상해 보세요. 그렇다면 네트워크는 (블록을 통해) 블록체인에 거래를 기록하고 다른 사람이 자산을 사용할 권리를 얻습니다. 앨리스가 자신의 개인 키를 잘 보호한다면 세상 어느 누구도 앨리스의 디지털 자산을 쓸 수 없습니다.

전통적인 디지털 서명 방식은 비밀 키가 적에게 절대 유출되거나 도난당하지 않는다는 가정에 의존합니다. 그러나 하드웨어 오류, 소프트웨어 버그, 악성코드 공격, 인적 오류 등 다양한 요인으로 인해 이러한 가정이 현실적으로 유지되지 않을 수도 있습니다. 공격자가 기존 디지털 서명 체계의 비밀 키를 획득하면 과거 또는 미래의 메시지에 대한 서명을 위조하고 서명된 모든 메시지의 신뢰성과 무결성을 무효화할 수 있습니다.

KES(키 진화 서명 체계)는 전방 보안 제공을 목표로 하는 디지털 서명 체계의 한 유형입니다.

순방향 보안은 서명자의 비밀 키가 특정 시점에 손상되더라도 해당 시점 이전에 생성된 서명이 유효하고 위조할 수 없는 상태로 유지된다는 것을 의미합니다. 이는 서명자의 수명을 기간으로 나누고 각 기간마다 다른 비밀 키를 사용하여 달성됩니다. 각 기간의 비밀키는 이전 비밀키에서 파생되며, 사용 후 삭제됩니다. 공개 키는 모든 기간 동안 동일하게 유지됩니다.

KES는 적이 비밀 키를 획득하여 과거 또는 미래 메시지에 대한 서명을 위조하는 시나리오를 방지합니다. 이러한 시나리오에서 공격자는 서명된 모든 메시지의 신뢰성과 무결성을 무효화할 수 있습니다.

KES는 각 비밀 키의 범위를 특정 기간으로 제한하고 오래된 비밀 키가 지워지고 복구할 수 없도록 보장합니다. 따라서 공격자가 특정 기간 동안 비밀 키를 획득하더라도 해당 기간 동안만 서명을 위조할 수 있으며 이전 또는 미래 기간에 대해서는 서명을 위조할 수 없습니다.

아래 그림에서는 시간이 5개 기간으로 구분된 것을 볼 수 있습니다. 첫 번째 기간에는 서명자(발신자)가 개인 KEY 1과 공개 KEY 1을 생성했습니다. 그는 공개 KEY 1을 검증자(수신자)와 공유했습니다. 기간 2에서는 새로운 Private KEY 2가 생성된 후 Private KEY 1이 삭제되었습니다. 이는 새로운 개인 KEY 3이 생성되고 개인 KEY 2가 삭제되는 기간 3에서 반복되었습니다.

모든 기간의 검증자는 항상 동일한 공개 KEY 1을 사용하여 모든 메시지를 확인합니다.

기간 3이 활성화되어 있으며 개인 KEY 3만 메시지 서명에 사용할 수 있습니다. 개인 키 KEY 1과 KEY 2가 삭제되었으므로 메시지 1과 2를 위조할 수 없습니다. 공격자가 개인 키 3(현재 존재하는 유일한 키) 획득에 성공하면 과거, 즉 메시지 1과 2를 변경할 수 없습니다. 그는 기간 3에서만 메시지를 변경할 수 있습니다. 공격자가 키를 생성할 수 없는 경우 향후 기간 동안에도 그는 향후 메시지를 변경할 수 없습니다.

Cardano에서 KES 체계가 사용되는 방식
풀의 안전한 운영을 위해서는 여러 개의 키를 생성해야 합니다. 이 기사에서는 KES 키에만 중점을 둘 것입니다. 주제를 완전히 이해하려면 전체 키 생성 프로세스, 인증서 생성 및 모든 키의 사용법을 알아야 합니다.

스테이크 풀 운영자는 스테이크 풀 키(운영자 키라고도 함), KES 키 쌍, VRF 키 쌍의 세 가지 유형의 키를 보유해야 합니다. 키 쌍은 풀 노드를 구성하고(핫 스토리지에 VRF 및 KES 키 서명이 있어야 함) 인증서를 생성하기 위한 전제 조건입니다.

스테이크 풀 키는 스테이크 풀을 식별하는 오프라인 키 쌍(콜드 스토리지에 저장됨)입니다(보다 정확하게는 키의 해시입니다). 서명 스테이크 풀 키는 인증서 서명에 사용됩니다.

KES 키 쌍은 블록 생산자를 인증하고 시간이 지남에 따라 진화하는 온라인 키 쌍(서명 KES 키는 노드의 핫 스토리지에 저장됨)입니다. 검증 KES 키는 풀에서 새로 생성된 블록의 서명을 검증하는 데 사용됩니다.

VRF 키 쌍은 개인 복권(슬롯 리더 선출)에 사용되는 또 다른 온라인 키 쌍으로, 주어진 슬롯에서 블록을 생성할 권리를 증명합니다. 이 기사에서는 KES 키에 중점을 둘 것입니다.

우선 스테이크풀 등록 인증서를 통해 스테이크풀을 등록해야 합니다. 이 인증서에는 무엇보다도 검증 스테이크 풀 키(ID)와 검증 VRF 키가 포함되어 있습니다. 풀 등록은 정기적으로 갱신할 필요가 없습니다. KES 키를 갱신하려면 운영 키 인증서가 사용됩니다. 나중에 볼 수 있듯이 이 인증서는 정기적으로 갱신됩니다. 두 인증서 모두 서명 스테이크 풀 키로 서명되어야 합니다.

스테이크 풀 키(콜드 스토리지) 서명으로 운영 키 인증서에 서명함으로써 풀 운영자는 블록 서명을 위한 KES 키에 대한 권한을 이전합니다.

운영 키 인증서에는 스테이크 풀 키와 KES 키라는 두 가지 확인(공개) 키가 포함되어 있습니다. 또한, 인증서 카운터 및 유효 기간. 유효 기간은 인증서가 유효한 기간(또는 슬롯) 수를 나타냅니다. 운영키 인증서는 네트워크에 제출되어 블록체인에 저장됩니다.

모든 노드는 검증에 필요한 정보를 추적합니다. VRF 키와 카운터 인증서는 블록체인을 검색할 필요 없이 노드가 즉시 사용할 수 있는 정보 조각입니다.

모든 풀 운영자는 운영 키 인증서를 생성하여 블록체인에 제출해야 합니다. 작동 키 인증서는 운영자의 오프라인 키와 작동(핫) 키 간의 링크를 나타냅니다. 인증서에는 확인 KES 키가 포함되어 있으며 서명 스테이크 풀 키(콜드 스토리지)로 서명되어야 합니다. 새로운 블록은 서명 KES 키(핫 스토리지)로 서명되어야 합니다.

인증서를 사용하면 네트워크의 모든 노드가 확인 KES 키를 통해 블록의 신뢰성과 무결성을 확인할 수 있습니다.

아래 이미지에서 운영 키 인증서가 생성되는 모습을 볼 수 있습니다. 주로 서명 스테이크 풀 키(운영자 키)를 사용한 인증서 서명에 유의하세요. 핫 개인 키가 손상된 경우에도 공격자는 콜드 스토리지에 있는 운영자의 개인 키에 액세스할 수 없습니다.

운영자가 개인(핫) 키가 손상된 것을 발견한 경우 인증서 카운터를 늘려 새로운 운영 키 인증서를 생성하고 제출하는 것으로 충분합니다. 이렇게 하면 이전 인증서가 무효화됩니다.

아래 그림에서 N+1 블록에는 카운터 값이 N인 운영 키 인증서가 포함되어 있는 것을 볼 수 있습니다. 풀 운영자는 카운터 값이 N+1인 새 인증서를 제출하기로 결정했습니다. N+5 블록에서 이런 일이 일어났습니다. 이제 이전 인증서가 유효하지 않습니다.

이미 말했듯이 모든 인증서(이 맥락에서는 스테이크풀 등록 인증서 및 운영 키 인증서)는 블록체인에 저장되므로 네트워크의 모든 전체 노드에서 사용할 수 있습니다. 이는 노드가 네트워크로부터 수신하는 블록을 확인하는 데 중요합니다.

특정 슬롯의 블록에 서명하려면 블록 생산자는 개인 KES 키를 사용해야 합니다. 그 전에 노드는 VRF 출력과 VRF 증명을 블록 헤더(및 기타 몇 가지 사항)에 삽입합니다. 서명 KES 키는 운영 인증서의 해당 확인 KES 키를 사용하여 누구나 확인할 수 있는 서명을 생성하는 데 사용됩니다. 새로 생성된 블록과 인증서(KES 키 포함) 사이의 링크는 스테이크 풀 키(ID)의 해시입니다. ID는 블록 헤더의 일부이기도 합니다. 따라서 노드가 블록 헤더에서 ID를 가져와 이를 사용하여 로컬 인증서 세트에서 해당 인증서(검증 KES 키)를 찾는 것이 쉽습니다.

VRF 기능은 스테이크풀 등록 인증서의 공개 VRF 키를 사용하여 누구나 확인할 수 있는 증거를 생성하는 데 사용됩니다. 증거는 블록 생산자가 선출되었음을 보여줍니다.

제공된 입력(슬롯 ID, nonce, 서명 VRF 키 및 풀의 총 스테이크)을 기반으로 한 VRF 기능(VRF 출력은 스테이크를 기반으로 계산된 임계값과 비교됩니다).

아래 이미지에서는 새로운 블록의 생성 및 검증을 볼 수 있습니다. 풀(블록 생산자)의 스테이크 풀 등록 인증서와 운영 키 인증서는 이미 블록체인에 있으며 서명 스테이크 풀 키(콜드 스토리지)로 서명되어 있습니다. 이미지의 블록체인에는 블록이 하나만 있습니다. 검증자 노드에는 로컬 상태의 블록을 검증하는 데 필요한 모든 검증 키와 데이터가 있습니다. 블록을 생성하기 전에 블록체인에 저장된 인증서에서 키와 데이터를 검색했습니다. 블록 생산자 노드는 풀 ID(검증 스테이크 풀 키), VRF 출력 및 증명, 검증을 위한 기타 데이터를 블록에 삽입합니다. 그런 다음 서명 KES 키를 사용하여 블록에 서명합니다. 검증자 노드는 VRF 데이터와 KES 서명(및 기타 사항)을 확인하여 블록을 쉽게 검증할 수 있습니다. 검증자 노드가 블록체인에 저장된 데이터로부터 필요한 로컬 상태를 어떻게 생성했는지 주목하세요.

비밀 KES 키를 다음 기간으로 업데이트하려면 블록 생산자는 이전 비밀 KES 키에서 새 비밀 KES 키를 파생시킨 다음 이전 키를 삭제하는 사전 정의된 알고리즘을 사용해야 합니다. 이렇게 하면 언제든지 하나의 개인 KES 키만 저장되며 이전 기간의 서명을 위조하는 데 사용할 수 없습니다. 공개 KES 키는 변경되지 않은 상태로 유지되므로 운영 인증서를 업데이트하거나 블록체인에 다시 등록할 필요가 없습니다.

키는 129,600개(하루 반 동안, 이 기간 동안 약 6,500개의 블록이 생성됨) 슬롯의 각 기간 후에 자동으로 진화하며, 갱신되기 전까지 최대 62번까지 진화할 수 있습니다. 즉, 한 기간은 129,600 슬롯(초) 동안 지속됩니다. 운영 키 인증서의 수명은 90일이며 그 이후에는 무효화됩니다. 이는 풀 운영자가 정기적으로 운영 키를 교체하도록 권장합니다.

아래 그림에서는 매 기간마다 정기적으로 새로운 KES 키가 생성되고 3개월 후에는 새로운 운영 키 인증서가 생성되는 방식을 확인할 수 있습니다. Cardano 노드는 스테이크 크기에 따라 각 기간에 여러 블록을 발행할 수 있습니다.

Cardano에서 KES 체계를 사용하면 키 노출 시 더 강력한 보안을 보장할 수 있다는 장점이 있습니다. 공격자가 블록 생산자의 개인 KES 키를 획득한 경우 현재 기간에 대한 서명만 위조할 수 있으며 이전 또는 미래 기간에 대한 서명은 위조할 수 없습니다. 게다가 VRF 키나 연산자 키에 접근할 수 없기 때문에 기록을 다시 쓰거나 포크를 생성할 수 없습니다. 따라서 KES 체계를 사용하면 스테이크 풀에 대한 통제력을 잃거나 평판이 손상될 위험이 줄어듭니다.

KES 체계는 Cardano 블록체인의 기록이 불변임을 보장합니다. 보안은 풀 운영자가 프로토콜을 따르고 이전 KES 키를 삭제하며 네트워크가 고도로 분산되어 있다는 가정, 즉 풀 운영자가 최대한 많다는 가정을 기반으로 합니다. 운영자(서명자)가 많을수록 네트워크를 손상시키기 위해 서로 협력할 위험이 줄어듭니다.

풀 운영자가 예상대로 이전 개인 키를 삭제하지 않으면 잠재적으로 이를 공격자에게 판매하거나 유출할 수 있으며, 공격자는 이를 사용하여 과거 기간에 추가된 블록에 대한 서명을 위조할 수 있습니다. 이는 계획의 순방향 보안 속성을 약화시키고 공격자가 서명된 블록의 기록을 변조할 수 있도록 허용합니다.

활성 풀 운영자는 개인 KES 키를 삭제하지 않고 나중에 사용할 수 있도록 보관하는 경우 경제적으로 보호할 동기가 있습니다. 사업을 중단하고 모든 ADA 코인을 판매하는 운영자는 더 이상 Cardano 네트워크를 안전하게 유지할 경제적 인센티브가 없으며 잠재적으로 기존 KES 키를 판매할 수 있습니다. 한 운영자의 키는 운영자의 지분과 그가 블록을 생산한 기간에 따라 블록의 작은 부분만 덮어쓸 수 있도록 허용한다는 점에 유의하는 것이 중요합니다. 블록체인의 기록을 덮어쓰려면 공격자가 이전 키의 절반 이상을 확보해야 합니다.

수십 명의 대규모 운영자 또는 수백 명의 소규모 운영자는 프로토콜의 규칙을 위반하고 이러한 목적을 위해 의도적으로 키를 보관해야 합니다. 이것은 거의 불가능해 보입니다.

앞으로는 소위 원샷 서명 암호화를 통해 이러한 위험도 제거할 수 있습니다. 이를 통해 개인 키를 단일 서명에만 사용할 수 있습니다. 이후에는 개인 키가 사용된 디지털 서명의 맥락에서 어떠한 손상도 입히지 않고 개인 키를 공개할 수 있습니다.

결론
KES 및 VRF 암호화를 통해 Cardano는 블록체인의 불변성과 슬롯 리더(주어진 슬롯에서 블록을 생성할 권리를 얻는 노드)의 무작위 선택을 효율적인 방식으로, 즉 증명을 사용하지 않고 보장할 수 있습니다. -작업(PoW). PoW는 기본적으로 s를 충족합니다.역할이요. PoW 네트워크에서는 복잡한 암호화 작업에 대한 솔루션을 먼저 찾은 노드가 블록을 채굴합니다(노드 무작위 선택). 블록을 채굴하려면 엄청난 양의 에너지를 소비해야 하며, 이는 기본적으로 블록체인의 기록이 덮어쓰이는 것을 방지합니다. 동일한 양의 에너지를 다시 소비하고 상대 체인이 가장 긴 체인이 되면 기록 다시 쓰기가 가능합니다.

현대 암호화를 통해 원장의 무작위 선택과 불변성을 보장하는 데 더 높은 효율성을 달성하는 것은 특히 네트워크의 장기적인 경제적 지속 가능성과 환경 보호라는 맥락에서 중요한 기술 발전입니다.