MoneroSwapper MoneroSwapper
מדריכים

עסקאות מונרו נעולות בזמן: המדריך המלא לתזמון העברות XMR

MoneroSwapper Team · · · 2 min read · 60 views

מה הן עסקאות נעולות בזמן במונרו?

מונרו (Monero) מציעה מנגנון ייחודי המאפשר למשתמשים לתזמן עסקאות כך שניתן יהיה להוציא את הכספים רק לאחר נקודת זמן עתידית מסוימת. מנגנון זה, המכונה unlock_time, מאפשר יצירת עסקאות שבהן הפלט (output) נשאר נעול עד להגעת גובה בלוק מסוים או עד לחלוף תקופת זמן מוגדרת. זהו כלי רב עוצמה עבור תרחישים פיננסיים מגוונים הדורשים תכנון מראש.

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

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

כיצד פועל מנגנון unlock_time?

ה-unlock_time ב-מונרו מוגדר כמספר שלם (integer) שניתן לפרש בשתי דרכים שונות, בהתאם לגודל הערך:

  • גובה בלוק: אם הערך קטן מ-500,000,000, הוא מתפרש כגובה בלוק ספציפי. לדוגמה, ערך של 3,200,000 פירושו שהכספים ינעלו עד לבלוק מספר 3,200,000 של רשת מונרו.
  • חותמת זמן Unix: אם הערך גדול מ-500,000,000, הוא מתפרש כחותמת זמן Unix בשניות. לדוגמה, ערך המייצג את תאריך 1 בינואר 2027 יאפשר הוצאת כספים רק לאחר תאריך זה.

כדאי לדעת שקצב יצירת בלוקים ב-מונרו הוא כשתי דקות בממוצע. לכן, כדי לחשב גובה בלוק עתידי, תוכלו להשתמש בנוסחה: גובה_בלוק_נוכחי + (מספר_ימים × 720) כאשר 720 הוא מספר הבלוקים הממוצע ביום.

מבחינת ה-blockchain, הנתון של unlock_time מאוחסן בגוף העסקה ומאומת על ידי כל צמתי הרשת. אף מכרה (miner) לא יכול לכלול בלוק עסקה שמנסה להוציא פלטים נעולים לפני הזמן המוגדר. זהו אכיפה ברמת ה-consensus, ולא רק אמנה חברתית.

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

תרחישי שימוש עיקריים

1. תשלומים מתוזמנים

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

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

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

2. הסדרי נאמנות (Escrow)

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

  1. הקונה שולח XMR לכתובת הנאמנות עם unlock_time מוגדר לפרק זמן מספיק לאימות העסקה.
  2. אם העסקה מתקיימת כמוסכם, הכספים משתחררים לידי המוכר בסיום הזמן.
  3. אם העסקה נכשלת וצריך להחזיר כספים, ניתן להשתמש בעסקאות חתומות מראש.

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

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

3. תכנון ירושה ועיזבון

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

עסקאות נעולות בזמן מציעות פתרון חלקי: תוכלו ליצור עסקה עם unlock_time רחוק בעתיד (למשל, 10-20 שנים) ולתת ליורשים את מפתח הצפייה (view key) כדי שיוכלו לאמת קיום הכספים. כאשר הזמן יגיע, הם יוכלו להוציא את הנכסים.

מנגנון זה יעבוד בצורה הטובה ביותר בשילוב עם:

  • עסקאות חתומות מראש (pre-signed transactions) המאוחסנות בצורה מאובטחת
  • מסמכים משפטיים המפרטים כיצד לנהוג עם מפתחות הארנק
  • כתובות גיבוי אצל עורכי דין אמינים

בנוסף, ניתן לשלב unlock_time עם multisig - ארנק שדורש מספר חתימות כדי לפעול. לדוגמה, ארנק 2-of-3 שבו שניים מתוך שלושה יורשים חייבים להסכים להוצאת כספים, בשילוב עם unlock_time שמבטיח שהגישה לא תתאפשר לפני מותכם.

4. צבירת חיסכון מאולצת

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

שימוש מעשי: אדם שרוצה לחסוך לחתונה, לרכישת דירה, או לחינוך ילדיו יכול לשלוח XMR לארנק שלו עצמו עם unlock_time של שנה. הכסף נמצא בידיו, אך הדחף לבזבז אותו מנוטרל מכיוון שלא ניתן לגשת אליו.

5. הבטחת תשלומי ביטוח

בעולם עסקים מסוים, ניתן להשתמש ב-unlock_time כדי להבטיח תשלומים עתידיים. לדוגמה, חברה שמוכרת מנוי שנתי יכולה "לנעול" תשלומים חודשיים מראש, כך שהם ישתחררו בתאריכים המתאימים לאורך השנה.

מדריך שלב-אחר-שלב: יצירת עסקה נעולה בזמן עם ארנק CLI

שלב 1: הכנת סביבת העבודה

ראשית, ודאו שיש לכם גרסה עדכנית של ארנק CLI של מונרו. תוכלו להוריד אותה מ-getmonero.org. לאחר ההתקנה, פתחו את הארנק עם:

./monero-wallet-cli --wallet-file YOUR_WALLET_FILE

הכניסו את הסיסמה שלכם והמתינו לסנכרון מלא עם הרשת. הסנכרון הראשוני עשוי לקחת זמן רב בהתאם לגיל הארנק.

שלב 2: חישוב ה-unlock_time הנכון

קודם כל, בדקו את גובה הבלוק הנוכחי:

bc_height

נניח שגובה הבלוק הנוכחי הוא 3,100,000 ואתם רוצים לנעול כספים ל-30 יום:

unlock_height = 3,100,000 + (30 × 720) = 3,100,000 + 21,600 = 3,121,600

שימו לב שקצב הבלוקים לא מדויק תמיד. ייתכן שיהיה שוני של כמה שעות. אם הזמן המדויק קריטי, השתמשו בחותמת זמן Unix.

שלב 3: שליחת העסקה עם unlock_time

השתמשו בפקודה הבאה:

transfer DESTINATION_ADDRESS AMOUNT unlock_time UNLOCK_HEIGHT

לדוגמה, לשליחת 1.5 XMR עם נעילה עד לבלוק 3,121,600:

transfer 4AbCdEfGhIjKlMnOpQrStUvWxYz1234567890AbCdEfGhIjKlMnOpQrStUvWxYz 1.5 unlock_time 3121600

הארנק יציג פרטי העסקה כולל דמי הגז (transaction fee) ויבקש אישורכם לפני השליחה. קראו את הפרטים בזהירות לפני האישור.

שלב 4: אימות העסקה

לאחר השליחה, תוכלו לאמת את העסקה על ידי בדיקת ה-transaction ID (TXID) ב-block explorer כמו xmrchain.net. שימו לב לשדה ה-unlock_time בפרטי העסקה. הוא אמור להציג את גובה הבלוק שציינתם.

בארנק, תוכלו גם לראות את ה-outputs הנעולים עם:

show_transfers

עסקאות עם unlock_time יסומנו באופן מיוחד.

שלב 5: מה קורה כשהזמן מגיע?

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

שיקולי פרטיות

חשוב להיות מודעים לכך ששימוש ב-unlock_time עלול להשפיע על פרטיות העסקה שלכם. כאשר עסקה כוללת unlock_time, ה-metadata הזה גלוי ל-blockchain וניתן לראות אותו על ידי כל מי שמנתח את הרשת.

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

עם זאת, ה-ring signatures של מונרו עדיין מסתירים את הכתובות האמיתיות של השולח, כך שהפרטיות הבסיסית לגבי זהות המשתתפים נשמרת. רק ה-metadata של נעילת הזמן גלוי.

אם פרטיות מקסימלית חשובה לכם, שקלו חלופות כגון:

  • שימוש בכתובות stealth חד-פעמיות בשילוב עם unlock_time מינימלי
  • ביצוע עסקאות בשלבים מרובים (shielding) לפני ואחרי הנעילה
  • שימוש ב-subaddresses שונים לכל עסקת נעילה

מגבלות ואתגרים

למרות יתרונותיו, מנגנון unlock_time כולל מספר מגבלות שחשוב להכיר:

1. חוסר גמישות

לאחר שליחת העסקה, לא ניתן לשנות את ה-unlock_time. אם נסיבות חיצוניות משתנות (כמו צורך דחוף בכספים, שינוי בעסקה המסחרית), לא תהיה לכם גישה אליהם לפני הזמן המוגדר. זו מגבלה משמעותית שיש להיות מודעים אליה לפני יצירת העסקה.

2. אי-ודאות לגבי גובה בלוק

מאחר שקצב יצירת הבלוקים משתנה מעט (בין 1.5 ל-2.5 דקות בדרך כלל), גובה בלוק עתידי ספציפי לא תמיד מתרגם לתאריך קלנדרי מדויק. לעסקאות שבהן המועד המדויק חשוב, מומלץ להשתמש בחותמת זמן Unix במקום גובה בלוק.

3. מורכבות טכנית

משתמשים לא טכניים עלולים להתקשות בהבנה וביישום נכון של unlock_time. שגיאות בהגדרת הזמן עלולות לגרום לנעילת כספים לתקופה ארוכה מהמתוכנן. תמיד בדקו פעמיים את הפרמטרים לפני אישור העסקה.

4. תאימות ארנקים

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

עסקאות נעולות בזמן לעומת חוזים חכמים

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

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

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

דוגמאות מעשיות לחישוב unlock_time

להלן מספר דוגמאות מעשיות לחישוב unlock_time בהתאם לפרק הזמן הרצוי:

נעילה ל-7 ימים:

unlock_height = גובה_נוכחי + (7 × 720) = גובה_נוכחי + 5,040

נעילה ל-30 ימים:

unlock_height = גובה_נוכחי + (30 × 720) = גובה_נוכחי + 21,600

נעילה ל-6 חודשים:

unlock_height = גובה_נוכחי + (182 × 720) = גובה_נוכחי + 131,040

נעילה ל-1 שנה:

unlock_height = גובה_נוכחי + (365 × 720) = גובה_נוכחי + 262,800

שימוש בחותמת זמן Unix (לדוגמה, 1 בינואר 2027):

unlock_time = 1767225600  # חותמת Unix עבור 2027-01-01 00:00:00 UTC

לבדיקת חותמת זמן Unix לתאריך ספציפי, תוכלו להשתמש בכלים כמו epochconverter.com.

השוואה עם מנגנוני נעילה בבלוקצ'יינים אחרים

נעילת זמן אינה ייחודית למונרו. בואו נשווה עם בלוקצ'יינים אחרים:

  • Bitcoin OP_CHECKLOCKTIMEVERIFY (CLTV): מאפשר נעילה לגובה בלוק או חותמת זמן. הנתון גלוי לחלוטין ב-blockchain. נמצא בשימוש נרחב ב-Lightning Network channels.
  • Bitcoin OP_CHECKSEQUENCEVERIFY (CSV): נעילה יחסית (relative timelock) - כספים נעולים לפרק זמן מסוים לאחר כניסת העסקה לבלוק.
  • Ethereum: נעילת זמן מיושמת דרך חוזים חכמים עם מלוא הגמישות, אך ללא פרטיות. כל הלוגיקה גלויה לציבור.
  • מונרו: unlock_time מוכלל בפרוטוקול הבסיסי עם הגנת פרטיות חלקית בלבד לגבי ה-metadata של הזמן, אך עם הגנה מלאה על זהות הצדדים ועל הסכום.

פיתוחים עתידיים

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

בנוסף, מספר הצעות מחקר מתמקדות ביצירת מנגנוני נאמנות חכמים יותר תוך שימוש בהוכחות אפסיות (zero-knowledge proofs), שיאפשרו לוגיקה עסקית מורכבת יותר מבלי לפגוע בפרטיות. FCMP++ (Full Chain Membership Proofs Plus Plus) פותח אפשרויות חדשות בתחום זה.

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

מסקנות: האם כדאי להשתמש ב-unlock_time?

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

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

עם זאת, הן פחות מתאימות כאשר:

  • פרטיות מקסימלית לגבי ה-metadata של העסקה היא עדיפות עליונה
  • אתם צריכים גמישות לשנות תנאים לאחר שהעסקה נשלחה
  • אתם מחפשים לוגיקה עסקית מורכבת עם תנאים מרובים
  • הצד השני אינו מכיר את מנגנון ה-unlock_time ועלול לפתח אי-ביטחון

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

שתף מאמר זה

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

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

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

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

החלף עכשיו