Bitcoin Forum
June 30, 2024, 11:21:34 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 [2] 3 »  All
  Print  
Author Topic: Напишите возможности смарт контрактов!  (Read 2633 times)
amaclin1
Sr. Member
****
Offline Offline

Activity: 784
Merit: 305


View Profile
September 13, 2017, 10:22:34 PM
 #21

думаю да, алгоритм такой:
люди покупают на бирже на миллиард, закидывают в смарт контракт (важное
условие - код смарт контракта проверен обоими сторонами) с самый простым
кодом, и потом кто-то получает два миллиарда, а кто-то 0.

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

Bitcoin SV GUI client for Windows and Linux
https://github.com/AlisterMaclin/bitcoin-sv/releases
TechPriest
Sr. Member
****
Offline Offline

Activity: 377
Merit: 282


Finis coronat opus


View Profile
September 21, 2017, 08:07:59 PM
 #22

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

Простите что так долго, выбирался на природу.
Я вам попытаюсь описать схематически, если вы не против:

1. Создаем саму оболочку контракта, функцию-конструктор с указанием на владельца. Если нам нужен самовыполняющийся смарт контракт мы можем "запретить" вносить изменения даже владельцу какой нибудь функцией которая при попытке любого изменения всегда будет возвращать false .
2. В оболочке определяем список "белых адресов" которые участвуют в споре, а так же условие условие, что то вроде
Quote
if matchresult == 1:
   send(adr1)
elif matchresult == 0:
   send(adr2)
else: print('Победила дружба')
                                                                                 
Как то так. Понятно, что это все нужно будет разнести по отдельным выполняемым функциям, понятное дело что очень схематическое описание. Если вам нужен именно код, то придется подождать, так как пока что нет доступа к девайсам. Но я уверен что ваши претензии не совсем в коде, как то так.

In science we trust!
amaclin1
Sr. Member
****
Offline Offline

Activity: 784
Merit: 305


View Profile
September 22, 2017, 05:09:24 AM
 #23

Я вам попытаюсь описать схематически, если вы не против:
Против, конечно.
Потому что от схематичного описания смарт-контракта толку ровно столько же,
как от схематичного описания "вечного двигателя"

Спасибо. Повеселили с самого утра. Вот сразу видно "специалиста" в смарт-контрактах
Вы как собираетесь вот эту строчку вашего "контракта" писать?
Quote
if matchresult == 1:
Ну то есть как смарт-контракт узнает счет матча? В газете прочитает? А газету
вы ему куда будете засовывать? В слот сиди-рома?

Bitcoin SV GUI client for Windows and Linux
https://github.com/AlisterMaclin/bitcoin-sv/releases
TechPriest
Sr. Member
****
Offline Offline

Activity: 377
Merit: 282


Finis coronat opus


View Profile
September 22, 2017, 08:28:35 AM
 #24

Против, конечно.
Потому что от схематичного описания смарт-контракта толку ровно столько же,
как от схематичного описания "вечного двигателя"
На самом деле функциональная схема как раз для таких вещей подходит хорошо, ведь я на 150 % уверен что дело не в самом коде (в ваших придирках) а в самом функционале контракта, его логике.

Спасибо. Повеселили с самого утра. Вот сразу видно "специалиста" в смарт-контрактах
Вы как собираетесь вот эту строчку вашего "контракта" писать?
Ну то есть как смарт-контракт узнает счет матча? В газете прочитает? А газету
вы ему куда будете засовывать? В слот сиди-рома?


Просто будет отдельный модуль который парсит букмекерский сайт и передает результат уже в контракт. В Эфире такое можно делать. 
Я нигде не писал что я специалист в умных контрактах. Или приведите обратное или колкости оставьте для других.

In science we trust!
amaclin1
Sr. Member
****
Offline Offline

Activity: 784
Merit: 305


View Profile
September 22, 2017, 08:50:48 AM
 #25

Просто будет отдельный модуль который парсит букмекерский сайт и передает результат уже в контракт.
В Эфире такое можно делать. 
Да что вы такое говорите?  Grin
То есть каждая нода, получившая блок будет лезть на букмекерский сайт для того чтобы проверить
верно ли исполняется контракт или ей прислали невалидный блок? Нет, такое нельзя делать в эфире,
не дурите доверчивых читателей.

Кроме того, задумайтесь - а зачем тогда вообще вам смарт-контракт нужен, если все равно
всё упирается в "третью сторону" - то есть в букмекера? Не проще ли тогда чтобы игроки А и Б
просто отдали бабки букмекеру, а он бы отдал выигрыш одному из них?

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

Bitcoin SV GUI client for Windows and Linux
https://github.com/AlisterMaclin/bitcoin-sv/releases
madtek
Newbie
*
Offline Offline

Activity: 47
Merit: 0


View Profile
September 22, 2017, 10:08:03 AM
 #26

да, думаю в этом случае без 3rd party не обойтись

то есть оба участника изначально должны доверять одному и тому же источнику

пусть это будет еще один чувак со своим адресом ну или сервис типа http://www.oraclize.it/
можно прописать в смарт контракте что только с какого-то определенного адреса можно принять результат

чтото типа
- каждый участник посылает ether на адрес контракта плюс адрес 3rd party которому они доверяют
- если этот адрес 3rd party не совпадает -> контракт invalid, деньги возвращаются
- если совападает то статус контракта меняется на активный (теперь только 3rd party может повлиять на статус контракта)
- после того как результат известен 3rd party посылает результат, очко получает команда знатоков контракт resolved, кто-то уыиграл Grin



amaclin1
Sr. Member
****
Offline Offline

Activity: 784
Merit: 305


View Profile
September 22, 2017, 12:16:17 PM
 #27

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

Bitcoin SV GUI client for Windows and Linux
https://github.com/AlisterMaclin/bitcoin-sv/releases
madtek
Newbie
*
Offline Offline

Activity: 47
Merit: 0


View Profile
September 22, 2017, 01:03:52 PM
 #28

В таком случае один из участников может просто подкупить арбитра, пообещав ему половину профита.
Арбитр на это согласится, потому что иначе он вообще ничего не получает.
А хорошая репутация ничего не значит, если её нельзя конвертировать в бабло.

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

единственный косяк будет если все арбитры в сговоре с одним из участников но это уже маловероятно
TechPriest
Sr. Member
****
Offline Offline

Activity: 377
Merit: 282


Finis coronat opus


View Profile
September 22, 2017, 02:08:26 PM
 #29

Да что вы такое говорите?  Grin
То есть каждая нода, получившая блок будет лезть на букмекерский сайт для того чтобы проверить
верно ли исполняется контракт или ей прислали невалидный блок? Нет, такое нельзя делать в эфире,
не дурите доверчивых читателей.
Этим модулем будет Оракул, сейчас такое есть и в тест нете, и в мейннете. Вот например - http://www.oraclize.it/
Учитывая что никаких сложных функций мы к нему не подвязываем, а просто выбор данных с определенного сайта

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

Софизмы.

In science we trust!
amaclin1
Sr. Member
****
Offline Offline

Activity: 784
Merit: 305


View Profile
September 22, 2017, 03:57:27 PM
 #30

Этим модулем будет Оракул, сейчас такое есть и в тест нете, и в мейннете. Вот например - http://www.oraclize.it/
Учитывая что никаких сложных функций мы к нему не подвязываем, а просто выбор данных с определенного сайта
Покажите хоть один контракт работающий с ним в тест-нете или мейн-нете.
Только не пытайтесь мне впарить примеры с их страницы Oraclize-based ÐApps
Берем первую же "компанию" Флайт Делай Апп. Смотрим её контракт
https://etherscan.io/address/0x12f8c63034AAC487396b70db04aBA5c84dEd1886
8 транзакций ровно год назад? И пустой баланс на контракте? Да это тесты же.
Другие примеры даже смотреть лень. Я знаю что я там увижу - максимум - это сайт-визитку.

Моделей "вечных двигателей" в мире тысячи. Ни одна еще не заработала. Но дураки верят в чудо.
Ладно бы только верили - они и других за собой зовут  Grin

Bitcoin SV GUI client for Windows and Linux
https://github.com/AlisterMaclin/bitcoin-sv/releases
madtek
Newbie
*
Offline Offline

Activity: 47
Merit: 0


View Profile
September 22, 2017, 07:34:19 PM
 #31

Берем первую же "компанию" Флайт Делай Апп. Смотрим её контракт
https://etherscan.io/address/0x12f8c63034AAC487396b70db04aBA5c84dEd1886
8 транзакций ровно год назад? И пустой баланс на контракте? Да это тесты же.

тоже глаз на нее сразу упал  Grin
как тэст демо то вроде работает, через metamask на kovan testnet щас попробовал
но да еще много времени пройдет пока это все отшлифуется в нормальные интерфейсы для массового пользователя


lottesy
Jr. Member
*
Offline Offline

Activity: 53
Merit: 10


View Profile
September 23, 2017, 12:52:56 PM
 #32

oraclize.it неплохо работает. Сейчас используем для получения в контракт рандомного числа. Пока опыта маловато, но заставить работать удалось. Кроме рандомных чисел у них можно еще многие данные запросить. Нет сомнений, что и остальное будет работать.

Если есть уважаемый сайт, на котором постятся результаты игр Спартак - Динамо, можно брать данные с этого сайта. Просто пишем в своем предложении, что данные будут браться с такого-то сайта. Кто согласен на это условие - играет, кто нет - проходит мимо.

► The smart contract lottery ◄
Get the chance to win 10 ETH for 0.01 ETH.
http://lottesy.com (http://lottesy.com)
TechPriest
Sr. Member
****
Offline Offline

Activity: 377
Merit: 282


Finis coronat opus


View Profile
September 23, 2017, 08:51:31 PM
 #33

Покажите хоть один контракт работающий с ним в тест-нете или мейн-нете.
Только не пытайтесь мне впарить примеры с их страницы Oraclize-based ÐApps
Берем первую же "компанию" Флайт Делай Апп. Смотрим её контракт
https://etherscan.io/address/0x12f8c63034AAC487396b70db04aBA5c84dEd1886
8 транзакций ровно год назад? И пустой баланс на контракте? Да это тесты же.
Другие примеры даже смотреть лень. Я знаю что я там увижу - максимум - это сайт-визитку.

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

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

In science we trust!
PolinaVodovatova
Member
**
Offline Offline

Activity: 98
Merit: 10


View Profile
September 27, 2017, 03:05:48 PM
 #34

мне кажется, что вся эта система еще не доработана.. может через год-два все будет в человеческом виде.. Скажите, дорогие ли эти смарт контракты?
x0r2
Newbie
*
Offline Offline

Activity: 54
Merit: 0


View Profile
September 27, 2017, 07:09:10 PM
 #35

oraclize.it неплохо работает. Сейчас используем для получения в контракт рандомного числа. Пока опыта маловато, но заставить работать удалось. Кроме рандомных чисел у них можно еще многие данные запросить. Нет сомнений, что и остальное будет работать.

Если есть уважаемый сайт, на котором постятся результаты игр Спартак - Динамо, можно брать данные с этого сайта. Просто пишем в своем предложении, что данные будут браться с такого-то сайта. Кто согласен на это условие - играет, кто нет - проходит мимо.

Сайт может быть и уважаемый, но всегда присутствует человеческий фактор, опечатка на сайте может многого стоить, решения с oraclize пока нельзя назвать надежными.
mushroomalert
Newbie
*
Offline Offline

Activity: 76
Merit: 0


View Profile
October 02, 2017, 04:46:19 PM
 #36

Как лучше или правильней получить курс ETH/USD через оракула на смарт-контракт? Есть какой-то готовый код может?
SamSam13197
Member
**
Offline Offline

Activity: 85
Merit: 10


View Profile
October 10, 2017, 04:52:27 PM
 #37

Тоже интересует как это  работает.
ShDenis
Full Member
***
Offline Offline

Activity: 313
Merit: 103



View Profile
December 01, 2017, 11:49:36 AM
 #38

По поводу курсов криптовалюты, точно не уверен, но по теории можно брать через API криптовалютных бирж курс к USDT (пока не соскамился, будет аналогом реальному доллару). Желательно брать из нескольких бирж и курс усреднять. По фиатным валютам - оракулы и сайты нацбанков, например.

amaclin1, по поводу не проще ли отнести по миллиону долларов букмейкеру - если найдёте букмейкера, для которого репутация дороже чем 2 миллионов долларов и который не снимет с вас комиссии... - несите, только не забудьте сперва выгодно обменять ваши ETH на доллары. Желательно через обменник.

Но суть вашей идеи правильная - связь математически доказуемых децентрализованных приложений блокчейна (о как загнул) с реальным миром заставляет поступаться математической доказуемостью, доверяя поставщику информации из внешнего мира. Рынок поставщиков достоверных данных ещё формируется. Пример одного из стартапов вам также привели - oraclize. А ещё что-то подобное но со своей логикой в этом году предоставили пару известных компаний, например, microsoft... Ну а самый простой способ улучшить достоверность - брать информацию из большого количества несвязанных хороших источников. Они же все должны будут одинаково опубликовать результат матча. Взяли, сравнили, оставив допуск на погрешность и получили консенсус в виде правильного решения.

По вопросу того, что все ноды будут лезть на букмекерский сайт - не, не будут. Вам уже ответили, что для этого используются оракулы. Суть простая - есть внешний поставщик данных, например сайт самой уважаемой букмейкерской конторы, которая публикует всё на своём сайте. Есть оракул, который с внешней своей части (по отношению к блокчейну) на php+js парсит информацию с сайта букмейкера и заливает её в свою внутреннюю часть - свой собственный смарт контракт, предоставляя к нему доступ всем желающим (адрес + интерфейс) внутри блокчейна. Делает он это например раз в день по расписанию. Есть проверки, на уровне смарт контракта, в соответствие с которыми никто туда больше не может залить ничего, только считывать. Получаем узкое место только на уровне php-js, которые могут быть скомпрометированы.
amaclin1
Sr. Member
****
Offline Offline

Activity: 784
Merit: 305


View Profile
December 01, 2017, 12:03:17 PM
 #39

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

То есть вы никуда не уходите от "проблемы доверия"

Quote
Есть оракул, который с внешней своей части (по отношению к блокчейну) на
php+js парсит информацию с сайта букмейкера и заливает её в свою внутреннюю
часть - свой собственный смарт контракт
Кто помешает такому оракулу взять с сайта результат матча Спартак-Динамо 0:1,
а залить в "свою внутреннюю часть" (это ваш термин) счет 1:0?
Остальные-то участники сети не могут вообще говоря проверить - правда это или нет?

Bitcoin SV GUI client for Windows and Linux
https://github.com/AlisterMaclin/bitcoin-sv/releases
ShDenis
Full Member
***
Offline Offline

Activity: 313
Merit: 103



View Profile
December 01, 2017, 12:37:47 PM
 #40

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

Описав сам контракт и описав источники его информации, узким местом, как я и говорил, и вы подтверждаете, по-прежнему останется серверный скрипт, которым я смогу манипулировать. Но представьте, что я делаю многомиллионный бизнес на поставке данных, отвечая за искажение этих данных своей репутацией (вместе с которой могу потерять бизнес), или неся юридически оформленную ответственность в соответствии с договорами, заключёнными с теми, кто является потребителем этой информации. Т.е. если я исказил информацию, с меня через суд смогут стребовать компенсацию потерь. Стану ли я рисковать из-за вашего миллиона своим бизнесом?
Pages: « 1 [2] 3 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!