아토믹 스왑을 통해 스마트 계약을 개인 정보 보호 세계에 연결합니다.
Qtum은 기술 혁신에 중점을 둔 공개 블록 체인으로서 블록 체인의 개발 및 적용과 개인 정보 보호의 중요성에 대한 평판을 얻고 있습니다. Qtum 블록 체인 자체는 어느 정도 수준의 익명 성을 갖지만 개인 정보 보호 및 보호는 항상 강화 될 수 있습니다. 대학과의 공동 연구에서부터 Beam과 공동 후원하는 세계 최초의 온라인 개인 정보 보호 hackathon에 이르기까지 Qtum은 사생활 보호를 위해 전진 해 왔습니다.
최근에 Mimblewimble 프로토콜의 출현으로 개인 정보 보호 영역에 새로운 방향이 제시되었습니다. Mimblewimble 프로토콜을 대표하는 Beam은 높은 확장 성으로 개인 정보 보호를 보장하면서 트랜잭션 크기를 단순화합니다.
또한 원자 스왑은 업계에서 널리 받아 들여져 두 디지털 통화 간 교차 거래를 가능하게합니다. Beam과 Qtum 간의 성공적인 협력은 Qtum의 사생활 보호 및 교차 사슬 기술에 대한 헌신을 상징합니다.
Atomic Swap은 타사 신뢰 보증에 의존하지 않고 두 개의 별도 블록 체인에서 크립토 통화의 원자 교차 트랜잭션을 허용합니다. "원자"라는 용어는 트랜잭션이 성공 또는 실패 일 수 있으며 세 번째 상태를 포함하지 않을 수 있음을 의미합니다.
예를 들어 앨리스와 밥이 일정량의 크립토 통화 A와 B를 교환한다고 가정 해 봅시다. 중앙 집중식 교환이 없으면 먼저 양측이 환율에 동의 한 다음 원자 교환의 도움을 받아야합니다. A를 Bob에게, B를 Alice에게 보냅니다.
그러나 블록 체인의 트랜잭션은 되돌릴 수 없습니다. 중앙 보증없이 다른 통화로 거래하는 것은 운영 우선 순위를 포함해야합니다. 앨리스가 먼저 A를 보내는 경우, 앨리스는 불만이 있습니다. 왜냐하면 밥이 동의 한대로 일정량의 B를 보낼 수 없기 때문입니다.
분산 된 피어 - 투 - 피어 트랜잭션의 성공을 보장하기 위해 양 당사자가 속일 수 없도록하는 메커니즘이 필요합니다. 지금까지 HTLC (Hashed Timelock Contracts)는 일반적으로 사용되는 솔루션입니다.
원자 교환을 달성하기위한 한 가지 주요 솔루션은 HTLC (Hashed Timelock Contracts)입니다. 핵심 아이디어는 특정 트랜잭션을 잠그는 것입니다. 문제의 cryptocurrency는 특정 조건이 충족 될 때까지 사용할 수 없습니다.
앨리스와 밥이 토큰 A와 B를 교환하려고한다고 가정하자. 앨리스는 먼저 암호화 된 디지털 패스워드 상자를 생성하고 상자에 A를 넣기 전에 잠금의 사양을 밥에게 알려줍니다. Bob이 암호 상자를 열려면이 키와 그의 서명을 제공해야합니다. 그런 다음 Bob은 잠금과 동일한 사양을 가진 유사한 암호 상자를 만듭니다.
암호 상자를 열면 다른 사람의 서명이 필요하므로 Alice 만 Bob의 상자를 열 수 있고 Bob 만 Alice의 상자를 열 수 있습니다. Alice가 Bob의 상자를 열면 해당 키가 블록 체인에 표시되어 Bob이 Alice가 게시 한 키를 사용하여 상자를 열 수 있습니다. 문제가 발생하거나 당사자가 트랜잭션 중에 철회 작업을 수행하면 동의 한 시간 내에 해당 상자가 열리지 않는다는 의미이므로 디지털 통화는 각각 Alice와 Bob에게 환불됩니다.
위는 HTLC의 설계 개념이지만 알고리즘의 실제 구현은보다 복잡하고 실제적인 문제를 고려해야합니다.
빔은 강력한 개인 정보 보호, 대체 가능성 및 확장 성을 갖춘 Mimblewimble 프로토콜을 기반으로 개발 된 cryptocurrency입니다. Mimblewimble은 사용자의 신원을 숨기고 거래 금액을 차폐함으로써 거래의 프라이버시를 보장합니다.
Mimblewick은 양 당사자가 거래를 만들기 전에 일부 매개 변수를 협상해야합니다. 따라서 거래를 생성하려면 양 당사자의 온라인 공동 서명이 필요합니다. 놀랍게도, Beam은 SBBS (Secure Bulletin Board System) 메커니즘을 통해 양측에 동시에 온라인 버퍼 시간을 제공합니다.
Beam은 Beam / Btc 및 Beam / Litecoin의 원자 교환 기능을 구현하여 코드를 마스터 분기에 병합합니다. 6 월 중순, Qtum 개발자는 Beam / Qtum의 원자 교환 코드를 완성하여 빔 팀에 제출했습니다. 코드는 Beam 프로젝트의 마스터 브랜치에 병합되었습니다. Beam과 Qtum 간의 원자 교환은 이제 Beam MainNet에서 사용할 수 있습니다.
Alice가 Beam을 소유하고 Bob이 Qtum을 소유하고있는 사용자가 두 명 있다고 가정합니다. Alice는 Bob의 80 Qtum을 200 Beam으로 교환하려고합니다.
Alice는 먼저 자신의 공개 키를 Bob에게 전달합니다. Bob은 로컬 해시 사전 이미지를 생성하고 해시 이미지를 계산하며 Alice의 공개 키와 해시 이미지를 사용하여 잠금 스크립트로 트랜잭션을 생성합니다. 이 트랜잭션은 Bob의 80 UTXO의 Qtum을 잠급니다.이 조건은 다음 조건 중 하나라도 충족되는 경우에만 사용할 수 있습니다.
합의 된 원자 교환 시간은 만료되었으며 (현재 블록 높이로 판단) Bob은 자신의 개인 키를 사용하여 UTXO의 소유권을 주장합니다. 이 조건은 주로 원자 스왑이 어떤 이유로 실패 할 경우 Bob이 UTXO를 되돌릴 수있게하는 데 사용됩니다.
Hash Preimage를 공개하고 인증을 위해 Alice의 개인 키를 사용하십시오. 이 조건은 주로 Alice가 Bob이 개인 해시 프리 이미지를 공개 한 Qtum을 수락하는 일반적인 상황에서 주로 사용됩니다.
Bob은 생성 된 Qtum 잠금 트랜잭션을 Alice로 보내므로 Alice는 Qtum 네트워크에서 트랜잭션을 확인할 수 있습니다.
빔은 Mimblewimble 프로토콜을 사용합니다.이 프로토콜은 스크립트를 삭제하고 토큰 양과 같은 속성을 숨 깁니다. 결과적으로 자물쇠 거래는 두 명의 참가자가 협력해야합니다. 이 기사에서는 주로 원자 스왑에 초점을 맞추기 때문에 Mimblewimble 트랜잭션 생성 과정에 대해서는 자세히 설명하지 않겠습니다. 자세한 내용은 [Qtum 연구소 : 새로운 개인 정보 보호 프로토콜 MimbleWimble] (Qtum의 WeChat 공식 계정 참조)을 참조하십시오.
그러나 다음 시나리오를 고려하십시오. Alice는 Blinding 요소의 협상, Bulletproof 등의 협상을 포함하여 Bob과 상호 작용하여 Alice가 전송할 Beam UTXO를 잠그는 Beam Lock 트랜잭션을 생성합니다 단발. 분기를 결정하는 스크립트가 없으므로 Alice는 잠긴 Beam UTXO를 Alice에게 환불하는 Beam Refund Transaction을 생성해야합니다. 이것은 Alice가 원자 교환의 실패 후에 자신의 Beam을 검색 할 수있게합니다.
Qtum과 Beam의 두 개의 별도 잠금 트랜잭션이 완료되면 Alice와 Bob은 두 트랜잭션이 올바르게 잠겨 있는지 확인해야합니다. 앨리스는 또한 Qtum 잠금 트랜잭션의 잠금 시간이 Beam의 잠금 시간보다 긴지 확인해야 Bob이 Beam을 가져온 후 시간 초과 조건을 통해 Qtum을 검색하지 못하게합니다.
두 당사자가 자물쇠 거래의 올바른 배치를 확인하면 원자 교환의 교환 링크에 들어갑니다. 첫째, Alice와 Bob은 Mimblewimble 기반 협상을 수행하여 잠긴 Beam UTXO를 Bob으로 전송하는 Beam Redeem Transaction을 생성합니다. 거래하는 동안 Bob은 Alice가 배운 자신의 Hash Preimage를 표시합니다.
Alice가 Beam 네트워크에서 Bob에 의해 생성 된 Hash Preimage를 얻은 후 그녀는 Qtum 네트워크에서 Qtum Redeem Transaction을 시작합니다. 그러면 Qtum 잠금 트랜잭션 스크립트의 두 번째 조건이 트리거되어 해시 프리 이미지에 서명을하여 Qtum을 계정으로 전송합니다.
원자 교환 거래가 각자의 네트워크에서 충분한 확인을 얻은 후에는 전체 원자 교환이 끝나게됩니다. 링크에서 문제가 발생하면 원자 교환이 실패하고 잠금 트랜잭션은 잠금 시간 이후에 원래 계정으로 토큰을 환불받을 수 있음을 보증 할 수 있습니다.
자세한 내용은 다음을 참조하십시오. 빔 원자 교환
3. Alice와 Bob은 원자 교환을 수행합니다. Bob은 원자 교환 청취 모드를 켜고 원자 교환을 모니터링하기 위해 다음 명령을 실행해야합니다.
./beam-wallet-masternet swap_listen -n eu-node01.masternet.beam.mw:8100 -swap_netword testnet -swap_coin qtum - 금액 8000000000 - swap_feerate 5000000 - qtum_node_addr 127.0.0.1:13300 - qtum_user Bob - Qtum_pass 123 - log_level info
노드는 먼저 블록 데이터를 동기화하고 동기화가 완료되면 노드가 자체 주소에 대해 swap_init 트랜잭션을 시작하면 원자 스왑 트랜잭션이 시작됩니다. 트랜잭션은 위의 트랜잭션 플로우의 순서로 수행됩니다.
4. 동시에 Alice는 다음 명령을 실행합니다.
./beam-wallet-masternet -n eu-node01.masternet.beam.mw:8100 swap_init - swap_netword testnet - swap_coin qtum - 양 - 200 swap_feerate 5,000,000 -r 1d8dfa6993230cfd1d84fc29ded73b04ee35ccbfdb9d112d466237dc30dc79470f9 - swap_amount 8,000,000,000 - swap_beam_side - qtum_node_addr 127.0.0.1:13400 - qtum_user Alice - qtum_pass 123 - log_level info
이것은 빔 교환기의 주소를 지정하여 원자 교환 트랜잭션을 초기화합니다. Alice의 노드는 블록 데이터를 먼저 동기화합니다. 그 후, Bob과의 원자 교환은 위의 트랜잭션 흐름의 순서대로 수행됩니다.
5. 양측은 빔과 Qtum의 두 블록 체인 네트워크가 여러 번 거래를 확인하기를 기다리고 (기본적으로 Qtum에 10 회 확인) 원자 전환이 완료됩니다.
Bob의 클라이언트 인터페이스는 다음과 같습니다.
Alice의 클라이언트 인터페이스는 다음과 같습니다 :
6. Alice의 계정을 확인하면 Bob이 80 Qtum을 받았고 Bob에게 200 Beam을 보냈습니다. 그녀는 이제 147 개의 빔과 80 개의 Qtum을 가지고 있습니다.
7. Bob의 계정을 확인하면, 그가 Alice로부터 200 Beam을 받고 Alice에게 80 Qtum을 보냈다는 것을 알 수 있습니다. 이제 그는 495 빔과 174 Qtum있다.
8. 테스트 네트워크의 Qtum 웹 탐색기에서 Qtum 원자 스왑에 대한 트랜잭션 레코드를 볼 수 있습니다.
' q2t-cli listunspent' 명령을 입력하여 Alice가 소유 한 UTXO의 세부 정보를 조회하면 UTXO의 금액이 80 인 해당 ID가 d11e3474ca070a7d673a7784775479277abb2f820b8575a66f9b2a3b89722702 인 거래를 얻을 수 있습니다
거기에서 원자 교환에 의해 생성 된 트랜잭션이 실제로 블록 체인에 기록되었음을 알 수 있습니다.
Atomic swap은 가능한 피어 투 피어 신용 사기를 능숙하게 피하기 위해 HTLC를 사용하여 제 3 자의 보증없이 다른 토큰간에 트랜잭션을 가능하게합니다. Qtum과 Beam의 원자 교환 실험의 성공은 Qtum의 개인 정보 보호 및 교차 사슬에 대한 새로운 진보를 상징하며 Qtum은 앞으로도 이 방향을 계속 탐구 할 것입니다.