Что такое смарт-контракты? Руководство по смарт-контрактам для новичков



В этом блоге вы получите четкое представление о смарт-контрактах, различных платформах для написания смарт-контрактов, а также обсудите практический пример использования приложения смарт-контрактов Ethereum.

Фраза и понятие «Смарт-контракты» мы предложено Ник Сабо с целью расширить функциональные возможности методов электронных транзакций, таких как POS (точки продаж), в цифровую сферу. Смарт-контракты помогают вам обменивать собственность, акции или что-либо ценное прозрачным и бесконфликтным способом, избегая при этом услуг посредников.
Код Ethereum-Смарт-контракты-edureka

В этом блоге о смарт-контрактах мы рассмотрим следующие темы:





    1. Что такое смарт-контракты?
    2. Смарт-контракты Ника Сабо
    3. Зачем нужны смарт-контракты?
    4. Смарт-контракты: сложность в зависимости от сценариев использования
    5. Пример использования смарт-контрактов: индустрия здравоохранения
    6. Преимущества смарт-контрактов
    7. Блокчейн-платформы для написания смарт-контрактов
    8. Инструменты для написания и развертывания смарт-контрактов
    9. Языки программирования для написания Ethereum
    10. Смарт-контракт о передаче собственности

    Что такое смарт-контракты?

    Смарт-контракты - это самодействующая компьютерная программа, которая автоматически запускается при выполнении определенных условий.

    Смарт-контракты = ненадежные контракты



    С помощью смарт-контрактов вы можете делиться всем ценным между незнакомцами бесконфликтным и прозрачным способом.

    Вы также можете думать о смарт-контрактах как о блокчейне.на базе торговый автомат. Подобно тому, как торговый автомат настроен на прием долларов для выдачи выбранного вами товара, смарт-контракты используют эфир как топливо для выполнения кода на основе заранее настроенных правил.

Что такое смарт-контракты | Разверните свой первый смарт-контракт Ethereum | Эдурека

  1. Смарт-контракты Ника Сабо

    В своей статье Сабо предложил заключить контракт на синтетические активы, такие как деривативы и облигации. «Эти новые ценные бумаги образуются путем комбинирования ценных бумаг (таких как облигации) и деривативов (опционов и фьючерсов) самыми разными способами. Очень сложные временные структуры платежей теперь могут быть встроены в стандартизированные контракты и проданы с низкими транзакционными издержками благодаря компьютеризированномуанализ этих сложных термических структур », - написал он.



  1. Зачем нужны смарт-контракты?

    Мы можем автоматизировать многие решения, написав контракт на блокчейне, чтобы сделать вещи простыми и эффективными. Давайте сравним и оценим, насколько смарт-контракты лучше традиционных.

    Смарт-контракты: сложность в зависимости от сценариев использования

    Сложность контрактов зависит от вариантов использования, которые вы мечтаете кодировать на блокчейне. Изображение ниже поможет вам лучше понять сложность смарт-контрактов.

    С контекстуализированными смарт-контрактами не только компании будут автоматизированы, но и может быть сформировано децентрализованное автономное правительство.


    Давайте разберемся, как работают смарт-контракты, на примере использования.

    Пример использования смарт-контрактов: индустрия здравоохранения

    Управление данными пациентов: Когда дело доходит до управления данными пациентов, есть две основные проблемы в сфере здравоохранения:

    • Первый , каждый пациент уникален, поэтому доступ к полным медицинским записям важен для адаптации лечения и предоставления индивидуального ухода
    • Второй , обмен информацией среди медицинского сообщества является серьезной проблемой

    Теперь вышеуказанные проблемы могут быть решены с помощью функциональности смарт-контрактов на блокчейнах.

    Преимущества смарт-контрактов

    Вот что дают вам смарт-контракты:

    Блокчейн-платформы для написания смарт-контрактов

    В то время как Ethereum это самая популярная платформа для написания контрактов, но не единственная. Ниже приведены некоторые из других платформ, используемых для написания смарт-контрактов:

    Биткойны: Биткойн использует скрипт, который имеет ограниченные возможности при обработке документов. Скрипты специально разработаны для обработки биткойн-транзакций.

    Hyperledger Fabric : В Fabric Chaincode - это программный код, развернутый в сети, где он выполняется и проверяется валидаторами цепочки вместе в процессе согласования.

    NXT: Это общедоступная блокчейн-платформа, которая содержит ограниченный набор шаблонов для смарт-контрактов. Вы должны использовать то, что вам дано, вы не можете написать свой собственный код.

    Боковые цепи: Боковые цепи повышают производительность блокчейнов и защиту конфиденциальности. Они также добавляют возможностилюбитьсмарт-контракты, безопасные ручки,и реестр недвижимого имущества.

    Инструменты для написания и развертывания смарт-контрактов

    1. Браузер тумана - Это инструмент для просмотра и использования dApps. Это отдельный браузер, который можно использовать для просмотра dApps и взаимодействия с ними.
    2. Трюфельный каркас - Truffle - популярный фреймворк для разработки Ethereum. Он имеет встроенную компиляцию смарт-контрактов, связывание, развертывание и двоичное управление.
    3. Метамаск - MetaMask - это мост, который позволяет сегодня посетить распределенную сеть будущего в своем браузере. Это позволяет пользователям запускать приложения Ethereum dApps прямо в браузере без запуска полного узла Ethereum.
    4. Ремикс - Remix - это IDE на основе веб-браузера, которая позволяет пользователям писать смарт-контракты Solidity, а затем развертывать и запускать смарт-контракт.

    Языки программирования для написания смарт-контрактов Ethereum

    Твердость И змея являются двумя основными языками для написания смарт-контрактов Ethereum.

    : Это контрактно-ориентированный язык высокого уровня с синтаксисом, аналогичным синтаксису JavaScript, и он предназначен для работы с виртуальной машиной Ethereum (EVM).

    что такое токены в Java

    Змей: Serpent - это язык высокого уровня, предназначенный для написания контрактов Ethereum. Он очень похож на Python, но с сентября 2017 года Solidity является предпочтительным языком разработки для разработчиков Ethereum.

    Хотя Solidity в настоящее время является самым популярным языком для смарт-контрактов, в ближайшее время появятся несколько языков смарт-контрактов, которые могут стать важными в будущем.

    Предстоящие языки программирования

    1. Гадюка: У Viper есть схема отступов, подобная Python. Основное внимание уделяется безопасности, языку и простоте компилятора.
    2. Лиск: Lisk использует javascript в качестве языка смарт-контрактов, что упрощает разработчикам кодирование приложений.
    3. Цепь: Chain предоставляет инфраструктуру блокчейна корпоративного уровня с SDK на популярных языках, таких как Ruby, Java и NodeJS.

    Теперь, поскольку Solidity является наиболее широко используемым языком программирования для написания смарт-контрактов Ethereum, позвольте мне познакомить вас с контрактом, написанным на Solidity.

    Смарт-контракт о передаче собственности

    Проблема: В настоящее время мы используем центральный орган для передачи права собственности. Это отнимает много времени и влечет за собой много дополнительных расходов с дополнительным бременем документооборота. Кроме того, поскольку система централизована, всегда существует возможность мошенничества.

    Решение: План состоит в том, чтобы использовать эту технологию, чтобы детали сделок с недвижимостью были видны всем сторонам - банкам, брокерам, государственным служащим, покупателям и продавцу.

    Хорошо, позвольте мне написать для вас смарт-контракт:

    pragma solidity ^ 0.4.11 // Мы используем этот вариант использования для имитации передачи собственности в реальном мире // Предварительным условием этого варианта использования является следующее: // Цифровая идентификация на месте // Правительство соглашается поставить земельные записи в публичном блокчейне // Каждый орган по развитию (DA) становится фактическим владельцем собственности, которая существует в его округе / законодательном органе // Когда все вышеперечисленные условия выполнены, DA (владелец) может легко прикрепить соответствующее имущество их законному владельцу после тщательной проверки. // мы будем формулировать функцию вокруг этого установленного предположения. // мы предполагаем, что каждый DA будет развертывать свой собственный смарт-контракт в соответствии со своими правилами и положениями. Весь этот смарт-контракт написан с учетом того, что DA является владельцем, который может распределять собственность. // Правительство может стать слоем поверх этих DA. и правительство может решить, какой DA (адрес) станет владельцем какого округа. // Мы можем легко расширить это. Но после прохождения этого смарт-контракта вы сможете понять, как все может работать. контракт PropertyTransfer {адрес публичного DA // DA должен быть владельцем, мы должны инициализировать значение этой переменной адресом пользователя, который собирается его развернуть. например допустим сам DA. uint256 public totalNoOfProperty // общее количество свойств под DA в любой момент времени. они должны увеличиваться в соответствии с выделением их соответствующему владельцу после проверки. // Ниже представлен конструктор, код которого запускается только при создании контракта. function PropertyTransfer () {DA = msg.sender // установка владельца контракта как DA. } // модификатор для проверки того, что tx исходит от DA (владельца) или нет. Модификатор onlyOwner () {require (msg.sender == DA) _} // Эта структура сохраняется в таком виде для хранения гораздо большего количества информации, чем просто имя struct Property {string name // сохраняя карту свойства по каждому адресу. мы укажем имя для свойства bool isSold // мы также ведем счетчик для каждого адреса} mapping (address => mapping (uint256 => Property)) public propertiesOwner // у нас будут свойства, сопоставленные с каждым адресом с помощью его имя и его индивидуальный счет. mapping (address => uint256) IndividualCountOfPropertyPerOwner // сколько свойств содержит событие PropertyAlloted (адрес, проиндексированный _verifiedOwner, uint256, индексированный _totalNoOfPropertyCurrently, строка _nameOfProperty, строка _msg), адрес_индексированный объект _f, свойство_индексировано _f _msg) // это даст нам точное количество свойств, которым владеет любой адрес в любой момент времени function getPropertyCountOfAnyAddress (address _ownerAddress) constant возвращает (uint256) {uint count = 0 for (uint i = 0 i 

    Итак, вы только что запрограммировали способ передачи собственности в децентрализованной сети. Как это круто!!

    Как видите, возможность [смарт-контрактов] изменить аспекты жизни общества очень велика.

    На этом я заканчиваю это Смарт-контракт блог. Надеюсь, вам понравилось читать этот блог и он оказался информативным.

    Есть вопрос к нам? Пожалуйста, укажите это в разделе комментариев, и мы свяжемся с вами в ближайшее время.ул.

    яЕсли вы хотите изучить смарт-контракты, построить карьеру в области блокчейна и получить опыт программирования Ethereum, зарегистрируйтесь в онлайн-режиме Здесь вы получите круглосуточную поддержку, которая поможет вам на протяжении всего периода обучения.