티스토리 뷰

우리는 일반적으로 코인을 교환할 때 중앙화된 거래소를 통해 거래합니다.

법정통화(원, 달러 등)를 코인과 교환하려면 Bithumb이나 Upbit같은 거래소에서 구입하거나, 코인 보유자를 직접 만나는 방법밖에는 없죠.

하지만 탈중앙화된 코인끼리 거래할 때도 거래소를 통해 할 수 밖에 없을까요?

탈중앙화 되어있는 코인끼리 교환하는데 중앙화 된 서비스를 이용한다는 것은 블록체인에서 다루는 가장 큰 가치가 훼손되는 일입니다.


그렇다면 어떤 방법으로 중개자 없이 코인끼리 교환할 수 있을까요?

전통적인 방법을 생각해보겠습니다.

A 코인 사용자 Alice와 B 코인 사용자 Bob이 각자의 코인을 교환하는 과정을 생각해보겠습니다.


1 ) Alice가 10A를 Bob의 A 코인 주소로 전송

2 ) Bob이 A 코인 수신을 확인하고 코인 100B를 Alice의 B 코인 주소로 전송

위 방법은 우리가 일반적으로 중고나라에서 물건을 거래하는 방법과 다를 것이 없습니다.

그렇기 때문에 중고나라에서 발생할 수 있는 문제를 그대로 안고있습니다.

온라인은 말할 것도 없고 직접 만나 거래할 때에도 B가 코인을 전송하지 않고 도망가버리면 손 쓸 방법이 없기 때문입니다.


위 문제를 해결할 방법이 Atomic swap 방법입니다.

공식 명칭은 Atomic cross-chain trading입니다.

코인을 교환하는 과정을 살펴보겠습니다.


Alice는 랜덤값 X를 구합니다.


Alice는 Bob의 주소로 코인을 지불하는 트랜잭션 TX1을 만듭니다.

TX1의 UTXO는 X의 해시값과 Bob의 서명 또는 Alice와 Bob의 서명으로 소비할 수 있도록 Multisig 잠금 스크립트를 만듭니다.


Alice는 TX1에서 자신의 주소로 코인을 전송하는 환불 트랜잭션 TX2를 만들고 서명합니다.

TX2은 최소 48시간 뒤에 블록에 포함될 수 있도록 딜레이가 걸려있습니다. 


Alice는 TX2를 Bob에게 전달하고 Bob의 서명을 받아 돌려받습니다.


1 ) Alice가 TX1을 네트워크에 전송합니다.


Bob은 Alice의 주소로 코인을 지불하는 트랜잭션 TX3을 만듭니다.

TX3의 UTXO는 X의 해시값과 Alice의 서명 또는 Alice와 Bob의 서명으로 소비할 수 있도록 Multisig 잠금 스크립트를 만듭니다.

※ X의 해시값은 네트워크에 전파된 TX1에서 확인


Bob은 TX3에서 자신의 주소로 코인을 전송하는 환불 트랜잭션 TX4를 만들고 서명합니다.

TX4는 최소 24시간 뒤에 블록에 포함될 수 있도록 딜레이가 걸려있습니다.


Bob은 TX4를 Alice에게 전달하고 Alice의 서명을 받아 돌려받습니다.


2 ) Bob은 TX3을 알트 블록체인 네트워크에 전송합니다.


3 ) Alice가 알트 블록체인 네트워크에서 X를 제시하고 TX3을 소비합니다.


4 ) Bob이 3)에서 드러난 X를 사용해 TX1을 소비합니다.

위의 과정을 통해 원자성을 확보했습니다.

도중에 거래가 중단되어도 원래대로 돌아갈 것입니다.

만약 중간에 중단되면 어떤 일이 벌어질까요?


1) 시점 이전에는 아무일도 일어나지 않았기 때문에 아무런 문제도 발생하지 않습니다.

1)과 2) 시점 사이에서는 Alice가 TX2를 사용해 48시간 뒤에 코인을 돌려받을 수 있습니다.

2)와 3) 시점 사이에서는 Bob이 TX4를 사용해서 환불 받을 수 있습니다.

3) 시점 이후에는

Alice가 Bob이 환불하기 전(24시간)에 TX3을 소비해야 합니다.

Bob은 Alice가 환불하기 전(48시간)에 TX1을 소비해야 합니다.

어떤 시점에서 중단되어도 원 상태로 돌아가는 것을 알 수 있습니다.


환불 트랜잭션의 제한시간은 두 블록체인에서 각각 트랜잭션이 처리되는 시간을 고려해 충분한 시간 차이를 두어야 합니다.

시간 차이가 없거나 Alice가 더 빠른 경우 3) 시점 이후에 Alice가 Bob의 알트 코인과 자기 코인의 환불 모두 챙길 수 있습니다.

블록체인 네트워크 상황에 따라 트랜잭션 처리 속도가 지연될 수 있기 때문에 충분히 고려해서 반영해야 합니다.


글을 작성하면서 아직 가려운 부분이 많습니다.

탈 중앙화된 서비스는 중앙화된 서비스에 비해 비효율적인 면이 많은것 같습니다.

거래 처리 속도도 떨어지고 환전을 위한 과정도 복잡하기만 합니다.

이러한 문제를 안고 일반적인 사용자의 선택을 받을 수 있을까요?

법정통화로도 중개인 없이 코인과 P2P 거래를 할 방법은 없을까요?


하지만 여전히 중개인 없이 신뢰할만한 통화발행, 교환이 이뤄진다는 것은 아주 매력적입니다.

읽어주셔서 감사합니다.




참고자료

탈중앙화된 화폐 교환

Atomic cross-chain trading

Alt chain and atomic transfer

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함