잠금 스크립트 편집하기

이동: 둘러보기, 검색

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 아이디(ID)으로 기록되고, 다른 장점도 있습니다.

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
14번째 줄: 14번째 줄:
 
트랜잭션 출력 스크립트에서는 공개키 또는 [[해시]]를 담고 있으며, 상응하는 개인 키의 소유주만이 출력된 비트코인을 얻을 수 있다. 내부적으로 비트코인 프로토콜은 잠금 스크립트를 통해 비트코인의 수신자를 식별한다. 잠금 스크립트는 비트코인 주소와 관련이 없는 것으로 보이지만 공개 키의 해시를 표시하는데, 비트코인 주소는 주소를 사용할 네트워크와 공개 키의 해시를 식별하는 버전 [[바이트]](byte)로 구성되며, 잠금 스크립트 및 네트워크 식별자에서 비트코인 주소를 생성할 수 있다.<ref>knocte, 〈[https://programmingblockchain.gitbook.io/programmingblockchain/bitcoin_transfer/payment_script ScriptPubKey {# payment-script}]〉, 《깃허브》 </ref>
 
트랜잭션 출력 스크립트에서는 공개키 또는 [[해시]]를 담고 있으며, 상응하는 개인 키의 소유주만이 출력된 비트코인을 얻을 수 있다. 내부적으로 비트코인 프로토콜은 잠금 스크립트를 통해 비트코인의 수신자를 식별한다. 잠금 스크립트는 비트코인 주소와 관련이 없는 것으로 보이지만 공개 키의 해시를 표시하는데, 비트코인 주소는 주소를 사용할 네트워크와 공개 키의 해시를 식별하는 버전 [[바이트]](byte)로 구성되며, 잠금 스크립트 및 네트워크 식별자에서 비트코인 주소를 생성할 수 있다.<ref>knocte, 〈[https://programmingblockchain.gitbook.io/programmingblockchain/bitcoin_transfer/payment_script ScriptPubKey {# payment-script}]〉, 《깃허브》 </ref>
  
UTXO를 기본 단위로 거래하며 출력값에 잠금 스크립트, 입력값에 해제 스크립트가 들어가고, 출력값은 잠금 스크립트로 잠겨져 있으며 받는 사람은 자신의 [[서명]]이 들어간 해제 스크립트로 잠금장치를 풀어야 받은 돈을 사용할 수 있다.<ref>feyee95, 〈[https://steemit.com/kr/@feyee95/7-2 비트코인 스크립트 언어의 장점과 한계]〉, 《스팀잇》</ref> 잠금 스크립트는 UTXO를 소비하기 위한 요건을 명시하고 있고 그뿐 아니라 공개키 또는 비트코인 주소를 포함한다. 특정 지갑에서 소유하고 있는 비트코인 덩어리로 소비 요건에 비트코인 주소와 공개키도 포함하며, 해당 지갑 주소를 포함하는 잠금 스크립트를 풀 수 있는 조건을 달성하면 해당 지갑 주소에서 UTXO를 소비할 수 있다.<ref name="끙"></ref>
+
UTXO를 기본 단위로 거래하며 출력값에 잠금 스크립트, 입력값에 해제 스크립트가 들어가고, 출력값은 잠금 스크립트로 잠겨져 있으며 받는 사람은 자신의 [[서명]]이 들어간 해제 스크립트로 잠금장치를 풀어야 받은 돈을 사용할 수 있다.<ref>feyee95, 〈[https://steemit.com/kr/@feyee95/7-2 비트코인 스크립트 언어의 장점과 한계]〉, 《스팀》</ref> 잠금 스크립트는 UTXO를 소비하기 위한 요건을 명시하고 있고 그뿐 아니라 공개키 또는 비트코인 주소를 포함한다. 특정 지갑에서 소유하고 있는 비트코인 덩어리로 소비 요건에 비트코인 주소와 공개키도 포함하며, 해당 지갑 주소를 포함하는 잠금 스크립트를 풀 수 있는 조건을 달성하면 해당 지갑 주소에서 UTXO를 소비할 수 있다.<ref name="끙"></ref>
  
 
== 활용 ==
 
== 활용 ==
140번째 줄: 140번째 줄:
 
: 해시값을 [[개인 키]](private-key)로 서명하여 [[DER]] 형식으로 된 서명 값을 생성하고, 개인 키로부터 [[공개키]](public-key) 값을 생성하고, 관련 정보를 추가하여  해제 스크립트값을 완성한다. "unsigned raw Transaction data" 에 있던 첫 번째 잠금 스트립트 값을 해제 스트립트 값으로 바꾸고(replace), 스크립트 길이(script length) 값도 바꾼다. 그리고 마지막에 있던 4바이트-해시 유형인 01000000을 제거하면, 서명 값이 들어간 거래, 트랜잭션 데이터가 완성된다.
 
: 해시값을 [[개인 키]](private-key)로 서명하여 [[DER]] 형식으로 된 서명 값을 생성하고, 개인 키로부터 [[공개키]](public-key) 값을 생성하고, 관련 정보를 추가하여  해제 스크립트값을 완성한다. "unsigned raw Transaction data" 에 있던 첫 번째 잠금 스트립트 값을 해제 스트립트 값으로 바꾸고(replace), 스크립트 길이(script length) 값도 바꾼다. 그리고 마지막에 있던 4바이트-해시 유형인 01000000을 제거하면, 서명 값이 들어간 거래, 트랜잭션 데이터가 완성된다.
  
: ECC 암호 알고리즘에서는 공개키를 2개(X값, Y값) 사용하며, 서명 값도 2개(X값, Y값 ==> R 값, S값) 만들어지는데 특징으로 인해, 개인 키는 256-비트이지만, 서명 값과 공개키는 각각 512-비트라고 한다. 서명 값과 공개키 값은 해제 스크립트 안에 들어 있고, 공개키는 비압축(Uncompressed) 형식과 압축(Compressed) 형식 2가지로 표현할 수 있다. <ref>AEP코리아네트, 〈[http://a.to/193EW0M 비트코인 시스템에서 사용하는 암호 기술(II) - 거래 검증]〉, 《네이버 블로그》, 2017-12-21 </ref>
+
: ECC 암호 알고리즘에서는 공개키를 2개(X값, Y값) 사용하며, 서명 값도 2개(X값, Y값 ==> R 값, S값) 만들어지는데 특징으로 인해, 개인 키는 256-비트이지만, 서명 값과 공개키는 각각 512-비트라고 한다. 서명 값과 공개키 값은 해제 스크립트 안에 들어 있고, 공개키는 비압축(Uncompressed) 형식과 압축(Compressed) 형식 2가지로 표현할 수 있다. <ref>AEP코리아네트, 〈[http://a.to/193EW0M 비트코인 시스템에서 사용하는 암호 기술(II) - 거래 검증]〉, 《네이버》, 2017-12-21 </ref>
 
  Uncompressed Form :  04 <X> <Y>
 
  Uncompressed Form :  04 <X> <Y>
 
  Compressed Form    :  02 <X>  When <Y> is even
 
  Compressed Form    :  02 <X>  When <Y> is even

해시넷에서의 모든 기여는 다른 기여자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 사항은 해시넷:저작권 문서를 보세요). 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 | 편집 도움말 (새 창에서 열림)