مرحباً بالجميع ، اسمي ألكساندر ، وأنا عالم بيانات في كلين. نحن منخرطون في تحليل معاملات blockchain لانتمائهم إلى أعمال إجرامية ، مثل صرف الأموال والسرقة وتمويل الإرهاب وما شابه.
يتم تشديد أنظمة العملة المشفرة كل عام ، والآن يتعين على الشركات الامتثال لسياسات AML \ KYC. عن نفس الشيء ، قامت شركة Elliptic ، التي نشرت في أوائل أغسطس 2019 بمجموعة بيانات تحمل اسم 200 معاملة بيتكوين.
الغرض الرئيسي من نشرها هو إعطاء مجتمع التشفير بيانات حقيقية من أجل اختبار أساليب جديدة للكشف عن المعاملات المشكوك فيها باستخدام مجموعة من السمات القياسية (عدد المدخلات والمخرجات ، والتحويلات ، والتحويلات إلى عمال المناجم ، وما إلى ذلك) وطوبولوجيا الرسم البياني المبني على هذه المعاملات . مجموعة البيانات مجهولة المصدر ولها 167 سمة. جميعها لها صفر متوسط وتباين للوحدة باستثناء الأول ، وهو المعرف ، والثاني - يميز الوقت من 1 إلى 49 ، والذي يتوافق مع مكونات الرسم البياني للمعاملة.
باستخدام ملف elliptic_txs_edgelist.csv ، يمكنك إنشاء رسم بياني موجه وحساب الدرجات الواردة والصادرة لكل معاملة txId. يتيح لك ذلك تقريبًا (نظرًا لأن الرسم البياني مقطوع من كتلة المفاتيح بأكملها وفقد جزء من الاتصالات) تقدير عدد عناوين المرسل والمستلم لكل معاملة. في لوحة elliptic_txs_features.csv ، أعد تسمية الأعمدة باسم V1 - V167 واستبدل V1 على الفور بـ txId ، V2 بـ elliptic_time. ترتبط بعض السمات بشكل أفضل من غيرها بقيمة الدرجات الواردة والصادرة للرسم البياني: cor (out-degree، V16) = 0.689، cor (out-degree، V7) = 0.680، cor (in-degree، V6) = 0.589، cor (in- درجة ، V8) = 0.582. لنلقِ نظرة على هذه المتغيرات.

يقابل Scatterplot متغير V6 ودرجة الرسم البياني الواردة من elliptic_txs_edgelist
وفقًا للرسم البياني ، يوجد حد أعلى بقيمة V6 لكل قيمة في الدرجة ، بالإضافة إلى ذلك ، إذا قمت بتصنيف V6 ووجدت الفرق بين القيم المتشابهة ، فستتغير كما عدد صحيح عدد صحيح ثابت:

قيم فريدة لتغيير V6 المصنفة (diff_V6) ، وتكرار (Freq) لقيم diff_V6 المصادفة ، ونسبة diff_V6 إلى الحد الأدنى للقيمة من diff_V6.
في جدول التغيير V6 ، يمكنك أن ترى أن 0.075038 يحدث في كثير من الأحيان أكثر من بقية القيم وربما يرتبط بتغيير في درجة من قبل 1. بالنظر إلى أن الحد الأدنى لعدد الإدخالات في معاملة هو 1 (إذا لم يكن معاملة coinbase) ، نكتب:
inputs_count_V6 = (V6 - دقيقة (V6)) / دقيقة (diff_V6) + 1.
بعد تحليل مماثل لـ V7 و V8 و V16:
- inputs_count_V6 = 13.3266685112665 * V6 + 2.62544842444139 ،
- inputs_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.
هنا inputs_count_V6 هو إجمالي عدد الإدخالات في المعاملة ، inputs_unique_count_V8 هو عدد الإدخالات الفريدة في المعاملة ، outputs_count_V7 هو عدد عمليات الخروج من المعاملة ، outputs_unique_count_V16 هو عدد عمليات الخروج الفريدة.
قد ينشأ السؤال - لماذا يتم تعيين V6 وليس V8 إلى inputs_count؟ الجواب بسيط ، دائمًا المدخلات_العدد> = المدخلات_unique_count ، والاستعاضة عن قيم V6 و V8 من elliptic_txs_features.csv في الصيغ المشار إليها ، يمكننا التأكد من أن عدم المساواة (13.3266685112665 V6 + 2.62544842444139)> = ارتبط بين V6 و V8 و inputs_count و inputs_unique_count. الشيء نفسه ينطبق على outputs_count و outputs_unique_count.
بمجرد العثور على عدد المدخلات والمخرجات ، وكذلك عدد المدخلات الفريدة والمخرجات الفريدة ، يمكنك العثور على المعاملات التي تحدث فيها مجموعات من هذه الأرقام مرة واحدة فقط في تاريخ Bitcoin بأكمله (حتى نشر مجموعة بيانات Elliptic). يتيح لك هذا العثور على معاملات فريدة وأوقات تقريبية لكل قيمة elliptic_time:

تاريخ المعاملات الفريدة التي تم العثور عليها في كل وقت بيضاوي.
يوضح الرسم البياني أعلاه أن التاريخ يعتمد بشكل خطي على elliptic_time:
approx_time = 1450468509.80488 + 1155672.19512195 * elliptic_time.
approx_time هنا هو وقت تقريبي لكل وقت بيضاوي. ونظرًا لأن elliptic_time يختلف من 1 إلى 49 ، يتغير تاريخ الوقت التقريبي من 2016-01-01 إلى 2017-10-04 ، بزيادات 1155672.19512195 / 3600/24 = 13.37584 يومًا.
نظرًا لضيق الوقت على المعاملات والمجموعات المحتملة لعدد فريد من المدخلات والمخرجات ، يمكنك العثور على 189 معاملة مناسبة لهذه الشروط وتوجد مرة واحدة فقط في سلسلة Bitcoin blockchain بأكملها. على سبيل المثال ، لا يوجد سوى معاملة واحدة ذات مدخلات واحدة و 13107 مخرجات - dd9f6bbf80ab36b722ca95d93268667a3ea6938288e0d4cf0e7d2e28a7a91ab3.
يمكنك الآن العثور على خصائص أخرى للمعاملات ، مثل الرسوم ، بالإضافة إلى إجمالي المدخلات (total_in_value) وحجم الإخراج (total_out_value) في Satoshi. يساعد البحث عن الارتباط والانحدار الخطي على القيام بذلك بسرعة ، وسأقدم فقط الصيغ النهائية:
- رسوم_V4 = 81341.4537626213 + 386323.710952989 * V4 ،
- total_out_value_V3 = 2742460603.92287 + 15853961614.9796 * V3.
سنجد القيمة المطلوبة total_in_value من المساواة:
total_in_value = total_out_value + الرسم.
يسمح لنا إجمالي المعلومات التي تم العثور عليها بتحديد 92.9٪ من جميع معاملات مجموعة بيانات الأهليلجية. يمكن الكشف عن الجزء الآخر إذا كنت تستخدم الرسم البياني للمعاملة من elliptic_txs_edgelist.csv ، بمقارنته برسم بياني مبني على العديد من المعاملات المناسبة مع اتصالاتهم المسجلة على blockchain ، فإن هذا يضيف 6.6٪ آخر.
وبالتالي ، يمكن بسهولة الكشف عن 99.5 ٪ من جميع المعاملات مجهولة المصدر ، ويمكن أيضا تحديد 0.5 ٪ المتبقية ، ولكن من المرجح أن يكون الوقت الذي يقضيه في التعرف على هوية المماثل له مقارنة بالوقت الذي يقضيه في الجزء الذي تم الكشف عنه بالفعل من المعاملات. يمكنك رؤية مجموعة البيانات المجهولة الهوية هنا . وهنا هي البيانات الأهليلجية الأصلية.