검수요청.png검수요청.png

해시락

위키원
이동: 둘러보기, 검색

해시락(HashLock)은 바이트의 스트링 배열인 바이트스트링(Bytestring)과 다양한 길이를 가진 데이터를 고정된 길이를 가진 데이터로 매핑하는 해시(hash)로 유한개의 순서가 있는 사물의 열거인 튜플(tuple)인데, 해시가 먼저 만들어지고 1비트이고 일회성 서명으로 해당 바이트스트링의 게시가 이루어져야만 출력이 되도록 만든 장애물이다. 즉, 암호화폐에서 특정한 해시값이 제공되고 서명이 되어야만 계약 내용대로 토큰을 전송하도록 장애물을 만드는 기술이다.

개요[편집]

해시락은 일반에게 공개되면 같은 키를 가지고 다른 해시락의 보안을 해제할 수 있는 특성이 있어 이런 특성을 활용하여 동일한 해시락으로 출력할 수 없는 상태에서 키를 제공하면 동시에 다중 출력이 가능하게 된다. 과거에 해시락은 독립적으로 사용되어 왔으나 현재는 해시타임락 계약과 같은 시스템의 일부로 가장 일반적으로 사용되고 있다.

비트코인 해시락의 특징[편집]

해시락을 생성할 때 패스워드나 비밀 문구와 같은 사전이미지(preimage)를 만들다. 해시락을 사용하는 모든 사람은 사전이미지를 가지며 사전이미지를 가지면 해시락을 풀어 원하는 금액을 송금할 수 있으므로 사전이미지는 보안을 위해 사용할 수 없도록 렌더링한다. 이러한 이유로, 해시락에 의해 보호되는 출력물 역시 서명에 의해 보호되어 정확한 사전이미지와 적절한 서명을 동시에 해야 자금을 인출할 수 있도록 한다. 미리 사전이미지를 가지고 있는 사람들이 모인 자금를 쓰기 위해 이를 드러낼 경우, 동일한 해시락으로 암호화된 출력물을 가지고 있는 다른 모든 사람들은 블록체인 상의 첫 번째 사람의 거래로부터 그들이 필요로 하는 사전이미지(preimage)를 얻을 수 있다.[1]

해시락 생성에 필요한 스크립트의 해시함수는 원래 비트코인 0.1 릴리즈의 일부였다. 2010년 12월, 비트코인의 옵코드(opcode)에 몇 가지 문제가 발견된 후, 개빈 안드레센(Gavin Andresen)은 IsStandard() 함수를 도입하여 이러한 해시함수와 기타 거의 사용되지 않는 옵코드(opcode)를 이용한 거래의 불이행으로 릴레이(Relay)와 마이닝(Mining)을 방지하였다. 옵코드(opcode)가 더 많은 감사를 수신하여 몇 년 동안 문제 없이 테스트넷에서 사용할 수 있게 된 후, 비트코인 코어 0.10.0(2015년 2월)은 P2SH(Pay to Script Hash) 거래에 대한 대부분의 IsStandard() 제한을 제거하여, 기본적으로 중계되고 채굴되는 거래에서 해시락을 다시 사용하기 시작했다.[1]

활용[편집]

  • 해시타임락 계약 : 해시락은 해시타임락 계약의 일부로 사용되며 라이트닝 네트워크(Lightning Network), 아토믹스왑(atomic swap) 등에서 사용된다.
  • 온체인 베팅(On-chain betting) : 어떤 사람(오라클이라 가정)은 여러 개의 사전이미지(preimage)와 그에 상응하는 해시를 생성한다. 사용자는 서명 및 해시락의 조합에 의해 보호되는 출력을 생성한 다음, 필요한 모든 서명을 서로에게 제공한다. 그 다음 오라클은 하나의 사전이미지를 공개하고 나머지 이미지를 삭제한다. 사용자들은 이미 가지고 있는 서명들과 함께 해당 사전 이미지를 삽입하고 상금을 받는 사용자. 단, 이 계획은 끝까지 오라클이 정직해야 한다. 하지만 피터 토드(Peter Todd)는 이 온체인 베팅 방법을 단순한 서명을 사용하는 것보다 효율이 떨어진다고 한 적 있다.[1]

각주[편집]

  1. 1.0 1.1 1.2 "HashLock", Bitcoin Wiki

참고자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 해시락 문서는 블록체인 기술에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.