블록체인허브 (blockchainhub.kr) - 블록체인 포털
홈 > 포럼 > 오리지날 Bitcoin 이야기
포럼포럼   오리지날 Bitcoin 이야기 Original Bitcoin인 비트코인SV(BSV) 관련 Topic들을 다룹니다. website twitter twitter

[BSV] BitcoinSV #4 Transaction with multiple inputs by 남정수

안녕하세요. 남정수입니다.

이번 화부터 제가 직접 공유해 드리기로 하였습니다. 

자리를 마련해 주신 오리지날님과 관심가져주시는 모든분들 감사드립니다.

원문: https://medium.com/@namjungsoo/bitcoinsv-4-%EB%8B%A4%EC%A4%91-%EC%9E%85%EB%A0%A5-transaction-a8f362768de

이전 글 BitcoinSV #3 Broadcast raw transaction에서는 input이 1개, output도 1개인 transaction을 만들어서 broadcast해 보았다.

우리는 이제 아래와 같은 2개의 UTXO를 사용하여 제3의 address(mzEq7c3PqB7CfN44GWnwfLMKf4b2v3fV1S)로 0.4 BSV를 보낼것이다.

private key=L2W61zaHcr1JYSgWSESLrPYZKNg6ZLGXNZqhEQW3rTsGWoC5bbgV
address=mxXdRHAp8Zy61NuMUcrp8KFDi5TjFFVA7r
https://testnet.bitcoincloud.net/address/mxXdRHAp8Zy61NuMUcrp8KFDi5TjFFVA7r
https://testnet.bitcoincloud.net/tx/e6dd19d92b53a24bd66875991bea0653fe633fc6fed79756eb07154c3cff8d37
Index: 0
Balance: 0.37 BSV
private key=KwXoptHgPq8Zhxi1uGS5C5fajkoTyVRoadLXPTRGzJzvd8v1m6cK
address=n1pGzmE3fQ11WUVKVsEdFmaVoNUofxsYXZ
https://testnet.bitcoincloud.net/address/n1pGzmE3fQ11WUVKVsEdFmaVoNUofxsYXZ
https://testnet.bitcoincloud.net/tx/118ecf191f32afef952fedf03d3be6b1b0fb110ae96e64ea3ab5a3acab56dc26
Index: 1
Balance: 0.1 BSV

이제 코드를 작성하자. utxos에 복수개의 UTXO를 넣고, privateKeySet에도 UTXO의 갯수만큼 private key를 넣는다.

거스름돈은 우리는 0.37 BSV 전체를 사용하고, 0.1 BSV UTXO에서는 0.03만 사용할 것이므로 2번째 address(n1pGzmE3fQ11WUVKVsEdFmaVoNUofxsYXZ)로 보내자.

const bsv = require('bsv')
const Transaction = bsv.Transaction
const Script = bsv.Script

// utxo 정보를 정확하게 입력
const utxos = [{
address: 'mxXdRHAp8Zy61NuMUcrp8KFDi5TjFFVA7r',
txId: 'e6dd19d92b53a24bd66875991bea0653fe633fc6fed79756eb07154c3cff8d37',
outputIndex: 0,
script: Script.buildPublicKeyHashOut('mxXdRHAp8Zy61NuMUcrp8KFDi5TjFFVA7r').toString(),
satoshis: 37000000
}, {
address: 'n1pGzmE3fQ11WUVKVsEdFmaVoNUofxsYXZ',
txId: '118ecf191f32afef952fedf03d3be6b1b0fb110ae96e64ea3ab5a3acab56dc26',
outputIndex: 1,
script: Script.buildPublicKeyHashOut('n1pGzmE3fQ11WUVKVsEdFmaVoNUofxsYXZ').toString(),
satoshis: 10000000
}]

const privateKeySet = ['L2W61zaHcr1JYSgWSESLrPYZKNg6ZLGXNZqhEQW3rTsGWoC5bbgV', 'KwXoptHgPq8Zhxi1uGS5C5fajkoTyVRoadLXPTRGzJzvd8v1m6cK']

const transaction = new Transaction()
.from(utxos)
.to('mzEq7c3PqB7CfN44GWnwfLMKf4b2v3fV1S', 40000000)
.fee(400)
.change('n1pGzmE3fQ11WUVKVsEdFmaVoNUofxsYXZ')
.sign(privateKeySet)

const str = transaction.serialize(true)
console.log(str)

실행하면 다음과 같은 raw transaction을 얻는다.

0100000002378dff3c4c1507eb5697d7fec63f63fe5306ea1b997568d64ba2532bd919dde6000000006a47304402203ab6f17f2e80c719e7c7242ce8552acb05698d9f555bc121ab884e17d069f27a0220768fed66445ff9990822d478e3f88070556099313721fa6a84a1e87c8eae0bb841210323c00f7a0593a8f99adfb6b60568967ea920d1af497f470f33f49584fe60b37affffffff26dc56abaca3b53aea646ee90a11fbb0b1e63b3df0ed2f95efaf321f19cf8e11010000006b483045022100f2ac7d0ef5fea1bfa3164acc9209b9147ad3bae07b7dc30585122daceb75f82d022039fd045b6993e5fadddf23b4405b28ee8ba254f889e74450bd82fec555dfc3fe4121037dbd5f2cfed101ccc1d33369f082df43ed9fefdc382c33593c65868f0e60db4bffffffff02005a6202000000001976a914cd5dbda5c6eee8bea9d0de85726e0f4af1c5195b88ac30ce6a00000000001976a914dea932d5abd3a67331eea5297f95d0ca3ce7175188ac00000000

이제 decoderawtransaction API를 호출하여 검증하자.

bitcoin-cli -testnet decoderawtransaction 0100000002378dff3c4c1507eb5697d7fec63f63fe5306ea1b997568d64ba2532bd919dde6000000006a47304402203ab6f17f2e80c719e7c7242ce8552acb05698d9f555bc121ab884e17d069f27a0220768fed66445ff9990822d478e3f88070556099313721fa6a84a1e87c8eae0bb841210323c00f7a0593a8f99adfb6b60568967ea920d1af497f470f33f49584fe60b37affffffff26dc56abaca3b53aea646ee90a11fbb0b1e63b3df0ed2f95efaf321f19cf8e11010000006b483045022100f2ac7d0ef5fea1bfa3164acc9209b9147ad3bae07b7dc30585122daceb75f82d022039fd045b6993e5fadddf23b4405b28ee8ba254f889e74450bd82fec555dfc3fe4121037dbd5f2cfed101ccc1d33369f082df43ed9fefdc382c33593c65868f0e60db4bffffffff02005a6202000000001976a914cd5dbda5c6eee8bea9d0de85726e0f4af1c5195b88ac30ce6a00000000001976a914dea932d5abd3a67331eea5297f95d0ca3ce7175188ac00000000
{
"txid": "97d00f16957e342addfe6796287fe8b2754d1e0c929cfaf2e46daec1101ffa3d",
"hash": "97d00f16957e342addfe6796287fe8b2754d1e0c929cfaf2e46daec1101ffa3d",
"size": 373,
"version": 1,
"locktime": 0,
"vin": [
{
"txid": "e6dd19d92b53a24bd66875991bea0653fe633fc6fed79756eb07154c3cff8d37",
"vout": 0,
"scriptSig": {
"asm": "304402203ab6f17f2e80c719e7c7242ce8552acb05698d9f555bc121ab884e17d069f27a0220768fed66445ff9990822d478e3f88070556099313721fa6a84a1e87c8eae0bb8[ALL|FORKID] 0323c00f7a0593a8f99adfb6b60568967ea920d1af497f470f33f49584fe60b37a",
"hex": "47304402203ab6f17f2e80c719e7c7242ce8552acb05698d9f555bc121ab884e17d069f27a0220768fed66445ff9990822d478e3f88070556099313721fa6a84a1e87c8eae0bb841210323c00f7a0593a8f99adfb6b60568967ea920d1af497f470f33f49584fe60b37a"
},
"sequence": 4294967295
},
{
"txid": "118ecf191f32afef952fedf03d3be6b1b0fb110ae96e64ea3ab5a3acab56dc26",
"vout": 1,
"scriptSig": {
"asm": "3045022100f2ac7d0ef5fea1bfa3164acc9209b9147ad3bae07b7dc30585122daceb75f82d022039fd045b6993e5fadddf23b4405b28ee8ba254f889e74450bd82fec555dfc3fe[ALL|FORKID] 037dbd5f2cfed101ccc1d33369f082df43ed9fefdc382c33593c65868f0e60db4b",
"hex": "483045022100f2ac7d0ef5fea1bfa3164acc9209b9147ad3bae07b7dc30585122daceb75f82d022039fd045b6993e5fadddf23b4405b28ee8ba254f889e74450bd82fec555dfc3fe4121037dbd5f2cfed101ccc1d33369f082df43ed9fefdc382c33593c65868f0e60db4b"
},
"sequence": 4294967295
}
],
"vout": [
{
"value": 0.40000000,
"n": 0,
"scriptPubKey": {
"asm": "OP_DUP OP_HASH160 cd5dbda5c6eee8bea9d0de85726e0f4af1c5195b OP_EQUALVERIFY OP_CHECKSIG",
"hex": "76a914cd5dbda5c6eee8bea9d0de85726e0f4af1c5195b88ac",
"reqSigs": 1,
"type": "pubkeyhash",
"addresses": [
"bchtest:qrx4m0d9cmhw304f6r0g2unwpa90r3getvqtz0y9k2"
]
}
},
{
"value": 0.06999600,
"n": 1,
"scriptPubKey": {
"asm": "OP_DUP OP_HASH160 dea932d5abd3a67331eea5297f95d0ca3ce71751 OP_EQUALVERIFY OP_CHECKSIG",
"hex": "76a914dea932d5abd3a67331eea5297f95d0ca3ce7175188ac",
"reqSigs": 1,
"type": "pubkeyhash",
"addresses": [
"bchtest:qr02jvk440f6vue3a6jjjlu46r9reech2yg0meg5rh"
]
}
}
]
}

검증이 완료되었으면 broadcast 하자. 최종 transaction hash는 97d00f16957e342addfe6796287fe8b2754d1e0c929cfaf2e46daec1101ffa3d이다.

bitcoin-cli -testnet sendrawtransaction 0100000002378dff3c4c1507eb5697d7fec63f63fe5306ea1b997568d64ba2532bd919dde6000000006a47304402203ab6f17f2e80c719e7c7242ce8552acb05698d9f555bc121ab884e17d069f27a0220768fed66445ff9990822d478e3f88070556099313721fa6a84a1e87c8eae0bb841210323c00f7a0593a8f99adfb6b60568967ea920d1af497f470f33f49584fe60b37affffffff26dc56abaca3b53aea646ee90a11fbb0b1e63b3df0ed2f95efaf321f19cf8e11010000006b483045022100f2ac7d0ef5fea1bfa3164acc9209b9147ad3bae07b7dc30585122daceb75f82d022039fd045b6993e5fadddf23b4405b28ee8ba254f889e74450bd82fec555dfc3fe4121037dbd5f2cfed101ccc1d33369f082df43ed9fefdc382c33593c65868f0e60db4bffffffff02005a6202000000001976a914cd5dbda5c6eee8bea9d0de85726e0f4af1c5195b88ac30ce6a00000000001976a914dea932d5abd3a67331eea5297f95d0ca3ce7175188ac00000000
97d00f16957e342addfe6796287fe8b2754d1e0c929cfaf2e46daec1101ffa3d

이제 아래의 주소에서 transaction hash로 확인을 해보자. https://testnet.bitcoincloud.net/tx/97d00f16957e342addfe6796287fe8b2754d1e0c929cfaf2e46daec1101ffa3d

최초에는 unconfirmed 상태이다.

채굴 되기를 기다리면 confirmed가 된다.

최종 confirm이후에 거스름돈 UTXO 확인할 수 있다.


추천&비추천 정책안내

, , , , , , ,

신고
  • 카카오톡으로 보내기
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기
  • 카카오스토리로 보내기
  • 네이버밴드로 보내기
  • 네이버로 보내기
  • 텀블러로 보내기
  • 핀터레스트로 보내기

Comments

오리지날 19-11-05 21:40 0   0
남정수 개발자님 감사합니다! 앞으로도 개발 관련 유익한 글들 많이 올려주세요^^
오리지날 19-11-05 21:41 0   0
참고로 미디엄 블로그에서 글을 복사해다 붙이면 흐릿한 이미지 하나가 중복으로 붙더라구요. 작성하신 다음 수정이 한번 필요합니다~
오미재박 19-11-05 21:43 0   0
좋은 글 공유 감사합니다~ 개발하시는 분들에게 많은 도움이 될 것 같네요.
Kkkkk 19-11-07 00:16 0   0
가즈아~~~~
편한밤되세요.~~^:^~~♡
kane1006 19-11-09 10:28 0   0
감사합니다

축하합니다! 행운의 2 HUB가 적립되었습니다 ^.^


[번역] 비트코인 P2P 거래로의 회귀, 핸드캐시와 머니버튼의 공동 성명서 62

@apagut 의 허락을 득하여 번역후 게시합니다. 이해를 돕기 위한 과장된 의역이 있을 수 있습니다. 오역에 대해서는 의견 부탁드립니다.원글 : https://medium.com/@handcash/bringing-back-peer-to-peer-to-bitcoin-a-joint-announcement-...
| 67 | 2020.04.08

[BSV] 코인긱 런던 컨퍼런스에서 반드시 봐야 할 8가지 발표 77

다가오는 BSV 최대 행사인 코인긱 런던 컨퍼런스 관련 기사를 구글 번역한 글입니다. 어색한 부분을 일부 수정하였지만 여전히 어색할 수 있으니 원문 참조도 부탁드립니다.======================코인긱(CoinGeek) 런던 컨퍼런스에서 반드시 봐야 할 8가지 발표CoinGeek London...
| 77 | 2020.02.12

[BSV] 비트코인의 킬러 앱 : Tokenized 84

비트코인의 오리지널 프로토콜이 지난 2월 4일 제네시스 업그레이드를 통해 회복되고 고정(Set in Stone)되었습니다.이번 마지막 프로토콜 하드포크를 통해 비트코인의 확장성, 안정성, 투명성이 완성되었습니다.이제 지켜볼 것은 비지니스와 실사용 사례들의 유입입니다.미들맨 서비스의 고비용/비효율성을 P2...
| 100 | 2020.02.08

[BSV] ‘반특허주의(anti-patents)’ 입장이 비즈니스적으로 안좋은 이유 24

***본 내용은해외기사(칼럼)이며, 중요 내용을 번역 및 발췌하였습니다. 원문 기사는 출처 링크를 통해서 참고해주시기 바랍니다*** 특허(Patents)는 지적 재산 (Intellectual property, 이하IP)의 한 형태로, 한 개인의 발명이 다른 개인 및/또는 단체에 의해 허락없이 복사, 사용...
| 35 | 2020.02.08

[BSV] 제네시스 업그레이드는 비트코인 금융 시작을 알리는 신호탄이 될 것인가? 36

2020년 2월 4일비트코인SV 네트워크는제네시스 업그레이드를 통해 코드의 포크 업그레이드가 되었다.2009년 8월 비트코인 백서에 기록된 오리지널 비트코인로 되돌리는 "프로토콜 복구 변경" 을 포함할 계획이다.이번 업그레이드는 기존 비트코인 프로토콜을 복원해 안정적으로 유지하고 블록에 설정할 수 있는 ...
| 44 | 2020.02.05

[BSV] 제네시스 업그레이드 11시간 전 57

비트코인(BSV) 블록 높이 620538에서 활성화되는 제네시스 업그레이드.시간은 대략 2020년 2월 4일(화) 오전 약 10시 30분 경이지만 블록 생성 속도에 따라 차이가 날 수 있습니다.카운트다운은 여기서 확인하시기 바랍니다.https://sv.coin.dance/참고로 하드포크 시 제네시스 코인...
| 67 | 2020.02.03

[BSV] 크레이그 라이트, 831건의 블록체인 특허 출원 22

크레이그 라이트는 이미 200개의 블록 체인 특허를 보유하고 있으며, 6000개의 블록 체인 특허를 확보할 계획이다.라이트는 최근에 최초 비트코인 코드 특허 출원을 신청했다. 그러나 그것은 암호화를 둘러싼 지적 재산권을 통제하기 위한 오랜 싸움에서 시작에 불과하다.당신이 크레이그 라이트가 비트코인 개발...
| 28 | 2020.02.03

[BSV] 2020년 2월 4일 제네시스 하드포크로 회복되는 오리지널 비트코인 프로토콜 65

비트코인의 원래 디자인은 2020년 2월 4일 비트코인SV (BSV) 네트워크의 하드포크로 돌아옵니다. 이 하드포크는 비트코인 프로토콜을 비트코인의 제작자 사토시 나카모토(일명 Craig S. Wright 박사)가 2009년에 내놓은 원본과 최대한 가깝게 복원하기 때문에 코드 이름이 "Genesis(창세...
| 68 | 2020.01.22

[BSV] 전세계적으로 빠르게 증가하는 BSV 벤처 및 프로젝트 64

비트코인SV [BSV] 생태계는 전 세계적으로 약 400개의 벤처 및 프로젝트로 빠르게 성장했습니다.2020년 1월 19일 현재BSV / DEVS,Agora.icu, GitHub 및 기타 리소스에서 정보를 수집하여 정기적으로 업데이트 되는 차트 (BSV 프로젝트 Peergame에서 준비)에 따르면394개...
| 67 | 2020.01.22

[BSV] 포럼에서 실시간 소액 팁 전송 기능이 활성화되었습니다! 61

저희 포럼을 관심있게 봐주신 분들은 글 하단 부에 특이한 버튼이 달려있는 것을 보셨을거 같습니다.바로 이렇게 생긴 버튼입니다.진성 BSV 지지자분들은 많이 아시겠지만, 이것은 바로머니버튼이라는 것입니다.*머니버튼이 무엇인지, 어떻게 사용할 수 있는지에 대해서는 다빈치라이프님께서 정리해주신 글이 있는데 참...
| 74 | 2020.01.20

[BSV] 궁극적인 세계 단일 프로토콜은 비트코인SV 프로토콜 - 백종찬 인터뷰 57

마이크로페이먼트, 프로토콜로서의 블록체인, 중립데이터베이스로서의 블록체인에 관한 백종찬씨의 인터뷰 기사 중 일부를 발췌하여 공유드립니다. 전체 기사는 링크를 참고하시기 바랍니다."현재 광고 기반의 무료 서비스 형태의 웹이 만들어진 건 철저히 마이크로 페이먼트가 없었기 때문입니다. 카카오톡을 보내거나 페이...
| 62 | 2020.01.13

[BSV 밋업영상] 버스크온 (뮤직플랫폼 on 비트코인) 소개 47

=====================================아래는 함께 저희 포럼을 운영해주실 분들이 자발적으로 만들어 운영중이신 커뮤니티입니다. 관심 있는 분들은 참여하셔서 많은 정보 나누시기 바랍니다.한국 최대 BSV 투자자 오픈카톡방(비교적 자유로운 분위기) :https://open.kaka...
| 55 | 2020.01.11

[BSV 밋업영상] 개발자가 바라본 BSV by Joon 38

=====================================아래는 함께 저희 포럼을 운영해주실 분들이 자발적으로 만들어 운영중이신 커뮤니티입니다. 관심 있는 분들은 참여하셔서 많은 정보 나누시기 바랍니다.한국 최대 BSV 투자자 오픈카톡방(비교적 자유로운 분위기) :https://open.kaka...
| 43 | 2020.01.11

[BSV 밋업영상] 메타넷의 이해 by Kyle 35

=====================================아래는 함께 저희 포럼을 운영해주실 분들이 자발적으로 만들어 운영중이신 커뮤니티입니다. 관심 있는 분들은 참여하셔서 많은 정보 나누시기 바랍니다.한국 최대 BSV 투자자 오픈카톡방(비교적 자유로운 분위기) :https://open.kaka...
| 37 | 2020.01.11

[BSV 밋업영상] 비트코인 개론 by 백종찬(Jeff Paik) 9

=====================================아래는 함께 저희 포럼을 운영해주실 분들이 자발적으로 만들어 운영중이신 커뮤니티입니다. 관심 있는 분들은 참여하셔서 많은 정보 나누시기 바랍니다.한국 최대 BSV 투자자 오픈카톡방(비교적 자유로운 분위기) :https://open.kaka...
| 10 | 2020.01.11

비트코인SV 2nd 밋업 후기 (2019.12.16) 15

작년 12월 16일 월요일, 이태원 바토스에서 두번째 비트코인SV 서울 밋업이 있었습니다. 많이 늦었지만 간략히 당시 현장의 기억을 남기고자 합니다.밋업은 Bitcoin Association 및 CoinGeek의 후원과 포럼 Co-운영자이신 다빈치라이프님 및 동생분인 댄님의 오거나이징으로 매우 훌륭하게 ...
| 15 | 2020.01.11

프로토콜 비교 65

"기존의 비자 신용카드 네트워크는 전 세계적으로 하루에 약 1,500만 건의 인터넷 구매를 처리합니다. 비트코인은 기존 하드웨어를 사용하여 그보다 훨씬 더 저렴한 비용으로 더 많은 건의 거래를 처리할 수 있습니다. 비트코인은 거래 처리량의 한계에 도달할 일이 없습니다."– Satoshi Nakamoto(...
| 78 | 2019.12.14

프로토콜 대 티커심볼 41

“비트코인의 본질은 버전 0.1이 출시된 이후에 비트코인의 핵심 설계가 영원히 바뀌지 않는다는 것입니다. ” – Satoshi Nakamoto - 비트코인 백서비트코인이 금융결제 및 블록체인 애플리케이션을 위한 안정적인 시스템으로 작동하기 위해서는 프로토콜이 변경되면 안됩니다. 기본 프로토콜을 계속해서 ...
| 50 | 2019.12.14

비트코인의 역사 33

다음은 간결하게 정리된 비트코인의 역사입니다:*블록 크기 확장 전쟁 *– 비트코인 개발자 커뮤니티는 수 년간 비트코인을 더 큰 블록으로 확장해야 하는지 아니면 소규모 블록으로 유지해야 하는지 합의하지 못했습니다. BTC 티커심볼을 사용하는 비트코인 프로젝트 진영은 1MB의 매우 작은 블록의 크기를 유지했...
| 44 | 2019.12.14

[BSV] BitcoinSV #6 OP_RETURN data by 남정수 19

안녕하세요. 남정수입니다.자리를 마련해 주신 오리지날님과 관심가져주시는 모든분들 감사드립니다.원문: https://medium.com/@namjungsoo/bitcoinsv-6-op-return-data-5fa38c32a7c6OP_RETURN은 Bitcoin Script의 OP code중의 하나이며, t...
| 22 | 2019.12.02