Популярность криптовалют сегодня растет с каждой секундой – все больше частных и юридических лиц не прочь инвестировать свои сбережения в цифровые деньги. Одним из самых выгодных объектов для этого становится Ethereum – проект, который многие эксперты называют новым поколением биткоина.
Во многом успех эфира (именно так на своем жаргоне называют данную криптовалюту фондовые игроки) обусловлен использованием технологии «умных контрактов», реализация которой стала возможной благодаря новейшему языку программирования Solidity. Именно о нем мы и предлагаем Вам поговорить чуть ниже.
История возникновения Solidity
Работа над проектом Ethereum, как всем известно, фактически стартовала в 2014 году. Главным вдохновителем процесса являлся канадец с русскими корнями Виталик Бутерин, который ставил перед собой цель создать виртуальную систему, лишенную большинства недостатков биткоина и усовершенствованную за счет внедрения нескольких новых опций, в частности – «умных контрактов».
Все эти наполеоновские планы требовали написания нового языка программирования. Его в конце лета 2014 года создал Гэвин Вуд, однако разработка оказалась «сырой». По этой причине Кристиан Райтвизнер, входивший в состав проекта Ethereum, продолжил работу над «заготовками» и в начале 2015 года презентовал свое детище, которое получило название Solidity.
Данный программно- и объектно-ориентированный язык как нельзя лучше подходит для переработки в байт исходного кода виртуальных машин. Однако, это далеко не самое важное его достоинство – разработчики Ethereum остановились на нем из-за того, что процесс создания программного обеспечения, необходимого для осуществления так называемых «умных контрактов», на Solidity осуществляется очень легко, а главное быстро.
Что представляют собой «умные контракты»?
Прежде, чем мы продолжим разговор об основных особенностях Solidity, необходимо сказать пару слов об умных контрактах, для функционирования которых данный язык программирования, собственно, и был создан. Они представляют собой специфические обменные механизмы, которым по силам осуществлять прямые переводы и транзакции между двумя не надежными агентами.
В Ethereum смарт-контракты не рассматриваются как единая часть системы – они предстают в роли децентрализованных предложений или практически автономных сценариев, которые функционируют без постороннего вмешательства. До выполнения определенных операций все они хранятся в общей цепочке блокчейна.
Для чего же нужны умные контракты? Обратим Ваше внимание на следующее:
- Помогают обходить возможные сговоры, цензуру или контрагент.
- Способствуют проверке и исполнению экономических инструкций или различных переговоров.
- Позволяют доказать функциональность того или иного объекта (например, онлайн-казино), так как могут быть размещены на публичном блокчейне с предоставлением к ним общего доступа.
Характерные особенности Solidity
К главным особенностям языка Solidity специалисты, как правило, относят:
- За основу при написании Solidity брался JavaScript. Разработчик не стал копировать основные функции, а попытался внести как можно больше своего. Несмотря на это, большинство специалистов называют новый язык JavaScript-подобным.
- Приложения, создаваемые на основе Solidity, компонируются элементами бизнес-логики.
- Программное обеспечение, созданное с помощью Solidity, автоматически транслируется в специальный байткод, который поддерживается криптосистемой Ethereum. В итоге это значительно сокращает время и ресурсы, необходимые на обработку информации.
- Система документирования кода специфицирована с учетом необходимых пользовательских пояснений и последовательности вызовов.
- Solidity, по сравнению с другими языками программирования, которые используются в Ethereum, гораздо более многофункционален. Благодаря ему, стали возможными поддержка комплексных переменных заключаемых контрактов (в том числе, специализированные структуры и сложные иерархические отображения), работа удобного бинарного интерфейса и опция различных видов наследования.
Недостатки языка Solidity
К сожалению, у Solidity есть ряд недостатков, некоторые из которых можно считать весьма и весьма существенными. Например, по сравнению с JavaScript его возможности значительно «обрезаны» - некоторые задачи и функции на новом языке, даже несмотря на его современные опции, просто невозможно прописать.
Дополнительно о минусах Solidity заговорили после хакерской атаки летом 2016 года, которая обнажила проблемы в Ethereum с безопасностью. Злоумышленники протестировали ряд дефектов, по которым и нанесли удар. В свою очередь, разработчики системы не смогли быстро устранить дыры в безопасности во многом по причине определенной «неповоротливости» Solidity.