본문으로 건너뛰기
buybitcoinsmart

용어집 / 라이트닝과 레이어 2

스플라이싱

스플라이싱이란 무엇입니까?
스플라이싱은 열려 있는 라이트닝 채널의 자금 조달 출력을 새롭고 더 크거나 더 작은 출력으로 지출하여 채널 크기를 조정하는 방식으로, 채널은 자신의 이력을 유지하고 그동안 계속 사용할 수 있습니다.

스플라이싱 이전에는 채널 크기를 바꾸려면 채널을 닫고 다른 채널을 열어야 했습니다. 온체인 트랜잭션 2건, 수수료 2회, 그리고 채널이 존재하지 않는 공백이 발생했습니다. 스플라이스는 트랜잭션 1건으로 이를 처리합니다. splice_init, splice_ack, splice_locked 메시지는 라이트닝 명세의 일부이며, Core Lightning은 2023년 8월에 v23.08에서 실험적 구현을 내놓았습니다.

작동 방식

스플라이싱은 기존 자금 조달 출력을 지출하고 같은 트랜잭션에서 새 출력을 생성하며, 양측 피어가 모두 서명합니다.

피어들은 먼저 무엇이 바뀌는지에 합의합니다. 한쪽이 추가하거나 제거할 금액을 지정한 splice_init을 보내고, 다른 쪽이 splice_ack으로 응답합니다. 그다음 양측은 대화형 구성 프로토콜을 사용해 스플라이스 트랜잭션을 함께 만듭니다. 각자는 자신이 기여하는 입력과 출력을 추가하므로, 자금을 추가하는 스플라이스는 충전하는 쪽의 온체인 코인을 끌어오고, 자금을 제거하는 스플라이스는 해당 피어에게 직접 지급하는 잔돈 출력을 생성합니다.

스플라이싱을 가치 있게 만드는 부분은 트랜잭션이 미확인 상태인 동안 일어나는 일입니다. 채널은 멈추지 않습니다. 양측 피어는 기존 자금 조달 출력과 새 출력에 대한 커밋먼트 트랜잭션을 동시에 보유하며, 여전히 유효한 상태 아래에서 결제는 계속 흐릅니다. 스플라이스가 충분한 확인을 받으면 splice_locked가 기존 출력을 폐기하고, 채널은 새로운 크기와 기존 채널 아이덴티티, 누적된 라우팅 이력을 그대로 유지한 채 계속 작동합니다.

비용은 온체인 트랜잭션 2건 대신 1건이며, 절감 효과는 그 말보다 큽니다. 채널을 닫았다가 다시 열면 채널의 공개 평판이 끊기고, 노드가 라우팅 관계를 다시 구축해야 하며, 두 트랜잭션이 확인되는 동안 자금을 사용할 수 없게 됩니다. 스플라이싱은 이 세 가지를 모두 피합니다. 또한 같은 지갑의 온체인 잔액과 라이트닝 잔액을 하나의 숫자로 표시할 수 있다는 뜻이기도 합니다. 채널이 종료되지 않고도 자금이 둘 사이를 이동할 수 있기 때문입니다.

확인할 수 있는 곳

스플라이싱은 두 개의 잔액을 더 이상 보여주지 않는 지갑에서 가장 눈에 띕니다.

Core Lightning은 v23.08에서 experimental-splicing 플래그 뒤에 이를 추가했으며, splice_init, splice_update, splice_signed를 저수준 명령으로 노출했습니다. ACINQ는 2023년 8월에 Android v2.0.0용 Phoenix에 이를 일반 사용자에게 제공했고, 이중 자금 조달(dual funding)도 함께 제공했습니다. 그 지갑이 인터페이스에서 온체인 자금과 라이트닝 자금을 구분하지 않게 된 방식이 바로 이것입니다. 온체인에 입금하면 두 번째 채널을 여는 대신 기존 채널로 스플라이스됩니다.

노드 운영자에게 실질적인 용도는 채널 교체 없이 자본을 재조정하는 것입니다. 처리하는 트래픽에 비해 너무 작아진 채널은 그 자리에서 충전됩니다. 필요한 양보다 많은 자금을 보유한 채널은 열린 상태로 유지되면서 일부가 콜드 스토리지로 이동합니다. 두 경우 모두 이전에는 채널을 닫고 기다렸다가 다시 여는 일이었으며, 온체인 수수료 2회와 라우팅 이력 초기화를 동반했습니다.

지원이 보편적이지는 않습니다. 구현체와 그 피어가 모두 스플라이싱 메시지를 지원해야 하므로, 특정 채널을 스플라이스할 수 있는지는 반대편에 누가 있는지에 달려 있습니다. 지갑이 자금을 빼내려면 채널을 닫으라고 여전히 요구한다면, 상대방이나 소프트웨어가 아직 이를 도입하지 않은 것입니다.

스플라이싱 vs 강제 종료

스플라이싱은 채널을 살아 있는 상태로 유지하면서 크기를 바꾸고, 강제 종료는 채널을 일방적으로 끝냅니다. 강제 종료는 피어에 연결할 수 없거나 피어가 잘못 행동할 때 하는 조치입니다. 최신 커밋먼트를 브로드캐스트하면 자신의 잔액은 약 하루의 지연 시간 동안 잠기고, 채널은 사라집니다. 스플라이스는 양측 피어의 협력과 서명이 필요하고, 여전히 작동하는 채널을 만들며, 누구의 자금에도 지연을 부과하지 않습니다. 스플라이싱은 계획하는 유지보수 작업이고, 강제 종료는 시간과 불리한 수수료율을 치르게 하는 대체 수단입니다.

혼동하기 쉬운 용어

자주 묻는 질문

스플라이스가 확인되는 동안 채널을 사용할 수 있습니까?

예. 양측 피어는 기존 자금 조달 출력과 새 자금 조달 출력에 대한 커밋먼트 트랜잭션을 동시에 보유하므로, 스플라이스 트랜잭션이 확인을 기다리는 동안에도 결제는 계속됩니다. 기존 자금 조달 출력은 양측 피어가 새 출력이 확정되었음을 확인한 뒤에만 폐기됩니다.

제 지갑은 스플라이싱을 지원합니까?

소프트웨어와 채널 상대방에 따라 다릅니다. 양쪽 끝이 모두 스플라이싱 메시지를 지원해야 하기 때문입니다. Core Lightning은 v23.08에서 이를 추가했고 ACINQ는 Android v2.0.0용 Phoenix에 이를 제공했으며, 둘 다 2023년 8월의 일입니다.

관련 용어

라이트닝과 레이어 2 분야의 다른 용어

이 페이지를 영어로 읽기