Post
Topic
Board Bahasa Indonesia (Indonesian)
Merits 3 from 3 users
Re: [Edukasi] Privasi dan Anonimitas Bitcoin
by
Husna QA
on 11/05/2019, 08:53:13 UTC
⭐ Merited by abhiseshakana (1) ,mu_enrico (1) ,ETFbitcoin (1)
7. CoinSwap
kembali ke daftar isi
CoinSwap pertama kali diperkenalkan oleh Gregory Maxwell16 pada thread berikut:
https://bitcointalk.org/index.php?topic=321228.0
CoinSwap akan melindungi informasi transaksi antara pembayar dan penerima. CoinSwap memungkinkan pihak-pihak yang terlibat untuk membuat transaksi dengan melibatkan garansi yang membuat tidak ada pihak yang dapat mencuri bitcoin dari pihak lain. Dalam CoinSwap, pihak ketiga dibutuhkan sebagai penghubung antara pihak pembayar dan penerima, dan juga beberapa transaksi harus dibuat dalam skema CoinSwap. Beberapa metode transaksi yang digunakan dalam CoinSwap diantaranya 2-of-2 escrow dan hash-locked transaction.

Protokol CoinSwap:
Dalam protokol ini, semua pihak diasumsikan memiliki private communications channels.
Protokol CoinSwap dapat dijelaskan sebagai berikut:
Alice bertindak sebagai pembayar,
Bob sebagai penerima pembayaran,
dan Carol sebagai pihak perantara (pihak escrow).

Protokol ini dibagi menjadi 3 fase, yakni fase 0, fase 1, dan fase 2.

Phase 0. Sets up the escrows and their timeout refunds.
Phase 1. Makes it so that if Bob gets paid there is no way for Carol to fail to get paid.
Phase 2. Just releases the escrows directly because everyone is happy that cheating isn't possible.

  Alice                        Carol                        Bob
  =====================================================================================
0.Computes TX_0: 2of2{A,C}    |Computes TX_1: 2of2{C,B}    |                           \
1.Send TX_0 TXID ------------>                             |                           |
2.                            |Send TX_1 TXID ------------>                            |
3.                            |Computes TX_0 locked refund |Computes TX_1 locked refund|  
4.               <------------ Send TX_0_refund            |                           | Phase 0
5.                            |               <------------ Send TX_1_refund.          |
6.Announces TX_0 to network   |Announces TX_1 to network   |                           |
7.                            |                            |                           |
8.******    Network confirms TX_0: Alice pays according to 2 of {Alice, Carol}   ******|
9.******     Network confirms TX_1: Carol pays according to 2 of {Carol, Bob}    ******/
A.                            |                            |Selects secret value X     \
B.                            |                            |Computes HX = H(X)         |
C.                            |               <------------ Send HX                    |
D.               <----------------------------------------- Send HX                    |
E.Computes TX_2: TX_0>Carol+X |                            |                           | Phase 1
F.Send TX_2     ------------>                              |                           |
G.                            | Computes TX_3: TX_1>Bob+X  |                           |
H.                            | Send TX_3     ------------>                            |
I.                            |               <------------ Send X                     /
J.                            | Computes TX_4: TX_1>Bob    |                           \
K.                            | Send TX_4     ------------>                            |
L.                            |                            |Signs and announces TX_4   |
M.******       Network confirms TX_4: Carol pays Bob via 2 of {Carol, Bob}       ******|
N.Computes TX_5: TX_0>Carol   |                            |                           | Phase 3
O.Send TX_5      ------------>                             |                           |
P.                            |Signs and announces TX_5    |                           |
Q.******     Network confirms TX_5: Alice pays Carol via 2 of {Alice, Carol}     ******/
  =====================================================================================
Diagram Protokol CoinSwap16

Fase 0
Dalam fase 0 terdapat proses pembuatan transaksi escrow diantara peserta-peserta tersebut. Alice membuat transaksi escrow TX_0 yang merupakan 2-of-2 escrow antara Alice dan Carol dengan menggunakan bitcoin milik Alice. Transaksi ini dapat dibaca sebagai:
"Alice akan membayar sejumlah bitcoin kepada Carol jika Alice dan Carol setuju'.
Kemudian, Carol juga membuat transaksi TX_1 yang merupakan 2-of-2 escrow antara Carol dan Bob dengan menggunakan bitcoin milik Carol. Transaksi ini dapat dibaca sebagai: "Carol akan membayar sejumlah bitcoin kepada Bob jika Carol dan Bob setuju".

Untuk mengamankan fase ini, Carol membuat TX_0 refund dengan batas waktu tertentu yang akan membuat Alice memperoleh kembali bitcoin yang dibayarkan kepada Carol jika sesuatu terjadi di masa depan.
Sama seperti Alice, Carol juga membuat TX_1_refund yang akan membuat Carol memperoleh kembali bitcoin yang dibayarkan kepada Bob jika sesuatu terjadi di masa depan. Transaksi TX_0_refund dan TX_1_refund tidak dikirim ke jaringan oleh Alice maupun Carol. Transaksi yang dikirim ke jaringan bitcoin pada tahap ini adalah TX_0 dan TX_1.

Fase 1
Fase 1 mempersiapkan garansi transaksi untuk semua partisipan yang terlibat. Artinya jika Bob mengambil koin dari Carol, Carol juga dapat mengambil pembayaran dari Alice. Skema ini didukung oleh skema hash-locked transaction.
Dalam skema ini, Bob memilih kata kunci rahasia X, kemudian menghitung nilai HX yang merupakan nilai hash dari X dengan rumus HX=H(X) dan mengirim HX kepada Alice dan Carol. Alice membuat transaksi baru TX_2 yang akan mengambil koin dari TX_0 dengan menggunakan tanda tangan Carol dan nilai X dan membayarkannya kepada alamat Carol. Sama seperti Alice, Carol membuat transaksi baru dengan skema hash-locked transaction TX_3 yang akan mengambil koin dari TX_1 dengan menggunakan tanda tangan Bob dan nilai X dan membayarkannya kepada Bob.
Pada fase ini, jika Bob curang dan mengambil koin dengan menggunakan TX_3, maka Carol dapat mengambil pembayaran dengan menggunakan TX_2 karena nilai X dapat diketahui ketika Bob menggunakan TX_3 dan mempublikasikannya ke jaringan Bitcoin.

Fase 2
Apabila TX_2 dan TX_3 tidak dikirimkan ke jaringan Bitcoin, maka fase 2 dapat dilanjutkan. Dalam fase ini, Bob memberitahukan nilai X kepada Carol, dan Carol membuat transaksi baru TX_4 yang mengambil koin dari TX_1 dengan menggunakan tanda tangan Bob. Bob dapat menggunakan transaksi TX_4 untuk mendapatkan pembayaran. Sama seperti itu, Alice membuat transaksi TX_5 yang akan mengambil koin dari TX_0 dengan manggunakan tanda tangan Carol dan dibayarkan kepada Carol. Carol dapat mengirimkan transaksi TX_5 ke jaringan bitcoin untuk mendapatkan pembayaran.

Apabila protokol ini berhasil diselesaikan, maka hanya transaksi TX_4 dan TX_5 yang menggunakan TX_0 dan TX_1 saja yang dikirim ke jaringan Bitcoin, sementara transaksi-transaksi lain dihapus dan tidak dikirimkan ke jaringan Bitcoin.

CoinSwap merupakan salah satu contoh dari metode Zero Knowledge Contingent Payment17 yang memiliki fitur-fitur sebagai berikut:
1. Hash-locked transaction
2. Time-locked transaction
3. 2-of-2 escrow transaction

Di dalam CoinSwap, setiap langkah dari protokol harus diikuti dengan urutan yang benar agar menghasilkan transaksi yang aman dan bergaransi tanpa adanya pihak terpercaya.

Referensi:
16. gmaxwell, CoinSwap: Transaction graph disjoint trustless trading
17. Bitcoin Wiki. (2011, September 28, 2015), Zero Knowledge Contingent Payment
 -   Dimaz A.W. & Oscar D., Blockchain dari Bitcoin untuk Dunia, hal. 105-107, 2017: Jasakom
 -   Referensi lain lihat pada post #1