commitment scheme은 암호학적인 방법을 이용하여 다른 사람에게 값을 공개하지 않고서도 어떤 값을 약속하고 나중에 약속했던 값을 공개하는 방법입니다. 한 번 선택한 값을 나중에 임의로 바꿀 수 없게 하는 특징을 binding이라고 하는데, commitment scheme은 binding을 제공해야 합니다.
일례로 sha256 같은 해시 함수를 이용하면 간단한 commitment scheme을 만들 수 있습니다. 어떤 값 x를 선택한 후에 c = sha256(x) 값만 먼저 공개하고, 나중에 x 값을 밝히면 다른 사람들은 sha256(x) = c인지를 검증하여 x가 실제로 commit했던 값인지 검증할 수 있습니다. 그리고 해시 함수의 특징 때문에 sha256(x’) = c인 x’를 쉽게 찾을 수 없어 binding 속성이 보장됩니다.
비트코인의 micro payment channel, secure multi-party lottery 등 블록체인의 여러 기법이 commitment scheme에 기초하고 있으므로 관심 있는 분들은 아래 강의 노트 참고하시기 바랍니다.