ایده اولیه قرارداد هوشمند درسال ۱۹۹۶ مطرح شد اما چندان مورد توجه قرار نگرفت تا اینکه در سال ۲۰۰۹ با معرفی بیت کوین و شبکه بلاک چین فضای مناسبی برای ارائه و معرفی قرارداد هوشمند ایجاد گردید. این قراردادها مانند برنامههای کامپیوتری کدنویسی و در بستر بلاکچین، با توجه به الگوریتمهای این شبکه اجرا میشوند. شرایط انجام این قراردادها قبل از اجرا به طور کامل و دقیق کدنویسی و سپس بر بستر فناوری بلاکچین که یک دفتر کل توزیع شده و غیرمتمرکز است اجرا میشوند. حتما میدانید اطلاعات در بلاکچین بین تمام اعضای آن توزیع میشود و پس از انتشار در شبکه غیرقابل تغییر است. پس تا اینجا دانستیم که قراردادهای هوشمند به طور پیش فرض تغییر ناپذیر هستند. حال بیایید فرض کنیم که مشکلی در قرارداد پیش بیاید یا نیاز باشد که برخی مفاد آن را تغییر دهیم، آیا راهی برای این وجود دارد؟ پاسخ بلی است اما چطور این کار می تواند صورت پذیرد. یکی از روش های تغییر قرارداد هوشمند استفاده از الگوهای پراکسی است در واقع یک الگوی پراکسی واقعی ترین شکل ممکن برای ارتقاپذیری است. وقتی از قابلیت ارتقاء صحبت می کنیم به این معنی است که کاربر همیشه با همان قرارداد (پراکسی) تعامل دارد، اما منطق زیربنایی را می توان هر زمان که نیاز باشد بدون از دست دادن داده های قبلی تغییر داد یعنی بروزرسانی کرد. در حال حاضر سه نوع الگوی پراکسی وجود دارد.
- Diamond pattern:EIP-۲۵۳۲
- Transparent proxy pattern:EIP-۱۹۶۷
- Universal upgradeable proxy standard (UUPS): EIP-۱۸۲۲
روش های دیگر ارتقاء قراردادهای هوشمند شامل موارد زیر است.
- انتقال دستی تمام اجزاء قرارداد قدیمی به قرارداد جدید ( این روش به دلیل کارمزد شبکه بسیار گران است).
- بروزرسانی تمام آدرس هایی که با قرارداد قدیمی در تعامل بوده اند.
- تماس با تمام کاربران قرارداد قدیمی و متقاعد کردن آنها برای استفاده از قرارداد جدید.