Loading...
- Type of Document: Ph.D. Dissertation
- Language: Farsi
- Document No: 55061 (19)
- University: Sharif University of Technology
- Department: Computer Engineering
- Advisor(s): Movaghar Rahimabadi, Ali; Hemmatyar, Ali Mohammad Afshin
- Abstract:
- To update Blockchains, a consensus protocol must be used to verify the integrity of registered transactions by users. Bitcoin, as the largest Blockchain network, uses a Proof-of-work mechanism to reach consensus and rewards users for doing so. This will lead to the use of costly hardware to execute heavy processing commands with a lot of energy loss. Different groups have since proposed different mechanisms for reaching consensus without costly processing. The idea we present here is that we first define a general chance variable for each miner, and the miner has to wait a certain amount of time accordingly and then be able to generate the block. Chance variables are public, so other members of the network can use it to check the validity of the generated block. Using this method significantly decreases energy consumption compared to Proof-of-work, and unlike Proof-of-stake, here the only difference between users is their luck, not their financial ability. Also, to prevent cyber-attacks, each miner assigns a trust variable to other miners and updates the variable when it receives a new block, depending on the correctness of it and the timing of the mining To test this idea, we implemented a Proof-of-Chance based Blockchain in Java, and developed a simulation environment to test it. In our studies and simulations, it was found that the energy used to record a transaction by a network miner is only 0.085 joules, which is very low and about 268 thousand times less than Bitcoin. After examining the attacks on the Blockchain and ways to counter them, we presented a formal model for the Proof-of-Chance mechanism in which the miners were likened to synchronous processors that communicate via one-way public transmission. We then considered the termination, agreement, and validity conditions for our model, and concluded that the Proof-of-Chance mechanism could reach a consensus if the number of adversary processors was less than half
- Keywords:
- Blockchain ; Consensus ; Bitcoin ; Extraction ; Energy Consumption ; Cryptocurrency ; Proof-of-Elapsed-Time
-
محتواي کتاب
- view
- مقدمه
- بیتکوین
- بلاکچین
- نیاز به وجود مکانیزم اجماع
- اجماع در بیتکوین از طریق اثبات-کار
- نحوهی محاسبهی درهمسازی
- نرخ سختی شبکه
- نقاط ضعف اثبات-کار
- کارهای پیشین
- اثبات-سهام
- اثبات-زمان-سپری-شده
- اثبات-ظرفیت
- سایر الگوریتمهای اجماع
- اثبات-فعالیت
- اتریوم کاسپر
- اجماع ابلیسک
- اثبات-اهمیت
- اثبات-سوزاندن
- راهکار پیشنهادی
- توسعه بلاکچین مبتنی بر اثبات-شانس
- ساختمان داده بلاکچین
- Blockchain
- UTXOs
- PublicChance
- OtherMinerTrust
- transactionQ
- PublicKey. PrivateKey. AesKey
- توابع اصلی موجود در کلاس بلاکچین
- BlockchainMainLoop
- AddBlock
- GenerateWaitTime
- MaxValid
- IsBlockChainValid
- IsBlockchainInTimeOrder
- AddTransactionToQueue
- Vote
- RevealAesKey
- CheckVotesAndUpdateChances
- ساختمان داده بلاکچین
- توسعه محیط شبیهسازی
- ساختار محیط شبیهسازی اثبات-شانس
- ثبت تراکنشها و استخراج
- بررسی موجودی در تراکنشها
- میزان اعتماد به استخراجگران
- پیاده سازی افزودن تراکنشهای جعلی
- تعیین متغیر شانس عمومی
- فرایند استفاده از محیط شبیهسازی اثبات-شانس
- دستورات محیط شبیهسازی
- نمونه کد شبیهسازی
- ساختار محیط شبیهسازی اثبات-شانس
- نتایج شبیهسازی
- مصرف انرژی
- شبیهسازی انجام شده
- مقایسه مصرف انرژی اثبات-شانس با سایر الگوریتمهای اجماع بلاکچین
- مقایسه مصرف انرژی اثبات-شانس با سایر الگوریتمهای اجماع نوین رمزارزها
- حملات وارده و استخراجگران بدخواه
- حملهی دو بار خرجکردن
- حملهی 51 درصد
- ترکیب اثبات-شانس با اثبات-کار
- احراز هویت کاربران
- استفاده از سختافزار امن
- مشکل چیزی-در-خطر-نیست
- مدل سازی اجماع در بلاکچین
- تعریف مسئله
- نیازمندیهای مسئله
- بررسی امکان تحقق نیازمندیهای مدل
- نتیجهگیری و کارهای آتی
- نتیجه گیری
- کارهای آتی