https://cexplorer.io/article/understanding-cardano-certificates
스테이킹은 블록체인에 저장된 인증서를 기반으로 합니다. 풀 운영자(SPO)는 인증서를 통해 풀을 등록해야 합니다. 스테이커는 선택한 풀에 스테이킹 권한을 위임하기 위해 인증서를 생성해야 합니다. 이 모든 것 뒤에는 암호화 키가 있습니다. Cardano 인증서의 세계에 빠져보세요.
블록 생산
Cardano 네트워크에서는 ADA 코인을 소유한 주체만이 블록을 생성할 수 있습니다. ADA는 네트워크의 분산화와 보안의 기반이 되는 희소 자원입니다. Cardano 네트워크에서 블록을 생성하려는 모든 개체는 Cardano 노드를 운영하고 인증서를 통해 이를 풀로 등록해야 합니다. 풀 운영자를 포함한 모든 ADA 소유자는 선택한 풀에 ADA 코인(스테이킹 권한)을 위임할 수 있으며, 이를 위해 인증서를 생성하여 블록체인에 제출해야 합니다.
중앙 엔터티는 이러한 프로세스를 제어하지 않습니다. 누구나 제3자의 허가 없이 ADA 코인 소유자가 되거나 풀 운영자로 등록할 수 있습니다. 누구나 선택한 풀에 ADA를 위임할 수 있습니다.
인증서와 블록 생성 방식을 제대로 이해하려면 먼저 주소 구조를 알아야 합니다.
카르다노는 코인 사용 권한과 스테이킹 권한 위임을 분리할 수 있는 고유한 주소 구조를 사용합니다. Shelley 지불 주소는 지불 자격 증명(주어진 주소에서 자금을 사용할 수 있는 방법을 정의)과 스테이크 주소에 대한 참조의 두 부분으로 구성됩니다.
스테이크 주소는 지불 주소의 ADA가 스테이킹에 사용될 것인지, 어떤 방식으로 사용될 것인지를 정의합니다. 스테이크 주소를 사용하면 자격 증명(스테이킹 키 또는 스크립트 해시)을 통해 스테이킹 권한을 행사할 수 있습니다.
두 가지 모두에 전용 키 쌍이 있습니다. 즉, 지출 주소에 대한 키 쌍과 스테이킹 주소에 대한 키 쌍이 있습니다.
아래 사진에서 Shelley 수취인 주소를 확인할 수 있습니다. UTxO 및 자격 증명은 Funds라는 왼쪽 부분에 저장됩니다. 자격 증명은 서명 키 또는 스크립트를 통해 자금을 지출할 가능성을 정의합니다. Stake Address Reference라는 오른쪽 부분에는 Stake Address에 대한 참조가 있습니다.
스테이크 주소는 위임 인증서를 생성하기 위한 입력으로 사용됩니다. 지불 주소와 스테이크 주소에 대한 참조 사이의 링크를 확인하십시오. 주소의 ADA 수는 변경될 수 있습니다(주소 사용자는 더 많은 ADA 코인을 구매하거나 사용할 수 있음). 또는 사용자는 동일한 스테이크 주소를 참조하는 여러 개의 새 주소를 생성할 수 있습니다.
참조는 자금 섹션에서 ADA 코인을 위임하는 데 사용할 수 있는 자격 증명, 즉 스테이킹 키(또는 스크립트 해시)를 가리킵니다. 또는 자격 증명이나 Null이 포함된 인증서를 참조할 수도 있습니다. Null 값은 자금을 위임할 수 없음(예: 스테이킹에 사용)을 의미합니다.
스테이크 주소에는 시스템이 스테이킹에 대한 보상을 누적하는 비UTxO 기반 계정이 포함되어 있습니다. 스테이킹 키(또는 스크립트) 소유자는 스테이킹 보상에 대한 통제권을 갖고 이를 철회할 수 있습니다. 스테이커와 풀 운영자 모두 유사한 메커니즘을 사용하여 ADA를 풀에 위임합니다.
풀에 위임된 모든 ADA 코인(각각 스테이크 주소)은 슬롯 리더 선거에서 해당 풀의 총 지분에 포함됩니다. 풀이 에포크당 생성할 수 있는 블록 수(슬롯 리더로 선출된 횟수)는 총 지분 규모에 따라 다릅니다. 보상 금액은 풀이 생성하는 블록 수에 따라 달라집니다(슬롯 리더는 슬롯을 놓치고 어떤 이유로 블록을 생성하지 못할 수 있습니다). 총 지분이 낮으면 풀이 단일 블록을 발행하지 않는 일이 발생할 수 있습니다. 이 경우 그는 어떠한 보상도 받을 수 없습니다.
풀 운영자가 등록 인증서를 생성할 때 다른 매개변수(아래에서 설명) 외에도 그는 자신에 대한 보상(고정 보상 및 마진)을 정의합니다. 이는 위임자(스테이커)의 보상 금액에 영향을 미칩니다. 보상은 Cardano 프로토콜에 의해 자동으로 배포됩니다. 풀 운영자는 보상 계정에 대한 스테이킹 보상 분배를 제어할 수 없습니다. 이미 언급했듯이 스테이킹 키를 보유한 사람만이 보상 계정에서 보상을 인출할 수 있습니다.
인증서
이 섹션에서는 인증서에 중점을 둘 것입니다. 단순화를 위해 스크립트를 통한 스테이킹 권한 위임 가능성은 다루지 않습니다. 설명 중에는 키 쌍만 고려하겠습니다. 서명 키(소유자가 비밀로 유지해야 하는 개인 키)와 확인 키(공개할 수 있는 공개 키). 이미지에서 서명 키는 빨간색으로, 확인 키는 녹색으로 표시됩니다. 인증키는 대부분 해시된 형태로 사용됩니다. 사진에서는 다루지 않겠습니다. 해시된 형식을 동일한 값의 또 다른 표현으로 생각할 수 있습니다(한 문자열은 다른 문자열이 되며, 반복되면 항상 동일함).
아래 이미지는 서명 키를 통한 사용자의 자금 지출 제어 및 스테이킹 권한 위임을 보여줍니다. 지출 주소를 생성하려면 확인 지출 키가 사용됩니다. 해당 주소에서 자금을 사용하려면 해당 서명 지출 키가 필요합니다. 검증 스테이킹 키는 스테이크 주소를 생성하는 데 사용됩니다. 스테이킹 권한(ADA 코인)을 위임하고 보상 계정에서 스테이킹 보상을 인출하려면 서명 스테이킹 키가 필요합니다. 사용자는 서명 키를 비밀로 유지합니다(이상적으로는 Trezor 또는 Ledger HW 지갑과 같은 콜드 스토리지에 보관). 블록체인 주소는 공개되어 있습니다.
블록 생산에 ADA 코인을 사용하려면 스테이크 주소를 등록하고 이를 풀에 위임해야 합니다. 이는 이후 트랜잭션을 통해 네트워크에 제출되는 인증서 생성을 통해 이루어집니다. 모든 인증서는 블록체인에 저장됩니다. 즉, 모든 참가자가 공개적으로 사용할 수 있습니다.
인증서는 서명 스테이킹 키의 소유자가 덮어쓰거나 만료될 때까지 유효합니다. 만료된 경우 인증서를 갱신할 수 있습니다. 이는 풀 운영자가 갱신해야 하는 한 가지 유형의 인증서에만 관련됩니다. 일반 스테이커가 사용하는 인증서는 덮어쓰기(등록 취소)될 때까지 영원히 유효합니다.
다음은 Cardano 블록체인에서 생성하고 저장할 수 있는 모든 인증서 목록입니다.
스테이크 주소 등록 증명서
스테이크 주소 등록 취소 증명서
위임장
스테이크풀 등록 증명서
스테이크풀 은퇴 증명서
운영키 인증서
스테이커(예: 풀 운영자)는 스테이크 주소 등록 및 위임과 관련된 인증서만 사용합니다. 풀 운영자는 인증서를 통해 풀을 등록하고 정기적으로 인증서를 통해 블록 생성 기능을 갱신해야 합니다.
스테이커 인증서
ADA 코인을 풀에 위임하려면 스테이크 주소 등록 인증서와 위임 인증서라는 두 가지 인증서를 사용해야 합니다. 스테이크 주소 등록 취소 인증서를 통해 스테이크 주소 등록 취소가 가능합니다.
아래 그림에서는 사용자가 여러 지불 주소에 대한 스테이크 주소 인증서를 생성하는 방법을 볼 수 있습니다(모두 동일한 스테이크 주소와 연결되어 있음). 등록을 위해서는 서명 스테이킹 키를 보유해야 합니다. 이 프로세스는 스테이커와 풀 운영자 모두에게 유사합니다.
등록 및 등록 취소 인증서에는 스테이크 주소와 자격 증명(검증 키)이 포함되어 있어야 합니다. 스테이크 주소를 등록하면 보상 계정이 생성됩니다. 스테이크 주소 등록이 취소되면 보상 계정이 삭제됩니다. 등록 취소와 달리 증인은 스테이크 주소를 등록할 필요가 없습니다.
스테이크 주소가 등록되면 풀에 위임될 수 있습니다.
사용자(사진에서는 Alice)는 위임 인증서를 생성하고 이를 Cardano 블록체인에 제출함으로써 특정 스테이크 주소의 스테이킹 권한을 스테이크 풀로 이전할 수 있습니다. 위임 인증서에는 지불 주소와 관련된 스테이크 주소와 ADA 코인이 위임될 풀의 식별자인 스테이크 풀 확인 키(ID)가 포함되어 있습니다.
그림에서는 풀의 소유권을 나타내는 서명 키를 소유한 풀 운영자(Bob)를 볼 수 있습니다. 앨리스는 지갑에서 이름으로 풀 ID를 찾았습니다. 즉, 앨리스가 선택한 이름에 따라 지갑은 해당 ID를 인증서에 삽입했습니다.
스테이크 주소 등록 인증서는 스테이커가 블록체인에 새로운 스테이크 주소를 등록하려는 일회성 작업에만 필요합니다. 스테이커가 자신이 선택한 스테이크 풀에 자신의 지분을 위임하거나 재위임하려는 경우 항상 위임 인증서가 필요합니다.
사용자가 인증서를 수동으로 생성할 필요가 없으며 지갑이 이를 도와준다는 점을 추가해 보겠습니다. 그들은 지갑에서 제공하는 풀 중 하나를 선택하고 거래에 서명하기만 하면 됩니다. 거래에는 인증서가 포함되어 있으며 블록에 포함된 후 인증서는 블록체인의 일부가 됩니다.
풀 운영자 인증서
풀 운영자는 풀 등록에 필요한 여러 키 쌍을 생성해야 합니다.
스테이크 풀 키 쌍(콜드 키)
KES(키 진화 서명) 키 쌍(단축키)
VRF(Verification Random Function) 키 쌍(단축키)
스테이크 주소 키 쌍(콜드 키)
스테이크 풀 키 쌍은 풀 식별(검증 키), 풀 등록(및 폐기)을 위한 인증서 서명, 운영 키 인증서의 KES 키에 대한 권한 위임(전송)에 사용됩니다. 이에 대해서는 나중에 더 자세히 이야기하겠습니다.
서명 KES 키는 노드가 발행한 블록에 서명하는 데 사용됩니다. 검증 KES 키는 다른 노드의 블록 검증에 사용됩니다.
서명 VRF 키는 노드가 특정 슬롯의 슬롯 리더가 되었는지 확인하는 데 사용됩니다. 모든 풀 노드에서는 각 슬롯에서 개인 복권이 발생하며, 여기서 하나 이상의 노드가 블록을 만들 수 있는 권리를 얻습니다. 검증 VRF 키는 새로 생성된 블록에 삽입된 VRF 증명을 검증하기 위해 다른 노드에서 사용됩니다. 모든 노드는 새 블록의 제안자가 실제로 주어진 슬롯에서 VRF 복권에 당첨되었는지 확인할 수 있습니다.
풀 운영자는 또한 등록된 풀에 대한 보상 주소로 사용되는 스테이크 주소에 대한 스테이킹 키를 소유합니다.
가장 중요한 키 쌍은 스테이크 풀 키입니다. 풀과 풀 등록(은퇴)을 위한 인증서를 식별하고 운영 키 인증서는 서명 키를 통해 서명해야 하기 때문입니다.
핫 스토리지에 있는 노드에 의해 저장된 서명 키가 손상된 경우서명 풀 키를 사용하여 이전 인증서를 무효화하는 새 인증서를 생성할 수 있습니다. 풀 운영자는 스테이크 풀 키의 유일한 소유자인 경우 풀에 대한 모든 권한을 갖습니다. 이것이 서명 풀 키를 콜드 스토리지에 저장하는 것이 필수적인 이유입니다.
아래 이미지에서 풀 등록을 확인할 수 있습니다. 풀 운영자(Bob)는 스테이크 풀 키, KES 키, VRF 키, 스테이크 주소 키 등 4쌍의 키를 생성했습니다. 검증 스테이크 풀 키는 풀을 식별하는 데 사용되며 풀 등록 인증서를 생성하기 위한 입력 중 하나로도 사용됩니다. 또한 검증 VRF 키, 검증 지분 주소 키(보상 주소), 운영자의 기타 지분 주소 목록, 운영자에 대한 보상(고정 수수료 및 마진)을 정의하는 매개변수, 모든 릴레이 노드의 IP 또는 DNS 주소 인증서에 삽입됩니다.
선택적으로 풀에 대한 추가 메타데이터에 대한 URL 및 URL 콘텐츠의 해시를 인증서에 삽입할 수 있습니다. 이 데이터는 ADA를 위임할 풀을 찾는 사용자의 지갑에 표시됩니다. URL 및 콘텐츠 해시가 제공되지 않으면 스테이크 풀이 지갑에 나열되지 않습니다(개인 풀일 수 있음).
인증서는 서명 스테이크 풀 키로 서명되어야 합니다. 키 소유자 외에는 누구도 이 작업을 수행할 수 없으므로 이는 인증서 생성에서 가장 중요한 단계입니다.
노드의 핫 스토리지에는 KES 및 VRF 키가 있습니다. 노드가 블록을 생성하려면(VRF 복권 및 블록 서명) 키가 필요합니다.
풀 운영자가 관리하는 스테이크 주소 목록을 인증서에 삽입할 수 있습니다. 이러한 주소가 위임 인증서를 통해 등록된 동일한 풀에 위임되는 경우 ADA는 운영자의 서약(운영자의 게임 내 스킨)으로 간주됩니다. 인증서에 지분 주소를 삽입하는 것만으로는 ADA 코인을 위임하기에 충분하지 않습니다. 풀 운영자는 스테이커와 마찬가지로 위임 인증서를 생성하여 네트워크에 제출해야 합니다. 보상 분배 시 해당 스테이크 주소의 계정으로 보상이 지급되는 것이 아니라 풀 운영자의 스테이크 주소 계정(보상 주소)으로 보상이 지급됩니다. 그림에서 이 스테이크 주소(보상 주소)는 스테이킹 주소 키에 해당합니다. 서명 키는 콜드 스토리지에도 저장됩니다. 이 키는 운영자가 계정에서 보상을 인출하는 데 사용됩니다.
KES 키는 이 인증서에 삽입되지 않았습니다.
스테이크 풀 폐기 인증서에는 확인 스테이크 풀 키(ID)와 풀이 블록 생성을 중단하여 폐기되어야 하는 에포크 번호만 포함되어 있습니다.
풀 운영자가 스테이크 풀 등록 인증서를 네트워크에 제출하면 풀이 등록되지만 아직 블록 생성을 시작할 수 없습니다. 운영자는 하나 이상의 인증서, 즉 운영 키 인증서를 보내야 합니다.
키 보안을 극대화하려면 운영자가 핫 키와 콜드 키 배열을 따라야 합니다. 이는 노드의 키 노출(핫 스토리지의 KES 및 VRF 키)과 관련된 위험을 크게 줄입니다.
운영자는 항상 서명된 스테이크 풀 키를 콜드 스토리지(인터넷 외부)에 보관하고 이를 정기적으로 사용하여 새로운 운영 키 인증서에 서명합니다. 서명 스테이크 풀 키는 서명 권한을 노드의 핫 스토리지에 저장되고 새로운 블록에 서명하는 데 사용되는 KES 키(작동 키라고도 함)로 이전하는 데 사용됩니다. 핫 KES 키가 손상되면 운영자는 즉시 새로운 작동 키 인증서(더 높은 카운터 번호)를 생성하여 이전 인증서를 무효화할 수 있습니다.
서명 KES 키는 정기적으로, 특히 90일 후에 만료됩니다. 풀 운영자는 항상 새로운 운영 키 인증서를 생성하고 서명 스테이크 풀 키로 서명한 후 네트워크에 제출해야 합니다.
이전 서명 KES 키는 새 KES 키를 생성하는 데 사용됩니다. 이전 KES 키는 이후에 삭제됩니다. 이는 블록체인 기록의 불변성을 보호합니다. KES 키는 특정 기간 동안 블록에 서명하는 데만 사용할 수 있습니다. 등록 스테이크 풀 인증서에 삽입된 확인 KES 키는 동일하게 유지됩니다(새 서명 KES 키를 생성할 때 이를 변경할 필요가 없습니다).
운영키 인증서에는 90일(KES 기간) 동안 유효하게 되는 슬롯, 검증 KES 키, 검증 스테이크 풀 키(ID), 카운터 번호가 포함됩니다. 카운터번호는 연산키 인증서가 갱신된 횟수를 나타내는 값이다. 이 값은 새로운 운영 키 인증서가 생성될 때마다 증가됩니다. 그러면 이전 인증서(카운터 번호가 더 낮음)가 즉시 무효화됩니다.
아래 그림에서는 풀 운영자가 갱신된 서명 KES 키를 통해 노드가 90일 동안 새 블록을 생성할 수 있도록 하는 작동 키 인증서를 생성한 방법을 확인할 수 있습니다. 운영 키 인증서는 서명 스테이크 풀 키로 서명되어야 합니다.
네트워크가 작업 키 인증서에 지정된 슬롯에 도달하면 풀이 슬롯 리더로 선택되고 새 블록을 생성할 수 있습니다. 블록은 유효한 KES 키로 서명됩니다. 네트워크의 다른 모든 노드는 스테이크풀 등록 인증서에 포함된 검증 KES 키를 통해 쉽게 서명을 확인할 수 있습니다.
결론
모든 참가자는 온체인 데이터에서 지불 주소, 스테이크 주소, 풀에 대한 위임 및 풀에 대한 ADA 배포에 대한 모든 정보를 찾을 수 있습니다. 블록 헤더에 포함된 인증서 및 암호화 증명 덕분에 모든 사람은 블록을 검증하고 실제로 슬롯이 된 노드에 의해 블록이 생성되고 올바르게 서명되었는지(주어진 KES 기간 동안 유효한 KES 키로 서명됨) 확인할 수 있습니다. 주어진 슬롯의 리더.
Cardano의 보안 및 분산화는 블록체인을 통해 모든 사람이 공개적으로 사용할 수 있는 서명 키 및 인증서의 소유권을 기반으로 합니다. ADA 코인을 소유한 사람은 누구나 블록을 생성할 사람을 직접 통제할 수 있으므로 기본적으로 Cardano를 분산화할 수 있습니다. ADA 보유자는 인증서를 사용하여 제3자로부터 허가를 받을 필요 없이 풀을 등록하고 ADA 코인을 위임할 수 있습니다.