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

"타임락"의 두 판 사이의 차이

해시넷
이동: 둘러보기, 검색
(특징)
(특징)
4번째 줄: 4번째 줄:
 
특정 미래 시간 또는 블록 높이까지 일부 비트코인의 소비를 제한하는 원시적 스마트 계약이다. 타임락은 결제 채널과 해시타임락을 포함한 많은 비트코인 스마트 계야겡서 두드러진다. 또한 몇 달 또는 몇 년의 기간 동안 투자로 보유되는 비트코인을 잠그는데도 사용될 수 있다. 또한 수수료를 적게하며 신뢰할 수 없는 사전 합의된 수수료 가격 인상을 위해 사용된다.
 
특정 미래 시간 또는 블록 높이까지 일부 비트코인의 소비를 제한하는 원시적 스마트 계약이다. 타임락은 결제 채널과 해시타임락을 포함한 많은 비트코인 스마트 계야겡서 두드러진다. 또한 몇 달 또는 몇 년의 기간 동안 투자로 보유되는 비트코인을 잠그는데도 사용될 수 있다. 또한 수수료를 적게하며 신뢰할 수 없는 사전 합의된 수수료 가격 인상을 위해 사용된다.
  
== 특징 ==
+
== 구성 ==
 
* nLockTime
 
* nLockTime
**
+
** 원래 비트코인 구현의 일부인 nLockTime은 유효한 블록에 트랜잭션을 추가할 수 있는 가장 이른 시간을 지정하는 필드이다. 또한 비트코인 소프트 포크(Soft fork)로 nLockTime은 유효한 블록에 트랜잭션을 추가할 수 있는 최저 블록 높이를 대신 지정할 수 있다. 모든 트랜잭션에는 nLockTime 필드가 포함되지만 최근까지도 모든 지갑은 nLockTime을 0으로 설정하여 모든 블록에서 거래가 유효했음을 알리며 비트코인 0.11.0부터 시작해 최근 블록 높이로 설정된 nLockTime을 포함해 자동으로 생성되는 모든 정상 거래는 가설이 된 수수료의 수익성을 떨어뜨리는 방법으로, 다른 지갑들도 같은 방법으로 하는 것이 좋다. 모든 비트코인 거래의 약 20%는 2011년 초 ~ 현재 nLockTime 값을 0과 다르게 설정했다.
  
 
* CheckLockTimeVerify
 
* CheckLockTimeVerify
**
+
** 2015년 말, BIP67 소프트 포크(soft fork)는 NOP2 옵 코드(opcode)를 CheckLockTimeVerify(CLTV) 옵 코드(opcode)로 재정의하여(전체 트랜잭션이 아닌) 트랜적션 출력을 타임락으로 인코딩할 수 있도록 하였다. CLTV 옵 코드(opcode)가 호출되면 트랜잭션의 nLockTime이 CLTV 옵 코드(opcode)에 제공된 시간 매개 변수와 같거나 그 이상이 아니면 스크립트가 실패하게 된다. 거래는 nLockTime이 과거인 경우에만 유효한 블록에 포함되기 전에 CLTV 기반 타임락이 만료되었음을 보장한다. 또한 현재 CLTV는 스타일의 결제 채널에서 사용되고 있다.
 +
 
 +
* 상대잠금시간(Relative locktime)
 +
** 2010년 중반, BIP67/112/113 소프트 포크(soft fork)는 모든 트랜잭션 입력의 일부인 nSequence 필드의 일부 값에 합의한 의미를 부여하여 "상대적 잠금 시간(Relative locktime)"을 생성했다. 이를 통해 입력은 입력에 의해 소비되는 출력이 블록 체인의 블록에 포함되는 기간을 기준으로 블록에 추가할 수 있는 가장 이른 시간을 지정할 수 있었다.
  
 
* CheckSequenceVerify
 
* CheckSequenceVerify
**
+
** BIP68/112/113 소프트 포크(soft fork)의 일부에는 CLTV가 제공하는 절대잠금시간(absolute locktime)과 동일한 기능을 하는 CheckSequenceVerify(CSV) 옵 코드(opcode)가 포함되어 있다. CSV 옵 코드(opcode)를 호출할 때 트랜잭션의 nSequence가 CSV 옵 코드(opcode)에 제공된 매개 변수보다 더 많은 상대잠금시간(Relative locktime)이 경과되었음을 나타내지 않으면 스크립트가 실패하게 된다. 입력은 상대잠금시간이 만료된 경우에만 유효한 블록에 포함될 수 있으므로, 이는 거래가 유효한 블록에 포함되기 전에 CSV 기반 타임락이 만료되었음을 보장한다.
  
 
== 참고자료 ==
 
== 참고자료 ==

2019년 7월 8일 (월) 17:29 판

타임락(TimeLock)이란 거래의 유호성이 유지되는 시간을 정해두는 기술을 말한다.

개요

특정 미래 시간 또는 블록 높이까지 일부 비트코인의 소비를 제한하는 원시적 스마트 계약이다. 타임락은 결제 채널과 해시타임락을 포함한 많은 비트코인 스마트 계야겡서 두드러진다. 또한 몇 달 또는 몇 년의 기간 동안 투자로 보유되는 비트코인을 잠그는데도 사용될 수 있다. 또한 수수료를 적게하며 신뢰할 수 없는 사전 합의된 수수료 가격 인상을 위해 사용된다.

구성

  • nLockTime
    • 원래 비트코인 구현의 일부인 nLockTime은 유효한 블록에 트랜잭션을 추가할 수 있는 가장 이른 시간을 지정하는 필드이다. 또한 비트코인 소프트 포크(Soft fork)로 nLockTime은 유효한 블록에 트랜잭션을 추가할 수 있는 최저 블록 높이를 대신 지정할 수 있다. 모든 트랜잭션에는 nLockTime 필드가 포함되지만 최근까지도 모든 지갑은 nLockTime을 0으로 설정하여 모든 블록에서 거래가 유효했음을 알리며 비트코인 0.11.0부터 시작해 최근 블록 높이로 설정된 nLockTime을 포함해 자동으로 생성되는 모든 정상 거래는 가설이 된 수수료의 수익성을 떨어뜨리는 방법으로, 다른 지갑들도 같은 방법으로 하는 것이 좋다. 모든 비트코인 거래의 약 20%는 2011년 초 ~ 현재 nLockTime 값을 0과 다르게 설정했다.
  • CheckLockTimeVerify
    • 2015년 말, BIP67 소프트 포크(soft fork)는 NOP2 옵 코드(opcode)를 CheckLockTimeVerify(CLTV) 옵 코드(opcode)로 재정의하여(전체 트랜잭션이 아닌) 트랜적션 출력을 타임락으로 인코딩할 수 있도록 하였다. CLTV 옵 코드(opcode)가 호출되면 트랜잭션의 nLockTime이 CLTV 옵 코드(opcode)에 제공된 시간 매개 변수와 같거나 그 이상이 아니면 스크립트가 실패하게 된다. 거래는 nLockTime이 과거인 경우에만 유효한 블록에 포함되기 전에 CLTV 기반 타임락이 만료되었음을 보장한다. 또한 현재 CLTV는 스타일의 결제 채널에서 사용되고 있다.
  • 상대잠금시간(Relative locktime)
    • 2010년 중반, BIP67/112/113 소프트 포크(soft fork)는 모든 트랜잭션 입력의 일부인 nSequence 필드의 일부 값에 합의한 의미를 부여하여 "상대적 잠금 시간(Relative locktime)"을 생성했다. 이를 통해 입력은 입력에 의해 소비되는 출력이 블록 체인의 블록에 포함되는 기간을 기준으로 블록에 추가할 수 있는 가장 이른 시간을 지정할 수 있었다.
  • CheckSequenceVerify
    • BIP68/112/113 소프트 포크(soft fork)의 일부에는 CLTV가 제공하는 절대잠금시간(absolute locktime)과 동일한 기능을 하는 CheckSequenceVerify(CSV) 옵 코드(opcode)가 포함되어 있다. CSV 옵 코드(opcode)를 호출할 때 트랜잭션의 nSequence가 CSV 옵 코드(opcode)에 제공된 매개 변수보다 더 많은 상대잠금시간(Relative locktime)이 경과되었음을 나타내지 않으면 스크립트가 실패하게 된다. 입력은 상대잠금시간이 만료된 경우에만 유효한 블록에 포함될 수 있으므로, 이는 거래가 유효한 블록에 포함되기 전에 CSV 기반 타임락이 만료되었음을 보장한다.

참고자료

같이보기

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