MoneroSwapper MoneroSwapper
חינוך

אלגוריתם בחירת הפיתיונות של מונרו: איך נבחרים חברי הטבעת

MoneroSwapper Team · · · 2 min read · 44 views

אלגוריתם בחירת הפיתיונות של מונרו: איך נבחרים חברי הטבעת

אחד המנגנונים החכמים ביותר ב-מונרו הוא בחירת הפיתיונות (Decoy Selection) — התהליך שבו ארנק מונרו בוחר אילו פלטים ישמשו כ"מסכות" בחתימת הטבעת. בחירה נכונה מבטיחה שאף צופה חיצוני לא יוכל לזהות איזה מחברי הטבעת הוא הפלט האמיתי. בחירה גרועה עלולה לחשוף אותך.

מה זה בכלל חתימת טבעת?

ב-מונרו, כל עסקה כוללת "טבעת" — קבוצה של פלטים (outputs) מהבלוקצ׳יין, שרק אחד מהם הוא הפלט האמיתי שאתה מוציא. שאר הפלטים הם פיתיונות (Decoys). המאמת רואה את כל חברי הטבעת אך לא יכול לדעת מי האמיתי. ברמת ברירת המחדל של 2026 — Ring Size = 16, כלומר 15 פיתיונות + 1 אמיתי.

למה הבחירה חשובה?

אם תבחרו פיתיונות שנוצרו בבלוקים עתיקים מאוד, ואילו הפלט האמיתי שלכם הוא חדש — האנליסט יוכל לאמוד סטטיסטית שהפלט הצעיר ביותר הוא כנראה האמיתי. לכן נדרש אלגוריתם שיבחר פיתיונות שנראים "טבעיים" מבחינת פיזור זמן.

התפלגות גמא: הלב של האלגוריתם

מאז ינואר 2021 (ו-Monero v0.17.1.9), ארנק מונרו בוחר פיתיונות לפי התפלגות גמא (Gamma Distribution) על ציר הגיל של הפלטים. הסיבה: מחקרים הוכיחו שהפלטים האמיתיים שנוצרים בפועל על ידי משתמשים רגילים מתפלגים בקירוב כמו התפלגות גמא — רוב הפלטים נוצרים ונצרכים בטווח של ימים עד שבועות, עם זנב ארוך לפלטים "ישנים".

פרמטרים של ההתפלגות

הקוד ב-Monero מגדיר:

  • Gamma Shape (k): בסביבות 19.28
  • Gamma Rate (β): בסביבות 1.61

ערכים אלה מכוילים כך שחציון גיל הפיתיון יהיה קרוב לחציון גיל הפלטים האמיתיים, על בסיס ניתוח סטטיסטי של עסקאות מהעבר.

השלבים הטכניים של הבחירה

  1. דגימה מהתפלגות גמא: הארנק דוגם ערך גיל (ביחידות שניות) מהתפלגות גמא.
  2. המרה לגובה בלוק: הגיל מומר לגובה בלוק ספציפי, תוך חישוב הזמן הממוצע לבלוק.
  3. בחירת פלט מהבלוק: מהבלוק שנבחר, נבחר פלט רנדומלי אחד.
  4. בדיקת זמינות: הפלט חייב להיות "unlocked" (10+ אישורים).
  5. חזרה אם נכשל: אם הפלט לא זמין, מתחילים מחדש.
  6. מניעת כפילויות: אי אפשר לבחור אותו פלט פעמיים בטבעת.

בעיות שהתגלו בעבר

בעיית "youngest ring member" (2017-2020)

לפני ה-Gamma distribution, האלגוריתם הישן בחר פיתיונות בצורה שגרמה לפלט האמיתי להיות בדרך כלל החדש ביותר בטבעת. מחקר של Moser et al. (2018) הראה שניתן לזהות את הפלט האמיתי ב-~45% מהעסקאות.

בעיית 0-decoy (2014-2016)

בשנים הראשונות, Ring Size = 1 היה אפשרי (כלומר, לא היה פיתיון כלל!). עסקאות כאלה חשפו את הפלט האמיתי לחלוטין ואיפשרו "peeling chain" attacks. הבעיה פתורה מ-2016.

בעיית Churning Attack

משתמש שמבצע "churning" (שולח XMR לעצמו שוב ושוב) עלול בתנאים מסוימים לחשוף קישורי עסקאות. האלגוריתם הנוכחי מגן על כך חלקית, אך FCMP++ יפתור זאת לחלוטין.

FCMP++ — המהפכה הבאה

Full-Chain Membership Proofs (FCMP++) הוא שדרוג פרוטוקולי שנמצא בפיתוח אקטיבי ב-2025-2026. הוא ישנה מהותית את מנגנון הפיתיונות:

  • אין יותר Ring Size קבוע: כל פלט בהיסטוריית הבלוקצ׳יין כולה משמש כפיתיון אפשרי
  • Anonymity Set אינסופי: לא 16, אלא מיליארדי פלטים אפשריים
  • הוכחת אפס-ידע: ה-ZK proof מוכיח שייכות לטבעת ללא חשיפת פרטים
  • חיסול בעיית Churning: אין יותר צורך ב-churning למניעת עקיבה

שדרוג זה יהפוך את מונרו לעמיד אף יותר לניתוח סטטיסטי של הבלוקצ׳יין.

כיצד האלגוריתם מוגן מפני ניתוח Blockchain

חברות אנליטיקה כגון Chainalysis ו-CipherTrace מנסות לנתח את בלוקצ׳יין מונרו. הנה מדוע בחירת הגמא מסבכת אותם:

  1. פיזור אמיתי: הפיתיונות מפוזרים לפי ההתפלגות הצפויה של פלטים אמיתיים, מה שמקשה על אינטרפרטציה סטטיסטית.
  2. Ring Size = 16: גם אם החוקר מניח שהפלט האמיתי הוא "הכי עדכני", יש עדיין 1/16 סיכוי בלבד.
  3. Stealth Addresses: כל עסקה משתמשת בכתובת חד-פעמית, מה שמונע מעקב לפי כתובת.
  4. Dandelion++ Propagation: העסקה מופצת ברשת בצורה שמסתירה את ה-IP של השולח.

עסקאות Coinbase — חריגה לכלל

עסקאות Coinbase (פרסים לכורים) הן מקרה מיוחד — הן לא משתמשות בחתימות טבעת כלל, כיוון שאין להן "קלט" מהבלוקצ׳יין. כדי לאפשר שימוש בהן עם חתימות טבעת, צריך להמתין 60 בלוקים (ה-Coinbase Maturity) לפני שניתן לכלול אותן כפיתיונות.

ניתוח קוד: איך זה עובד במעשה

הקוד הרלוונטי נמצא ב-src/wallet/ringct/gamma_picker.cpp ב-Monero repository. הפונקציה המרכזית:

uint64_t gamma_picker::pick() const {
  double x = gamma_dist(gamma_engine);
  x = exp(x);
  uint64_t output_index = ...;
  return output_index;
}

הפונקציה מחזירה אינדקס פלט גלובלי. הארנק לאחר מכן בודק שהפלט זמין ואינו כפול, ואם כן — מוסיף אותו לרשימת הפיתיונות.

השפעה מעשית על אנונימיות המשתמש

מה המשתמש הרגיל צריך לדעת?

  • אין צורך בהגדרה ידנית — הארנק בוחר אוטומטית.
  • עדיף להמתין 10+ בלוקים לפני שימוש בפלט שקיבלתם (ה-Locktime המובנה מונע שימוש מוקדם).
  • אל תשתמשו ב-RingSize פחות מ-16 (אם הגדרה ידנית אפשרית בארנק ישן).
  • FCMP++ כשיגיע — לא תצטרכו לעשות דבר, השדרוג אוטומטי.

השוואה לפרוטוקולים אחרים

כיצד מונרו משתווה לגישות פרטיות אחרות:

  • Zcash (zk-SNARKs): עסקאות מוגנות לחלוטין, אך רוב המשתמשים משתמשים בעסקאות שקופות. Monero מוגן כברירת מחדל.
  • Bitcoin CoinJoin: מעורבת רשות צנטרלית, Ring Size נמוך, ניתוח אפשרי.
  • Dash PrivateSend: מבוסס CoinJoin, אנונימיות חלשה.
  • Grin (MimbleWimble): אין כתובות, קשה לעקוב, אך חסר Stealth Addresses ו-Ring Sigs.

מונרו נחשבת הפרטית ביותר בברירת מחדל בין כל מטבעות הקריפטו.

סיכום

אלגוריתם בחירת הפיתיונות של מונרו הוא יצירת מופת של הנדסת פרטיות. הוא ממלא תפקיד קריטי בהבטחת שכל עסקה נראית טבעית מבחינה סטטיסטית. עם הגיע FCMP++, מונרו תצלח לרמה חדשה של אנונימיות — שבה כל פלט בהיסטוריה כולה יכול להיות פיתיון. זוהי עדות לחוסן ולחדשנות של מפתחי הפרויקט ולמחויבות הקהילה לפרטיות אמיתית.

פרטים מתקדמים: Output Keys ו-Key Images

כדי להבין לעומק את בחירת הפיתיונות, חשוב להכיר את המושגים הבאים:

Output Key (מפתח פלט)

כל פלט ב-XMR כולל Output Key — מפתח ציבורי ייחודי שנגזר מ-Stealth Address של המקבל. המשלח יוצר זאת בצורה שרק המקבל (עם View Key שלו) יוכל לזהות שהפלט שייך לו.

Key Image (תמונת מפתח)

כאשר משתמש מוציא פלט, הוא יוצר Key Image — ערך ייחודי שנגזר מהמפתח הפרטי ומ-Output Key. ה-Key Image מתפרסם בבלוקצ׳יין ומונע שימוש כפול (double spend). חשוב: מ-Key Image לבד לא ניתן לדעת לאיזה פלט הוא שייך — זוהי נכסת הפרטיות.

כיצד הפיתיון משתמש בזה

כשהטבעת בנויה עם 15 פיתיונות ו-1 פלט אמיתי, החתימה מוכיחה שבעל אחד מ-16 Output Keys הוא שחתם — מבלי לחשוף מי. הוולידטור מאמת ש-Key Image לא הופיע בעבר (מניעת double spend) אך לא יודע לאיזה Output Key הוא שייך.

כלי ניתוח Blockchain ואיומים עתידיים

חברות כמו Chainalysis הצהירו שאינן יכולות לנתח מונרו באותה יעילות שבה הן מנתחות ביטקוין. אולם ישנם איומים תיאורטיים:

ניתוח Statistical Timing

אם תמיד תשתמשו ב-XMR שקיבלתם לפני 5 שניות בלבד, האלגוריתם עדיין לא ישמור עליכם — כי ה-Gamma Distribution מניחה זמן קצר יחסי, אך לא 5 שניות. לכן תמיד המתינו לפחות כמה בלוקים (10+ מינות).

Spent Output Heuristic

אם פלט בטבעת כבר נוצל (Key Image שלו כבר בבלוקצ׳יין), ניתן לפסול אותו כפיתיון. ה-Monero Wallet אמנם בודק זאת, אך לא תמיד מסנן פיתיונות שנוצלו כבר — דבר שהתוכניתנים עובדים לשפר.

Cross-Input Linkage

עסקה עם מספר קלטים (Inputs) חושפת שכל הקלטים שייכים לאותו ארנק (בדרך כלל). לכן כשמונרו מרכיבה עסקה עם ריבוי קלטים, אפשר ללמוד מכך מעט. פתרון: שלחו עסקאות עם קלט אחד בלבד כשאפשר.

כיצד קהילת מונרו מחזקת את האלגוריתם

מחקר ופיתוח מתמשכים:

  • Monero Research Lab (MRL): פרסמה onze מסמכי מחקר על פרטיות בלוקצ׳יין, כולל ניתוח אלגוריתמי בחירה.
  • Peer Review: כל שינוי לאלגוריתם עובר ביקורת ציבורית בפורומים כמו GitHub ו-Monero StackExchange.
  • Bug Bounty: קהילת מונרו מציעה פרסים לגילוי חולשות בפרטיות.
  • הארד פורק שנתיים: מונרו משתדרגת פעמיים בשנה, מה שמאפשר שיפורי אלגוריתם מהירים.

מחקר: Empirical Analysis of Monero Traceability

מחקר מ-2022 מאוניברסיטת UC San Diego בחן האם ניתן לנתח בלוקצ׳יין מונרו לאחר שדרוג ל-Gamma Distribution. המסקנות:

  • עם Ring Size = 11 (טרום 2022), שיעור זיהוי ירד ל-~7% לעומת 45% לפני כן
  • עם Ring Size = 16 (מ-2022), שיעור זיהוי ירד עוד יותר
  • FCMP++ צפוי להוריד את שיעור הזיהוי ל-0% תיאורטית

זהו שיפור מרשים — אך גם תזכורת שאין מערכת מושלמת. פרטיות היא ספקטרום, לא מצב בינארי.

הצד הפרקטי: מה עושה ארנקך אוטומטית

כמשתמש רגיל, אתם לא צריכים לדאוג לשום דבר — הארנק עושה הכל:

  1. בונה עסקה עם Ring Size = 16 (ברירת מחדל)
  2. בוחר 15 פיתיונות אוטומטית לפי Gamma Distribution
  3. מוסיף את הפלט האמיתי שלכם
  4. חותם עם CLSAG (Concise Linkable Spontaneous Anonymous Group) signature
  5. מפיץ דרך Dandelion++ להסתרת IP

מרגע שלחצתם "שלח" — האלגוריתם מופעל מאחורי הקלעים, מגן על פרטיותכם ללא כל מעורבות ידנית.

עתיד אלגוריתם הבחירה עם Seraphis

מעבר ל-FCMP++, הפרוטוקול Seraphis (שיחליף בסופו של דבר את RingCT) יביא שינויים מבניים נוספים:

  • מבנה Jamtis לכתובות — גמישות רבה יותר לארנקים
  • שיפור ב-View Tags לסריקה מהירה
  • תמיכה טובה יותר בארנקי חומרה
  • API מורחב לבניית עסקאות מורכבות (multi-sig משופר)

הדרך קדימה ל-Monero היא ברורה: פרטיות טובה יותר, מהירות גבוהה יותר, ושימושיות גדולה יותר — הכל יחד.

שאלות נפוצות על בחירת פיתיונות

האם ניתן לבחור פיתיונות ידנית?

בגרסאות CLI ישנות היה אפשרי, אך הדבר הוסר כי בחירה ידנית עלולה לפגוע באנונימיות. האלגוריתם האוטומטי עדיף תמיד.

מה קורה אם שני אנשים בוחרים בטעות את אותו פיתיון?

זה תקין לחלוטין — פיתיונות הם ציבוריים ואפשר שאותו פלט יופיע בטבעות שונות. זה לא פוגע בפרטיות, רק מעיד שהוא נפוץ.

האם Ring Size גדול יותר תמיד טוב יותר?

כן מבחינת אנונימיות, אך גדלים גדולים יותר מגדילים גם את גודל העסקה ואת העמלה. Ring Size = 16 מאזן בין שניהם. עם FCMP++ הדיון יהיה לא-רלוונטי.

האם Decoy שכבר נוצל פוגע בי?

אם פיתיון בטבעת שלכם כבר נוצל (key image ידוע), ניתח כלשהו יוכל לפסול אותו ולצמצם את קבוצת החשודים. הסיכוי לכך קטן ומוגבל, והארנק הנוכחי מנסה לסנן פיתיונות "שרופים" כאשר אפשר.

מקורות ומחקרים לקריאה נוספת

  • Möser et al. (2018): "An Empirical Analysis of Traceability in the Monero Blockchain"
  • MRL-0001 עד MRL-0013: מסמכי Monero Research Lab הרשמיים
  • GitHub: getmonero/monero — src/wallet/ringct/gamma_picker.cpp
  • Monero StackExchange: hundreds of Q&A on ring signatures and decoy selection
  • Breaking Monero (YouTube series by Seth Simmons) — סדרת וידאו מצוינת בנושא

אלגוריתם בחירת הפיתיונות הוא אחד המנגנונים המתוחכמים ביותר בתחום פרטיות הבלוקצ׳יין. ההבנה שלו מאפשרת לכם להשתמש במונרו בצורה בטוחה ומודעת יותר.

סיכום: מדוע אלגוריתם בחירת הפיתיונות הוא מרכיב מפתח בפרטיות מונרו

ראינו כיצד ההתפלגות הגמא הפכה את מונרו ממערכת שניתן לנתח בחלקה למערכת שאנליזה שלה קשה מאוד. ה-Ring Size = 16, בשילוב עם Stealth Addresses, RingCT ו-Dandelion++, יוצרים הגנת פרטיות רב-שכבתית.

הדרך הארוכה של מונרו — מ-Ring Size = 1 בראשיתה, ועד ל-FCMP++ הממשמש ובא — מעידה על קהילת מפתחים שלא מתפשרת. כל שדרוג מגיע בתגובה לאיומים אמיתיים שנחקרו ופורסמו. זוהי מחויבות נדירה בעולם הקריפטו.

למשתמש הסופי המסר פשוט: אם תשתמשו בארנק עדכני, תמתינו מספיק זמן לפני ניצול פלטים, ותפעילו Tor או VPN — מונרו מספקת פרטיות שכמעט אף מערכת אחרת אינה מציעה כברירת מחדל.

שתף מאמר זה

מאמרים קשורים

מוכנים להחליף?

בורסת Monero אנונימית

ללא KYC • ללא הרשמה • החלפה מיידית

החלף עכשיו