보관 증명, 데이터를 정말 갖고 있다는 증거
Strawmap 그 이후 (장기) · proofs of custody
검증자가 블롭 데이터를 실제로 내려받아 보관했다는 사실을 암호학적으로 증명하게 하는 장치입니다. 데이터를 확인하지 않고 서명만 하는 행동을 막습니다.
왜 필요한가
이더리움은 롤업이 올리는 블롭 데이터를 검증자들이 나눠 보관하고 데이터가 잘 퍼졌다고 서명(증언)하는 방식으로 데이터 가용성을 지킵니다. 서명만 보고는 그 검증자가 데이터를 정말 내려받았는지 알 길이 없다는 게 문제입니다. 다른 검증자의 서명을 보고 따라 서명해도 보상은 똑같이 받으니, 데이터를 확인하지 않는 게으른 검증자가 생길 수 있습니다. 이런 검증자가 많아지면 모두가 있다고 서명했지만 실제로는 아무도 데이터를 갖고 있지 않은 상황이 벌어질 수도 있습니다. 보관 증명은 검증자가 서명할 때 데이터와 자기만 아는 비밀값을 섞어 계산한 결과를 함께 내도록 합니다. 데이터가 없으면 이 값을 만들 수 없습니다. 나중에 비밀값이 공개되면 누구나 거짓 서명을 잡아내 벌을 줄 수 있습니다. 그래서 데이터가 있다는 서명을 믿을 수 있게 됩니다. 이 항목은 Strawmap에서 특정 포크가 아닌 장기 과제로 놓여 있고 실현 여부 불확실로 표시되어 있습니다. 아직 연구 단계라 설계가 바뀌거나 빠질 수 있습니다.
어떻게 동작하나
- 비밀값을 미리 약속합니다 검증자는 일정 기간마다 자기만 아는 비밀값을 정하고 그 값에 대한 약속(커밋)만 먼저 공개합니다. 비밀값 자체는 아직 숨겨 둡니다.
- 데이터와 섞어 서명합니다 블롭 데이터를 내려받은 뒤 데이터와 비밀값을 섞어 짧은 값을 계산하고 증언에 함께 넣습니다. 데이터가 없으면 이 값을 올바르게 만들 수 없습니다.
- 비밀값을 공개하고 검사받습니다 기간이 끝나면 비밀값을 공개합니다. 누구나 그 값으로 다시 계산해 서명이 맞았는지 확인할 수 있고 틀렸으면 이의를 제기해 해당 검증자의 예치금을 깎습니다.