Где хранится блокчейн биткоина

Где хранится блокчейн биткоина

Где хранятся биткоины?

Большая часть криптовалютного комьюнити считает, что биткоины хранятся на том кошельке, куда они их перевели. Например, если криптовалюту перевести на мобильный кошелек JAXX, то их деньги будут находится на телефоне, если перевести на Electrum, то на компьютере, но это не так. Чтобы понять, где хранятся биткоины, для начала давайте определимся с тем, что такое кошелек. Кошелек – место, где хранятся деньги. Но в сети Bitсoin деньги хранятся не на самом кошельке, а на адресах, которые записаны в блокчейне. По сути блокчейн биткоина и есть кошелек, на котором хранятся монеты.

Но что же такое JAXX, Electrum и другие криптовалютные кошельки?

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

Что такое приватный ключ?

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

Как вы уже поняли¸ такой ключ запомнить не так уж и просто, а записывать его не совсем безопасно, именно поэтому используется SEED фраза, которая состоит из 12 случайно сгенерированных слов и содержит внутри себя данный приватный ключ. После SEED фразы идет публичный ключ, который вытекает из приватного. Из публичного ключа с помощью HASH функции генерируется биткоин адрес. Он позволяет получать биткоины от других пользователей.

Давайте подытожим:

Биткоины не хранятся на криптовалютных кошельках, они находятся в блокчейне, а кошелек является лишь интерфейсом для управления биткоин адресом. Криптовалютные кошельки по типу JAXX, Electrum, Exodus используют ваш приватный ключ, чтобы вы могли удобно взаимодействовать с блокчейном и управлять средствами. При переводе биткоинов на один из криптовалютных кошельков, будь он холодным или горячим, монеты по-прежнему остаются в блокчейне, но у вас появляется возможность управлять ими через удобный интерфейс. Полный доступ к средствам вы получаете имея SEED фразу и приватный ключ. С помощью публичного ключа генерируется биткоин адрес, который вы используете для получения биткоинов от других пользователей сети.

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

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

Источник

Запись и чтение данных в блокчейне биткоина

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

Читайте также:  Майнинг что это по немецкому

С помощью библиотеки blockchaindata-lib запись и чтение данных в блокчейне можно организовать буквально в несколько строк кода.

Инструменты

Библиотека blockchaindata-lib написана на node.js. Исходный код с примерами доступен на гитхаб github.com/3s3s/blockchaindata-lib. Чтобы добавить библиотеку в ваш проект, достаточно выполнить в консоли одну команду

Для работы с блокчейном, необходимо настроить RPC доступ к кошельку биткоина или совместимого с биткоином форка (Litecoin, Dogecoin и т.п.). По умолчанию blockchaindata-lib будет пытаться обращаться к серверу RPC по следующим реквизитам:

Умолчания можно изменить библиотечной функцией

Таким образом, чтобы работать с библиотекой, первым делом нужно запустить тестовый кошелек биткоина:

  1. Скачать кошелек биткоина (или совместимого форка.)
  2. Создать файл

/.bitcoin/bitcoin.conf (или в windows %APPDATA%/Bitcoin/bitcoin.conf)
В файле bitcoin.conf записать следующие настройки

  • Сохранить изменения в bitcoin.conf и запустить bitcoind (или в windows bitcoin-qt.exe)
  • Дождаться синхронизации блокчейна
  • С указанными выше настройками, кошелек запустится в тестовой сети биткоина.

    Запись данных

    В биткоине запрещены транзакции в которых нет никаких трат. Поэтому перед тем, как что-то записать в блокчейн биткоина, обязательно придется пополнить свой кошелек. Биткоины для тестовой сети можно получить бесплатно, если поискать в гугле что-то вроде «bitcoin testnet faucet». Когда кошелек пополнен, можно наконец записывать данные.

    Библиотека имеет несколько функций для записи данных:

    В принципе, что эти функции делают — понятно из названия. Результат выполнения функций — объект

    Рассмотрим пример использования:

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

    Чтение данных

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

    Если этот код сработает без ошибок, то в консоль будет выдан текст html страницы, которую я ранее уже сохранил в блокчейне.

    Где применить?

    В блокчейне можно например сохранить статический сайт. Этот сайт практически невозможно будет удалить или каким-то образом заблокировать. Однако чтобы читать такой сайт, нужен будет дополнительный софт: новый браузер или расширение для браузера.

    Расширение для браузера это самое простое решение. Пример такого расширения можно посмотреть здесь github.com/3s3s/blockchaindata

    Скачать и установить это расширение для Firefox можно здесь: yadi.sk/d/a3xM9BCepP4nBw
    После установки Firefox будет перехватывать и обрабатывать ссылки на сайты в формате

    Эффективность

    Библиотека blockchaindata-lib сжимает данные перед помещением их в блокчейн с помощью алгоритма deflate, поэтому данный метод особенно эффективен для записи текстовых документов. В ходе тестирования мне удавалось записать в блокчейн до 70 кб сжатых данных. Хотя ограничений на размер входящих данных нет, ошибки на больших массивах данных появляются из-за внутренней реализации кода биткоина.

    При записи данных в блокчейн, нужно так же учитывать финансовую составляющую. Чтение и запись данных в тестовой сети биткоина с помощью библиотеки blockchaindata-lib это просто и бесплатно. Однако если вы захотите писать данные в рабочую сеть биткоина, то вам нужно будет учесть ненулевую цену биткоина.

    Источник

    Часть 1. Где хранить данные децентрализованным приложениям на блокчейне?

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

    Читайте также:  Рентабельность инвестиций рассчитывается как отношение суммы

    А что же это такое блокчейн?

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

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

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

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

    Подобная проблема выяснения истины в условиях, когда твои собеседники могут бессовестно врать, была названа Лесли Лампортом «Проблемой византийских генералов», а решена двумя годами ранее в 1980 году им же совместно с другими авторами. Было показано, что при n шпионах, которые могут врать и искажать информацию, консенсус между участниками может быть достигнут при общем количестве участников 3n+1. А если гарантировать, что шпионы не могут искажать переданную через них сообщения, то достаточно и 2n+1. В блокчейне за счет электронной подписи зловредные узлы не могут искажать информацию, поэтому если в блокчейне менее половины зловредных узлов, то сеть устойчива.

    Устойчивость сети к зловредным узлам называется устойчивостью к византийской проблеме (Byzantine Fault Tolerance, BFT). BFT очень важна для публичных сетевых систем, в которые могут свободно добавляться произвольные узлы. Именно такими системами является большинство проектов на блокчейне.

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

    Ethereum задумывался как универсальная платформа для создания децентрализованных проектов на основе блокчейна. Зачем реализовывать весь блокчейн заново, разворачивать собственную инфраструктуру, если можно парой-тройкой смарт контрактов реализовать то, что тебе нужно, на Ethereum, как, например, аналог NameCoin? Поэтому последнее время Ethereum переживает бурный рост. С марта 2017 ETH (криптовалюта Ethereum) всего за два месяца выросла в цене в 5 раз, и рост продолжается. На Ethereum работают уже сотни приложений, например, социальная сеть AKASHA, биржа фрилансеров Ethlance, игра в слова, да много их!

    Читайте также:  Сообщение по теме инвестиции

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

    Казалось бы, что ещё нужно? Приложения получаются действительно децентрализованными, неподверженными цензуре и запрещению. В общем, блокчейн — это сплошные достоинства! Но если бы всё было так хорошо… При создании действительно мощных приложений сразу обнаруживаются и недостатки.

    Неизменяемость. Неизменяемость — это, конечно, хорошо. Именно неизменяемость даёт блокчейну публичность и BFT. Однако есть и обратная сторона медали. Все данные, которые приложения пишут в блокчейн, остаются там навсегда. Поиграли в слова — блокчейн это запомнил. Разместили информацию в социальной сети — она навсегда сохранена в блокчейне, даже если вы потом удалили свой профиль. Взрывной рост числа приложений на блокчейне приводит к сильному раздуванию цепи блоков в размере. Уже сейчас размер полного блокчейна Ethereum перевалил за 130Гб, хотя он работает меньше 2 лет. У биткоина меньше при его солидном возрасте более 7 лет.

    Конечно, в некоторые реализации Ethereum включают технологию State Tree Pruning, которая позволяет хранить только последнее состояние блокчейна, с ограниченной историей примерно на сутки, что на текущий момент позволяет сократить хранимую информацию в 20 раз. Например, go-ethereum full node требует для хранения блокчейна 130 Гб, а Parity с поддержкой данной технологии — всего 6 Гб. Однако, учитывая, что рост числа приложений только начинается, а каждому узлу Ethereum приходится хранить все данные всех приложений, это выглядит хоть и необходимой, но всего лишь отсрочкой проблемы. С ростом размера блокчейна он перестанет помещаться на массово выпускаемые жесткие диски, его обслуживание станет по карману лишь большим организациям, что ведет к опасной централизации — сосредоточению контроля над более чем 50% сети у одной организации. Это может нарушить BFT.

    Медленность транзакций. За свою устройчивость блокчейны расплачиваются скоростью транзакций. У биткоина 7 транзакций в секунду, у Ethereum — 15. И это на всю сеть, потому что каждый узел полностью реплицирует другие узлы. Добавление нового узла повышает устойчивость системы, но никоим образом не увеличивает скорость её работы или максимальный объём хранения данных. То есть, изменение данных (а каждое изменение данных в блокчейне — это транзакция) является бутылочным горлышком. Популярные приложения сразу же натолкнутся на это ограничение.

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

    Таким образом, при разработке приложений на блокчейнах, например, для Ethereum, проблема хранения данных стоит очень остро. Сейчас нет удовлетворительных способов её решения.

    Но ведь существующие приложения, например, AKASHA как-то выкручиваются… В следующей части мы рассмотрим существующие подходы к решению этой проблемы.

    Источник

    Оцените статью