Пользователь
0,0
рейтинг
8 января 2014 в 16:50

Разработка → Twister: Децентрализованный, P2P аналог Twitter'a recovery mode



Сегодня я хочу рассказать вам о таком интересном проекте как Twister.

Twister — это сервис микроблогинга (аналогичный твиттеру), но его отличает несколько очень интересных технологий которые были использованы одновременно.

А именно: Bitcoin Block Chain, Bittorrent DHT, Bittorrent Swarm.

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

Сейчас происходит бум децентрализованных сервисов, Bitcoin, Bittorrent, Bitmessage, мессенджер Tox, их объединяет общая идея — быть независимыми от всех, быть неподконтрольными.

Создатель Twister, Miguel Freitas, считает, что микроблоги осуществляли огромную помощь в различных акциях протеста в множестве государств. Но, к сожалению, политика «информационной безопасности» государств идет в разрез со свободой слова, и под давлением тех или иных структур, начали удаляться неправильные сообщения или целые учетные записи.

Ну и конечно, иногда государство требует произвести деанонимизацию — от компаний — получив все записи о заходах пользователя.

Именно идея отсутствия свободы слова в удобном формате и побудили его создать данный сервис.

Что должен включать в себя удобный способ распространения информации?
— Интерфейс который будет понятен большинству пользователей
— Поддержка мобильных устройств
— Защита от глобального контроля и шпионажа
— Нормальные имена пользователей (Сравнение Twister и Bitmessage)

Автор данного мессенджера в своем whitepaper проводит сравнение с существующими федеративными социальными сетями и таким приложением как Bitmessage.
К сожалению, все эти свойства ранее не встречались ни в одном из сервисов или протоколов.

А теперь давайте поговорим из чего состоит Twister.

Что и для чего используется


Bitcoin Block Chain

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

Обратите внимание, что цепочка блоков отличается от Bitcoin.

Bittorrent DHT

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

Как только вы напишите пост — он будет разослан в DHT сеть и сохранен у вас для дальнейшего распространения.

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

Bittorrent Swarm

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

Генерация новых блоков

Дочитав до этого места вы возможно спросите, "Но постойте, генерация блоков в сети bitcoin требует много вычислительных ресурсов, кто этим занимается и какая награда? "

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

Интерфейс для пользователя


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

Оригинальный интерфейс выглядит вот так:


Ещё







Особенности и состояние сети


— По аналогии с Bitcoin — если вы потеряете секретный ключ — вы потеряете доступ к своему аккаунту без возможности восстановления.
— Сейчас в среднем в сети около 500 активных узлов и около 18000 блоков в цепочке.
— Все что есть в твиттере есть и тут — указание пользователя через знак @, хэштеги, поиск по хештегам и пользователям, поддержка описание учетной записи, возможность загрузить аватар.

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


Проект очень молодой и активно развивается.
Сейчас нет готовой, скомпилированной версии Twister, но каждый может скомпилировать себе свой twister.
Инструкция по сборке: OS X, Windows, Linux

Более быстрая установка для OS X
1) В консоли следует ввести brew install boost miniupnpc openssl berkeley-db4
Если у вас не установлен brew — установить

2) echo -e «rpcuser=user\nrpcpassword=pwd» > "/Users/${USER}/.twister/twister.conf"
chmod 600 "/Users/${USER}/.twister/twister.conf"

3) В любой папке введите git clone git@github.com:miguelfreitas/twister-html.git
Затем ln -s twister-html /Users/${USER}/.twister/html

4) Скачайте скомпилированный вариант для OS X https://mega.co.nz/#!SU4CiBAa!RKVLfX4BJq4t0JCqFZK7UHuBEURlTcLKIasF8SAmU4Q

5) Запустите его командой ./twisterd -rpcuser=user -rpcpassword=pwd -rpcallowip=127.0.0.1

6) Откройте браузер http://localhost:28332/home.html

Ссылки


Официальный сайт twister.net.co
Официальный репозиторий github.com/miguelfreitas/twister-core
Веб интерфейс github.com/miguelfreitas/twister-html.git
Whitepaper arxiv.org/pdf/1312.7152v1.pdf

Сейчас происходит русификация интерфейса, помочь и посмотреть можно тут github.com/iShift/twister-html
Shift @shifttstas
карма
51,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (84)

  • –1
    Вообще как идея очень даже, вполне вероятно сможет вытеснить твиттер. Сколько уже было новостей что человека уволили или посадили за то, что написал что-то «не то» в твиттере. Но не совсем понятно как Twister будет работать, то есть если у человека будет постоянный ник, то идентифицировать его легко, а если не будет ника… в общем не понятно.
    • +1
      Вы можете зарегистрировать неограниченное количество ников и переключаться между ними ну и надо же еще доказать связь между ником и человеком, тут же никто логи не ведет.
    • +4
      Я полагаю, эти люди хотели внимания именно к своей персоне, в Твиттере тоже не проблема завести подпольный аккаунт.
    • +3
      Ещё один довод в пользу того, что не стоит в сети говорить то, что не можешь сказать в реальном мире.
      • +5
        Чаще наоборот. В реальном мире на кухне можно многое говорить. А вот в виртуальном, все это записывается, индексируется, агрегируется… поэтому в виртуальном стоит быть осторожнее, чем в реальном.
    • 0
      Может и сможет, вот только в твиттере обычно подписываются на известные личности, или корпоративные аккаунты с новостями и техподдержкой. Смысла подписываться на еще одну виртуальную личность еще одного Васи Пупкина не слишком много.
      • +3
        если он будет популярен — будут и официальные аккаунты компаний.
  • 0
    Т.е. можно «какнуть» в общее информационное пространство без всяких последствий? Поэтому не очень понятно для кого такой инструмент более выгоден.

    Ждём новых интриг, вбросов, утечек и разоблачений.
    • +3
      Для кого он более выгоден — вопрос философский, на уровне для кого выгоден Bitcoin
      • +3
        Создатели Bitcoin, наркоторговцы и производители видеокарт?
        • 0
          В одном лице
  • 0
    Подскажите, почему -rpcuser=user -rpcpassword=pwd именно такие? Где они используются и можно (и нужно ли) изменить их на свои? Ещё интересно сколько примерно сейчас качается цепочка блоков?
    • +1
      Это RPC вызовы от веб интереса к демону, поменять можно, но зачем? он и так у вас только локально работает

      Блоки скачиваются за минут 5-7
  • +2
    По сути дела это замечательная идея (уже реализация). Правда не надо все сужать на Твитер. Данный инструмент позволяет публиковать сообщения анонимно (главное очиститься от IP), да существуют альтернативы IRC канал + история на торентах (хотя для обновлений понадобится BTSync), вести сайт в I2P.
    А востребованность вот: Wikileaks, Форумы для торент сцен.
    Основное преимущество: никто до компрометации сити и/или акканта, не может удалить, подменить сообщения.
    Получаем некоторый надежный от MITM и Man on Server атак — архив.
    • +3
      Я в это реализации вижу немного другое, единая база регистрации пользователей, которую можно использовать за пределами twister
  • +1
    Может ли это быть вполне тот самый торрекнт трекер p2p, о котором мечтают piratebay? Рекламные сообщения ведь на стороне клиента наверное можно скипнуть, так что не очень понятно каковы тут перспективы. Еще интересно как сеть защищает себя от спама (например регистрации большого числа аккаунтов).
    • 0
      Рекламные сообщения — можно, сделав просто другой клиент, но они жестко ограничены (вроде бы не более 1 в день), если их убрать то поддерживать сеть будет некому )

      Так же как и Биткоин — POW
      • 0
        что значит «поддерживать будет некому»?
        для поддержки биткоина достаточно одного живого майнера, потому что сложность автоматически адаптируется к их количеству
        • 0
          В посте написано же, по умолчанию — никто не генерирует блоки, только желающие рекламироваться.

          Если же стимула майнить не будет, то и лайнеров не будет так же, а из этого следуют различные проблемы сети, в плоть до полностью неработоспособности.
        • 0
          а вот и не адаптируется… Если на компе запустить биткион и ускорить время сложность на нём как была так и останется, даже если будет находить по одному хешу в миллион лет. Потому что сложность может только увеличиваться…
          • +1
            Не говорите о том, в чём дуб дубом. Сложность сети подстраивается автоматически в любую сторону. Сеть стремится к скорости генерации 1 блок в 10 минут.

            Другой случай — отключаем всех майнеров от сети, кроме одного. Вот этот майнер будет генерировать следующий блок несколько лет. Но, когда он сгенерирует его, сложность упадёт почти до 0, потому что слишком долго генерировался блок, далеко не 10 минут.
            • 0
              вот именно что сложность не упадёт. Если бы так было можно было бы локально (отключённым от сети) создать цепочку сколь угодно длинную, просто сильно понизив себе сложность с помощью махинации со speedhack (ускоряя работу часов в компьютере).
              • 0
                Полюбуйтесь на август-сентябрь 2011 года в абсолютных цифрах.
              • 0
                махинации со speedhack (ускоряя работу часов в компьютере)

                Сделать можно. Но остальные клиенты такую цепочку отвергнут, т.к. отметка времени в блоке будет из будущего.
                • –1
                  Как известно — биткоин принимает самую длинную цепочку за самую достоверную. Но как можно доверять цепочке если в ней вдруг понизилась сложность в разы? Тогда все вычисления вообще теряют смысл. Если сложность может не только увеличиваться. Или он возьмёт ту цепочку в которой сложность за некоторый промежуток времени была большей? ну тогда опять же можно просто проводить махинации со скоростью работы часов в компе(сильно замедлить) и сделать себе очень большую сложность, а затем выдать в сеть — и все намайненные битки — будут отвергаться так как они из будущего.
                  Так какая цепочка станет главнее? Которая из будушего? Если да то ваше предыдущее утверждение — неправильно, если нет — можно проводить атаку как в моём предыдущем комментарии.
                  • +1
                    Объясняю на пальцах.
                    Определимся с константами и определениями:
                    Каждые 2016 блоков производится пересчёт сложности (по времени примерно каждые 2 недели).
                    Блок создаётся каждые 10 минут не зависимо от мощности сети (благодаря меняющейся сложности).
                    Таймштамп (Timestamp) — отметка времени, дата рождения блока. Разница таймштампов соседних блоков равна 10 минут (примерно). При уменьшении мощности сети разница растёт (сложнее майнить блоки, больше времени уходит на один блок) и наоборот. Каждые 2016 блоков вычисляется среднее арифметическое разниц предыдущего периода, и на его основе подстраивается сложность в нужную сторону (если среднее получилось меньше 10, значит блоки быстро добываются, значит легко их добывать, значит увеличиваем сложность. И наоборот)

                    Суперхацкер решил намайнить фейковую цепочку и отключил компьютер от сети.
                    А остальной рой майнит с прежней скоростью 1 блок в 10 минут.

                    Поехали:
                    Что бы понизить сложность, хацкеру необходимо домайнить в одиночку цепочку блоков до пересчёта сложности. При этом необходимо, что бы среднее арифметическое разниц Timestamp было очень большое (что бы обрушить сложность разница должна быть месяцы, если не годы).
                    Допустим, что у хацкера хватает мощности, что бы майнить в соло блоки при текущей сложности.
                    Пусть для удобства план-капкан длится 2 недели, и только что была пересчитана сложность (нам нужно будет намайнить 2016 блоков, что бы понизить сложность)
                    За 2 недели основной рой намайнит как раз 2016 блоков, ср. Timestamp = 10 min.
                    Хацкер намайнит 3000 блоков, его цепочка больше. Вот только ср. Timestamp у него будет 100 минут (цифра с потолка, главное больше, чем у всех остальных). Хацкер умный, он не стал ничего делать с часами своего ноутбука, а просто использовал модифицированный клиент, который в блок записывает нужное нам время.

                    А теперь самая важная деталь, которую вы почему-то пропускаете: сеть примет не просто самую длинную цепочку, а самую длинную валидную цепочку.

                    Ну и проверим ка.
                    20160 минут длился план-капкан (2 недели)
                    Сеть: 20160 [минут] / 10 [минут] = 2016 блоков. Вроде бы верно.
                    Хацкер: 20160 / 100 = 201 блок. А остальные блоки не валидны, потому что дата их создания ещё не наступила. Сеть эти блоки не примет.
                    Хацкер плачет горькими слезами.
                    • 0
                      почему вы думаете что хакер будет именно изменять клиент? не проще ли реально использовать время на компьютере? Тогда проверка будет выдавать то что нужно именно хакеру. Почему это кажется вам умнее если заранее ведёт к проигрышу?
                      Допустим у хакера нет таких мощностей — а у кого она есть? Зачем нужна такая валюта если на неё нужны такие мощности которых нет у рядового хакера? Объединяться в пулы? Допустим у нас 1000 хакеров. И у них у всех время будет одинаково переключено.
                      Почему ваша цепочка будет валидней нашей?
                      Повторю ещё раз: Возможна ведь и обратная атака: мы замедляем время и тогда ваши блоки становятся невалидными.
                      Или он проверяет точность нахождения блока в конкретное время? тогда можно создать не более длинную цепочку а более валидную. Просто переставляя время перед тем как будет найден новый блок.
                      Как сеть вообще определяет что вот именно эта цепочка блоков более подходит?
                      Когда только только появлялись asic можно было повысить свою мощьность в десятки раз — количество новых блоков тоже не соответствовало предполагаемому — однако сеть их приняла.
                      • 0
                        почему вы думаете что хакер будет именно изменять клиент? не проще ли реально использовать время на компьютере?

                        Стакан наполовину пуст или наполовину полон?
                        Пусть текущее время — x. Модифицированный клиент будет брать время x и записывать время 10x в блок.
                        Переводим часы на 10x. Обычный клиент берёт время 10x и записывать его в блок без изменения. В обоих случаях время получилось одинаковым, блок получился одинаковым. Только в вашем варианте браузер станет ругаться на невалидные ssl-сертификаты, у которых истёк срок действия. Ну и другие программы могут пострадать.
                        Почему это кажется вам умнее если заранее ведёт к проигрышу?

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

                        Почему ваша цепочка будет валидней нашей?

                        Потому что она длиннее.
                        (Цепочка валидная лишь тогда, когда в ней все блоки валидные. У хацкера была цепочка длиннее, но валидных блоков в ней было меньше)

                        Повторю ещё раз: Возможна ведь и обратная атака: мы замедляем время и тогда ваши блоки становятся невалидными.

                        Для, для хацкера наша цепочка станет невалидной, потому что в ней будут блоки из будущего (у хацкера время идёт медленнее).
                        Но у остальной части сети время то вы не переведёте назад, так что основная цепочка сетью будет воспринята как валидная.

                        Если вы о том, что хацкер может насоздавать много блоков с маленькой разницей в возрасте (например 1 блок в секунду), то ему нужны мощности, превышающие мощность сети в 600 раз (10 минут / 1 секунду = 600). На этом и основана «атака 51», когда больше половины мощности сосредоточено у одного майнера\пула. Такая проблема есть, но на самом деле она не так выгодна большим пулам. Ну намайнят они себе много битком, будут контролировать сеть. Цена биткоина в таком случае обвалится, и пул больше потеряет, чем заработает.
                        Ну и насоздавать таких блоков хацкер может максимум 2016. А дальше необходимо будет пересчитать сложность (сеть контролирует правильность изменения сложности, каждый клиент проверяет вычисления, в случае неправильно посчитанной сложности блок не принимается) и опять майнить со скорость 1 блок в 10 минут (или искать дополнительные мощности).

                        Просто переставляя время перед тем как будет найден новый блок.

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

                        Как сеть вообще определяет что вот именно эта цепочка блоков более подходит?

                        Если в цепочки нет блоков, моложе текущей даты и цепочка является самой длинной, то она признаётся валидной.

                        Когда только только появлялись asic можно было повысить свою мощьность в десятки раз — количество новых блоков тоже не соответствовало предполагаемому — однако сеть их приняла.

                        Сеть обращает внимание на скорость добычи блоков лишь во время пересчётов сложности.
                        Майнила сеть 2016 блоков за 2 недели. Резко увеличили мощность в 2 раза. На 2016 блоков ушла лишь одна неделя, пересчитали сложность. На следующие 2016 блоков при той же мощности снова уйдёт 2 недели. Никаких проблем.

                        Заработок от майнинга определяется не количеством гигахэшей в секунду, а долей мощности от всей сети. Есть у вас 50% мощности всей сети, то вы и будете получать 12.5 битков каждые 10 минут (за блок сейчас начисляется 25 битков).

                        При мощности сети в 1 мегахэш и собственной мощности в 500 килохэшей заработок будет такой же, как при мощности сети в 1 терахэш и собственной мощности в 500 гигахэшей. Собственно на этом производители ASIC и заработали — они получили мощность, сравнимую с мощность всей сети, стали забирать большую часть прибыли. Майнеры на gpu и fpga перестали окупаться, их отключили, мощность сети упала, сложность упала. На графиках это хорошо видно. Ну а потом все решили нажиться, стали разбирать ASICи, как горячие пирожки. Мощность увеличилась на порядки, а за ней и сложность взлетела. Ну и теперь и ASIC почти не окупаются.
                        • 0
                          мне осталось уточнить последнее и я отвяжусь :)

                          (цитирую) для хацкера наша цепочка станет невалидной, потому что в ней будут блоки из будущего (у хацкера время идёт медленнее).
                          Но у остальной части сети время то вы не переведёте назад,
                          У них будет больше валидных блоков. (конец цитаты)

                          — А Если представить что вот реально есть группа хакеров у которой своя цепочка блоков. И ваша цепочка будет для них невалидной, но валидной для себя. ( мы можем даже майнить большие цепочки за счёт постоянного ускорения времени(сложность будет только уменьшаться и уменьшаться(правдо время на компе будет расти с прогрессией но это не суть)))
                          Наша цепочка будет полностью валидной для нас а ваша для вас.

                          И вот я вдруг скачаю биткоин с нуля. Он начнёт выкачивать цепочки. Какую из них он скачает мою или вашу? Или это будет зависить от времени на моём компьютере?
                          Или он как-то синхронизирует время со сторонними сервисами?
                          Я сейчас переставил время на прошлое и запустил motocoin клиент(биткоиновский требует установить яву которая у меня и так есть, поэтому я его даже установить не могу) И он начал успешно синхронизироваться ( первые несколько блоков) а затем написал что скорее всего у меня не правильная дата на компьютере. Вот как он это выяснил? у большей цепочки другая дата? — ну так я же говорю можно намайнить сколь угодно длинную цепочку если постоянно изменять время на будущее на компьютере хакеров( и сложность будет только падать).

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

                          ps. Вот если бы сложность не могла бы падать у меня не возникли бы такие вопросы…
                          • 0
                            Пиры передают вашему клиенту блоки, дата которых больше, чем дата на вашем компьютере. Клиент не принимает эти блоки, но делает предположение, о неверной дате.

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

                            Если вашему клиенту доступны только подделные пиры, то он так и останется с поддельной цепочкой блоков.
  • 0
    Главный и первый вопрос – объём сообщения всё так же лимитирован 140 символами?
    • 0
      Тут — 160 это ограничение не совсем искусственное, а вполне осмысленное, количество информации которое можно хранить и передавать через DHT без фрагментации — ограничено.

      • 0
        и собственно подразумевается — что у каждого пользователя сети будет вся база сообщений?
        • 0
          Нет, они распространяются только соседям (социальным и физическим)
          • 0
            где тогда галочку выключить? мне не дает отправить сообщение — пока не скачаю всю цепочку — цепочка тянется ну очень мучительно медленно…
            • 0
              Цепочка хранит в себе только регистрацию пользователей т.е соответствие ник: публичный ключ

              Её отключить естественно нельзя.

              PS НЛО не позволяет мне быстро отвечать
              • 0
                ок… понял… спасибо за ответы
                • 0
                  … В стандарте есть возможность не выкачивать всю цепочку блоков, только заголовки и нужный блок — для использования на портативных устройствах.
  • 0
    Замечательная идея и реализация. Современные соцсети несут в себе опасность именно из за отсутствия анонимности и цензуры.
  • +7
    Любопытное предостережение на странице Download:
    If you choose to continue you probably must fall into one of the following categories:

    You are a developer.
    You are an early adopter (who wants to reserve your nickname).
    You are a masochist.
  • +1
    Это всё круто, но если сеть вырастет, то скачивать гиговый архив для инициализации клиента никто не захочет. Вы говорите уже сейчас процесс занимает пять минут. Пффф…

    Ну и архитектура демон-клиент — это так user friendly!
    • 0
      1) С развитием Bitcoin начали массово использовать тонкие клиенты — Multibit тут все так же, можете использовать тонкий клиент, который будет скачивать только ваш блок

      2) Такая архитектура позволяет делать всё что угодно, вы можете либо запускать твистер в браузере, а можно написать оболочку и запускать в виде приложения.
      • 0
        А еще можно будет сделать пулы, как для майнинга, тогда можно будет не ставить клиент локально.
  • –1
    1) Но тонкие клиенты убивают безопасность. И ими не рекомендуют пользоваться. В чем смысл делать анонимный и безопасный твитор, если через полгода он станет небезопасным? Это называется broken by design.

    2) Если я хочу запустить твитор в браузере, то я хочу зайти на какой-то урл и не думать про демона. И как я зайду в него с хромбука? Никак, например. Вариант с демоном имеет смысл только в случае stand alone приложения, а это сегодня не модно.
    • +2
      Скорее всего, будет компромисс: на нормальных компьютерах нормальный клиент, на мобильниках тонкий. Хромбук? Зачем нужна безопасность и децентрализация человеку, который выбрал не стул с точеными пиками, а второц вариант? Он уже часть централизованной сети гугла и его анальное рабство скорее всего продлится всю жизнь.
      • 0
        То есть с компа безопасность, а с мобилки палево? Это же бред!
        • +1
          Почему вы считаете что если вы не имеете всех блоков то это палево?
          • +1
            Потому что вы будете думать, что обмениваетесь сообщениями с Васей, а это не он окажется.
            • +1
              Что мешает тонкому клиенту хранить блоки для всех, кого пользователь читает? Это же выдуманный тонкий клиент, он может хранить что угодно. :)
    • 0
      Почему он не будет безопасным?
      Хромбук — весьма странная вещь которая урезана во всем, на любой другой платформе — android/ios все будет прекрасно работать.
      • 0
        Потому что не имея всей истории блоков, вы не можете быть уверенными, что сообщение от Васи действительно послал Вася.
        • 0
          Скорее всего тонкие клиент может «спрашивать» у сети правильность каких-то данных. 6+ подтверждений — ок.
        • 0
          Проверка сообщений осуществляеться при отправке сетью + информация об определенном блоке может быть затребована без скачивания целой цепочки
          • 0
            Вы знаете что такое MITM атака? Не имея всех блоков безопасность пропадает целиком и полностью.
            • 0
              А вы знаете как работает цепочка блоков в Биткоине? почему достаточно иметь только нужные вам блоки?
              • 0
                Для точной верификации требуется вся цепочка.
                • 0
                  Я вам еще раз предлагаю ознакомиться с тем, как работает Bittorrent клиент Multibit
                  • 0
                    Multi bit использует 3rd party сервера для валидации. Рекомендую вам ознакомиться с тем, как он всё-таки работает.
                    • 0
                      Electrum использует 3rd party сервера а не Multibit, он же загружает заголовки блоков
                      • 0
                        Вот что пишет разработчик мультибита:

                        Both clients are theorectically open to an attack if their network connection is owned and the attacker can feed them completely false information.


                        Because you don't have the complete blockchain you cannot check the transactions so thoroughly. For instance in MultiBit you typically have 4 bitcoind connections and can check that the same transaction has been sent to you by all four. The blocks you can check various things but you are trusting the bitcoind that sent it to you to a certain extent.


                        bitcoin.stackexchange.com/questions/9647/are-the-thin-clients-electrum-and-multibit-safe-and-secure

                        RTFM!
                        • 0
                          Ну и в чем проблема то? тут можно симулировать только атаку получения ложного сообщения а не передачу в сеть ложного сообщения для всех

                          В рамках твиттера я немного не понимаю какая от этого может быть серьёзная угроза для.
                        • 0
                          И в случае multibit, даже если информация со stack exchange верна, в чем я сомневаюсь, то наличее 4 фейковых пиров не позволит украсть у вас деньги.
                          • 0
                            А товар?
    • 0
      1) Это выбор пользователя. Хочет спать спокойно и хранить у себя все блоки — пожалуйста, хочет только необходимые блоки — тоже можно. Если не хранить ключи всех отправителей — нельзя быть уверенным, что это действительно они. Ни при какой реализации. Или храним ключи, или не можем проверить подлинность отправителя. Это не прихоть разработчика, а вынужденная мера, которая обеспечивает безопасность.

      2) Лишние соединения, которым мы не доверяем — уменьшение безопасности. Можно запустить сервера, которые будут авторизовать пользователей и показывать им ленту. Но MITM будет легко осуществим и все плюшки накроются медным тазом.

      Если вам или другому потенциальному пользователю лень поднимать демона — не делайте этого. Крипто-анонимная сеть для мазохистов не для вас. А если захотите пользоваться — найдете решение, которое подходит именно вам. Например на своем сервере поставить демона, с устройств подключаться к нему по vpn с самым надежным уровнем шифрования, чтобы читать ленту.
  • +1
    Твиттер внутри себя для синхронизации использует реализацию Bittorrent, но это ладно.
    Посмотреть бы как этот сервис поведёт себя хотя бы при обычной нагрузке твиттера…
  • +1
    Жалко правда что сделано на Qt, а не на Java — на роутере запустить будет проблематично.
  • +3
    Очередная забавная игрушка для гиков, 99,9 процентов пользователей твиттера даже не смогут понять зачем он им нужен. Цитаты и состав завтрака можно постить в любой стране без особой опаски.
    • +4
      Цитаты [...] можно постить в любой стране без особой опаски.

      Конституцию Россию в России опасно…
  • +2
    Ага, в блокчейне регистрации пользователей… Как там реализована защита от его зафлуживания (блокчейна)? Если POW, то это серьёзное препятствие к для регистрации (на мобильных устройствах — подавно.
    • 0
      Вы хотите регистрировать каждый час по новому нику?
      • +5
        Я уже посмотрел whitepaper по этому делу. Там указано, что для регистрации требуется создать POW, который на моём AMD FX-8150 посчитался за несколько мс (я не замерял, но субъективно — мгновенно).

        Потенциальный злоумышленник — да. Причём, не каждый час, а, скажем, каждые 100 мс. И не с одной ноды, а, скажем, с 10 тысяч. Тут обыкновенная атака Сибиллы способна не просто скомпрометировать данные пользователя, а устроить непоправимый без разрушения цепочки блоков DoS. А это крах всей сети, ни больше, ни меньше.

        Вы ведь представляете, что такое количество пользователей просто раздует блокчейн до таких размеров, что его просто не получится уместить на жёстком диске?
    • 0
      Уже зафлудили. Грядёт хардфорк всей цепи.

      groups.google.com/forum/#!topic/twister-dev/gpEaKwH153I
      • 0
        Уже решили вопрос, исправив ошибку в коде, сбросив последние 2к блоков
        • +1
          Нет, код не трогали, просто хардфоркнули. Там нет ошибки в коде, она в архитектуре. У разработчика абсолютно не проработана модель угроз. Совсем. В whitepaper описаны только алгоритмы, защиты от угроз и сами векторы атак там не прописаны. Взяли бы пример с I2P Threat model.

          Я в своём сообщении выше в код не смотрел, однако по одному лишь whitepaper дал точное описание вектора вчерашней атаки. В самих алгоритмах построения этой сети просто нет защиты против этого.
          • 0
            Уже сделали ограничение для блока (был коммит на github)
            • 0
              Да, коммит появился, он разрешает проблему создания больших блоков (размером в 1 МБ), но не решает проблему генерации большого количества пользователей (информация о которых разнесётся по мелким блокам в 50 КБ), которые загадят весь блокчейн.
              • 0
                Да это понятно, мне кажется стоит сделать очистку цепочки раз в N блоков т.е её перестроение
                • +1
                  Ну, тогда будет проблема «потерянных» пользователей. Ваша мысль напоминает Bitmessage (вы ведь из него идею взяли, правда?), где сообщения «протухают» за три дня. Нельзя заставлять пользователя заходить в сеть раз в [подставьте число].

                  Отличие twister от bitcoin в том, что в биткоине существует комиссия, по которой майнеры ориентируются, какую транзакцию включать в блок, а какую нет. То есть, транзакции без комиссии будут висеть очень долго (крайне долго). А включать комиссию в транзакции чисто чтобы заспамить блокчейн — слишком дорого, учитывая, что стандартная комиссия сейчас 0,01 BTC (8$), а транзакций потребуются миллионы.

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

                  То есть, в биткоине заспамить цепочку будет просто дорого, в отличие от твистера.

                  Резюмируя: Мне кажется, в этом проекте мы видим неумелое применение технологии абсолютно не по назначению. Ещё и whitepaper на arXiv.org, лежащий рядом с серьёзными работами по Computer Science.
                  • 0
                    Нет, не как в BM, я бы хотел так:
                    раз в 100 000 блоков цепочка блоков умирает и пересоздается.
                    Причем хитрым образом.

                    При входе в систему (отправки своего публичного ключа и логина) происходит перегенерирование POW и проверка существование такого пользователя в старой цепочке, если он есть, то добавить в новую, если нет — отвергнуть.

                    Новые пользователи (тех что нет в старой цепочке — регистрировать сразу) по истечению 30 дней — ликвидировать старую цепочку блоков и считать актуальным только новую.

                    • 0
                      При входе в систему (отправки своего публичного ключа и логина) происходит перегенерирование POW и проверка существование такого пользователя в старой цепочке, если он есть, то добавить в новую, если нет — отвергнуть.

                      Новые пользователи (тех что нет в старой цепочке — регистрировать сразу) по истечению 30 дней — ликвидировать старую цепочку блоков и считать актуальным только новую.

                      То есть, нужно заходить раз в 60 дней, иначе кто-то сможет прописать под моим ником свой ключ в новой цепочке?
                      • 0
                        Не раз в 60 дней а раз в n блоков, я это себе так представляю, а у вас есть другие идеи? С удовольствием бы послушал :)
  • +4
    Мда, киберсквоттеры хорошо приложились: @ microsoft, @ google, @ dropbox, @ linux, @ gnu, @ apple уже зарегистрированы.
    Можно сказать, не взлетело.
  • –3
    Сейчас Твиттер можно использовать против всех, кроме США, а этот Твистер можно будет использовать в том числе и против самих Штатов. Твистерная революция в США не за горами?
  • 0
    Vamos descobrir quantos usuários twister tem.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.