תוכן עניינים:

איך הבלוקצ'יין עובד בפועל
איך הבלוקצ'יין עובד בפועל

וִידֵאוֹ: איך הבלוקצ'יין עובד בפועל

וִידֵאוֹ: איך הבלוקצ'יין עובד בפועל
וִידֵאוֹ: המלכודת האיטלקית | אוקטובר - דצמבר 1943 | מלחמת העולם השניה 2024, אַפּרִיל
Anonim

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

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

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

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

ואולג יעזור לכולנו בעניין הקשה הזה. לִפְגוֹשׁ!

אם אתה לא אוהב את אולג, אני אעיף אותו החוצה.

היסודות: למה אנחנו צריכים בלוקצ'יין?

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

רשימה שלא ניתנת לשינוי

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

בואו ניקח דוגמה

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

עכשיו אולג תמיד יכול ללכת ללוח ולוודא שמקס החזיר הכל, אבל וניה כבר לא נותן 700 רובל. יום אחד אולג מזמין את וניה לשתות משהו בביתו. בעוד אולג הולך לשירותים, וניה מוחקת את הערך "שאלתי 200 רובל עבור וניה" וכותבת במקומו "וניה נתנה 500 רובל".

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

הוספת נקודה בסוף שינתה את ה-hash הסופי ללא הכר - אתה יכול להשתמש בו.

אולג לוקח את ה-hash הידוע SHA-256 ומאגב איתו כל רשומה, ומוסיף את התוצאה בסוף. כעת אולג יכול לוודא שאף אחד לא שינה את הרשומות שלו על ידי גיבוב שלהם שוב והשוואתם עם הירוק.

אבל EVIL IVAN גם יודע להשתמש ב-SHA-256 ויכול בקלות לשנות את הערך יחד עם ה-hash שלו. במיוחד אם ה-hash כתוב ממש לידו על הלוח.

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

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

אולג מחליט איכשהו לסבך את חייו. כעת, כדי להוסיף ערך חדש לרשימה, אולג יפתור בעיה מורכבת הקשורה אליו, למשל, משוואה מתמטית. הוא יוסיף את התשובה ל-hash הסופי.

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

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

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

כעת אולג מאמת את כל הגיבובים ובנוסף מוודא שכל אחד מתחיל במספר האפסים שצוין. Sly Ivan, אפילו חמוש במחשב נייד חזק, לא יספיק לחשב מחדש את כל ה-hashs בלילה כדי שיעמדו בתנאי - לא יהיה מספיק זמן.

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

ריכוזיות של אמון

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

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

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

ביזור: אף אחד לא סומך על אף אחד

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

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

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

עסקאות

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

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

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

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

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

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

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

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

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

חוסר במושג "איזון"

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

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

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

כלומר, אם אתה רוצה להוציא 400 רובל, אתה עובר על כל ההיסטוריה של ההכנסות וההוצאות שלך, ומצרף לעסקה שלך את ההכנסות שבהן קיבלת 100 + 250 + 50 רובל, ובכך מוכיח שיש לך 400 רובל אלה.

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

הכנסות כאלה הקשורות לעסקה נקראות תשומות בבלוקצ'יין, וכל מקבלי הכסף נקראים תפוקות. הסכום של כל התשומות הוא לעתים רחוקות זהה לחלוטין לסכום שאתה רוצה להעביר בכל פעם - לכן, אחד הפלטים יהיה לרוב אתה עצמך. במילים אחרות, העסקה בבלוקצ'יין נראית כמו "קיבלתי 3 ו-2 BTC, אני רוצה להעביר מהם 4 BTC ולהחזיר את ה-1 BTC הנותר בחזרה".

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

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

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

בעיית הוצאה כפולה

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

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

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

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

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

איך אתה יכול לוודא שעסקה אחת הייתה מוקדמת מאחרת?

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

בלוקים הם עמוד השדרה של הבלוקצ'יין

כל מחשב עובד ברשת בוחר את כל העסקאות שהוא אוהב מהמאגר הכללי. בדרך כלל רק עבור העמלה הגבוהה ביותר שהוא יכול להרוויח עליה. אז הוא אוסף לעצמו עסקאות עד שגודלן הכולל מגיע לגבול המשא ומתן. בביטקוין מגבלת גודל הבלוק הזו היא 1 מגה-בייט (אחרי SegWit2x היא תהיה 2 מגה-בייט), ובביטקוין קאש - 8 מגה-בייט.

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

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

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

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

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

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

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

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

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

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

כְּרִיָה

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

כרטיסי מסך עם מאות ליבות מקבילות פותרים בעיה זו מהר יותר מכל מעבד.

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

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

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

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

עבור מציאת תשובה, המחשב מקבל (נכון לשנת 2017) 12.5 BTC - זוהי כמות התגמול שמייצרת מערכת הביטקוין "יש מאין" ויורדת כל ארבע שנים.

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

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

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

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

אבל מה תהיה היתרון לכורים מאוחר יותר, כשהתגמולים ייעלמו או יהפכו מועטים?

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

כלומר, מהות הכרייה היא בפתרון בעיות חסרות משמעות. האם לא ניתן היה להשתמש בכל הכוח הזה למשהו שימושי יותר - החיפוש אחר תרופה לסרטן, למשל?

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

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

אם תגמול של 12.5 BTC יחולק רק פעם ב-10 דקות ורק אדם אחד שמצא את הבלוק, מסתבר שאני צריך לבזבז כרטיסי מסך במשך כמה שנים בתקווה שיום אחד אוריד 40,000 דולר (ב- שער החליפין הנוכחי)?

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

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

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

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

אז אנחנו הולכים לשרוף אלפי כרטיסי מסך לשווא ואין מוצא?

כן, אבל יש רעיונות. הכרייה שתיארתי היא קלאסית ונקראת Proof-of-Work (הוכחת עבודה). כלומר, כל מכונה מוכיחה שהיא עבדה לטובת הרשת על ידי פתרון בעיות חסרות משמעות בהסתברות נתונה.

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

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

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

בלוקצ'יין

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

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

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

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

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

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

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

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

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

בשל כך, הומצאו שלושה כללי חוסר אבטחה מקצה השרשרת:

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

2. אם נשלחו אליכם ביטקוינים, תוכלו להשתמש בהם כקלט בעסקאות חדשות רק לאחר 1-5 חסימות.

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

מנסה לרמות את הבלוקצ'יין

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

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

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

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

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

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

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

סיכום

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

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

את'ריום

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

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

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

מוּמלָץ: