링서명
링 서명(Ring Signature)은 사용자의 공개키를 섞어 특정 사용자를 식별하지 못하게 해 사용자를 추적 불가하게 만드는 기술이다.
개요
링 서명은 거래자 결제키를 블록체인에서 접근 가능한 공개키들과 섞어 잠재적 사용자들의 키를 링으로 만들어 보여주는 방법이다.[1] 이를 통해 외부자가 거래의 대상자를 특정할 수 없도록 만들어준다. 링을 통해서 보이는 사용자들은 모두 거래에 적용 가능한 사람들이기 때문에 외부자는 거래 대상자를 골라낼 수가 없다.[2] 또한 거래할 때 송금자만 이용 가능한 일회성 주소가 발급된다. 이에, 코인을 받는 사람도 누가 보낸 건지 추적을 할 수 없다.[3] 이렇게 거래자의 신원을 보호하는 한편 링 기밀거래 기술로 거래액 보안이 될 수 있는 서비스를 제공한다.
특징
링 서명 방식에서는 키를 가진 그룹 멤버들 중 어떤 사람에 의해서도 서명할 수 있다.[4] 따라서 링 서명을 이용하여 서명된 메시지는 특정 그룹 멤버들 중 누군가에 의해서 보증된다. 링 서명의 특징은 그룹 내의 어떤 멤버의 키를 이용하여 서명되었는지를 알 수 없다는 것이다. 링 서명은 특히 그룹 서명과 많이 비교되는데, 둘은 매우 비슷하지만 다음 특성들에서 차이가 있다.[5]
- 익명성을 폐기할 수 없다.
- 그룹 매니저가 없다.
- 어떤 그룹의 사용자든 추가적인 셋업 과정 없이 다른 그룹의 멤버가 될 수 있다.
링 서명은 2001년 로널드 라이베스트(Ron Rivest), 아디 샤미르(Adi Shamir), 야엘 토먼(Yael Tauman)에 의해 처음 소개되었다.[6] 링 서명이라는 용어는 서명 알고리즘의 구조가 링의 구조와 유사하다는 점에서 파생되었다. 즉, 모든 그룹 멤버들이 동일한 위치에 있으며 중심이 되는 멤버가 따로 존재하지 않는다.[5]
그룹 구성원 각각이 공개키/비밀키 쌍(PK1, SK1), (PK2, SK2), …, (PKn, SKn)을 가지고 있다고 가정하자. 링 서명 σ는 그룹 구성원 모두의 공개키와 서명자의 비밀키, 그리고 서명할 메시지를 이용하여 계산될 수 있다. 그리고 그룹의 모든 멤버들은 서명값, 메시지, 그리고 포함된 공개키 쌍 PK1, …, PK이 주어졌을 때 서명의 유효성을 확인할 수 있다. 링 서명이 적절히 계산되었다면 서명값이 제대로 확인되어야 한다. 반면에 그 그룹 멤버들의 비밀키들을 알지 못한다면 누가 서명을 생성하였는지를 알 수 없다. 링 서명 구조는 Ring-sign과 Ring-verify의 두 가지 과정으로 구성되어 있다.[5]
- Ring-sign(m, PK1, PK2, …, PKn, i, SKi): : n명의 그룹 멤버들의 공개키와 i번째 그룹 멤버의 비밀키 SK₁를 가지고 메시지 m에 대한 서명 값 σ를 생성하는 과정
- Ring-verify(m, σ) : 메시지 m과 모든 그룹 멤버들의 공개키가 담긴 서명 σ를 이용하여 서명을 검증하는 과정
링 서명은 서명자가 그룹에 속한 사람들의 공개키만 알면 서명할 수 있으므로 그룹 멤버를 추가하거나 삭제하는 과정이 필요 없다. 하지만 서명 값에 그룹에 속한 멤버들의 공개키가 포함되어야 하므로 멤버의 수가 많아지면 서명 값도 이에 비례하여 길어진다는 것이 단점으로 지적되고 있다.[5]
활용
- '링 서명과 암호화폐’
- 송금자의 공개키만을 이용하는 일반적인 디지털 서명과 달리 링 서명은 여러 사용자의 공개키를 사용한다.[7] A가 B에게 송금을 한다고 가정해보자. 이때 C와 D의 공개키와 자신의 공개키를 섞어 링 서명을 했다. 링 서명 방식에서는 A, C, D 세 명이 각각 1/3의 확률로 송금한 사람이라는 것은 알 수 있지만 송금인이 A라는 사실은 알 수 없다.[8]
- 스텔스주소가 수신인을 숨기는 역할을 수행했다면 링 서명은 송신인을 감추는 역할을 함으로써 보안성을 높여준다. 하지만 링 서명 방식만으로는 다른 사람들은 송금 사실을 알지 못하므로 이중 지불의 위험이 있다. 크립토노트(CryptoNote)는 키 이미지를 이용하여 이중 지불의 가능성을 차단시킨다. 서명 및 검증 공식에 일회용 비밀키에 일대일로 대응하는 숫자인 키 이미지를 대입하는 것이다. 키 이미지로 개인키와 공개키를 알아낼 수는 없지만 사용된 모든 키 이미지가 블록체인에 저장되어 네트워크에서 중복되지 않도록 한다.[8]
- '링 서명과 모네로’
- 링 서명은 암호화 기법들 중에서도 암호화 키가 있는 사용자 그룹의 구성원이 할 수 있는 디지털 서명의 한 종류이다. 링 서명으로 서명된 트랜잭션 메시지는 발신자, 수신자, 서명자의 공개키 또는 신원이나 트랜잭션의 양의 노출 없이도 다른 구성원들로부터 트랜잭션 검증을 가능하게 한다. 링 서명을 사용한 알고리즘을 성공적으로 구현한 최초의 암호화폐가 바로 모네로이다. 2015년 셴 노터(San Noether) 박사는 모네로에 구현된 링 서명 알고리즘의 토대가 된 Ring Confidential Transactions라는 글을 발표했다.
- 모네로의 서명 알고리즘은 비트코인과 마찬가지로 해시 기반의 공개키+개인키 접근 방식을 사용하여 구현되었다. 비트코인과 모네로 서명 알고리즘의 차이점은, 모네로의 경우 링 서명 기술을 사용하여 트랜잭션을 보낸 사람의 공개키가 다른 공개키와 혼합되어 정보에 서명한다는 것이다. 수신자가 트랜잭션을 수신하면 자체 개인키를 통해 서명을 확인한다. 따라서 다른 사람들, 예를 들어 잠재적으로 악의적인 의도를 가진 사람들은 공개키 중 어느 것이 송신자의 것인지 알 수 없다. 이렇게 하여 모네로가 발신자의 주소 정보를 숨겨 외부의 공격자가 발신자를 상대로 공격을 할 수 없게 된다.
- 2017년 09월 모네로는 하드포크를 하고 거래할 대 트랜잭션 되는 코인의 양을 암호화 하기 위해 RCT(Ring Signature Technology) 기술을 추가했다. 즉, 발신자와 수신자를 제외한 누구도 거래 세부 정보(보낸 사람의 주소와 보내진 가치의 총량)을 확인할 수 없으며, 이러한 조치 이후 새로운 RCT 주소가 모네로의 유일한 주소 포맷이 되었다.[9]
각주
- ↑ 관쨩, 〈비트코인 종류, 비트코인 모네로 정보/요약〉, 《네이버 블로그》, 2017-12-18
- ↑ 수석 매니저, 〈모네로코인 호재, 전망, 일정(리치코인)〉, 《네이버 블로그》, 2018-12-28
- ↑ crzymon, 〈Monero(XMR) 모네로 코인 정리 및 요약〉, 《스팀잇》
- ↑ 민소연, 장승재, 〈익명 게시판 환경에서 가상 아이디를 이용한 개인정보보호에 관한 연구〉, 《네이버 학술정보》, 2012
- ↑ 5.0 5.1 5.2 5.3 이윤경, 한승완, 이석준, 정병호, 양대헌, 권태경, 〈익명 인증 기술과 동향 The Technology and Trend of Anonymous Authentication〉, 《전자통신동향분석 제23권》, 2008-08
- ↑ 〈Signiture Move〉, 《블로그스팟》, 2016-02-01
- ↑ 트레이더 김씨, 〈블록체인 입문을 위한, 엄선된 필수 용어사전(익명/암시장, 해킹/범죄)〉, 《네이버 블로그》, 2018-02-19
- ↑ 8.0 8.1 keepit, 〈Keepit History: 익명화폐의 역사 2편〉, 《스팀잇》
- ↑ hcashofficial, 〈링 서명, 블록체인 보안과 프라이버시 보호 기술〉, 《네이버 블로그》, 2019-03-09