이 페이지의 선택한 이전 버전과 현재 버전 사이의 차이점을 보여줍니다.
비트코인 [2012-08-27 10:54] lifthrasiir 비대칭 암호를 아예 안 쓰는 게 아니고 암호화 용으로 안 쓴다는 말이니까 조정 |
비트코인 [2012-09-23 05:52] (현재) lifthrasiir 오타 |
||
---|---|---|---|
줄 46: | 줄 46: | ||
따라서 어떤 주소가 얼마만큼의 비트코인을 가지고 있다는 얘기는 첫번째 형태의 거래로 처리될 수 있는 출력이 그만큼 많이 있다는 소리일 뿐이다. 두번째 형태의 거래를 쓰거나, 아니면 완전히 다른 형태의((예를 들어서 받는 쪽과 보내는 쪽이 모두 신뢰하는 제 3자의 서명을 함께 쓰는 [[에스크로]]라거나, 수학 문제를 풀어야만 받을 수 있는 출력이라거나(...), 그냥 아무나 받을 수 있는 출력이라거나 어쨌든 스크립트를 잘 짜면 별의별 것을 다 만들 수 있다. 자세한 내용은 비트코인 위키의 [[https://en.bitcoin.it/wiki/Script|스크립트]] 참고.)) 스크립트를 쓴다면 거래 주체를 추적하기는 훨씬 어려워진다(사실 주소만 써도 이미 어렵긴 하다). 비트코인에서 거래는 공개되어 있지만 거래 주체는 공개되어 있지 않다는 얘기는 여기서 유래한다. | 따라서 어떤 주소가 얼마만큼의 비트코인을 가지고 있다는 얘기는 첫번째 형태의 거래로 처리될 수 있는 출력이 그만큼 많이 있다는 소리일 뿐이다. 두번째 형태의 거래를 쓰거나, 아니면 완전히 다른 형태의((예를 들어서 받는 쪽과 보내는 쪽이 모두 신뢰하는 제 3자의 서명을 함께 쓰는 [[에스크로]]라거나, 수학 문제를 풀어야만 받을 수 있는 출력이라거나(...), 그냥 아무나 받을 수 있는 출력이라거나 어쨌든 스크립트를 잘 짜면 별의별 것을 다 만들 수 있다. 자세한 내용은 비트코인 위키의 [[https://en.bitcoin.it/wiki/Script|스크립트]] 참고.)) 스크립트를 쓴다면 거래 주체를 추적하기는 훨씬 어려워진다(사실 주소만 써도 이미 어렵긴 하다). 비트코인에서 거래는 공개되어 있지만 거래 주체는 공개되어 있지 않다는 얘기는 여기서 유래한다. | ||
- | 거래의 입력에 들어 있는 비트코인의 합은 거래의 출력의 합보다 작을 수 없다(당연히). 그리고 기존 출력에 있는 비트코인의 일부만을 소비하고자 할 때도 남은 잔돈에 대응하는 출력이 있어야 한다. 대부분의 비트코인 클라이언트는 이 경우 새 공개키·비밀키를 생성해서 그 주소에 잔돈을 보내고, 나중에 그 잔돈이 필요할 때 해당 비밀키를 사용한다. (자기 자신한테 보낼 수도 있지만 이러면 잔돈을 사용한다는 것이 노출되어서 보통 그렇게 안 한다.) 그래서 겉으로 보이는 것과는 달리, 비트코인 사용하는 생각보다 많은 주소를 동시에 사용할 수도 있다. 사용하고 있는 공개키·비밀키들은 **지갑**(wallet)이라 불리는 파일에 기록되며, 이 지갑 파일이 사라지면 잔돈의 주소조차 잃어버릴 수 있으니 매우 조심해야 한다. | + | 거래의 입력에 들어 있는 비트코인의 합은 거래의 출력의 합보다 작을 수 없다(당연히). 그리고 기존 출력에 있는 비트코인의 일부만을 소비하고자 할 때도 남은 잔돈에 대응하는 출력이 있어야 한다. 대부분의 비트코인 클라이언트는 이 경우 새 공개키·비밀키를 생성해서 그 주소에 잔돈을 보내고, 나중에 그 잔돈이 필요할 때 해당 비밀키를 사용한다. (자기 자신한테 보낼 수도 있지만 이러면 잔돈을 사용한다는 것이 노출되어서 보통 그렇게 안 한다.) 그래서 겉으로 보이는 것과는 달리, 실제로는 생각보다 많은 주소를 동시에 사용할 수도 있다. 사용하고 있는 공개키·비밀키들은 **지갑**(wallet)이라 불리는 파일에 기록되며, 이 지갑 파일이 사라지면 잔돈의 주소조차 잃어버릴 수 있으니 매우 조심해야 한다. |
거래의 입출력 외에도 거래에는 거래가 생성된 시각과, 그 거래가 블록에 실제로 포함될 때까지 기다려야 하는 시간 또는 블록 번호(lock time), 거래를 생성한 뒤에 서명을 바꾸지 않고 거래를 갱신하기 위한((거래가 블록에 들어가기 전에 당사자들끼리 협상을 할 수 있게 하려는 것이다. 물론 블록에 들어갈 때는 이 필드는 최대값으로 바뀐다.)) 순열 번호(sequence number) 등이 함께 있다. 이들은 입출력 스크립트와 함께 다양한 형태의 거래를 구현하는데 쓸 수 있다. | 거래의 입출력 외에도 거래에는 거래가 생성된 시각과, 그 거래가 블록에 실제로 포함될 때까지 기다려야 하는 시간 또는 블록 번호(lock time), 거래를 생성한 뒤에 서명을 바꾸지 않고 거래를 갱신하기 위한((거래가 블록에 들어가기 전에 당사자들끼리 협상을 할 수 있게 하려는 것이다. 물론 블록에 들어갈 때는 이 필드는 최대값으로 바뀐다.)) 순열 번호(sequence number) 등이 함께 있다. 이들은 입출력 스크립트와 함께 다양한 형태의 거래를 구현하는데 쓸 수 있다. |