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

[BSV] 비트코인의 지불 채널(Payment Channels) 과 스마트컨트랙트(Smart Contracts) by Wei …


  • 이 글은 nChain 의 수석연구원 Wei Zhang 의 아래 링크 글을 번역한 글입니다. (번역과 게시에 대한 원작자의 사전허락을 득하였습니다.) 제가 이해한 내용을 바탕으로 일반인들이 이해하기 쉽게 의역이 추가 되어 오역이 있을 수 있습니다. 오역과 의견에 대한 댓글 부탁드립니다.
  • 원글 : https://nchain.com/en/blog/payment-channels-smart-contracts-bitcoin/

사람들은 흔히 비트코인은 다른 블록체인들에 비해 스마트컨트랙트에 덜 적합하다는 오해를 하고 있다.

비트코인의 스크립트 언어는 가능한 원시적인 형태(OP 코드)로 설계되어 있다. 이러한 OP 코드들의 조합은 외부의 공격 가능한 요소를 의도적으로 최소화 함으로써 최고 수준의 보안성을 확보하게 된다. 하지만 이러한 방식이 때때로 사람들로 하여금 비트코인의 잠재력을 과소평가 하게 만든다. 사실 비트코인 스크립트 언어자체에만 주목 하다보면 이 비트코인 스크립트 언어가 가지고 있는 더 다양한 흥미로운 특징들을 간과하게 되는 위험이 뒤따르게 된다. 비트코인이 스마트컨트랙트에 어떻게 적합한지 이해하기 위해서는 비트코인 트랜잭션들간의 전체 흐름에서 각각의 단계가 어떤 역할로 작동하는지 가까이(자세히) 그리고 멀리서도 살펴볼 필요가 있다.

이렇게 살펴보다 보면 비트코인상에 스마트컨트랙트를 구현하는 많은 방식이 존재함을 분명히 알 수 있다. 대략적으로 다음과 같이 요약할 수 있겠다.

  1. 스마트 잠금(locking) 스크립트
  2. 스마트 서명해시 플래그(sighash flags)의 사용
  3. 지불 채널(payment channels)

이 글은 이 셋중 어떻게 지불 채널이 비트코인을 스마트컨트랙트에 적합하게 만드는지에 대한 내용을 담고있다.

지불채널이 무엇인가?

지불 채널이란 비트코인 트랜잭션을 통해 거래 당사자들이 소통하는 채널을 말한다. 모든 소통하는 정보는 비트코인 트랜잭션내에 표현된다.

몇가지 필수 사전 지식

각각의 비트코인 트랜잭션은 하나이상의 인풋(input)을 가질 수 있다. 그리고 각각의 인풋은 시퀀스 넘버(sequence number)라는 파라미터를 가지고 있다. 이 숫자는 해당 인풋이 최종본인지 아닌지를 나타내게 된다. 만약 이 값이 최대값(0xFFFFFFFF)이 아닐 경우 트랜잭션 검증 프로세스는 락타임(locktime) 값을 추가적으로 체크하게 된다. 이 락타임은 비트코인 트랜잭션에 정의되어 있으며 이 것은 해당 트랜잭션이 언제 유효(valid)하게 되는지를 나타낸다. 현재시간이 비트코인 트랜잭션에 설정된 락타임을 지나야 해당 트랜잭션이 유효하게 되는 것이다. 락타임을 미래로 설정함으로써 이 락타임의 기능을 유용하게 쓸 수 있다. ( 가장 먼 미래의 락타임으로 현재 시간으로 부터 9,500년 이후를 설정할 수 있을것이다.) 설정된 락타임이 도래하기 전에 더 높은 시퀀스 넘버를 가진 새로운 버젼의 트랜잭션이 만들어 진다면 더 낮은 시퀀스 넘버를 가진 트랜잭션은 무효화 되고 이전 버젼(낮은 시퀀스넘버) 트랜잭션의 동일한 인풋을 더 높은 시퀀스 넘버를 가진 트랜잭션이 사용(spend)할 수 있게 된다. (역자주: RBF(Replace by Fee)와 비슷하게 동작한다 생각 할 수 있으나 RBF는 유효한 이전 트랜잭션보다 높은 수수료로 이전의 유효한 트랜잭션을 앞질러서 블록에 담기게 할 수 있는기능이지만 locktime 과 시퀀스 넘버는 현재는 무효한 트랜잭션을 유효하게 바꿀 수 있다는 점에서 완전히 다른 목적으로 사용된다고 할 수 있다.)

이 기능은 오리지날 비트코인 프로토콜에 이미 있으며 나카모토 지불 채널(Nakamoto Payment Channel)이라 알려진 지불 채널 형태에 있어서 필수적인 요소라 할 수 있다.

비트코인상의 스마트 컨트랙트 기본형태

이제 설명할 스마트 컨트랙트 기본형태의 핵심 요소는 펀딩 트랜잭션(funding transaction)이라 불리는 것이다. 이 트랜잭션이 온체인에 기록되는즉시 지불 채널이 열리게 된다.

전형적인 펀딩 트랜잭션은 다음과 같이 되어있다.:

f6719aa8bd68686306f1898827ba16c7_1572928665_6717.png
 

그리고 이러한 펀딩 트랜잭션에 해당하는 환불 트랜잭션(refund transaction)이 또한 존재하게 된다. 이것은 락타임이 지난 후 초기 자금을 참가자에게 되돌려 주게 되는 트랜잭션이다.

f6719aa8bd68686306f1898827ba16c7_1572928692_197.png
 

일단 트랜잭션 TxIDo 가 블록체인에 기록되고 나면 펀딩 트랜잭션내에 명시된 계약내용대로 지불채널이 열리게 된 것이다. 이후 앨리스와 밥간에 일어나는 모든 소통은 비트코인 트랜잭션을 통하게 된다. 이러한 트랜잭션들은 비트코인 프로토콜과 호환되어야 하는것 뿐만 아니라 지불채널에 명시된 규칙을 따라야 한다. 이 소통을 위한 트랜잭션의 검증은 각 참여자에 의해 이루어 질 수 있다. 이과정을 간단히 요약하면 다음과 같다. :

1. 앨리스(Alice)는 그녀의 제안을 담은 트랜잭션을 그녀의 서명과 함께 밥(Bob)에게 전달한다.

2. 밥은 앨리스에게 받은 트랜잭션의 내용(제안)을 확인한다.

a. 만약 앨리스에게 받은 제안이 마음에 들 경우 밥은 그 트랜잭션에 자신의 서명을 더한 후 앨리스에게 다시 돌려준다. 이 행위는 지불 채널의 체크포인트(Check Point)가 된다.(가장 마지막으로 서로 합의한 트랜잭션)b. 만약 앨리스에게 받은 제안이 마음에 들지 않으면 밥이 원하는 제안 내용을 수정 한 트랜잭션을 작성하여 앨리스에게 다시 돌려준다.

3. 각각의 수정된 트랜잭션은 시퀀스 넘버를 1씩 더하여 간다.

4. 앨리스와 밥은 제안 내용을 확정짓기 전까지 1. ~ 3. 의 행위를 반복한다.

어떻게 이것이 스마트 컨트랙트 인가?

우리는 계약이 자동화 될 수 있고, 강제화될 수 있고, 무신뢰를 요구 할 수 있다면 그 계약은 스마트 하다고 말할 수 있다. 이런 스마트 컨트택트의 요건을 하나씩 검증해보자.

자동화

앨리스와 밥 양측의 행동은 완전히 자동화 될 수 있다. 펀딩 트랜잭션을 생성할 때 계약 이행에 관련한 프로그램 소스코드를 OP_RETURN 상에 기록할 수 있다. 해당 트랜잭션에 양쪽 계약당사자의 서명이 포함되었다는것은 계약 프로그램의 자동화 내용이 확인되었고 앨리스와 밥에 의해 승인되었다는것을 시사한다.

강제화

만약 계약 당사자중 한쪽이 사기를 치려고 한다면 다른쪽이 단순히 마지막으로 합의된 계약 이행 트랜잭션을 블록체인에 전파 해버리면된다. 비트코인 트랜잭션의 특성상 마지막으로 합의(양측이 서명한)된 트랜잭션의 내용을 어느한쪽이 독자적으로 수정하여 더 많은 이득을 취하는것이 불가능 하다. 다른말로 펀딩 트랜잭션과 환불 트랜잭션의 쌍으로 인해 강제화를 가능케 하는 것이다.

신뢰

지불채널은 앨리스와 밥이 상호간의 신뢰를 필요로 하지 않는다. 일단 펀딩 채널이 블록체인에 기록되면 합의를 위해 지불 채널을 위해 서로 소통을 해야 할 것이다. 그렇지 않으면 그들은 항상 마지막 합의된 트랜잭션으로 밖에 되돌아 갈 수 없다. 이것은 위의 강제화 요소에서 비롯된다.

어떻게 이것이 더 나은가?

우리는 이것이 여타 다른 스마트 컨트랙트 보다 나은 방법이라고 주장한다. 왜냐하면 확장성, 유연성, 프라이버시, 비용 효율성 때문이다.

확장성

지불 채널은 일반적으로 단지 두개의 트랜잭션만 온체인에 기록되면 된다. 펀딩 트랜잭션과 확정(settlement 또는 refund) 트랜잭션. 지불 채널에서 모든 소통은 P2P(Peer to Peer)로 일어난다. 따라서 다른 블록체인들의 스마트 컨트랙트처럼 모든 단계의 스마트컨트랙트들을 모든 채굴자가 일일이 검증해야 하는것과 같이 지불채널에서 일어나는 중간과정의 트랜잭션들을 일일이 채굴자가 검증할 필요가 없다. 이러한 P2P 패러다임이 확장성을 제공해 주게 된다.

유연성

특정 플랫폼에서만 실행되거나 계약 참여자가 따라야 하는 추가적인 규칙을 요구하는 프로그램 소스코드로 계약내용을 작성할 필요가 없다. 비트코인 스마트컨트랙트 작성시 필요한것은 단지 지불채널에 참여하는 모든 참여자가 모든 계약내용과 규칙이 명시된 펀딩 트랜잭션에 동의(서명)하기만 하면 된다.

프라이버시

계약내용을 명시적으로 펀딩 트랜잭션에 반드시 넣을 필요는 없다. 보다 높은 수준의 프라이버시를 확보하기 위해 OP_RETURN 에 계약 내용의 해시값만을 포함시켜도 될 것이다.

비용 효율성

스마트 컨트랙트에 특별히 실행되어야 하는 서비스같은것이 없기때문에 이런 행위를 위해 채굴자들에게 비용을 지불할 필요가 없다.

위에 나열된 장점들에 더해서 다양한 형태의 펀딩 트랜잭션 템플릿을 만들어 시장에서 일어나는 유사한 케이스의 지불채널에 공유될 수 있을 것이다. 예를들어 체스 경기를 위한 지불채널의 펀딩 트랜잭션의 템플릿은 또다른 체스 경기자들이 재사용 할 수 있을 것이다. 또한 채굴풀을 위한 펀딩 트랜잭션 템플릿을 또다른 채굴풀 들이 채택할 수 있을것이다. 이런 지불채널 템플릿을 설계할때의 과제는 지불 채널에 명시된 규칙들이 특정 참여자의 이익에 편향되지 않도록 설계 하는것이다.

결론

우리가 이 글에서 제공했던 일반적인 비트코인의 스마트 컨트랙트의 패러다임은 많은 사람들이 비트코인상에서는 불가능하다고 말해왔던 특징들이다. 우리는 비트코인 지불 채널이 확장성, 유연성, 프라이버시와 비용 효율성으로 이러한 기능들을 제공한다는 것을 보았다. 가능한 사용예들을 나열해 보면 소액결재, 콘텐츠 스트리밍, 온라인 게임 과 e-스포츠, 빈번한 결제를 필요로 하는 상업 계약들 그리고 수많은 다른 케이스들이 존재할 것이다. 얼마나 창의적으로 이 비트코인 스마트 컨트랙트를 활용하는 가는 이제 당신의 몫이다.

* 이글은 오리지날 비트코인 프로토콜을 따르는 진짜 비트코인, 비트코인 SV(BSV)에 관한 글이다.

Translated and published with permission from https://nchain.com/en/blog/payment-channels-smart-contracts-bitcoin/ copyright 2019 nChain Limited.


추천&비추천 정책안내

, , , , , , ,

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

Comments

오리지날 19-11-05 13:55 0   0
번역하시느라 고생하셨습니다! 감사합니다.
까마귀까악 19-11-05 17:02 0   0
좋은 정보입니다 까악~

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

오미재박 19-11-05 21:52 0   0
비트코인에 대한 많은 오해와 궁금증이 풀리는 글 같습니다. 너무 감사하고, 앞으로도 좋은 글들 많이 부탁드립니다.

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

kane1006 19-11-09 10:28 0   0
감사합니다 ㅋ

축하합니다! 행운의 5 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