На педантичных пунктов, я повторяю, что tucenaber просто said--, и я не мог бы сказать лучше. (Также см # Bitcoin-Wizards прошлых журналов для комментариев об общих языках. Я также считаю, что основной полезной точкой для языков для такой системы).
Люди ищут "Тьюринга" смарт-контракты внутри сети общественного криптовалюта глубоко и основательно запутался о том, что задача на самом деле выполняется этими системами.
Это сродни тому, чтобы просить "Тьюринга воск для пола", «Что это? Я даже не «.
Смарт-контракты в системе государственной лицевой являются создатель predicate-- Bitcoin в этом понимал. Они принимают input-- о сделке, и, возможно, chain-- и они принять или отклонить обновление системы. Сеть тысяч узлов по всему миру не дает _darn_ о особенностях расчета, они заботятся только то, что оно было принято. Сделка может свободно предоставлять произвольную дополнительную информацию, чтобы помочь ему сделать свое решение.
Решение, если произвольно сложное условие было выполнено не требует Тьюринг языка или что не-- на верификации в P не NP.
В Bitcoin Script, мы используем прямо «вычисления», чтобы ответить на эти вопросы; потому что это проще всего сделать, и для тривиальных наборов правил, благоугодно эффективным. Но когда мы думаем о сложных rule--, имеющих тысячи и тысячи компьютеров по всему миру повторить точно такой же расчет становится очевидно нелепым, он просто не масштабируется.
К счастью, мы не ограничены тем, что не scalablity-- и не-privacy-- сделать вычисление сети общего повтора просто проверить его. Все, что нам нужно сделать, это reconize, что расчет был не то, что мы делали с самого начала, проверка была!
Это сразу дает ряд радикальных улучшений:
"Программа является большим, и я не хочу, чтобы положить его в blockchain заранее." -> P2SH, хеш программы переходит в открытый ключ, сама программа заканчивает тем, что дополнительная информация.
"Программа является большим, но мы только собираемся нормально использовать один NTH из it-- ветви, связанные с все ладится" -> МАСТ, программа разлагается в дерево ОШ анс дерево merkelized. Только взятая ИЛИ ветви когда-либо должны быть опубликованы; большая часть программы никогда не будет опубликован, который сохраняет способность и улучшает конфиденциальность.
"Программа большая, и есть фиксированное количество сторон договора. Они, скорее всего, сотрудничать, пока угроза выполнения программы существует." ->
преобразование Coinswap; весь контракт остается за пределами blockchain полностью до тех пор, пока стороны сотрудничают.
"Программа большая, и есть фиксированное количество сторон договора, и я не волнует, если все просто получает положить обратно в начало, если все удастся." ->
ZKCP; запускать _arbitrary_ программы, которые _never_ поразить blockchain, и не ограничиваются его выразительной силой (при условии, что он поддерживает хэш автоподстройки транзакции и возвраты.)
"Программа вроде большая, и мы не против экономических стимулов для исполнения в некооперативном случае" -> Проверка / ответа на запрос; кто-то говорит "Я утверждаю, этот контракт принимает," и вешает связь. Если кто-то не согласен, они показывают вверх и поставить связь, чтобы сказать, что это не так. Теперь первая партия должна доказать (например, но положить контракт на цепи), или они теряют связь со вторым участником, если они успешны, они получают связь со второй стороны оплатить стоимость выявления контракта.
"Программа является слишком большой для цепи, но я не хочу зависеть от экономических стимулов, и я хочу, чтобы мой контракт быть частным." -> ЗУП умные контракты; теорема PCP доказывает, что программа может быть доказана probabilisticly без большего количества данных, чем регистрировать размер его транскрипта.
SNARKS использовать сильные криптографические предположения, чтобы получить неинтерактивные доказательства для любых программ, которые постоянный размер (несколько сотен байт). Медлительность доказывающего (и в случае snarks, доверенный установка общественного key--, хотя для фиксированного множества участников, это может быть
избегать) Ограничивают полезность сегодня, но технология созревает.
Все эти радикальные улучшения в scalablity, конфиденциальность и гибкость проявляются, когда вы понимаете, что "Тьюринга" это не тот инструмент, что то, что наши системы делают это проверка, не расчет. Это когнитивная ошибка не дает никаких преимуществ, кроме маркетинга для людей с нечеткой идеей о том, что умные контракты могут быть хороши для в первую очередь.
Более мощный смарт-заказчик в мире Bitcoin будет абсолютно вещь, я не сомневаюсь. Но маркетинг болтовня вокруг Эфириума не власть, это лодка anchor-- вектор для консенсуса непоследовательности и децентрализация разрушающего истощения ресурсов и стимулов несовпадений. К счастью, когнитивная структура я описал здесь хорошо понимают в сообществе экспертов Bitcoin.