Halo semuanya, nama saya Alexander, dan saya seorang ilmuwan data di Clain. Kami terlibat dalam analisis transaksi blockchain untuk afiliasi mereka dengan tindakan kriminal, seperti menguangkan, mencuri, pendanaan teroris dan sejenisnya.
Peraturan Cryptocurrency diperketat setiap tahun, dan sekarang perusahaan diharuskan untuk mematuhi kebijakan AML \ KYC. Tentang hal yang sama, perusahaan Elliptic, yang pada awal Agustus 2019 menerbitkan dataset berlabel transaksi 200k bitcoin.
Tujuan utama dari publikasi mereka adalah untuk memberikan data nyata kepada komunitas crypto untuk menguji pendekatan baru untuk mendeteksi transaksi yang meragukan menggunakan kedua set atribut standar (jumlah input dan output, transfer, transfer ke penambang, dll.) Dan topologi grafik yang dibangun pada transaksi ini . Dataset dianonimkan dan memiliki 167 atribut. Semuanya memiliki nol rata-rata dan varians unit kecuali yang pertama, yang merupakan pengidentifikasi, dan yang kedua - mencirikan waktu dari 1 hingga 49, yang sesuai dengan komponen grafik transaksi.
Dengan menggunakan file elliptic_txs_edgelist.csv, Anda dapat membuat grafik terarah dan menghitung derajat masuk dan keluar dari setiap transaksi txId. Ini memungkinkan Anda untuk memperkirakan (karena grafik terpotong dari seluruh blockchain dan bagian dari koneksi terputus) memperkirakan jumlah alamat pengirim dan penerima untuk setiap transaksi. Di piring elliptic_txs_features.csv, ganti nama kolom menjadi V1 - V167 dan segera ganti V1 dengan txId, V2 dengan elliptic_time. Beberapa atribut berkorelasi lebih baik daripada yang lain dengan nilai derajat masuk dan keluar grafik: cor (out-degree, V16) = 0,689, cor (out-degree, V7) = 0,680, cor (dalam-derajat, V6) = 0,589, cor (in- derajat, V8) = 0,582. Mari kita lihat variabel-variabel ini.

Scatterplot mengimbangi variabel V6 dan derajat grafik yang masuk dari elliptic_txs_edgelist
Menurut grafik, untuk setiap nilai derajat ada batas atas nilai V6, di samping itu, jika Anda mengurutkan V6 dan menemukan perbedaan antara nilai yang sama, itu akan berubah sebagai bilangan bulat dikalikan dengan konstanta:

Nilai-nilai unik dari perubahan V6 yang diurutkan (diff_V6), frekuensi yang ditemui (Freq) dari nilai-nilai diff_V6 dan rasio diff_V6 ke nilai minimum dari diff_V6.
Dalam tabel perubahan V6, Anda dapat melihat bahwa 0,075038 terjadi jauh lebih sering daripada nilai-nilai lainnya dan mungkin dikaitkan dengan perubahan derajat oleh 1. Mengingat bahwa jumlah minimum entri dalam transaksi adalah 1 (jika bukan transaksi coinbase), kami menulis:
input_count_V6 = (V6 - min (V6)) / min (diff_V6) + 1.
Setelah analisis serupa untuk V7, V8, V16:
- input_count_V6 = 13.3266685112665 * V6 + 2.62544842444139,
- input_unique_count_V8 = 11.9243179897452 * V8 + 2.34747189219164,
- outputs_count_V7 = 50.3777694891647 * V7 + 4.21030186142152,
- outputs_unique_count_V16 = 49.3957564403755 * V16 + 4.121809499973.
Di sini input_count_V6 adalah jumlah total entri dalam transaksi, input_unique_count_V8 adalah jumlah entri unik dalam transaksi, outputs_count_V7 adalah jumlah keluar dari transaksi, outputs_unique_count_V16 adalah jumlah keluar unik.
Pertanyaan mungkin timbul - mengapa V6 dan bukan V8 dipetakan ke input_count? Jawabannya sederhana, selalu input_count> = input_unique_count, dan mengganti nilai-nilai V6 dan V8 dari elliptic_txs_features.csv dalam rumus yang ditunjukkan, kita dapat memastikan bahwa ketidaksetaraan (13.3266685112665 V6 + 2.6254484244444139)> = (11.92434798989898989189 berkorelasi antara V6, V8, input_count dan input_unique_count. Hal yang sama berlaku untuk outputs_count dan outputs_unique_count.
Setelah Anda menemukan jumlah input dan output, serta jumlah input unik dan output unik, Anda dapat menemukan transaksi di mana kombinasi angka-angka ini hanya terjadi satu kali dalam seluruh sejarah Bitcoin (hingga publikasi dataset Elliptic). Ini memungkinkan Anda menemukan transaksi unik dan perkiraan waktu untuk setiap nilai elliptic_time:

Tanggal transaksi unik ditemukan untuk setiap elliptic_time.
Grafik di atas menunjukkan bahwa tanggal bergantung secara linear pada elliptic_time:
approx_time = 1450468509.80488 + 1155672.19512195 * elliptic_time.
Di sini approx_time adalah perkiraan unixtime untuk setiap elliptic_time. Dan karena elliptic_time bervariasi dari 1 hingga 49, tanggal perkiraan berubah dari 2016-01-01 menjadi 2017-10-04, dengan peningkatan 1155672.19512195 / 3600/24 = 13.37584 hari.
Dengan batas waktu pada kemungkinan transaksi dan kombinasi sejumlah input dan output yang unik, Anda dapat menemukan 189 transaksi yang sesuai untuk kondisi ini dan hanya ditemukan satu kali di seluruh blockchain Bitcoin. Misalnya, hanya ada satu transaksi dengan 1 input dan output 13107 - dd9f6bbf80ab36b722ca95d93268667a3ea6938288e0d4cf0e7d2e28a7a91ab3.
Sekarang Anda dapat menemukan karakteristik transaksi lainnya, seperti biaya, serta total input (total_in_value) dan output (total_out_value) volume di Satoshi. Pencarian korelasi dan bantuan regresi linier untuk melakukan ini dengan cepat, saya hanya akan memberikan rumus akhir:
- fee_V4 = 81341.4537626213 + 386323.710952989 * V4,
- total_out_value_V3 = 2742460603.92287 + 15853961614.9796 * V3.
Kami akan menemukan nilai total_in_value yang diperlukan dari persamaan:
total_in_value = total_out_value + biaya.
Total informasi yang ditemukan memungkinkan kami untuk mengidentifikasi 92,9% dari semua transaksi dataset Elliptic. Bagian lain dapat diungkapkan jika Anda menggunakan grafik transaksi dari elliptic_txs_edgelist.csv, membandingkannya dengan grafik yang dibangun pada banyak transaksi yang sesuai dengan koneksi mereka yang tercatat di blockchain, ini menambahkan 6,6% lagi.
Dengan demikian, 99,5% dari semua transaksi anonim mudah diungkapkan, sisanya 0,5% juga dapat diidentifikasi, tetapi waktu yang dihabiskan untuk deanonimisasi mereka cenderung sebanding dengan waktu yang dihabiskan pada bagian transaksi yang sudah diungkapkan. Anda dapat melihat dataset yang teranonimisasi di sini . Dan di sini adalah data Elliptic asli.