저자: 에릭 드 스메드트

"hArk(해시 락을 사용하는 Ark)"라는 용어는 Delving Bitcoin 포럼의 게시물 에서 처음 등장했으며, 저희 Ark 구현 버전 v0.1.0-beta.6 에 포함되었습니다. hArk는 라운드 구성 방식을 근본적으로 변경하는 Ark 프로토콜 구현 업데이트입니다. 업데이트 후, 사용자 포기는 커넥터 출력 대신 해시 락을 사용하며, 라운드 자금 조달 거래 방송 후 서명됩니다(사전 서명 방식이 아님).
hArk는 "위임된 갱신"을 지원하여 Bark 기반 모바일 애플리케이션 개발을 훨씬 쉽게 만들어 줍니다. 모바일 기기는 라운드 서명 프로세스에 참여하도록 안정적으로 활성화될 수 없기 때문에 위임된 갱신은 필수적인 메커니즘입니다. 위임된 갱신은 표준 자체 서명 갱신에 비해 보안 측면에서 다소 불리할 수 있지만, 자체 서명 갱신이 기본 신뢰 모델로 유지되며 프로토콜의 핵심은 변경되지 않았으므로 안심하십시오.
솔직히 말씀드리면, hArk를 도입하면 메인넷 출시가 지연될 것을 알고 있었기에 망설였습니다. 하지만 어쩔 수 없는 선택이었습니다. 사용자와 통합업체들이 이미 익숙해진 기존 모델을 개편하는 것보다 완전히 새로운 모델을 구축하는 것이 훨씬 수월하기 때문입니다. 이제 준비가 완료되어 기쁩니다. 그리고 Bark가 처음부터 모바일 친화적이기를 바랍니다.
(이전의) 라운드 기반 메커니즘: 먼저 거래 기권에 대한 서명을 받은 후 투자 거래를 공지하는 방식입니다.
Ark 프로토콜에서 사용자는 주기적으로 Ark 잔액 갱신해야 하며, 이를 위해 단일 원자적 연산으로 기존 VTXO를 무효화하고 새로운 VTXO를 획득해야 합니다.
클래식 Ark에서 라운드는 다음 순서로 진행됩니다.
- 요청 제출 : 사용자는 서비스 제공업체에 새로 고침하려는 VTXO를 알려줍니다.
- 트리 구축 및 공동 서명 : 서비스 제공자는 자금 조달 거래와 모든 새로운 VTXO를 포함하는 거래 트리를 구축합니다. 이 거래 트리의 사용자는 관련된 모든 거래에 공동으로 서명합니다.
- 기권 거래 서명 : 사용자가 기존 VTXO에 대한 기권 거래에 서명합니다.
- 방송 : 서비스 제공업체는 투자 거래를 방송합니다.
커넥터 출력이 사용되었기 때문에, 기권 거래는 조건부로 유효해집니다. 커넥터는 펀딩 거래에서 아주 작은 단위(극소액)의 출력이며, 기권 거래는 이를 입력으로 사용합니다. 펀딩 거래가 온체인에 존재하지 않으면 커넥터가 없으므로 기권 거래는 사용할 수 없습니다. 그러나 이러한 조건은 단방향입니다. 기권 거래는 펀딩 거래에 의존하지만, 새로운 VTXO는 기권 거래에 의존하지 않습니다. 따라서 서비스 제공자는 각 기권 거래를 브로드캐스팅하기 전에 서명을 수집해야 합니다.

이 모델은 항상 켜져 있는 데스크톱 클라이언트에서는 잘 작동하지만, 모바일 운영 체제(특히 iOS)는 상호작용 라운드에 참여하기 위해 기기를 안정적으로 깨우는 데 실패하는 경우가 많습니다. 모바일 앱을 유용하게 사용하려면 상호작용 라운드에서 사용자 개입 없이 앱을 새로 고칠 수 있는 방법이 필요합니다.
"계약"을 사용하지 않는 유일한 방법은 분산된 공동 서명자 그룹이 사용자를 대신하여 갱신 작업에 서명하고, 사용자가 나중에 새 VTXO를 수령하다 수 있도록 하는 것입니다(즉, "위임된 갱신" 방식이며, 이에 대해서는 나중에 더 자세히 설명하겠습니다). 그러나 기권 작업이 상호 작용적인 라운드 로빈 메커니즘에 포함되어 있기 때문에 위임된 갱신을 구현할 수 없습니다. 기권 트랜잭션에 서명하려면 사용자의 개인 키가 필요하며, 제3자 공동 서명자에게 개인 키를 제공하는 것은 허용되지 않기 때문입니다. 따라서 기권 단계를 라운드 로빈에서 완전히 분리하여 비동기적으로 처리해야 합니다.
현재의 순차적 시스템은 먼저 방송하고, 그 다음에는 방송을 중단하는 방식입니다.
기존 커넥터로는 요구 사항을 충족할 수 없었기 때문에 설계를 다시 시작하여 결국 라이트닝 네트워크에서 이미 검증된 암호화 메커니즘인 해시 락과 프리이미지를 채택했습니다. 해시 락은 우리가 필요로 했던 양방향 조건성을 제공했습니다. 즉, 새로운 VTXO는 기권 트랜잭션에 의존하고, 기권 트랜잭션 또한 새로운 VTXO에 의존하므로, 인터랙티브 라운드에서 기권 단계를 완전히 제거할 수 있었습니다.
hArk에서는 3단계와 4단계의 순서가 바뀌었고, 4단계는 원형 창 밖에서 완료할 수 있습니다.
- 요청 제출 : 사용자는 서비스 제공업체에 새로 고침하려는 VTXO를 알려줍니다.
- 트리 구축 및 공동 서명 : 서비스 제공자는 자금 조달 거래와 모든 새로운 VTXO를 포함하는 거래 트리를 구축합니다. 이 거래 트리의 사용자는 관련된 모든 거래에 공동으로 서명합니다.
- 방송 : 서비스 제공업체는 투자 거래를 방송합니다.
- 기권 거래 서명 : 사용자는 편리한 시간에 기존 VTXO에 기권 거래 서명을 할 수 있습니다. 서비스 제공자는 각 사용자의 기권 거래 서명을 받은 후 프리이미지를 공개합니다.
라운드에서 기권 단계를 분리함으로써 위임된 갱신이 가능해집니다. 공동 서명자는 이제 라운드 중에 모바일 사용자의 거래 트리에서 각자의 분기에 미리 서명할 수 있으며, 서명된 거래는 사용자의 지갑이 다시 온라인 상태가 되면 수집됩니다. 이 과정에서 라운드 중에 기기를 깨울 필요가 없습니다. 위임된 갱신 메커니즘에 대한 자세한 설명은 아래에 있습니다.
또 다른 중요한 부수적 효과는 Round 인터페이스의 서비스 거부(DoS) 공격 취약성이 감소한다는 것입니다. 사용자가 면제 거래에 서명하지 않더라도 다른 사용자의 거래를 차단하지 않으므로 지갑 개발자와 사용자 모두에게 Round의 신뢰성이 향상됩니다.
기권 거래에서 해시 락의 작동 방식
이러한 양방향 의존성은 비밀 값을 통해 구현됩니다. 트랜잭션 트리의 각 VTXO에 대한 "출구 트랜잭션"은 서비스 제공자만 알고 있는 역상 p 로 잠겨 있으며, 서비스 제공자는 서명된 기권 트랜잭션을 수신한 후에만 p 공개합니다. 서비스 제공자는 먼저 자금 조달 트랜잭션을 브로드캐스트할 수 있는데, 이는 p 없으면 사용자가 새로운 VTXO에 접근할 수 없기 때문에 안전합니다. 사용자가 기권 트랜잭션에 서명하면 서비스 제공자는 p 공개하고, 동시에 사용자의 새로운 VTXO를 활성화하는 동시에 서비스 제공자는 이전 VTXO를 회수할 수 있게 됩니다.

거래를 하지 않는 것은 두 단계 과정입니다.
- 사용자는 기권 거래에 서명하고 기존 VTXO를 기권 거래 출력으로 전송합니다. 이 출력의 지출 경로 중 하나는
p역상으로 하는 해시 락을 사용하고, 다른 지출 경로는 시간 락을 사용합니다(위 다이어그램의 중간에 있는Forfeit참조). - 서비스 제공자는 이제 서명된 기권 거래를 보유합니다. 사용자가 일방적으로 이전 VTXO를 온체인 으로 반환하려고 시도하면 서비스 제공자는 기권 거래를 브로드캐스트하고 프리이미지를 공개하여 자금을 청구할 수 있습니다.
서비스 제공자가 p 값을 공개하지 않을 경우, 사용자의 비트코인은 안전하게 유지됩니다. 사용자는 기존 VTXO에 대한 온체인 출금 작업을 시작할 수 있으며, 이 경우 다음 두 가지 결과 중 하나가 발생합니다.
- 서비스 제공업체는 아무런 조치를 취하지 않았고, 시간 제한이 해제된 후 사용자들은 비트코인을 되찾았습니다.
- 서비스 제공자는 "청구 포기 거래"(즉, 위 다이어그램 중앙에 있는
Forfeit claim거래)를 브로드캐스트하여 온체인p공개합니다. 그러면 사용자는p사용하여 새로운 VTXO를 활성화합니다.
어느 경우든 사용자는 비트코인을 잃지 않습니다.
위임된 새로 고침: 모바일 기기를 위한 새로운 모드
기본적으로 hArk의 리프레시는 여전히 자체 서명 방식으로 이루어집니다. 즉, 트랜잭션 트리의 모든 관련 트랜잭션에 직접 서명해야 합니다. 이렇게 미리 서명된 분기 트랜잭션은 일방향 출구 경로를 제공합니다. 서비스 제공자의 협조 없이 VTXO를 온체인 에 상장해야 하는 경우, 트랜잭션 트리의 루트에서 현재 리프까지 트랜잭션 체인을 브로드캐스트할 수 있습니다. 이는 누구도 완전히 신뢰하지 않는 가장 강력한 보안 모델이지만, 라운드 진행 중에 온라인 상태를 유지하고 서명에 참여해야 합니다. 라운드 진행 중에 안정적으로 절전 모드에서 깨어날 수 없는 모바일 운영 체제의 경우, hArk는 위임 리프레시 기능을 제공합니다.
위임 모드에서는 공동 서명자 그룹이 라운드 중에 사용자의 브랜치 트랜잭션에 미리 서명합니다. 사용자의 지갑이 온라인 상태가 되면, 서비스 제공자는 완전히 서명된 이 브랜치 트랜잭션을 수집하여 사용자에게 동일한 단방향 출금 경로(자체 서명 모드와 동일)를 제공하고 기존 VTXO는 소멸시킵니다. 그런 다음 서비스 제공자는 프리이미지를 공개하여 트랜잭션 트리에서 새로운 VTXO를 활성화합니다.

사용자의 VTXO를 탈취하려면 모든 서명자가 공모해야 합니다. 서명자가 많을수록 탈취는 더욱 어려워집니다. 또한, 서명자는 각 라운드가 끝날 때마다 서명 키를 자동으로 삭제하여 전방 보안을 제공합니다. 서명자가 라운드 도중에는 정상적으로 작동하다가 나중에 보안이 손상되더라도 키 삭제를 통해 해당 라운드에서 생성된 VTXO는 안전하게 유지됩니다. 라운드 동안 적어도 한 명의 서명자 소프트웨어가 정상적으로 작동하는 한, 공모는 불가능합니다.
이 두 가지 새로 고침 모드는 상호 배타적이지 않습니다. 모든 지갑 애플리케이션은 연결 상태에 따라 적절한 모드를 사용하여 두 모드를 동시에 제공할 수 있습니다. 또는 여러 기기에 설치된 지갑의 경우 데스크톱 클라이언트가 모든 새로 고침을 처리하고 모바일 기기에서의 새로 고침은 비상시를 대비한 메커니즘으로 사용할 수 있습니다. 또한 새로 고침을 위임한 사용자는 나중에 언제든지 수동으로 새로 고침에 서명하여 완전히 신뢰할 수 없는 모드로 되돌아갈 수 있습니다.
단, 현재로서는 서비스 제공업체 자체만이 공동 서명자로 참여할 수 있다는 점을 유의해 주시기 바랍니다. 메인넷 출시 후, 다른 주체들도 공동 서명에 참여할 수 있도록 하는 소프트웨어 개발이 최우선 과제 중 하나입니다.
제한 조항으로 가는 디딤돌
기존의 대부분의 비트코인 제약 조건 제안은 사전 서명된 거래를 요구하지 않고도 Ark의 트리 구조를 적용할 수 있도록 합니다. 사용자는 현재의 자체 서명 갱신 모델의 신뢰성 유지와 위임 서명 모델의 비동기적 편의성이라는 두 가지 장점을 모두 누릴 수 있습니다. 사용자는 기권 거래를 완료하기 위해 주기적으로 온라인 상태로 돌아와야 하지만, 라운드 기반 자금 조달 거래를 구성하는 동안에는 온라인 상태를 유지할 필요가 없습니다.
hArk 설계의 가장 큰 장점은 제한된 기간 기능을 지원하는 Ark 버전으로 거의 완벽하게 변환될 수 있다는 점입니다. 해시 락을 사용하지 않는 거래 메커니즘, 트리 구조, 라운드 기반 흐름 등 모든 기본 기능을 그대로 유지할 수 있습니다. 따라서 향후 비트코인이 제한된 기간 기능을 지원하게 된다면(꿈같은 이야기죠), hArk에서 제한된 기간 버전으로의 마이그레이션은 기존 통합업체와 사용자에게 최소한의 혼란만 주면서 원활하게 이루어질 것입니다.
Bark에서 이미 이용 가능합니다.
hArk는 이미 Bark에 구현되어 있습니다. Signet에서 사용해 보세요 . 또한, Second의 새로운 소식이 나오는 즉시 받아보시려면 뉴스레터 를 구독하세요 .
(위에)




