CryptoKitties की खोज - भाग 2: CryptoMidwives

यह Ethereum blockchain से डेटा निकालने और विश्लेषण करने पर एक ब्लॉग पोस्ट का दूसरा भाग है। यदि आप भाग 1 को पढ़ते हैं तो आप इंट्रो को छोड़ सकते हैं

पहचान

यदि आप इसे पढ़ रहे हैं, तो शायद आपने उस गेम के बारे में सुना है जिसने पिछले कुछ महीनों में Ethereum नेटवर्क पर सभी का ध्यान आकर्षित किया है: CryptoKitties!

संक्षेप में, खेल में आभासी बिल्लियों का संग्रह होता है। खेल के खिलाड़ियों द्वारा बिल्लियों का निर्माण किया जाता है, जो दो बिल्लियों को एक नया पैदा करने के लिए प्रजनन कर सकते हैं। प्रत्येक बिल्ली का अपना आनुवंशिक अनुक्रम होता है, जो उनकी शारीरिक विशेषताओं को निर्धारित करता है। उनका जीनोम उनके माता-पिता के जीन और कुछ यादृच्छिकता का एक कार्य है। प्रजनन के अलावा, पूर्वनिर्धारित विशेषताओं के साथ 50,000 तक बिल्लियों को गेम के पीछे कंपनी एक्सीम ज़ेन द्वारा बनाया जा सकता है। बिल्लियों को खरीदने और बेचने के लिए एक बाजार है और प्रजनन प्रयोजनों के लिए बिल्लियों को "किराए" के लिए एक और एक है। आप यहां खेल के बारे में अधिक पढ़ सकते हैं।

ब्लॉक साइंस एक प्रौद्योगिकी अनुसंधान और विश्लेषण फर्म है जो विकेंद्रीकृत आर्थिक प्रणालियों के डिजाइन और मूल्यांकन में विशेषज्ञता है। CryptoKitties अर्थव्यवस्था के पहलुओं का विश्लेषण हमारे डेटा निष्कर्षण उपकरण को बेहतर बनाने के लिए एक महान अवसर की तरह लग रहा था, जबकि एक ही समय में (और जीवंत!) विकेन्द्रीकृत आवेदन से कुछ वास्तविक दुनिया डेटा पर हमारे हाथ हो रहे थे।

इस ब्लॉग पोस्ट को दो भागों में विभाजित किया गया है:

  • भाग 1 में इथेरियम ब्लॉकचेन से डेटा निकालने और बदलने से संबंधित तकनीकी पहलुओं को शामिल किया गया है।
  • भाग 2 (इस पोस्ट) में कुछ गेम डेटा का वास्तविक विश्लेषण है।

डेटा का विश्लेषण

हमने तीन क्रिप्टोकरंसीज स्मार्ट कॉन्ट्रैक्ट्स द्वारा ब्लॉक 4605167 और 5374870 के बीच दर्ज की गई सभी लॉग प्रविष्टियों के साथ एक डेटाफ्रेम बनाकर अपना विश्लेषण शुरू किया: खेल का मुख्य यांत्रिकी, बिक्री नीलामी और सीलिंग नीलामी (जहां खिलाड़ी अपनी बिल्लियों को दूसरों के साथ प्रजनन के लिए भेजते हैं) )। मायने रखता है (चार्ट 1) से, हम दो दिलचस्प निष्कर्षों पर आते हैं:

चार्ट 1 - क्रिप्टोकरंसी की घटनाओं की बारंबारता
  1. प्रेगनेंट ईवेंट सिरीज़ नीलामी स्मार्ट कॉन्ट्रैक्ट के नीलामी कार्यक्रम की तुलना में अधिक बार होता है। इसका मतलब यह होना चाहिए कि अधिकांश प्रजनन एक ही खिलाड़ी से संबंधित बिल्लियों के बीच हो रहा है, क्योंकि हम खेल के स्रोत कोड से जानते हैं कि हर सफल सीलिंग नीलामी का परिणाम गर्भावस्था में होता है; तथा
  2. हस्तांतरण की घटना केवल 6% अधिक घटनाओं का कारण है जो इसका कारण बनती है - स्रोत कोड से, हम जानते हैं कि हर नीलामी का निर्माण या रद्द, हर जन्म और हर बिक्री का परिणाम एक हस्तांतरण में होता है। इसका मतलब यह है कि आधिकारिक स्मार्ट अनुबंधों की तुलना में 6% स्थानान्तरण किसी अन्य तंत्र के माध्यम से हो रहे हैं - जैसे कि खिलाड़ी दोस्तों को किट्टी दे रहे हैं। क्रिप्टोकरंसीज के शीर्ष पर बने नए गेम को एक बार देखने के बाद हमें यह प्रतिशत बढ़ जाना चाहिए कि खिलाड़ी अपनी बिल्लियों को चुनौतियों में खोना शुरू कर देंगे, उदाहरण के लिए; या एक बार अधिक उन्नत व्यापारिक सुविधाओं के साथ विकेंद्रीकृत आदान-प्रदान सामने आते हैं जो क्रिप्टो-किटीज़ को उन पर सूचीबद्ध करने की अनुमति देते हैं।

किटी को जन्म देने का अर्थशास्त्र

नई बिल्लियों के जन्म के आसपास एक आर्थिक घटक के अस्तित्व को देखते हुए, हम इस प्रक्रिया का अधिक विस्तार से अध्ययन करने के लिए आगे बढ़ते हैं। जब दो बिल्लियों की नस्ल होती है, तो गर्भवती बिल्ली पर एक चर सेट किया जाता है जो कहता है कि गर्भावस्था को किस ब्लॉक पर पूरा किया जाएगा। हालांकि, Ethereum नेटवर्क में कोई अंतर्निहित टाइमर नहीं है जो कोड के एक टुकड़े को एक निश्चित ब्लॉक में स्वचालित रूप से निष्पादित करने की अनुमति देता है। इसका मतलब है कि किसी को खेल स्मार्ट अनुबंध में एक फ़ंक्शन को कॉल करना होगा जो नई बिल्ली को "जन्म देता है"। यह बर्थथ फ़ंक्शन का उद्देश्य है: जब बुलाया जाता है, तो यह जांचता है कि क्या गर्भावस्था अपने पाठ्यक्रम तक पहुंच गई है। यह केवल तभी होता है जब गिवबर्थ फ़ंक्शन को कहा जाता है कि संतानों के जीन एक बंद-स्रोत एल्गोरिथ्म द्वारा निर्धारित किए जाते हैं। सिस्टम गेमिंग करने वाले खिलाड़ियों की संभावना को कम करने के लिए, डेवलपर्स ने प्रोत्साहन के लिए एक प्रोत्साहन तंत्र बनाया, जिसे गर्भावस्था पूरा होते ही कॉल किया जाता है।

क्योंकि इस getBirth () फ़ंक्शन में एक यादृच्छिक तत्व शामिल है, यह महत्वपूर्ण है कि इसे अपेक्षित बर्थिंग समय (250 ब्लॉक या लगभग 30 मिनट के भीतर) के बाद जल्दी कहा जाता है। यदि कॉल में अधिक समय लगता है, तो यह बुरे अभिनेताओं को उनके आनुवंशिक संयोजन के यादृच्छिक तत्व को "पुनः रोल" करने और अन्य प्रजनकों के खिलाफ अनुचित लाभ प्राप्त करने का अवसर प्रदान करता है। ऐसा होने से रोकने के लिए, हम किसी को भी बर्थ को कॉल करने की अनुमति देते हैं (और हम पहले कॉल करने वाले को पूरी तरह से बर्थिंग फीस देते हैं जो सफलतापूर्वक नए बिल्ली के बच्चे को जन्म देता है। (स्रोत)

250 ब्लॉक की समय सीमा का उल्लेख है कि क्रिप्टोकरंसीज नए बाइट्स के जीन को निर्धारित करने के लिए एन्ट्रापी के स्रोत के रूप में अपेक्षित बर्थिंग ब्लॉक के पिछले ब्लॉक के हैश का उपयोग करता है। ब्लॉक हैश केवल 256 ब्लॉकों (~ 250) के लिए ईवीएम के लिए उपलब्ध हैं। उसके बाद, ब्लॉकश रिटर्न शून्य पर कॉल करें। इसका मतलब यह है कि अगर बाहरी एजेंटों के लिए प्रोत्साहन मौजूद नहीं था, तो एक खिलाड़ी एक नए किटी के जन्म का अनुकरण कर सकता है, और अगर उन्हें परिणाम पसंद नहीं आया, तो 256 ब्लॉक प्रतीक्षा करें और फिर से प्रयास करें।

अपडेट (अगस्त 19, 2018): एर्ज़ पेपर का हालिया प्रकाशन हमें विश्वास दिलाता है कि यह आर्थिक प्रोत्साहन उससे भी अधिक महत्वपूर्ण है जितना हमने पहले सोचा था। कागज के अनुसार, यदि जन्म 256 ब्लॉक की अवधि के बाद होता है, तो क्रिप्टोकरंसीज 'शून्य' का उपयोग एन्ट्रापी के स्रोत के रूप में नहीं करता है, बल्कि वर्तमान ब्लॉक संख्या के रूप में करता है। मतलब एक हमलावर को न केवल एक दूसरा री-रोल मिलेगा, बल्कि कई री-रोल भी, जैसा कि वे चाहते थे, बस अलग-अलग ब्लॉक में अपने नए किटी के जन्म का अनुकरण करके।

तो खेल हर ब्रीडिंग से शुल्क जमा करता है (जिसे बिरथिंग शुल्क कहा जाता है), और किसी भी एथेरियम खाते को यह अधिकार देता है कि वह गर्भवती बिल्ली पर (या उसके बाद) सही ब्लॉक पर बर्थ फ़ंक्शन को कॉल करके उस शुल्क का दावा कर सकता है। नई बिल्ली अभी भी गर्भवती बिल्ली के मालिक के पास जाती है। लेकिन कोई भी एक बिल्ली को जन्म दे सकता है जिसकी गर्भावस्था अवधि समाप्त हो गई है और इसके लिए मुआवजा दिया जाना चाहिए।

इसने "क्रिप्टोकरंसीज" का उदय किया है, क्योंकि माइकल ज़र्गम ने उन्हें डब किया: एजेंट्स, जो भले ही खुद खेल के खिलाड़ी न हों, क्रिप्टोकरंसी अर्थव्यवस्था में एक महत्वपूर्ण कार्य पूरा करते हैं। यह अवधारणा क्रिप्टोकरंसीज के लिए अद्वितीय नहीं है, और इसे "क्रिप्टो सर्विसेज" के लिए सामान्यीकृत किया जा सकता है - एक डिज़ाइन पैटर्न जहां खाता जो एक स्मार्ट अनुबंध के कुछ कार्यों को कॉल करता है उसे ऐसा करने के लिए पुरस्कृत किया जाता है।

// उस व्यक्ति को शेष शुल्क भेजें जिसने जन्म लिया है।
msg.sender.send (autoBirthFee);

इवेंट लॉग डेटासेट हमें दिखाता है कि अधिकांश जन्म केवल कुछ खातों के कारण होते हैं। खेल के इतिहास की शुरुआत में, AxiomZen के साथ जुड़े खाते केवल पतंगों को जन्म देने वाले थे। जैसे-जैसे समय बीतता गया, अन्य खातों ने गिवथ विधि को कॉल करना शुरू कर दिया। हम यह भी देख सकते हैं कि अधिकांश जन्मों में केवल कुछ दाइयों के खाते हैं: चार्ट 2 में नारंगी क्षेत्र प्रत्येक 1000 ब्लॉकों में शीर्ष 5 खातों का प्रतिनिधित्व करता है (कुल 151 खाते)। ब्लॉक 4.700.000, AxiomZen और शीर्ष कॉलर्स के चारों ओर एक स्पाइक को छोड़कर, हर समय विशाल बहुमत में जन्म होता है।

चार्ट 2 - लेनदेन के प्रेषक द्वारा समय पर देने के लिए सफल कॉल की संरचना

AxiomZen की गतिविधि में स्पाइक्स इथेरियम लेनदेन की औसत गैस कीमत में वृद्धि के क्षणों के साथ अच्छी तरह से संबंध बनाती हैं। यह उम्मीद की जानी थी, क्योंकि जन्म देने की बढ़ी हुई लागत इसे बाहरी एजेंटों के लिए कम आकर्षक बनाती है। दिसंबर में नेटवर्क की भीड़ की प्रतिक्रिया के रूप में, AxiomZen ने कुछ दिनों के लिए 0.002 ईथर से 0.015 ईथर तक की बर्थिंग शुल्क में वृद्धि की, बाद में इसे कम करके 0.008 ईथर कर दिया, जो जनवरी के दौरान अच्छी तरह से आयोजित हुआ।

स्रोत: https://etherscan.io/chart/gasprice

जब हम ईवेंट लॉग डेटासेट को लेन-देन की जानकारी के साथ समृद्ध करते हैं, जो उन्हें उत्पन्न करता है, तो हम देखते हैं कि सामान्य तौर पर क्रिप्टोकरंसीज गेम कॉन्ट्रैक्ट में सीधे बर्थ फ़ंक्शन को कॉल नहीं कर रहे हैं, बल्कि एक मध्यस्थ स्मार्ट अनुबंध से गुजर रहे हैं। यह उन्हें एक बंद-सोर्स स्मार्ट कॉन्ट्रैक्ट के लिए एक एकल लेनदेन करने की अनुमति देता है, जो बदले में कई बार दिए गए कार्य को कॉल बर्थ देता है। उदाहरण के लिए लेन-देन देखें 0x6cc717fc ...।

चार्ट 3 - लेन-देन के प्राप्तकर्ता द्वारा समय के साथ देने के लिए सफल कॉल की संरचना

ब्लॉकचेन में उपलब्ध आंकड़ों के साथ, हम इन एजेंटों के राजस्व और लाभप्रदता पर भी गौर कर सकते हैं। आइए 2018 के शीर्ष 10 क्रिप्टोकरंसी पर ध्यान दें। खाता 0x05be6e ... जन्म की संख्या में शीर्ष रैंकिंग है, प्रतियोगिता से स्पष्ट रूप से आगे है। खाता 0xa21037… (जो कि AxiomZen से संबंधित है) आठवें स्थान पर आता है, जो अच्छा है, क्योंकि उन्हें केवल अंतिम उपाय के रूप में कार्य करना चाहिए।

चार्ट 4 - 2018 के शीर्ष 10 CryptoMidwives द्वारा वितरित किट्टियों की संख्या

11 दिसंबर से, एक सफल जन्म का इनाम 0.008 ईटीएच रहा है। उस जानकारी के साथ, हम शीर्ष 10 CryptoMidwives में से प्रत्येक के राजस्व की गणना कर सकते हैं।

चार्ट 5 - 2018 के शीर्ष 10 क्रिप्टोकरेंसी के राजस्व

हालांकि, क्रिप्टोकरंसी को जन्म देने के लिए फीस लगती है। इसके अलावा, इस बाजार में प्रतिस्पर्धा भयंकर है! कॉलबर्थ को "देर से पहुंचने" के कई प्रयास हैं - जिसका अर्थ है कि जब खनिकों द्वारा लेन-देन की प्रक्रिया की जाती है तो बिल्ली अब गर्भवती नहीं होती है क्योंकि पहले एक और लेनदेन संसाधित किया गया था। देर से आने वालों को ज्यादा गैस नहीं लेनी चाहिए, लेकिन फिर भी फीस में एक महत्वपूर्ण राशि खर्च हो सकती है। उन सभी शुल्कों को पुरस्कारों से घटाकर, हम प्रत्येक दाई के मुनाफे में आते हैं। दिलचस्प है, खाता 0x80cfd2 ..., जो राजस्व में छठा है, इस प्रदर्शन संकेतक में बाहर खड़ा है। स्पष्ट रूप से उन्हें फीस बचाने का कोई तरीका मिल गया होगा, चाहे स्मार्ट कॉन्ट्रैक्ट डिज़ाइन के माध्यम से, उनके लेनदेन के प्रसारण का बेहतर समय, गैस की कीमत का बेहतर विकल्प या इनमें से कोई संयोजन।

चार्ट 6 - 2018 के शीर्ष 10 क्रिप्टोकरेंसी का लाभ

स्मार्ट कॉन्ट्रैक्ट डिज़ाइन परिकल्पना की जांच करने के लिए, हमने एक मीट्रिक बनाया है जिसे हम "कोड दक्षता" कहते हैं। यह प्रयोग की जाने वाली गैस के हिसाब से दी जाने वाली किटियों का एक सरल अनुपात है। यदि हम शीर्ष मिडवाइव्स ओएस 2018 (चार्ट 7) द्वारा उपयोग किए जाने वाले स्मार्ट अनुबंधों के लिए औसत कोड दक्षता के सामान्यीकृत मूल्यों को देखते हैं, तो हम उनके बीच बहुत कम अंतर देखते हैं।

चार्ट 7 - 2018 के शीर्ष CryptoMidwives द्वारा उपयोग किए गए स्मार्ट अनुबंधों की कोड दक्षता

यदि इस्तेमाल की गई गैस के संदर्भ में दक्षता को परिभाषित करने के बजाय हमने इसे लाभ के संदर्भ में परिभाषित किया है (लाभ प्रति किटी वितरित), तो हम देखते हैं कि खाता 0x80cfd2 खाता 0x05be6e (चार्ट 8) की तुलना में बहुत कम कुशल है। समान कोड दक्षता को मानते हुए, इसका मतलब यह होगा कि 0x80cfd2 अपने लेन-देन के लिए उच्च गैस की कीमतों का भुगतान कर रहा है जो कि सफलतापूर्वक किट्टियों को जन्म देते हैं।

चार्ट 8 - 2018 के शीर्ष CryptoMidwives की दक्षता

उच्च गैस की कीमतें खाता 0x80cfd2 की उच्च लाभप्रदता की व्याख्या कर सकती हैं - इसके परिणामस्वरूप उन्हें हर दौड़ जीतने में मदद मिल सकती है क्योंकि वे प्रतिस्पर्धा करते हैं। और वास्तव में, खाते से 0x80cfd2 के प्रत्येक लेनदेन के परिणामस्वरूप एक या अधिक किटी पैदा हुई हैं। वही 0x05be6e के बारे में नहीं कहा जा सकता है, जिनके पास अपने स्मार्ट कॉन्ट्रैक्ट्स के लिए बड़ी संख्या में लेनदेन हैं जो किन्हीं किटीज़ को जन्म नहीं देते हैं।

चार्ट 9 - खातों के लेनदेन का हिस्टोग्राम 0x05be6e और 0x80cfd2, जन्म लेने वाले बच्चों की संख्या से

हालाँकि, खाता 0x05be6e से होने वाली फीस जिसके परिणामस्वरूप कोई जन्म नहीं होता है, न केवल गैस की कीमत युद्ध हारने वाले लेनदेन के कारण होता है। ऐसा लगता है कि उनका मुख्य स्मार्ट अनुबंध, 0x39243a है, इसके लिए किसी प्रकार की आवधिक सहभागिता की आवश्यकता होती है जो गैस के मामले में बहुत महंगा है। उदाहरण लेन-देन के लिए देखें 0xcc0f970e। यदि यह उस तरह के लेन-देन के लिए नहीं है, तो 0x05be6e न केवल राजस्व रैंकिंग का नेतृत्व करेगा, बल्कि लाभप्रदता भी होगी।

अपडेट (25 मई, 2018): आगे के विश्लेषण से संकेत मिलता है कि 0xcc0f970e जैसे लेनदेन ऐसे हैं जो दाई के स्मार्ट कॉन्ट्रैक्ट को "स्टोरेज रिफंड" का उपयोग करते हुए "स्टोरेज रिफंड" का उपयोग करते हुए किटीज को जन्म देने वाले लेनदेन पर गैस को बचाने में सक्षम बनाते हैं। मुझे इसका पता लगाने में मदद करने के लिए रिकार्डो को धन्यवाद देना होगा। खाता 0x80cfd2 द्वारा उपयोग किया गया अनुबंध भी उन रिफंड का लाभ उठाता है, लेकिन स्टोरेज (0x3a91b4 ...) में डेटा को बचाने के लिए एक अलग खाते का उपयोग करता है। एक अधिक सटीक लाभप्रदता विश्लेषण को एक एकल एजेंट से संबंधित खातों और स्मार्ट अनुबंधों के समूहों पर ध्यान देना होगा।

आप हमारे GitHub में Jupyter नोटबुक पर इन विश्लेषणों के लिए स्रोत कोड पा सकते हैं।

निष्कर्ष

यह सुनिश्चित करने के लिए बनाया गया कि आर्थिक प्रोत्साहन जल्द से जल्द पैदा हो। कुछ खातों में जन्म की घटनाओं की एकाग्रता इंगित करती है कि बिल्लियों को जल्द से जल्द जन्म देने के लिए बॉट बनाए गए हैं। लेकिन ऐसा लगता है कि होशियार दाई के ठेके से हासिल करने के लिए एक बार और अधिक दक्षता नहीं है, प्रतिस्पर्धी बने रहने के लिए बॉट्स को गैस की कीमत की लड़ाई लड़नी होगी। जिसका अर्थ है कि अंततः बर्थिंग फीस का एक बड़ा हिस्सा संभवतः खनिकों के हाथों में होगा।

किसी भी स्थिति में, बर्थिंग शुल्क क्रिप्टोकरंसी को और अधिक महंगा बनाता है, बशर्ते कि यह तंत्र आवश्यक न हो। Ethereum नेटवर्क पर महत्वपूर्ण कर्षण प्राप्त करने के लिए अपनी तरह का पहला खेल होने के नाते, CryptoKitties निश्चित रूप से काफी समय तक कई डेवलपर्स को प्रेरित करता रहेगा। यह देखना दिलचस्प होगा कि भविष्य में नए खेल इस तरह की चुनौती से कैसे निपटते हैं।

भविष्य का कार्य

जैसा कि कई विश्लेषणों के साथ होता है, यह अधिक प्रश्नों की ओर जाता है। टिप्पणियों में आपकी और आपकी प्रतिक्रिया छोड़ दें! हम भविष्य के लेखों में इस डेटासेट को देखना जारी रखेंगे।

चार्ट 10 - खाता और स्मार्ट अनुबंध द्वारा 2018 के शीर्ष 10 क्रिप्टोकरंसी से लेनदेन का हीटमैप। क्या देखती है?

अनुसंधान, अंतर्दृष्टि और समीक्षा के लिए ब्लॉक साइंस टीम का विशेष धन्यवाद।