Radix Wallet에서 생체인식 사용에 대한 이야기

Radix DLT — Korea
RadixDLT_Korea
Published in
7 min readMar 27, 2023

--

Written by Matthew Hine, CPO, RDX Works Ltd.

Radfi에서 저희는 Radix Network의 고유한 기능을 사용하여 마침내 웹3.0을 주류로 만들 수 있는 Radix wallet의 비전을 선보였습니다.
가장 큰 장점 중 하나는 스마트 계정을 사용하여 계정을 안전하게 지키기 위해 복잡한 시드 문구를 적을 필요가 없다는 것입니다.
그 이후로 필수 시드 문구를 없애는 방법에 대한 많은 질문을 받았는데, 그 중 한 가지 공통된 주제는 생체인식에 관한 것이었습니다:

“Radix가 시드 문구를 생체인식으로 대체하나요?”

“Radix wallet이 생체인식을 사용하는 디앱에 ‘proof of human’을 제공할 수 있나요?”

바빌론에 출시될 완전히 새로운 버전의 Radix wallet은 생체인식을 사용하지만, 생체인식으로 할 수 있는 것과 할 수 없는 것이 무엇인지 이해하는 것이 중요합니다. 자세히 살펴보겠습니다.

생체인증은 Radix Wallet에서 어떻게 작동하나요?

기본적인 대답은 Radix wallet은 생체 인증(얼굴 또는 지문 인식)을 사용해
본인만 계정과 자산을 다루는 거래에 서명할 수 있도록 한다는 것입니다.
기본 구성에서는 지갑에서 거래에 서명해야 할 때마다 빠른 생체 인식 확인이 이루어지고 완료될 것입니다.

하지만 어떻게 작동할까요?

“서명”에는 개인 키가 필요하므로, 휴대폰에서 얼굴이나 지문을 스캔하여 개인 키를 생성한다고 생각하기 쉽습니다.
여기서 “서명”이란 서명에 필요한 개인 키를 얻기 위해 얼굴/지문을 다시 스캔하는 것을 의미한다고 생각할 수 있겠죠?

안타깝게도 생체 인식은 그렇게 작동하지 않습니다.
실제로는 비교 과정입니다. 설정하는 동안 휴대폰은 얼굴/지문에서 데이터 포인트 클라우드를 캡처하여 참조로 사용합니다.
사용자가 인증을 시도할 때마다(예: 휴대폰 잠금 해제 시) 휴대폰은 또 다른 데이터 포인트 클라우드를 캡처하고 이를 참조 데이터 포인트와 비교합니다. 두 데이터가 “충분히 근접”하면 인증이 통과됩니다.

결정적으로, 매번 정확히 동일한 클라우드를 얻을 수는 없습니다. 정부 등급 생체인식 시스템 조차도 사람의 클라우드를 기존의 클라우드 데이터베이스와 비교하여 충분히 일치하는지 확인할 수 있을 뿐입니다.
“이 사람은 전에 본 적이 없는 새로운 사람입니다. 데이터베이스에 추가하겠습니다!”라고 말할 수는 없습니다.

이러한 제한으로 인해 얼굴이나 지문을 사용하여 고유한 개인 키를 생성할 수 없습니다. 시도해도 항상 약간 다른 결과를 얻을 수 있으며, 이는 완전히 다른 개인 키를 의미하므로 암호화 작업에 쓸모가 없습니다. 수년 동안 많은 회사에서 생체 인식으로 매번 똑같은 고유한 결과를 생성하려고 시도했지만 모두 실패했습니다.

따라서 휴대폰에서 “충분히 근접한” 비교가 이루어지면 실제로는 보안 하드웨어가 데이터베이스의 단일 사용자임을 확신하는 것에 불과합니다. 일반적으로 백업 PIN도 설정되어 있어 휴대폰에서도 사용자가 해당 사용자임을 확신할 수 있습니다. 일단 확인되면, 휴대폰은 해당 보안 하드웨어 내에서 자체적으로 생성한 (무작위로) 개인 키를 사용하도록 허용합니다. Radix wallet은 해당 키를 사용해 여러 계정의 개인 키와 해당 계정과 관련된 거래의 서명을 안전하게 보호할 수 있습니다.

참고: 기술적으로 설명하자면, 생체인식은 엔트로피의 원천으로 사용되는 니모닉 시드 구문을 보유한 키 저장소의 암호화를 해제하여 여러 계정과 페르소나를 위한 여러 키 쌍을 도출할 수 있는 계층적 결정론적 루트를 생성하는 기능을 보호하며, 여러 계정과 페르소나 간의 온-원장 연결을 생성하지 않습니다.

결국, 서명을 생성할 수 있는 것은 생체 인식(또는 PIN)만이 아니라 휴대폰과 얼굴/손가락/PIN의 조합입니다. 이는 하드웨어 지갑을 사용할 때 하드웨어 지갑 장치와 PIN의 조합으로 서명을 생성할 수 있는 것과 매우 유사합니다.

이는 시드 문구를 백업하지 않고도 암호화폐 계정을 제어할 수 있는 훌륭한 메커니즘이지만, 휴대폰에 묶여 있다는 단점이 있습니다. 휴대폰을 분실하면 해당 개인 키에 액세스할 수 없게 됩니다. 대부분의 블록체인 네트워크에서는 생체 인식을 사용해 계정을 보호하는 것이 불가능하다는 뜻입니다. 이러한 네트워크에서는 하나의 개인 키가 항상 계정을 영원히 제어하므로 사용자가 어떤 식으로든 개인 키를 백업하지 않는 한 휴대폰 분실의 위험은 치명적입니다.

하지만 Radix의 스마트 계정 시스템을 사용하면 휴대폰을 분실하더라도
on-ledger multifactor recovery system을 통해 휴대폰 생체인식 이외의 추가 신원 증명 방법을 사용하여 계정을 업데이트하면 계정 거래에 서명할 때 새 개인 키를 사용할 수 있으며, 다시 업무를 수행할 수 있습니다. 휴대폰 생체인식을 사용해 서명 키를 보호하는 것은 래딕스 스마트 컨트랙트 시스템과 가장 이상적인 조합입니다.(당연히 Radix wallet에서 다른 서명 방식 또한 선택할 수 있습니다.)

생체 인식을 dapp의 ‘proof of human’으로 사용할 수 있나요?

간단히 말해, 불가능합니다. 이는 기수 지갑의 한계가 아니라 앞서 설명한 생체 인증의 본질적인 한계입니다.

많은 디앱은 특정 사용자가 실제로 고유한 사람인지 확인할 수 있는 방법을 원합니다. 에어드랍에서 DAO, 탈중앙 금융에 이르기까지, 한 사람이 1000명으로 가장하지 않는다는 것을 아는 것은 매우 유용합니다. 이를 다른 용어로 ‘Sybil attack prevention’라고 합니다.

탈중앙화된 네트워크에서 생체 인식을 사용해 고유성을 증명할 수 있다면 좋겠지만, 이는 불가능합니다. 설사 가능하다고 해도 여전히 해결책이 될 수 없습니다. 네트워크나, 네트워크에서 실행되는 스마트 컨트랙트가 특정 개인 키가 공격자에 의해 인위적으로 생성된 것이 아니라 특정 생체 인식 검사를 통해 생성된 것임을 알 수 있는 방법이 없기 때문입니다.

“인간 증명”을 위해 필요한 것은 특정 개인이 네트워크에 존재하는 것 중 그 개인을 나타내는 것 중 정확히 하나만 가질 수 있다는 것을 알 수 있는 방법입니다. 더 이상 생성할 수 없습니다.

안타깝게도 이를 안정적으로 수행할 수 있는 유일한 방법은 정부 신분증 확인, 전화번호 사용, KYC 프로세스 실행 등 적절한 방식으로 특정 사람을 검증하고 그 사람을 대표하는 단 하나의 ‘무언가’를 발급할 수 있는 신뢰할 수 있는 기관이 있는 것입니다.

다행히도 Radix를 사용하면 이러한 기관에서 배지를 사용하여 이러한 ‘무언가’를 매우 쉽게 만들 수 있습니다! 배지를 발급하는 기관은 사람을 확인하고 해당 사람이 특정 계정을 소유하고 있는지 확인할 수 있습니다. 그런 다음 고유한 배지 자산을 생성하여 해당 사용자의 계정으로 전송하고 대부분의 경우 양도할 수 없도록(또는 원하는 경우 “soulbound”로) 구성할 수 있습니다.

이제 해당 사용자가 디앱을 사용할 때마다 스마트 컨트랙트는 신뢰할 수 있는 기관으로부터 자신의 필요에 맞는 고유한 신원을 나타내는 배지를 확인할 수 있습니다. 실제로 라딕스는 이러한 목적의 배지 ‘제시’를 디앱 개발자에게는 쉽게, 사용자에게는 라딕스 월렛에서 명확하게 제공합니다.

이는 Radix에서 사용하기 쉽고 강력한 신원 확인 시스템을 구축할 수 있는 환상적인 기회를 열어주지만, 이러한 시스템에는 여전히 dApp 개발자 본인이나 함께 일하는 제3자 등 일종의 오프-원장 실체를 검증할 수 있는 주체가 필요합니다.

평판 또는 “사회적 증명” 시스템은 탈중앙화된 방식으로 개인을 식별하는 또 다른 흥미로운 메커니즘을 제공할 수 있지만, 안타깝게도 생체 인식은 흥미롭기는 하지만 앞으로 나아갈 수 있는 방법이 될 가능성은 매우 희박합니다.

Radix 한국 공식 공지 채널 @RadiXkor_Ann_official
Radix 한국 공식 커뮤니티
https://t.me/RadiXkor
Radix 웹페이지
https://www.radixdlt.com/
Radix 트위터(EN)
https://twitter.com/radixdlt
Radix 글로벌 커뮤니티(EN)
https://t.me/RadixAnnouncements

--

--

Radix DLT — Korea
RadixDLT_Korea

Radix는 400조 달러 규모의 글로벌 금융 시스템의 탈중앙화 방법의 문제에서 출발한 Layer - 1 스마트 계약 플랫폼입니다. 직관적인 자산 지향 프로그래밍 언어인 Scrypto를 개발하였고, 선형 확장성과 함께 원자 구성 가능성을 제공하는 합의 알고리즘을 사용합니다.