Ethereum व्हाइटपेपर समझाया गया: स्मार्ट कॉन्ट्रैक्ट प्लेटफॉर्म
2013 के अंत में, एक 19 वर्षीय प्रोग्रामर Vitalik Buterin ने एक दस्तावेज़ प्रकाशित किया जो ब्लॉकचेन परिदृश्य को फिर से आकार देगा। "Ethereum: A Next-Generation Smart Contract and Decentralized Application Platform" शीर्षक वाले इस व्हाइटपेपर ने एक ऐसी ब्लॉकचेन का प्रस्ताव दिया जो सिर्फ पैसे ट्रांसफर करने से कहीं अधिक कर सकती है। इसने एक सामान्य-उद्देश्य, प्रोग्रामेबल ब्लॉकचेन की कल्पना की — एक विकेंद्रीकृत विश्व कंप्यूटर जो कल्पना योग्य किसी भी एप्लिकेशन को चलाने में सक्षम है।
यह गाइड Ethereum व्हाइटपेपर की मुख्य अवधारणाओं, डिज़ाइन निर्णयों और दीर्घकालिक प्रभाव के बारे में जानकारी देती है, समझाती है कि Vitalik की दृष्टि एक कट्टरपंथी प्रस्ताव से कैसे विकसित होकर एक बहु-सौ-अरब-डॉलर के इकोसिस्टम की नींव बन गई।
ऐतिहासिक संदर्भ
Bitcoin की सीमाएं
2013 तक, Bitcoin ने साबित कर दिया था कि एक विकेंद्रीकृत, बिना भरोसे की मूल्य हस्तांतरण प्रणाली संभव है। हालांकि, Bitcoin की स्क्रिप्टिंग भाषा जानबूझकर सीमित थी। जबकि यह सरल शर्तों को संभाल सकती थी (multisig, time-locks), यह जटिल अनुप्रयोगों का समर्थन नहीं कर सकती थी। जैसा कि Buterin ने लिखा:
"Bitcoin में लागू की गई स्क्रिप्टिंग भाषा कई महत्वपूर्ण तरीकों से सीमित है — यह अनिवार्य रूप से स्टैक-आधारित है, इसमें बहुत ही सीमित opcode सेट है, और जबकि यह तकनीकी रूप से 'Turing-अधूरा' है, इसे एक बग के बजाय एक सुविधा माना जाता है।"
जो डेवलपर विकेंद्रीकृत अनुप्रयोग बनाना चाहते थे उन्हें या तो Bitcoin की सीमित स्क्रिप्टिंग का उपयोग करके समाधान एक साथ करना पड़ता था या बिल्कुल नई ब्लॉकचेन बनानी पड़ती थी — प्रत्येक अपने स्वयं के सर्वसम्मति तंत्र, नेटवर्क और सुरक्षा मॉडल के साथ। यह अक्षम और विखंडित था।
सामान्य-उद्देश्य प्लेटफॉर्म की आवश्यकता
Buterin ने एक एकल प्लेटफॉर्म का अवसर देखा जो किसी भी विकेंद्रीकृत अनुप्रयोग का समर्थन कर सकता है। प्रत्येक उपयोग केस के लिए एक ब्लॉकचेन बनाने के बजाय (फाइल स्टोरेज के लिए एक ब्लॉकचेन, पहचान के लिए एक, भविष्यवाणी बाजारों के लिए एक), एक प्रोग्रामेबल ब्लॉकचेन क्यों न बनाई जाए जो सब कुछ कर सके?
जो सादृश्य वह खींचते थे वह कंप्यूटिंग से था: जोड़, घटाव और गुणा के लिए अलग-अलग कैलकुलेटर बनाने के बजाय, आप एक सामान्य-उद्देश्य कंप्यूटर बनाते हैं जो किसी भी प्रोग्राम को चला सकता है। Ethereum सामान्य-उद्देश्य ब्लॉकचेन होगा।
पिछले प्रयास
Ethereum से पहले कई परियोजनाओं ने ब्लॉकचेन क्षमताओं को विस्तृत करने का प्रयास किया था:
- Colored Coins: अन्य संपत्तियों का प्रतिनिधित्व करने के लिए Bitcoin लेनदेन से जुड़ी मेटाडेटा
- Metacoins: Bitcoin के शीर्ष पर चलने वाले प्रोटोकॉल (Counterparty, Mastercoin/Omni)
- Namecoin: विकेंद्रीकृत डोमेन पंजीकरण के लिए एक Bitcoin फोर्क
- Ripple: एक डिजिटल भुगतान नेटवर्क (केंद्रीकृत सर्वसम्मति)
प्रत्येक की सीमाएं थीं जिन्हें Ethereum के डिज़ाइन ने दूर करने का प्रयास किया।
व्हाइटपेपर से मुख्य अवधारणाएं
खाते, UTXOs नहीं
Buterin ने एक मौलिक डिज़ाइन विकल्प बनाया जो Ethereum को Bitcoin से अलग करता है: Bitcoin के UTXO मॉडल के बजाय खाता-आधारित मॉडल।
Ethereum में, स्थिति खातों के होते हैं, प्रत्येक के साथ:
- Nonce: एक काउंटर जो सुनिश्चित करता है कि प्रत्येक लेनदेन एक बार संसाधित होता है
- Ether बैलेंस: होल्ड की गई ETH की मात्रा
- कॉन्ट्रैक्ट कोड: स्मार्ट कॉन्ट्रैक्ट बाइटकोड (यदि लागू हो)
- स्टोरेज: आवश्यक डेटा (कॉन्ट्रैक्ट खातों के लिए एक key-value स्टोर)
खातों के दो प्रकार हैं:
- बाहरी स्वामित्व वाले खाते (EOAs): निजी कुंजियों द्वारा नियंत्रित, कोई कोड नहीं
- कॉन्ट्रैक्ट खाते: उनके कोड द्वारा नियंत्रित, जब उन्हें एक संदेश प्राप्त होता है तो सक्रिय होते हैं
यह डिज़ाइन बैलेंस और स्थिति के बारे में तर्क को सरल बनाता है। व्यक्तिगत अव्यय आउटपुट को ट्रैक करने के बजाय, आप बस खाते के बैलेंस को ट्रैक करते हैं — एक बैंक की बहीखाते की तरह (लेकिन विकेंद्रीकृत और पारदर्शी)।
संदेश और लेनदेन
व्हाइटपेपर लेनदेन (एक EOA द्वारा हस्ताक्षरित) और संदेश (कॉन्ट्रैक्ट के बीच आंतरिक कॉल) के बीच अंतर करता है:
- एक लेनदेन एक बाहरी उपयोगकर्ता द्वारा शुरू किया जाता है और प्राप्तकर्ता, ETH मूल्य, डेटा, गैस सीमा और गैस मूल्य शामिल करता है
- एक संदेश एक आभासी ऑब्जेक्ट है जो एक कॉन्ट्रैक्ट द्वारा दूसरे कॉन्ट्रैक्ट को कॉल करने पर उत्पन्न होता है — यह कभी भी क्रमबद्ध नहीं होता है और केवल निष्पादन के दौरान मौजूद होता है
यह अंतर जटिल बहु-चरणीय संचालन को सक्षम बनाता है। एक एकल उपयोगकर्ता लेनदेन कॉन्ट्रैक्ट के बीच आंतरिक संदेशों का एक कैस्केड ट्रिगर कर सकता है, परिष्कृत DeFi प्रोटोकॉल और कंपोज़ेबल एप्लिकेशन को सक्षम करता है।
Ethereum Virtual Machine (EVM)
EVM Ethereum का हृदय है — रनटाइम पर्यावरण जो स्मार्ट कॉन्ट्रैक्ट कोड को निष्पादित करता है। Buterin ने कई मुख्य गुणों के साथ EVM को डिज़ाइन किया:
स्टैक-आधारित आर्किटेक्चर: EVM 256-बिट पूर्णांकों के एक स्टैक का उपयोग करता है। संचालन स्टैक पर मान को push करता है या पॉप करता है। यह डिज़ाइन लागू करने और समझने में सरल है।
नियतात्मक निष्पादन: समान स्थिति और समान लेनदेन दिए जाने पर, EVM हमेशा समान परिणाम उत्पन्न करेगा, भले ही कौन सी नोड इसे निष्पादित करे। यह सर्वसम्मति के लिए आवश्यक है — सभी नोड परिणाम पर सहमत होने चाहिए।
गैस मीटरिंग: प्रत्येक EVM संचालन एक विशिष्ट मात्रा में गैस खर्च करता है। एक लेनदेन द्वारा खपत की गई कुल गैस प्रेषक द्वारा ETH में भुगतान की जाती है। यह तंत्र:
- अनंत लूप को रोकता है (एक प्रोग्राम जो गैस से बाहर निकल जाता है वह रुक जाता है)
- इनकार-सेवा हमलों को रोकता है (हमलावरों को उपभोग किए गए संसाधनों के लिए भुगतान करना चाहिए)
- गणना के लिए एक बाजार बनाता है (उपयोगकर्ता अपने लेनदेन को प्राथमिकता देने के लिए गैस मूल्य बोली लगाते हैं)
सैंडबॉक्सेड: स्मार्ट कॉन्ट्रैक्ट केवल अपने स्वयं के स्टोरेज, ब्लॉकचेन की स्थिति और उन्हें प्रदान किए गए इनपुट को एक्सेस कर सकते हैं। वे फ़ाइल सिस्टम, नेटवर्क, या अन्य बाहरी संसाधनों को सीधे एक्सेस नहीं कर सकते। ऑराकल इस अंतर को पुल करते हैं जो ऑफ-चेन डेटा को ऑन-चेन लाते हैं।
Opcode सेट
व्हाइटपेपर EVM के संचालन सेट का वर्णन करता है, जिसमें शामिल हैं:
- अंकगणित: ADD, MUL, SUB, DIV, MOD, EXP
- तुलना: LT, GT, EQ, ISZERO
- बिटवाइज: AND, OR, XOR, NOT, BYTE
- SHA3: Keccak-256 हैशिंग (Ethereum Keccak-256 का उपयोग करता है, अक्सर SHA-3 के रूप में संदर्भित)
- स्टैक/मेमोरी/स्टोरेज: PUSH, POP, MLOAD, MSTORE, SLOAD, SSTORE
- नियंत्रण प्रवाह: JUMP, JUMPI, STOP, RETURN
- पर्यावरण: ADDRESS, BALANCE, CALLER, CALLVALUE, CALLDATALOAD
- ब्लॉक जानकारी: BLOCKHASH, COINBASE, TIMESTAMP, NUMBER, DIFFICULTY
- लॉगिंग: LOG0-LOG4 (घटना उत्सर्जन के लिए)
- बाहरी कॉल: CALL, DELEGATECALL, CREATE
यह निर्देश सेट किसी भी गणना को व्यक्त करने के लिए न्यूनतम लेकिन पर्याप्त होने के लिए डिज़ाइन किया गया था। Solidity जैसी उच्च-स्तरीय भाषाएं इन opcodes में संकलित होती हैं।
स्थिति संक्रमण फंक्शन
Buterin ने Ethereum को एक स्थिति संक्रमण प्रणाली के रूप में औपचारिक किया। वैश्विक स्थिति सभी खातों और उनके बैलेंस, nonces, कोड और स्टोरेज का एक mapping है। प्रत्येक लेनदेन एक अच्छी तरह से परिभाषित संक्रमण फंक्शन के अनुसार स्थिति को रूपांतरित करता है:
STATE' = APPLY(STATE, TX)
संक्रमण फंक्शन:
- जांच करता है कि लेनदेन सुस्पष्ट है (वैध हस्ताक्षर, सही nonce)
- गैस शुल्क की गणना करता है और प्रेषक के बैलेंस से इसे घटाता है
- गैस काउंटर को इनिशियलाइज़ करता है और लेनदेन डेटा के प्रत्येक बाइट के लिए गैस घटाता है
- निर्दिष्ट ETH मान को प्रेषक से प्राप्तकर्ता में ट्रांसफर करता है
- यदि प्राप्तकर्ता एक कॉन्ट्रैक्ट है, तो समाप्ति या गैस समाप्ति तक कॉन्ट्रैक्ट कोड को निष्पादित करता है
- यदि निष्पादन विफल हो जाता है (गैस समाप्त, त्रुटि), तो सभी स्थिति परिवर्तनों को रिवर्ट करता है सिवाय गैस भुगतान के
- किसी भी शेष गैस को प्रेषक को रिफंड करता है और खपत की गई गैस शुल्क को मिनर/वेलिडेटर को भेजता है
यह स्थिति संक्रमण मॉडल अपनी सामान्यता में सुरुचिपूर्ण है — किसी भी गणना को स्थिति संक्रमण के एक अनुक्रम के रूप में व्यक्त किया जा सकता है, और गैस तंत्र संसाधन सुरक्षा सुनिश्चित करता है।
व्हाइटपेपर में दृष्टि रखी गई एप्लिकेशन
Buterin ने एप्लिकेशन के कई श्रेणियों की रूपरेखा दी जो Ethereum को सक्षम करेगी। उल्लेखनीय रूप से, लगभग सभी का एहसास हुआ है:
टोकन सिस्टम
"ऑन-ब्लॉकचेन टोकन सिस्टम में USD या सोने जैसी संपत्तियों का प्रतिनिधित्व करने वाली उप-मुद्राओं से लेकर कंपनी स्टॉक तक कई एप्लिकेशन हैं।"
व्हाइटपेपर ने ERC-20 टोकन मानक की भविष्यवाणी की — हजारों टोकन, ICOs, DeFi प्रोटोकॉल और stablecoins की नींद। एक सरल टोकन कॉन्ट्रैक्ट को बैलेंस की स्थिति mapping के साथ वर्णित किया जाता है जिसमें एक ट्रांसफर फंक्शन होता है — बिल्कुल ERC-20 की तरह काम करता है।
वित्तीय व्युत्पन्न
Buterin ने उन कॉन्ट्रैक्ट का वर्णन किया जो बाहरी डेटा (जैसे मूल्य फीड) को संदर्भित करते हैं वित्तीय साधनों को निपटाने के लिए। यह दृष्टि DeFi व्युत्पन्न इकोसिस्टम के रूप में प्रकट हुई — Synthetix, dYdX, GMX, और अन्य Ethereum पर व्युत्पन्न, विकल्प और फ्यूचर्स का विकेंद्रीकृत ट्रेडिंग प्रदान करते हैं।
पहचान और प्रतिष्ठा प्रणाली
व्हाइटपेपर ने स्व-संप्रभु पहचान के लिए Ethereum का उपयोग करने पर चर्चा की — एक केंद्रीय प्राधिकार के बिना उपयोगकर्ता-नियंत्रित पहचान दस्तावेज़। ENS (Ethereum Name Service), Soulbound Tokens, और विकेंद्रीकृत पहचान (DID) मानकों जैसी परियोजनाओं ने इस दृष्टि को आंशिक रूप से साकार किया है।
विकेंद्रीकृत फाइल स्टोरेज
Buterin ने विकेंद्रीकृत फाइल स्टोरेज को समन्वित करने के लिए Ethereum स्मार्ट कॉन्ट्रैक्ट का उपयोग करने का प्रस्ताव दिया। जबकि Ethereum स्वयं बड़ी फाइलों को स्टोर करने के लिए उपयुक्त नहीं है (बहुत महंगा), यह स्टोरेज नेटवर्क को समन्वित कर सकता है। IPFS, Filecoin, और Arweave जैसी परियोजनाएं इस अवधारणा से प्रेरित थीं।
विकेंद्रीकृत स्वायत्त संगठन (DAOs)
"'विकेंद्रीकृत स्वायत्त संगठन' की सामान्य अवधारणा एक आभासी इकाई की है जिसमें सदस्यों या शेयरधारकों का एक निश्चित सेट है जो, शायद 67% बहुमत के साथ, इकाई के फंड खर्च करने और इसके कोड को संशोधित करने का अधिकार है।"
DAOs Ethereum इकोसिस्टम में एक प्रमुख शासन मॉडल बन गए हैं। MakerDAO से Uniswap शासन तक ट्रेजरी प्रबंधन प्रोटोकॉल तक, Buterin की ऑन-चेन संगठनात्मक शासन की दृष्टि को व्यापक रूप से अपनाया गया है।
बचत वॉलेट और Multisig
व्हाइटपेपर विड्रॉअल सीमा, बहु-पक्षीय प्राधिकरण और सामाजिक रिकवरी के साथ सुरक्षित बचत के लिए स्मार्ट कॉन्ट्रैक्ट का वर्णन करता है। ये अवधारणाएं सीधे स्मार्ट कॉन्ट्रैक्ट वॉलेट, multisig वॉलेट (Safe/Gnosis Safe जैसे), और खाता अमूर्तता आंदोलन के विकास को सूचित करती हैं।
डिज़ाइन निर्णय और Trade-offs
Turing-पूर्णता क्यों?
Buterin ने Ethereum की भाषा को Turing-पूर्ण (किसी भी गणनीय फंक्शन को गणना करने में सक्षम) बनाने का जानबूझकर विकल्प चुना, Bitcoin के जानबूझकर सीमित Script के विपरीत। यह विवादास्पद था — Turing-पूर्णता अनंत लूप और जटिल हमला सतहों का जोखिम पेश करती है।
समाधान गैस था: प्रत्येक गणनात्मक कदम के लिए भुगतान की आवश्यकता करके, Ethereum गणना को सीमित करता है बिना एक्सप्रेसिविटी को सीमित किए। एक प्रोग्राम जो हमेशा के लिए चलने का प्रयास करता है आखिरकार गैस से बाहर निकल जाएगा और रुक जाएगा। जटिल स्मार्ट कॉन्ट्रैक्ट में बग और कमजोरियों का जोखिम बना रहता है, लेकिन यह प्रोटोकॉल परत में नहीं बल्कि एप्लिकेशन परत में एक सुरक्षा समस्या है।
खाता मॉडल क्यों?
Buterin कई कारणों से खातों को UTXOs पर चुना:
- स्पेस बचत: खाते एक बार स्थिति को स्टोर करते हैं, जबकि UTXOs कई अव्यय आउटपुट में डेटा को दोहराते हैं
- सादगी: खाते बैलेंस स्मार्ट कॉन्ट्रैक्ट तर्क के लिए समझने में आसान होते हैं
- विनिमयशीलता: एक खाते में सभी ETH समान हैं, जबकि UTXOs के व्यक्तिगत इतिहास होते हैं
Trade-off कम समानांतरवाद है (एक ही खाते को प्रभावित करने वाले लेनदेन को ऑर्डर किया जाना चाहिए) और अधिक जटिल स्थिति प्रबंधन।
Bitcoin पर निर्माण क्यों नहीं किया?
Buterin ने समझाया कि Bitcoin को विस्तारित करना क्यों अपर्याप्त था:
- सीमित स्क्रिप्टिंग: Bitcoin Script में लूप, जटिल स्थिति और समृद्ध डेटा प्रकार की कमी है
- मान-अंधापन: Bitcoin स्क्रिप्ट ठीक-दानेदार राशि को नियंत्रित नहीं कर सकते
- ब्लॉकचेन-अंधापन: स्क्रिप्ट ब्लॉकचेन मेटाडेटा (टाइमस्टैम्प, ब्लॉक नंबर) को एक्सेस नहीं कर सकते
- कोई स्थिति नहीं: सरल खर्च/अखर्च बाइनरी के परे, Bitcoin लेनदेन के पास कोई स्थायी स्थिति नहीं है
ये सीमाएं मतलब थीं कि जटिल एप्लिकेशन के लिए एक मौलिक रूप से अलग प्लेटफॉर्म की आवश्यकता थी।
व्हाइटपेपर क्या सही मिला
स्मार्ट कॉन्ट्रैक्ट मांग
सबसे मौलिक भविष्यवाणी — कि प्रोग्