bus factor = 1 (왜 나는 내 죽음을 위한 kill switch를 코딩했는가)
Source: Dev.to
내가 데드맨 스위치를 만든 이유
저는 일상적으로 중복 시스템을 구축하는 개발자입니다—로드 밸런서, 페일오버, 백업의 백업까지. 우리는 주당 40시간을 투자해 SaaS 애플리케이션의 가동률을 99.9 %로 유지합니다.
지난 화요일, 멘도자에 있는 제 아파트에 앉아 있던 저는 제 자신의 “가동률”이 지극히 취약하다는 사실을 깨달았습니다. 만약 밖으로 나가 버스에 치이면(문자 그대로 버스 팩터), 제 디지털 삶 전체가 완전히 꺼집니다. 제로. 사라집니다.
저는 콜드 스토리지, 서버에 대한 SSH 키, 그리고 서랍에 적힌 24단어 시드 문구를 가지고 있습니다. 만약 제가 죽는다 하면 어떻게 될까요? 가족이 무작위 단어가 적힌 종이를 찾아 쓰레기로 여기고 버릴 수도 있고, 세대를 이어온 부를 놓칠 수도 있습니다. 혹은 원장을 모르는 변호사를 고용할 수도 있겠죠.
“키가 없으면 코인도 없다”는 멋진 슬로건이지만, 죽었을 때는 “맥박이 없으면 코인도 없다”는 걸 깨달을 때까지는 그렇지 않다는 것을 알게 되었습니다. 그 생각에 겁이 나서 저는 Vim을 열고 바로 고쳤습니다.
Deadhand 작동 방식
저는 Deadhand라는 다소 난잡하지만 기능적인 파이썬 오픈소스 데드맨 스위치를 만들었습니다. 로직은 고의적으로 단순하게 설계했는데, 단순한 것이 부서지지 않기 때문입니다:
- 매 30일마다 저에게 이메일을 보냅니다: “야, 살아 있니?”
- 제가 링크를 클릭하면 타이머가 초기화됩니다.
- 클릭하지 않으면 기다립니다.
- 이후 간격(60일 차, 90일 차, …)에서도 여전히 클릭하지 않으면 제가 사망했거나 무능력하다고 판단합니다.
- 페이로드를 실행해 암호화된 조각, 키, 그리고 지시사항을 수혜자에게 전송합니다—변호사도, 유언 검증 법원도 필요 없고, 단지 계약을 실행하는 코드만 있으면 됩니다.
오픈소스와 신뢰
이것을 오픈소스로 만든 이유는 이렇게 중요한 것을 폐쇄형 앱에 맡기는 것이 어리석기 때문입니다. 코드를 직접 확인해야 신뢰할 수 있고, (저처럼) 편집증이 있다면 직접 호스팅할 수도 있습니다.
저는 이 프로젝트를 유니콘 스타트업을 만들기 위해 만든 것이 아니라, 잠을 이루지 못해서 만든 것입니다. 만약 암호화폐를 보유하고 있거나 서버를 관리하거나, 후세에 전달하고 싶은 비밀이 있다면, 자신이 불멸이라고 착각하지 마세요. 버스 팩터를 개선하세요.
코드 받기
저장소는 여기입니다:
별표를 달고, 포크하고, 감사를 진행하세요—키가 당신과 함께 사라지지 않게 하세요.
— max