
인터넷 컴퓨터에서 컴퓨터는 일련의 프로토콜(ICP)에 의해 구동되어 네트워크를 수백만 노드로 확장할 수 있으며 확장 가능하고 무제한적인 컴퓨팅 성능을 캐니스터(컨테이너)에 제공할 수 있습니다. 체인 잠금 기술은 인터넷 컴퓨터 프로토콜의 핵심입니다.
그렇다면 체인 잠금 기술의 장점은 무엇입니까? 체인 잠금 프로토콜은 어떻게 작동합니까? 체인 잠금 기술의 혁신은 무엇입니까? 체인 잠금 프로토콜의 기술적 세부 사항과 관련하여 DFINITY의 암호화 연구 부사장인 Jan Camenisch는 "인터넷 컴퓨터를 위한 새로운 체인 잠금 기술"이라는 연설에서 미스터리를 공개했습니다. 오데일리가 준비한 연설 전문을 계속 읽으실 수 있습니다. 즐기세요~
안녕하세요 여러분, 저는 DFINITY의 Jan Camenisch입니다. 이번 강연은 체인 키 기술에 관한 것입니다. 인터넷 컴퓨터에서 컴퓨터는 일련의 프로토콜(ICP)에 의해 구동되어 네트워크를 수백만 노드로 확장할 수 있으며 확장 가능하고 무제한적인 컴퓨팅 성능을 캐니스터(컨테이너)에 제공할 수 있습니다.
체인 잠금 기술은 인터넷 컴퓨터 프로토콜의 핵심이며 실제로 이 프로토콜 세트는 우리가 개발한 특수한 가장자리 암호화 시스템입니다. 체인 잠금 기술의 가장 분명한 부분은 인터넷 컴퓨터가 단일 공개 키에 대해 관심 있는 컴퓨터에서 보낸 정보를 확인할 수 있는 단일 공개 키를 가지고 있다는 것입니다. 이는 인터넷 컴퓨터의 큰 이점입니다. 따라서 인터넷 컴퓨터에 들어가려면 모든 메시지를 확인하기 위해 48바이트 공개 키만 있으면 됩니다. 반대로 이더리움 클라이언트는 동일한 효과를 얻기 위해 최소 400GB의 데이터를 다운로드해야 합니다.
이제 체인락 기술에 대해 좀 더 설명하자면 인터넷 컴퓨터를 확장하기 위해서는 실제로 모든 노드가 동일한 캐니스터(컨테이너)에서 실행되는 것은 아니지만 캐니스터를 서로 다른 노드 또는 서로 다른 서브넷(여러 노드로 구성)에 분산시켜야 합니다. , 우리는 이 일련의 하위 네트워크를 네트워크 뉴런(NNS)이라고 합니다. 이러한 서브넷 중 하나는 다른 서브넷을 제어하고 지배하기 때문에 특별합니다.
단일 공개 키란 실제로 다른 모든 서브넷을 관리하고 키를 제공하는 다른 모든 서브넷을 생성하는 데 사용되는 공개 키를 의미합니다. 공개 키, 컨테이너 인증서 및 이 서브넷의 기타 주요 부분을 생성합니다.
체인 잠금 기술과 마찬가지로 NNS는 처음부터 시작할 수 있습니다. 이제 사용자가 NNS와 상호 작용할 때 NNS는 캐니스터(컨테이너)를 사용하여 계산을 수행하고 계산 결과를 받습니다. 사용자는 이러한 결과의 서브넷에 서명하여 이를 확인할 수 있습니다. 서브넷 공개 키와 관련하여 서브넷 공개 키는 체인 잠금 기술의 두 부분과 같은 NNS에서 서브넷이 얻은 인증서를 사용하여 확인할 수 있습니다. 첫 번째 부분은 우리가 방금 말한 대로, 상위 수준 서브넷은 다른 서브넷에 대한 개인 키를 생성할 수 있고 두 번째 부분은 NNS에서 개인 키를 수신하는 서브넷이 이러한 개인 키를 관리하는 방법입니다.
노드가 충돌하여 교체해야 할 수 있으며, 노드가 손상되어 추려내야 할 수도 있습니다. 두 경우 모두 서브넷에서 받은 개인 키는 새로운 노드 집합 간에 다시 공유해야 하므로 서브넷에서 받은 키 정보를 유지하기 위해 임계값 서명(threshold signature)을 사용하는데, 이 특별한 서명은 실제로 함께 작동해야 하는 일련의 알고리즘처럼 들리는 알고리즘입니다. 먼저 개인키를 생성하는 알고리즘을 가지고 있는데 이는 신뢰할 수 있는 딜러가 공개키와 개인키를 지속적으로 생성한 다음 이를 다른 참여자에게 배포하는 것과 같으며 대부분의 참여자가 서명에 동의하면 이러한 부분 서명을 결합하여 다음과 같이 만들 수 있습니다. 원본 공개 키와 관련된 전체 서명 및 확인.
체인 잠금 기술에서 위의 프로세스를 구현하는 방법은 무엇입니까? 한 가지 방법: 비대화형 키 생성 알고리즘이 필요합니다. 임계값 서명 체계를 위한 표준 키 생성 알고리즘에는 인터넷에 컴퓨터가 있는 신뢰할 수 있는 오래된 리셀러가 필요합니다.
이 문제를 해결하기 위해 새로운 효율적인 암호화를 제안합니다. 두 가지를 허용합니다. 첫째, 딜러가 상호 작용 없이 이러한 키를 직접 생성할 수 있습니다. 딜러는 키와 공개 키를 생성하지만 차이점은 키가 각 당사자에 대해 작성된다는 것입니다. 여기서 단서는 데이터입니다. 비대화형 암호화 그래픽 증명도 생성됩니다. 사실, 생성된 공개 키와 일치하는 경우에도 어느 쪽이든 공유가 올바른지 확인할 수 있는 비대화형 증명을 실제로 시작합니다.
두 번째 부분은 공유 체계의 수학적 특성입니다. 즉, 두 개의 서로 다른 공유를 하나의 공유로 결합할 수 있으며, 두 개 이상의 딜러가 있는 경우 수신 트랜잭션 쌍은 수학적 동형 연산을 수행할 수 있습니다. 서로 다른 공개 키가 단일 공개 키가 되는 키 병합은 키에 대해서도 동일한 작업을 수행할 수 있으므로 새로운 종류의 공유, 즉 결합된 공유가 가능합니다.
우리가 이미 알고 있듯이, 이러한 신경 지식의 증명으로 인해 모든 공유가 정확합니다. 이 동형 조합은 실제로 한 딜러가 올바르게 수행하는 한 이 키를 공개하지 않았음을 보장합니다. 전체 조합 의지의 키도 충분한 임의성을 포함하므로 안전해야 합니다. 이 동형 연산의 좋은 속성은 단일 공유가 올바르게 수행되는 한, 즉 키가 임의로 생성되고 어디에서도 누출되지 않는 한 결합된 키와 공개 키가 생성된다는 것입니다. 따라서 인터넷이 새 서브넷을 시작하고 서브넷에 대한 키를 생성할 수 있습니다. 정확히 말하면 NNS의 각 노드는 이러한 공유를 수행하고 정보를 새로운 노드로 전달합니다.
이제 두 번째 부분에 대해 이야기하겠습니다. 노드는 원래 NNS에서 받은 키 정보를 유지해야 합니다. 이제 구체적으로 연락할 수 없기 때문에 암호화된 방식으로 전송됩니다. 두 번째 암호화된 그래프 도구가 필요하지만 생성할 필요는 없습니다. 새 키의 경우 키 암호화 정보가 공유 키와 일치함을 증명한 다음 다른 모든 노드에 제공해야 하며 특정 임계값에 도달하면 모든 노드가 새 키를 다시 공유할 수 있습니다.
비대화형 방법을 사용하여 서브넷에서 손실된 키를 복구하는 방법을 살펴보겠습니다. 예를 들어, 이 예제에는 4개의 노드가 있는데 그 중 하나는 충돌하고 모든 상태를 잃었고 모든 키 정보를 잃었습니다. 4개의 키 공유 체계 중 3개를 사용하고 있기 때문에 나머지 노드는 계속 작동할 수 있습니다. 이때 NNS가 할당합니다. 새 노드를 서브넷에 추가하고 다시 4개의 노드에 저장합니다. 그러나 두 개의 노드가 손실되면 재앙입니다.
상대방도 그것이 그가 공유한 열쇠와 같다는 것을 알아차렸고, 이것과 원본 기록을 위해 우리는 새로운 노드 세트의 비밀성을 보장했으며, 4개의 노드는 매력적이지 않은 특성을 가진 무료 공유 기술을 채택했습니다. 그 후, 4개의 새 노드 각각은 공개 키에 해당하는 키 공유를 가지게 되며, 이는 충돌한 서브넷에서 해당 노드를 교체하고 계속 진행할 수 있는 방법입니다.
키 정보가 아직 가입 자격이 없는 노드의 경우 서브넷에 가입하려면 구체적이어야 합니다. 먼저 모든 개인 키가 서브넷에 가입하는 데 동의해야 합니다. 블록 상태. 개별 노드는 신뢰할 수 없기 때문에 노드는 최신 상태를 함께 확인해야 합니다. 그런 다음 공동 상태, 즉 새 노드를 설정하고 수신된 상태가 실제로 시작하기에 올바른 상태인지 확인합니다.
이러한 작업은 비용이 많이 들고 매 라운드마다 수행할 수 없으며 지정된 시간 간격 내에 수행해야 합니다. 이 간격 동안 인증 상태를 생성하고 이 두 가지를 결합하여 Catchup 패키지라고 합니다. 노드가 다른 노드를 따라잡고 함께 작동할 수 있도록 합니다. 이 Catchup 패키지는 실제로 매우 강력합니다. 왜냐하면 노드를 교체할 수 없을 뿐만 아니라 노드를 복구할 수 있기 때문입니다. 다른 이유로 오프라인 상태일 수 있습니다. 시간이 너무 오래 걸리면 이전 노드를 따라잡기 위해 최신 만회 패키지를 다운로드한 다음 압축을 풀고 작업을 재개할 수 있습니다.
치명적인 경우에는 노드의 1/3 이상이 충돌하거나 상태를 잃을 수 있으며 그런 경우에도 서브넷을 복구할 수 있었습니다. 아직 Catchup 패킷이 있는 한 NNS는 해당 Catchup 패킷을 가져올 수 있습니다. 이전 공유 키는 더 이상 유효하지 않기 때문에 새 공유 키를 추가하고 원래 Catchup 패킷에서 시작하여 새 서브넷을 만듭니다. 또한 아마도 가장 중요한 것은 Catch-up 패킷이 서브넷의 명시적 상태를 정의하기 때문에 Catch-up 패킷을 통해 프로토콜을 업그레이드할 수도 있다는 것입니다. 특정 Catch-up 패키지 이후 모든 새 노드는 새 프로토콜 버전을 다운로드하고 이 Catch-up 패키지에서 새 프로토콜 버전, 비대화형 dkg 및 키 재공유를 실행하거나 기술을 변경한다고 말할 수 있습니다. .요소.
체인락 기술의 핵심은 모든 프로토콜의 차이 합의를 조정하는 합의 프로토콜입니다. 주요 작업은 사용자의 메시지를 수집 및 평가하고 실행하는 것이지만, 계산이 올바르게 수행되도록 하기 위해 비대화형 구성 및 모든 다른 노드 간의 재공유를 조정해야 합니다. 하드 디스크 오류 또는 기타 결함과 같은 일부 문제가 발생하더라도 이 컨테이너의 일부 문제는 명령 실행에 영향을 미치지 않지만 여전히 조정된 상태의 복구 및 동기화를 포함하므로 모든 업그레이드를 조정합니다. 주어진 잃어버린 상태가 시작됩니다. 또 다른 흥미로운 기능은 합의 프로토콜이 실제로 복구 무작위성 응용 프로그램도 제공한다는 것입니다. 우리는 이 모든 세부 사항에 대해 곧 기술적인 논의를 할 것이며 이에 대한 사양도 게시할 것입니다.
즉, 체인 잠금 기술을 사용하면 인터넷 컴퓨터가 네트워크에 연결된 컴퓨터를 확인하는 데 사용할 수 있는 단일 공개 키를 가질 수 있으며, 체인 잠금 기술을 사용하면 NNS가 새 서브넷을 추가하고 네트워크를 영원히 확장할 수 있습니다. 체인락 기술은 서브넷을 재활성화할 수 있고, 체인락 기술은 붕괴된 노드를 대체할 수도 있으며, 마지막으로 체인락 기술은 IC 프로토콜을 업데이트하고 버그를 수정하며 새로운 기능을 추가할 수도 있습니다.