Blockchain Data אימות: התפקיד הקריטי של מיון

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

מידע Blockchain Data אימות

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

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

למה למיין את הטכניקה

מיון הופך אוסף לא מסודר לתוך רצף מובנה, המאפשר אלגוריתמים הדורשים קלט הורה לרוץ O(log n) או O(n) זמן במקום O(n2).באימות blockchain, היתרונות כוללים:

  • (ב) ,0) ,Faster לשכפל זיהוי FLT:1 - רשימות מטוגנות מאפשרות השוואה קרובה למציאת עסקאות משוכפלות או התנגשות אי-ספיקות בזמן ליניארי.
  • (ב) שאילתות טווח יעילות (FLT:0) , לדוגמה, אימות כי כל מקרי העסקה נופלים בתוך חלון זמן תקף.
  • (FLT:0) שיפור ביצועים של קונצנזוס 1FLT - כמה פרוטוקולים קונצנזוס (למשל PBFT) דורשים עיבוד עסקאות בסדר הכרעה; מיון מבטיח שכל הצומתים יגיעו באותו רצף ללא משא ומתן נוסף.
  • (FLT:0) חינוך טביעת רגל זיכרון לאחרת 1:1 - ניתן לדחוס נתונים מסובכים או לאינדקס בצורה יעילה יותר, הורדת דרישות אחסון על צומת אימות.

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

טכניקות מיון נפוצות עבור Blockchain אימות

לא כל אלגוריתמים מדומים באותה מידה לסביבות blockchain.הבחירה תלויה במאפיינים של נתונים (גודל, הפצה, דרישות יציבות) ומגבלות חומרה (זיכרון מוגבל, צורך בהתנהגות ⁇ סטית).

מהיר

Quick Kind משמש נרחב לביצועים הממוצעים של O(n di n) והיכולת למיין את הבלוקצ'יין, הוא לעתים קרובות מועסק כדי למיין את רשימת העסקה בתוך בלוק לפני אימות. כי נתונים מפצה במהירות על בסיס pivot, זה יכול לשמש גם כדי להסיר במהירות עסקאות דיסקרטיות ליפול מחוץ לטווח תקף - למשל, מסנן עסקאות עם עמלות מתחת לסף מינימלי, במהירות של פירעון (אוט) או במקרה של ניתוח אוטומטי (או תקלות).

מרקמיין

מארג' מספק ביצועים עקביים של O(n log n) ללא קשר להפצת קלט, מה שהופך אותו בחירה בטוחה יותר עבור סביבות יריבות. הנכס היציב שלה להבטיח כי עסקאות עם עדיפות שווה (למשל, אותה תשלום) לשמור על צו ההגשה המקורי שלהם, אשר חשוב עבור עסקאות הוגן סדר העסקה הזמנה בבלוקצ'יין מסוים.Mge מצריך זיכרון נוסף, אבל בלוקצ'יין תוקף זה בדרך כלל מקובל כי הם ניתנים לחסימות של דוגמאות חסומות עבור עיבוד של ציוד ניקוי.

« ערימה

סוג ה-Heap הוא בעל ערך כאשר אימות חייב לאשר עסקאות מסוימות. A max-heap, למשל, יכול לחלץ את העסקה הגבוהה ביותר ב- O(log n) זמן, המאפשר אימותים לעבד את העסקאות הרווחיות ביותר ראשון (כפי שנראה במנגנוני שוק תשלום ביטקוין), הוא גם אלגוריתם ללא מקום עם O(n log) זמן גרוע יותר, המציע טוב עבור מאזן זיכרון מוגבל לפני שהוא משלב מחסומים blockchain.

רדינקס

עבור מפתחות אינסטלגר כגון מזהה עסקה (hashes) או ערכי nonce, סוג קורנקס יכול להשיג זמן O(n * k), שבו k הוא אורך המפתח. בפועל, סוג קורנקס יכול להיות מהיר יותר מאשר סוגים המבוססים על השוואה עבור n גדול, במיוחד על חומרה התומכת ביצוע כפול. רדיקס הוא לא-זמנית ובכך למנוע את O(n logx n) עם זאת, דורש כי לפעמים סמן מתאים כדי לבדוק את ה-hex.

המונחים: Small Subsets

בעוד שסוג ההכנסה הוא O(n2), הוא מפיץ אלגוריתמים מורכבים יותר כאשר n הוא קטן מאוד (בדרך כלל < 20) Blockchain לעתים קרובות פיצול עסקאות גדולות לתוך אצילות קטנות יותר (למשל, shards) בתוך shard, סוג של החדרה ניתן להשתמש כדי לשמור על רשימה מסודרת של עסקאות נכנסות לפני מיזוג לתוך סדר עולמי רבים כמו טים) שימוש בסיס.

יישום פרוטוקולי אימות blockchain

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

דפוס 1: קביעת מועדות מראש של רשימת עסקאות

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

בפועל, זה מיושם על ידי עוטפת לולאה אימות עם שיחה מסוג זה.לדוגמה, בבלוקצ'יין מבוסס Tendermint, שיטת "DeliverTx" יכולה תחילה ליישם סוג מהיר ברשימת העסקה המתקבלת באמצעות מתווך אשר צוים על ידי "(sender, nonce)" (הרשימה המנוכרת מאומתת על ידי עסקה.

תבנית 2: מיון בלוקים על ידי Timestamp או האש

כאשר נושונים ברשת peering מקבלים בלוקים ממקורות מרובים, הם חייבים לקבוע את הסדר הקנטון.מיין בלוקים נכנסים על ידי לוח הזמנים שלהם (או על ידי בלוק hash כקשור) מאפשר את הצומת לעבד אותם ברצף דטרמיניסטי, להאיץ את ה-Fork-choice Rule. ביטקוין, את השרשרת העיקרית של ביטקוין (שרשרת ארוכה) משתמש בסוג טופולוגי של הגרף הגרף, אך מסייע למיין חסימות פשוטות לפני הספירה לאחור (S).

תבנית 3: שימוש בעץ מריקל ממיין עבור Batch אימות

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

היתרונות של שימוש בטכניקות מיון

אימוץ מיון ב- blockchain אימות מניב שיפורים ניכרים לאורך ערימה הרשת:

  • (ב) כפלת ההשוואה:0 (FLT:1ig) מקטין את מספר ההשוואה הנדרשת לבדיקת יושרה, צמצום זמן עיבוד בלוק ב-20–40% במדדים שדווחו בספרות אקדמית (למשל, FLT:2A Singh et al., "הפחתת Blockchain אימות השימוש במיין," גישה, 2020Falrated:2A.
  • (ב) ,0) דיוק: 1FLT:1, מבני נתונים מדומים הופכים את האנומליות כגון פערי רצף או כפייתות כפולות גלויות מיד, הורדת שיעור ההונאה שלא ניתן לגילוי.
  • (FLT:0) calability:0 (FLT:1) ככל שגדלים מ 1 MB ל 100 MB, מיון מעל הראש גדל רק ביוריתמטי, בעוד אימות זמני ליניארי יגדל באופן ליניארי.
  • התנהגות בלתי-פתורה:0 [ה]הבאה [ה] בבלוקצ'יין המורש, שם כל הצומתים חייבים להגיע לתוצאה האימות, המסלקים את הלא-קבעיזם שנגרם על ידי הסדרת העסקה המשתנה.
  • (FLT:0) דמי תשלום טובים יותר: FLT:1 , מיון עסקאות mempool על ידי תשלום מאפשר לכורים או תוקף כדי לבנות בלוקים הממקסמים את הרווח, ישירות המשפיעים על התמריצים הכלכליים של הרשת.

אתגרים ושיקולים

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

Overhead ofמיין

מיון עצמו צורכת מחזורי CPU.עבור גודל בלוק של 10,000 עסקאות, סוג טוב O(n log n) מוסיף בערך 0.1-0.5 מ"מ לבלוק על חומרה מודרנית - זניח בהשוואה לאימות חתימה (אשר עשוי לקחת 10-100 מ"מ) עם זאת, אם מיון מבוצע מספר פעמים (למשל, לאחר כל שינוי מדינה), על גבי מצטברים צריך את כל הפרופיל ואת העצלן לשקול סוג של נתונים רק כאשר יהיה גישה.

זיכרון ה- Light Nodes

לקוחות אור או אימותים משובצים עשויים להיות מוגבלים זיכרון RAM.הזיכרון של מרקג' מסוג O(n) יכול להיות בעיה עבור בלוקים גדולים מאוד. במקרים כאלה, באלגוריתמים במקום כמו סוג של heap או מהיר רציונטיבי צריך להיות מועדף.אולי, אלגוריתמים ממיין חיצוני (למשל, מיזוג עם לשפוך דיסק) ניתן להשתמש עבור חסימות של גודל זה עולה הזיכרון.

לתקוף את הווקטורים

אם קידוד יכול להשפיע על הנתונים להיות ממיין, הם עשויים לכפות קלט הגרוע ביותר עבור אלגוריתם מסוים.לדוגמה, הגשת עסקאות עם אי-ספיקות גדל מונוטונית יכול לגרום לדרגה מהירה ל- O(n2). Defenses כוללים שימוש בבוט אקראי, ליפול חזרה ל- heap (introst), או כי קבלת ביצועים גרועים עדיין כבולים על ידי סף מקובל.

המונחים: sorting order

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

שיקולים מתקדמים: מיון ב- Consensus

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

המונחים: Shard Assignment

בבלוקצ'יין (למשל, Ethereum 2.0, Zilliqa), עסקאות מוקצה ל-shards בהתבסס על רכוש מסוים כגון כתובת ה-Sams הכתובת של השולח, ממיין את רשימת העסקה על ידי מזהה shard לפני אימות יכול קבוצות עסקאות שייכות לאותו shard, המאפשר עיבוד מקביל וצמצום תקשורת חוצה-העבר.

המונחים: high throughput

CPUs מודרניים ו GPUs מציעים יכולות מיון מקבילים (למשל, CUDA Thrust, Intel TBB) Blockchain תוקף יכול למנף אלה כדי למיין בלוקים בזמן תת-מילי השני, אפילו עבור בלוקים עם מאות אלפי עסקאות.גירסאות מקבילים של מיזוג ורדיוקס הם נפוצים.עם זאת, יש לנקוט זהירות כדי להבטיח את הדטרמיניזם: לעתים קרובות שימושים שאינם קבועים עבודה, אשר חייב להיות מנקה שימוש בקונצנזוס (כמו מקבילה) על בסיס קונצנזוס (כמו מקבילה) יש צורך לקבוע אלגוריתם) מקבילה) אלגוריתם נדרשה הוא צורך לקבוע אלגוריתם (כמו מקבילה) אלגוריתם נדרשה) על בסיס אלגוריתם (כמו אלגוריתם).

המונחים: Cross-Chain אימות

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

דוגמאות אמיתיות בעולם

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

  • (FLT:0)BitcoinofLT:1 ; Miners ממיין עסקאות במפרק על ידי תשלום עבור קילובטה לפני הקמת בלוק מועמד.התוכנה הכרייה גם עסקאות על ידי תלות (הזמנה של הילד) כדי להימנע כולל עסקה שמוציאה פלטים מעסקאות שכבר לא נשללו.זה מקטין את הזמן הדרוש כדי לאמת את התבנית.
  • (FLT:0)Eum 2.0 (Beacon chain)BuildFLT:1) - לפני הצעת בלוק, תוקףים מטיפים על ידי מדד אימות כדי ליצור רשימה דטרמיניסטית.תפקוד המעבר המדינה ואז למיין את עץ הפיקדון של בלוק על ידי אינדקס כדי למקם את שורש הפיקדון הנכון.
  • (FLT:0) ,Hyperledger fabricFLT:1 - שירות ההזמנה (Kafka או רפט) מספק הצעות עסקה בסדר שהם קיבלו.עם זאת, עמיתים חייבים למיין את העסקאות המוצעות על ידי שם (זיהוי ערוצים) לפני אימות כדי להבטיח כי קוד המילוי של שרשראות מעובד בסדר עקבי על פני עמיתים.
  • (FLT:0) SolaveFLT:1) - מגדל Soalias Tower BFT משתמש בהוכחה-of-history (PoH) שיוצרת רצף מסודר של אירועים.המערכת מתכנסת על ידי ה- PoH שלהם לפני אימות, המאפשרת גבוהה מאוד באמצעות לוח (מעל 50,000 TPS).

Best Practices for Implementing in Blockchain אימות

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

  • (FLT:0) בחר את האלגוריתם הנכון לשלב הנכון.BuildFLT:1) השתמש במיזוג מסוג או timsort ליציבות מטרות כלליות וערבויות הגרועות ביותר. השתמש בסוג עיבוד מבוסס עדיפות. השתמש במונחי רדיוקס כאשר המפתחות הם integers וחומרה מקבילים זמין.
  • (ב) [ה]ה']: [ה'] [ה'] [ה'] [ה']'[ה']'[ה']'[ה]']'[ה']'[ה']'[ה']'[ה']'[ה']'[ה']'[ה']']'[ה']'[ה']'[ה']']'[ה'[ה']'[ה'[ה']']'[ה'[ה'[ה'[ה']'[ה'[ה']']'[ה'[ה'[ה'[ה']']']']'[ה']']'[ה'[ה'[ה'[ה']']']']'[ה'[ה'[ה']'[ה'[ה'[ה'[ה']']'[ה']']'[ה'[ה'[ה'[ה']']']']']'[ה'[ה'[ה'[ה'[ה
  • (ב) [15] ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
  • (ב) [ה]הרש"ל:0], למשל, יש צורך ברכוש המתואם, לשמור על רשימה בלתי מוגבלת של עסקאות נכנסות, אך הקלדה אחת לפני יצירת בלוק.
  • (ב) אם ה-FLT:0) האצה של חומרה (FLT:103) אם ה-Properator פועל על GPU או מספר ליבות, השתמש בספריות מיון מקבילים.
  • (FLT:0) ביצוע עסקאות חליפין- offs.FIRLT:1 למה בחרת במהירות על פני מיזוג?מה היו מגבלות זיכרון?

מסקנה

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