В первую очередь, смарт-контракт — это программный код, выполняемый в распределенной блокчейн сети. Написанный однажды и неизменяемый со временем. В этом, пожалуй, главная ценность с точки зрения применения и самая большая проблема с точки зрения разработки!
С положительной стороны неизменяемость смарт-контракта приближает его к самому обычному договору. Договорившись о чем либо, стороны делают об этом запись в блокчейн, посредством смарт-контракта, а распределенность и открытость сети делают такой “договор” прозрачным и необратимым!
Но мы как программисты в душе и люди любящие свое дело, смотрим на смарт-контракты с другой стороны.. А именно “неизменность”. Именно в этом кроется наибольшая часть проблем в использовании смарт-контрактов, ведь ошибку допущенную разработчиком нельзя быстро “пофиксить” и быстро обновить. Именно поэтому необходимо заказывать такую разработку только у опытных команд, а ещё лучше у нас))
Некоторые люди говорят, что писать изменяющиеся смарт-контрактыможно. Это правда лишь отчасти. Есть несколько противоречивых моментов. С технической стороны это возможно с некоторыми ограничениями и сложностями. Но попробуем описать это на примере Договора из обычной юридической практики.
Составляемый договор возможно сделать “неточным”, например написать размытые сроки исполнения, “вилочные цены” или дописывать сколько угодно дополнений и “приложений” к договору. Вот и в смарт-контракте присутствует возможность сделать нечто подобное! Но ценность такого договора, где одна из сторон по своему желанию может “переиграть” договоренности стремится к нулю.
Таким образом, написание смарт-контрактов — это сложный процесс, в котором необходимо учесть много моментов, как технических так и со стороны доверия между сторонами.
В следующей статье расскажем, что такое аудит смарт-контрактов и зачем он нужен. Подписывайтесь, чтобы не пропустить!
Всем добра и хорошего настроения;)