최근 Button이라는 프로젝트를 시작하면서 영지식증명과 차등 사생활(Differential Privacy)를 합쳐서 개인 정보 보호 및 활용에 사용할 수 있는 솔루션 Confusion-weighted zero-knowledge proof를 기획하게 되었습니다.
개인 정보에서의 차등 사생활 기술은 애플에서도 사용하고 있는 방법으로 실제 개인 정보에 가짜 데이터를 넣어서 개인 정보가 유출되어도 어떤게 정확한 정보인지 알 수 없게만드는 보호장치입니다.
일반적인 개인 정보 저장 사용자 이름: 이호준 → 그대로 서버에 저장
데이터 범위화로 저장 사용자 이름: 이호준 → {김철수, 김미영, 이영철, 이호준, 박혜연} 으로 저장
위 예시처럼 차등 사생활은 데이터가 유출될때 위험성이 굉장히 낮아지는 장점이 있지만 이 데이터로 IT 서비스에 가입하면 이름들 속에 진짜 이름이 있는지를 알 방법이 없기에 일반적으로 활용되는 경우는 드믑니다.
여기에 개인 정보를 드러내지 않고도 해당 값이 참이라는 걸 증명이 가능한 영지식증명을 활용하면 데이터가 진짜인지 증명이 가능해지면서 모바일 앱, 웹사이트 같은 개인 정보가 필요한곳에서도 편하게 사용할 수 있으면서 기존보다 더 강한 개인 정보 보호가 가능할 것 같아서 기획하게 된 것이 Confusion-weighted zero-knowledge proof입니다.
그러나 이런 식으로 해서 만들면 되겠지~라는 안일한 생각은 프로젝트를 망치는 일이라고 생각하였고 제가 기획한 내용이 실현 가능한지, 예상한 대로 작동하는지를 알려면 실제 코드로 개발하여서 검증하는 과정이 필요한데 이걸 위해서 개발자 팀원을 영입하여 업무를 드리는 것은 너무 큰 부담이고 예의가 아니라 생각되어 직접 개발을 도전하게 되었습니다. 무엇보다 직접 개발하면서 더 명확하고 구체적으로 제가 기획한 알고리즘을 이해하고 싶었습니다.
개발한 내용은 아래 링크로 확인할 수 있습니다.