구글에서 선호하는 출처로 추가

BOLT11, 결제 해시·시크릿 중복 요청서 거부한다

비트코인(BTC)

라이트닝 네트워크 결제 요청서 BOLT11이 결제 해시와 결제 시크릿을 각각 하나씩만 허용하도록 바뀌었다. 소프트웨어별 해석 차이로 완료된 출금이 미지급으로 처리되는 문제를 막기 위한 조치다.

토포AI로 이 기사 더 깊이 읽기

두 결제 필드를 확인하는 인보이스와 하드웨어 지갑 / TokenPost.ai

라이트닝 네트워크의 BOLT11 결제 요청서가 결제 해시와 결제 시크릿을 각각 하나씩만 담도록 바뀌었다. 요청서를 읽는 소프트웨어는 두 필드 중 하나라도 없거나 중복되면 결제를 거부해야 한다.

라이트닝 규격 저장소는 10월 19일 BOLT11 변경안을 병합했다. 중복 필드의 값이 서로 같아도 예외는 없다. 이번 개정은 소프트웨어마다 요청서를 다르게 해석할 여지를 줄이는 데 초점을 맞췄다.

BOLT11은 라이트닝 네트워크에서 결제를 요청할 때 쓰는 형식이다. 결제 해시는 결제에 필요한 정보를 식별하는 값이며, 결제 시크릿은 라이트닝 결제 경로에서 수신자를 탐색하는 행위를 막는 데 쓰인다. 요청서에는 여러 정보가 담기지만, 이번 변경은 ‘p’ 필드와 ‘s’ 필드의 개수를 검사하도록 했다.

문제는 소프트웨어마다 중복 결제 해시를 처리하는 방식이 달랐다는 점이다. 일부는 첫 번째 해시를, 다른 곳은 마지막 해시를 선택했다. 기존 BOLT11 규격은 결제자에게 첫 번째 해시를 사용하도록 권고했지만, 중복 해시가 든 요청서를 반드시 거부하라고 요구하지는 않았다.

라이트닝 개발자 로아스비프(Roasbeef)는 9월 10일 변경안 설명에서 텔레그램 P2P 봇이 이 차이를 악용한 해킹을 당했다고 밝혔다. 봇이 요청서에서 읽은 해시와 노드가 실제 결제에 사용한 해시가 다르면, 출금이 끝난 뒤에도 서비스 기록에는 미지급으로 남아 추가 지급이 이뤄질 수 있다. 해킹 피해 시점과 손실액은 공개되지 않았다.

규격 개정에 앞서 라이트닝 노드 소프트웨어 LND에도 중복 결제 해시를 거부하는 수정이 반영됐다. 해당 변경은 9월 23일 병합됐다. 비트코인옵텍(Bitcoin Optech)은 LND가 기존에는 첫 번째 해시를 사용하고 나머지는 무시했다고 설명했다. 요청서를 읽는 다른 소프트웨어가 별도의 해시를 선택하면 완료된 출금을 미지급으로 오인할 수 있다는 것이다.

개별 소프트웨어의 적용 범위는 규격 개정과 구분해야 한다. LND의 결제 해시 중복 거부는 병합됐지만, 결제 시크릿 중복 거부 등 디코더 검사를 넓히는 별도 제안은 10월 27일 기준 열린 상태였다. 규격 변경만으로 모든 라이트닝 서비스가 같은 검사를 수행한다고 볼 수는 없다.

비트코인옵텍은 서비스가 요청서를 해석하는 방식과 노드가 실제 결제에 쓰는 해시가 일치하는지 확인하고, 출금 기록이 노드의 결제 해시를 따르는지 살펴야 한다고 설명했다.

오늘의 스탬프 0명이 오늘 찍었어요
오늘의 스탬프 0명이 오늘 찍었어요

0

    불러오는 중…

    토큰포스트 앱 다운로드 QR 코드 QR 코드 스캔하고
    ios, Android 앱
    다운로드 하기