Как Lisk отличается от Ethereum?

Lisk станет полноценной базой разработки DApp для создания и распространения децентрализованных приложений. В настоящее время он находится на стадии фокуса, но также добавлен в стек Microsofts Blockchain-as-a-Service.

Сообщается, что вы можете создавать децентрализованные приложения, просто написав Javascript. Но поскольку вы также можете создавать JS-DApps для Ethereum, интересно, какая разница?

33 голоса | спросил Afri 17 MaramThu, 17 Mar 2016 00:24:14 +03002016-03-17T00:24:14+03:0012 2016, 00:24:14

2 ответа


34

Предупреждение, я не большой поклонник Lisk. Это, очевидно, одна сторона истории, и я уверен, что есть больше преимуществ Lisk, чем я им благодарен. Но я их не знаю.


Сообщение в блоге (не я): почему Lisk уступает Эфиримуму

Основные моменты автора относительно Lisk:

  • Lisk «песочница» не может использоваться для запуска ненадежного кода

  • Lisk framework не обеспечивает защиту от недетерминированного поведения

  • Lisk не имеет возможности предотвратить бесконечные циклы и /или измерять общее вычисление

  • Lisk не имеет возможности предотвратить неограниченное увеличение памяти и /или измерение потребления памяти

  • Общие функции языка JavaScript (такие как итерация по клавишам в объекте), результаты скрыты без детерминированного поведения

Основные положения автора относительно ETH:

  • Ethereum защищает разработчиков от бесчисленных проблем, которые поражают опытных разработчиков блокчейнов.

  • Изучение нового синтаксиса языка тривиально по сравнению с обучением тому, как избежать миллионов способов, которыми вы можете стрелять себе в ногу.

  • Приложения Ethereum не имеют возможности генерировать недетерминированное поведение.

  • Нет необходимости управлять состоянием «отменить» в Ethereum, потому что любое созданное исключение автоматически отменяет все изменения (за исключением платы).

.


1. Языки программирования

Lisk: Javascript vs Ethereum: go, C ++, ржавчина, Solidity, Serpent и т. д.

Лиска

Одна из вещей, которую Лиск активно продвигал до их предпродажи, заключалась в том, что их Dapp находятся в Javascript, «самом популярном в мире языке». Фактически, они продавались (через рекламу reddit ) [1] себя как «The Ethereum Альтернатива для разработчиков Javascript ".

Вся их система - это 100% javascript. Node.js для бэкэнд. Интерфейс. У них действительно есть база данных - SQLlite, изначально. Теперь postgresql.

Ethereum

Смарт-контракты для Ethereum находятся в Solidity или Serpent . Твердость very похожа на Javascript, но настраивается на интеллектуальные контракты. Очень легко прочитать эти контракты и понять, что они делают. Существуют также некоторые большие причины использовать пользовательский язык над Javascript (обсуждается ниже), когда речь заходит о контрактах, которые перемещают валюту, сохраняют ценность и нуждаются в достижении консенсуса. Эта страница , в то время как больше не поддерживается, имеет несколько отличных точек о том, что такое Solidity, если вы хотите узнать больше.

Я не знаю столько о Serpent, но он, похоже, имеет те же цели и цель, что и Solidity, но должен быть похож на Python (и, следовательно, будет большим для разработчиков Python.) Это, наряду с диапазоном клиентов, также демонстрирует приверженность тому, что Ethereum должен привлекать внимание широкого круга разработчиков, а не только разработчиков Javascript.

Выше всего распространяется только Smart Contracts для Etheruem; как насчет более полноценного «Даппа»? Ну, это в значительной степени Javascript для пользовательского интерфейса Ethereum Dapp. Я рекомендую вам прочитать Запись ConsenSys здесь, в частности, Часть II. В принципе, у вас есть:

  • Трюфель (JS, Sass, ES6, JSX встроены)

  • Embark (это JS)

  • Метеор (web3.js + метеор (который также является JS))

  • и больше.

Заключение

Итак, для Lisk подразумевается, что разработчики Javascript не могут создать Dapp для Ethereum, это немного вводит в заблуждение. Они могут абсолютно использовать Javascript для Dapp, а затем Solidity (который так близок к Javascript) для умных контрактов. Сообщение в блоге, о котором говорилось выше, является кратким:

  

Изучение нового синтаксиса языка тривиально по сравнению с обучением тому, как избежать миллионов способов, которыми вы можете стрелять себе в ногу.

Разница заключается в том, что Lisk полностью поддерживает Javascript (и node.js), Ethereum имеет большое количество клиентов на разных языках [2], имеет два настраиваемых языка для интеллектуальных контрактов и все еще допускает Javascript, где вам это нужно больше всего (пользовательский интерфейс).

2. Недостатки Javascript

Что некоторые люди не понимают, так это то, что Javascript, будучи чрезвычайно популярным, автоматически не делает его лучшим решением. Как я сказалвыше, разница между Ethereum и Lisk здесь заключается в том, что Lisk - это 100% Javascript, в то время как Ethereum имеет массу языков и amp; позволяет разработчикам Dapp использовать Javascript для пользовательского интерфейса и Solidity для интеллектуальных контрактов на блок-цепочке. При этом здесь есть некоторые потенциальные недостатки с Javascript на блочной цепочке:

  • Номера Javascript ... не самые большие или самые надежные. Кроме того, когда мы имеем дело с криптовалютой, вы действительно хотите, чтобы ваши номера находились в точке. В основном JS использует с плавающей точкой, что означает, что некоторые вещи приближаются, а цифры теряются в определенных случаях. Даже такие мелочи, как номера с плавающей запятой, могут нарушить консенсус. Вот еще одно чтение: Будьте осторожны с большими номерами и amp; Аппозиционирование с плавающей точкой . Итак, тот факт, что все в Lisk (включая Lisk) находится в Javascript, означает, что есть потенциально большие проблемы с числами (как с точки зрения больших чисел, так и с большими проблемами).

  • Lisk имеет «правила» , что они запрашивают контракт разработчики должны следовать, чтобы не нарушать консенсуса. Сюда относятся такие вещи, как «не использовать Math.random ()». С Ethereum вам не обязательно иметь правила. Код не будет компилироваться, если вы попытаетесь сделать что-то неправильно. (FYI, вы не компилируете Javascript.) В Lisk, если вы используете Math.random (), он прерывается.

  • Javascript использует слабую динамическую типизацию. Если вы не будете осторожны, вы можете передавать строки вместо цифр. Одно из главных различий между Solidity и Serpent и Javascript заключается в том, что Solidity и Serpent строго типизированы. Википедия о сильных против слабых объясняет это следующим образом:

  

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

Так как Ethereum работает с контрактами на блочной цепочке, а Lisk - это какой-то запущенный Dapp на блочной цепочке (sidechain?), вы можете понять, почему наличие слабо типизированного языка может привести к проблемам, особенно в отношении консенсуса. Гораздо лучше знать проблему до , она превращается в непреложную вещь в цепочке, а не обнаруживает, что все средства пойманы в ловушку, или вы разыгрываете блокчлин в первый раз, когда кто-то пытается взаимодействовать с ним.

Дополнительные недостатки с Lisk включают в себя тот факт, что их «песочница» не может использоваться для запуска ненадежного кода, и их структура не обеспечивает защиты от недетерминированного поведения. Из сообщения в блоге выше:

  

Лица Lisk могут быть решены с помощью сильно настраиваемой среды JavaScript, которая удаляет с плавающей запятой, реализует программные прерывания, подсчет команд и чистые API для управления состоянием приложения. В конечном счете, создание компилятора JavaScript для виртуальной машины Ethereum может быть менее подверженным ошибкам, чем попытка исправить миллион недетерминированных утечек в JavaScript.

2b. Недостатки твердости

Как отметил Jehan, Solidity тоже не идеальна.

  • Существует небольшая поддержка сериализации и десериализации любого вида

  • У него очень анемичный stdlib (был недавно обновлен)

  • Невозможно передать массив строк в контракт.

3. На блочной цепочке

В Lisk, Dapps на самом деле не хранятся в блочной цепочке , например, байт-код смарт-контракта находится в Ethereum. Вместо этого у вас есть внешние ссылки на эти Dapp. Им нравится сравнивать их Dapp с традиционной моделью «App Store» (думаю, Apple). Который, обращаясь к некоторым пользователям, менее привлекателен, когда вы понимаете, что они буквально используют HTTP: ссылки на .zip-файлы.

С Ethereum у вас есть код, хранящийся в блочной цепочке , что означает, что они могут быть проверены и код не может быть изменен. Это своего рода цель создания децентрализованных приложений (IMO).

Lisk предпочитает использовать более слабое определение «децентрализованное», что буквально не хранится в центральном месте, в то время как разработчики и пользователи Ethereum предпочитают иметь децентрализованное среднее значение, которое не может быть повреждено, может быть проверено, не может быть изменено, может достигать консенсус и т. д. [3]

4. Кто есть /был Lisk

Один из самых распространенных аргументов любителей Ethereum против Lisk заключается в том, что у Lisk (1) нет команды разработчиков за ним и (2) возникла как неудавшаяся alt-монета, Crypti, которая была оставлена ​​разработчиками ( 3) те разработчики, которые покинули Crypti, являются Lisk devs, поэтому (4) это просто ребрендинг?

Основное различие, которое я вижу междуEthereum и Lisk здесь, что Lisk - это два парня, которые переименовали предыдущую монету, у которой была предварительная продажа, и ничего не поставляли, в то время как Ethereum имеет Виталика Бутерина, большую команду известных, общинных, сумасшедших талантливых разработчиков и большое сообщество разработчиков, работающих над основным кодом (все с открытым исходным кодом), Dapps и сторонних кошельков и т. д.

Другим ключевым отличием является то, что у Ethereum есть Фонд Ethereum, некоммерческая швейцарская организация, и у Lisk есть ... неизвестный фонд /компания, связанная с ним.


[1] Вот скриншот, потому что эта ссылка фанки.

[2] Ethereum продуман с количеством языков /клиентов. На данный момент мы имеем: Geth (Go), WebThree (C ++), PyEthereum (Python), Parity (Rust), EthereumJ (Java), Ethereum-Ruby (Ruby), NEthereum (.net). Я рассматриваю это как важное преимущество для Ethereum, и, как отметила команда Ethereum, тот факт, что на столь многих языках так много клиентов, был бесценен при тестировании, обнаружении ошибок и обеспечении консенсуса.

[3] Дополнительная информация от сердитой нити.

ответил tayvano 23 MaramWed, 23 Mar 2016 08:51:26 +03002016-03-23T08:51:26+03:0008 2016, 08:51:26
22

@tayvano: К сожалению, я не могу комментировать напрямую. Для этого мне нужна «репутация 50». Поэтому я напишу это как новый ответ.

  

Я не знаю столько о Serpent, но он, похоже, имеет те же цели и цель, что и Solidity, но должен быть похож на Python (и, следовательно, будет большим для разработчиков Python.) Это, наряду с диапазоном клиентов, также демонстрирует приверженность тому, что Ethereum должен привлекать внимание широкого круга разработчиков, а не только разработчиков Javascript.

Диапазон клиентов в Ethereum в Go, C ++, Python, JavaScript, Java и других языках - это катастрофа поддержки. Сейчас это может работать нормально, но как только Ethereum привлечет критическую массу, будут 1 (или, возможно, 2) клиенты, которые будут использоваться 99% пользователей. В противном случае это просто невозможно.

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

Btw. JS чрезвычайно мощный: asmjs.org, pyjs.org и т. Д.

  

Выше всего распространяется только Smart Contracts для Etheruem; как насчет более полноценного «Даппа»?

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

В Lisk вы получите полный пакет. Вы не разрабатываете отдельные смарт-контракты. Вы создаете целое приложение, которое работает на своем блочном цепочке. Это похоже на то, что вы разрабатываете новую криптовалютную платформу с расширенным набором функций, сама платформа уже завершена и предоставлена ​​нашим Lisk SDK. В качестве разработчика вам просто нужно реализовать необходимые новые функции поверх уже существующей платформы.

  

Итак, для Lisk подразумевается, что разработчики Javascript не могут создать Dapp для Ethereum, это немного вводит в заблуждение. Они могут абсолютно использовать Javascript для Dapp, а затем Solidity (который так близок к Javascript) для умных контрактов.

Мы никогда не говорили, что разработчики JavaScript не могут создавать dapp для Ethereum. Конечно, они могут, но им нужно сначала изучить новый язык. Это похоже на то, что вы скажете, что водопроводчик не может нарисовать стены.

В Ethereum они могут использовать JavaScript для переднего конца dapp и Solidity для конца dapp. Не похоже, что они используют JavaScript «для [полного] dapp», как вы сказали. Нет, только для передней части.

  

Разница заключается в том, что Lisk полностью поддерживает Javascript (и node.js), Ethereum имеет большое количество клиентов на разных языках [2], имеет два настраиваемых языка для интеллектуальных контрактов и все еще допускает Javascript, где вам это нужно больше всего (пользовательский интерфейс).

Да, мы склонны сосредоточиться на одной технологии. Фокус - это ключ.

Ваше утверждение о том, что Ethereum позволяет JavaScript, где вам это больше всего (пользовательский интерфейс), действительно имеет значение только для Ethereum. JavaScript во всем мире принят для множества различных задач на переднем и заднем концах (например, NodeJS). Не только для «пользовательского интерфейса». Вы делаете JavaScript меньше, как есть, только чтобы получить больше аргументов для Solidity.

  

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

Мы используем только целые числа в Lisk. Для больших чисел мы используем bignumber.js. Речь идет не о выбранном вами языке, а о ваших навыках кодирования. Если вы знаете, что делаете JavaScript, все в порядке. Однако, да, это слабость. Но слабость, которая управляема.

  

Javascript использует слабую динамическую типизацию. Если вы не будете осторожны, вы можете передавать строки вместо чисел.

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

  

Lisk имеет «правила», которые они просят, чтобы разработчики контрактов должны были следовать, чтобы не нарушать консенсус.

Угу. Кажется, что Ethereum имеет эти «правила», непосредственно встроенные в свой компилятор, а разработчикам Lisk просто нужно следовать им. Самое большое различие здесь состоит в том, что если они совершают ошибку и консенсус нарушается, то дапсу нужна жесткая вилка. Но сам Лиск прекрасно, потому что дапп работает только в боковой цепи.

Это огромное преимущество в плане безопасности. Если dapp терпит неудачу,в сети Lisk нет даже икоты. Однако, если один умный контракт терпит неудачу в Ethereum, это может означать игру для Ethereum.

  

Недостатки твердости

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

  

В блочной цепочке

Теперь вы смешиваете разные вещи. Вы загружаете клиент Bitcoin также из HTTP-ссылки. Однако он «не может быть поврежден, может быть проверен, не может быть изменен, может прийти к консенсусу». Это означает, что все эти важные свойства, которые вы упомянули, также действительны для Lisk. Если вы измените код dapp, ваш узел окажется на вилке. Как если бы вы изменили код биткойна.

HTTP-ссылка - это только способ распространения исходного кода dapp. Позже мы будем интегрировать децентрализованные методы хранения (например, IPFS), поэтому само распределение также может быть децентрализовано.

Однако модель распределения не определяет, является ли приложение централизованным или децентрализованным. Или вы говорите, что каждая криптовалюта на рынке централизована? Поскольку вы загружаете клиентов из централизованного расположения? Если да, то как Ethereum может даже децентрализоваться, если сама сеть централизована? ;)

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

  

Я не знаю много о Crypti, но у них была предпродажа, и у них действительно была приличная сумма денег (не менее 200 000 долларов США), но я не могу найти точные цифры, потому что все было уничтожено. Ничего не произошло из Крипто. Буквально. Так ... это страшно. Отсутствие прозрачности также страшно.

Мы больше не связаны с Crypti. Однако, говоря, что все протерто и что нет прозрачности, это огромная ложь. На Bitcointalk более 600 страниц ( https://bitcointalk.org/index.php?topic=654463 ) и десятки сообщений в блогах ( https://blog.crypti.me ), которые содержат ВСЕ информацию.

Кроме того, если вы скажете, что «ничего не произошло от Crypti», тогда вы совершенно ошибаетесь. Crypti разработала рабочую платформу dapp, огромный успех Lisk доказывает это. Единственное, что не срабатывало в Crypti, - это маркетинг. Это означает, что никто не знает о Крити. Кроме того, в Crypti был большой недостаток лидерства.

  

Итак, я думаю, что основное различие, которое я хочу указать между Ethereum и Lisk, состоит в том, что Lisk - это два парня, которые переименовали предыдущую монету, у которой была предпродажа, и ничего не поставил, в то время как Ethereum имеет Виталика Бутерина, большую команду известных , общинные, безумные талантливые разработчики и большое сообщество разработчиков, создающих Dapp и сторонние кошельки и аппаратные кошельки и всевозможные потрясающие вещи. Я имею в виду, посмотрим на Augur, Slock.it и ConsenSys. Это безумие!

Да, я рад, что эти два парня в Google никогда не начали свою компанию, потому что в то время было так много отличных поисковых систем с сотнями сотрудников. :)

Не поймите меня неправильно, мне нравится Ethereum и вся команда /движение за ним. Я большой сторонник. Но вы просто отказываетесь от инноваций в этот момент времени. Вы сравниваете 2-летнюю платформу (Ethereum) с 18M в фондах, с еще не запущенной платформой (Lisk), на которой пока нет доступа к финансированию. Это глупо.

  

Еще одно ключевое различие заключается в том, что Ethereum имеет Фонд Ethereum, некоммерческую швейцарскую организацию и Lisk ... неизвестный фонд /компания, связанная с ним.

Каждый в Лиск знает, что мы находимся в процессе создания юридического лица в Германии, скорее всего, в качестве gGmbH. Это также некоммерческая организационная структура.

  

Последнее замечание: Лиск действительно любит утверждать, что у них есть партнерские отношения с большими именами. Сначала это был ShapeShift. Теперь это Microsoft. Они loooove использовать это партнерское слово. В действительности, они просто использовали кнопку Shifty, а не партнерство.

У нас было технологическое партнерство с ShapeShift. В то время это было большое недопонимание. Они уже исправили эту ошибку.


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

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

Важно отметить, что Lisk только начинается, и мы уже вносим большие изменения. На данный момент это только рано, чтобы оценить Lisk и команду (нас) за ней. Вы должны просто ждать год, прежде чем сделать окончательный вывод. Все аргументы прямо сейчас выглядят так, как будто вы боитесь. Лично я думаю, что для Ethereum и Lisk есть более чем достаточно места. В конце концов мы решаем «проблемы» по-разному и привлекаем разные ниши.

Я надеюсь, что Ethereum и Lisk могут работать вместе в будущем, чтобы решить важные проблемы в отрасли dapp и blockchain. Я говорю это снова, мы в этой «игре» вместе.

ответил MaxKK 19 PMpTue, 19 Apr 2016 13:10:51 +030010Tuesday 2016, 13:10:51

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132