Смарт-контракты - где в нем контракт?

Я новичок в смарт-контрактах. Когда я увидел несколько примеров смарт-контрактов, я понял, что это всего лишь часть кода, а не совсем контракты.

Например, function sendCoin(address receiver, uint amount) - это метод, определенный в смарт-контракте, который принимает адрес получателя и сумму для отправки монет получателю.

Но контракт заключается не в том, как отправить монеты, а в том, сколько отправить. Например, если материал доставлен вовремя, произведите полную оплату, иначе взимается штраф в размере 10% за каждую неделю задержки.

Насколько я понимаю, вызов, в котором написаны эти правила «если-то» (представляющий контракт), находится вне смарт-контракта.

Я правильно понимаю? Вводит ли в заблуждение термин «умный контракт»?

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


person Kumar    schedule 13.05.2018    source источник


Ответы (3)


Я не юрист, но да, я считаю, что вы в целом правы. «Смарт-контракты» в смысле Ethereum не заменяют юридические контракты, по крайней мере, ни в одной известной мне юрисдикции, как чисто юридическая проблема. Если вы хотите заключить с кем-то контракт, вы все равно захотите пойти к настоящему юристу, работающему с мясным пространством, и подписать настоящий контракт с мясным пространством.

С чисто технической точки зрения, даже если вы попытаетесь определить контракт Meatspace исключительно в терминах контракта Ethereum, вы столкнетесь с трудностью, заключающейся в том, что контракт Ethereum может действовать только на информации, которая находится в блокчейне. В качестве простого примера предположим, что вы хотите заключить самый простой договор страхования от наводнения, в котором вы платите некоторую сумму заранее, и если в ближайшие 10 лет в любом месте вашего почтового индекса произойдет наводнение, вы можете подать иск и получить $ x. Это оставляет в стороне все беспорядочные детали о том, что именно было повреждено, и так далее, но нам все еще нужны средства, чтобы определить, было ли наводнение или нет.

Вы можете сказать: «Но это просто! Разумеется, правительство публикует такие данные, и мы можем просто указать в контракте, что мы верим данным правительства, а не ничьим другим». Итак, правительство публикует данные, но не публикует их в цепочке блоков Ethereum.

«О, хорошо, мы можем просто опубликовать данные в блокчейне. Легко!» Кто такие «мы»? Тот, кому вы доверяете публиковать правительственные данные, может рассчитывать вашу ставку так, как им заблагорассудится. Страховая компания не допустит, чтобы это были вы, потому что вы можете сразу же опубликовать сообщение «да, есть наводнение» и получить бесплатные деньги. Точно так же вы не хотите доверять им это, потому что, если когда-нибудь случится потоп, они могут таким же образом просто отрицать ваше требование.

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

Итак, мы уже установили, что и вы, и страховая компания доверяете правительству (NOAA или кому-либо еще) сделать этот звонок. Если это так, вы уже выбрали оракула: правительство. Если вам удастся каким-то образом убедить NOAA отправлять свои отчеты непосредственно в цепочку блоков или даже с помощью какой-либо подписи с закрытым ключом, которую можно проверить в цепочке блоков, значит, вы решили проблему. В реальном мире почти никто из доверенных «оракулов», таких как правительственные агентства, не делает этого, по крайней мере, пока.

person C. Tindall    schedule 13.05.2018

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

Большинство смарт-контрактов публикуются в некоторых репозиториях для справедливости логики кода, и вы также можете увидеть код.

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

person Uahmed    schedule 27.05.2018

После того, как данные были записаны в блокчейн, никто, даже системный администратор, не может их изменить. Это дает преимущества для аудита. Как поставщик данных вы можете доказать, что ваши данные не были изменены, а как получатель данных вы можете быть уверены, что данные не были изменены. Эти преимущества полезны для баз данных финансовых транзакций. Неизменность относительна. Например, если я отправлю электронное письмо большому списку друзей, эти данные, с моей точки зрения, довольно неизменны. Чтобы изменить это, мне нужно было убедить своих друзей удалить электронную почту (или убедить Gmail и людей, управляющих всеми почтовыми серверами моих друзей). С моей точки зрения и с имеющимся у меня контролем это электронное письмо неизменяемо - я не могу отменить или отозвать его без сотрудничества и риска обнаружения. Таким образом, неизменность относительна и связана с тем, насколько сложно что-то изменить.

person Akash Kool    schedule 29.05.2018