Знание BYTOM не должно быть трудным

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

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

Именно по этой причине я собрал лексикон терминологии BYTOM, шпаргалку различных терминов, которая будет вам полезна, как как разработчик или пользователь, и определенно помог бы мне, когда я начал разрабатывать BYTOM! Я также попытался включить диаграммы и графики везде, где я думаю, что они помогают с объяснением.

Мы начнем с более общих концепций и перейдем к конкретным для разработчиков.

  1. Закрытые ключи, открытые ключи, xpub и корневые ключи
  2. Капитал и смарт-контракты BYTOM
  3. Mainnet/Testnet и сборщики
  4. UTXO (вывод неизрасходованных транзакций)
  5. BYTOM-узлы (bytomcli, bytomd)
  6. BMIPs (Предложения по улучшению БИТОМа)
  7. Сайдчейн(ы) и Pegged-чейны
  8. Виртуальная машина BYTOM (BVM)
  9. Типы действий BYTOM (ISSUE, SPEND_ACCOUNT, CONTROL_ADDRESS, RETIRE) для расширенных транзакций
  10. Путь получения подписи и кворум

Если вы занимаетесь криптографией, скорее всего, вы знакомы с Криптографией с открытым ключом (вики). Он обеспечивает безопасность большинства криптографических систем.

Вы знаете, насколько важен ваш закрытый ключ и что, если вы потеряете его или сделаете общедоступным, люди смогут получить доступ к вашим средствам. Но, возможно, вы также сталкивались с тем, что люди в саб-реддите, дискорде или Telegram-канале BYTOM рекомендовали вам быть осторожными с предоставлением нам вашего корневого открытого ключа или xpub. Это почему?

Ну, во-первых, корневые ключи — это ваш первоначальный закрытый ключ и открытый ключ, также называемые главными ключами. На самом деле ваш корневой открытый ключ создается с использованием вашего основного закрытого ключа, поэтому, по сути, здесь действительно важен только ваш корневой закрытый ключ. Ваш главный открытый ключ, также известный как ваш расширенный открытый ключ xpub, вычисляется путем применения EdDSA-Ed25519 к вашему основному закрытому ключу SHA512. Подробнее для ботаников здесь (вики)

Но почему я должен также следить за тем, куда я отдаю xpub? Это мой открытый ключ! Как еще я могу получить BTM на свой кошелек, если люди не знают по открытому ключу?

Помните, что BYTOM, как и многие другие зрелые и серьезные криптовалютные системы, уважает не только прозрачность и безопасность, но и анонимность. Если люди узнают о вашем единственном и неповторимом мастер-открытом ключе — xpub, они смогут отслеживать ваши платежи, входящие и исходящие. Это нарушает анонимность.

BYTOM позаботится об этом, создав вторичные (дочерние) открытые ключи. Вы наверняка видели кнопку «Создать адрес» на своем кошельке BYTOM:

BYTOM позволяет создавать «дочерние»/производные адреса в любое время, и, как и в случае с биткойнами, считается хорошей практикой использовать их только один раз, а затем создавать новый (когда кто-то захочет). чтобы отправить вам платеж). Математически маловероятно, что новые адреса закончатся или попадут в существующий.

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

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

Смарт-контракты написаны на языке Equity, высокоуровневом языке сценариев, который, вероятно, также является Turing Complete (wiki), но я не удосужился это доказать.

Tensority — это механизм консенсуса для BYTOM. Это алгоритм, по которому участники блокчейна решают, действителен новый блок или нет.

Биткойн использует хорошо известный механизм консенсуса Proof of Work — PoW, другие монеты, такие как NEO, используют dBFT (подмножество Proof of Stake — PoS). BYTOM также использует специализированный алгоритм PoW с другим подходом: они хотят, чтобы он оставался совместимым с ASIC и способствовал росту и здоровью экосистемы. ASIC расшифровывается как Application-Specific Integrated Circuit (wiki) и представляет собой специализированные кластеры процессоров, которые очень хорошо выполняют одну задачу (хеширование — майнинг), а все остальное делают действительно неэффективно ( в отличие от процессора общего назначения вашего компьютера).

Для PoW Биткойна ASIC тратят (намеренно) много усилий и энергии, чтобы найти правильные хэши для блоков и получить вознаграждение. BYTOM делает еще один шаг вперед. Что, если всю эту работу можно было бы использовать для чего-то другого, и сам ASIC не должен был бы быть таким странно специфичным?

Tensority BYTOM использует умножение и транспонирование матриц для создания работы для своей схемы Proof of Work. Вы знаете, какая еще область компьютерных наук в основном занимается вычислениями матричного умножения и транспонирования? Искусственный интеллект.

Подход BYTOM к PoW с Tensority направлен на:

  • Включите аппаратное ускорение в системах искусственного интеллекта с помощью ASIC, которые одновременно выполняют майнинг для BYTOM (распределение нагрузки или расчеты «две птицы с одним камнем»).
  • Стимулировать развитие аппаратного обеспечения ИИ и производство микросхем в целом в качестве стимула.
  • Разрешить использование ASIC ИИ для расчетов PoW и наоборот — таким образом, сократить количество полностью специализированных машин и обеспечить более общий и экономичный подход к PoW.

Для тех, кто более склонен к математике, BYTOM выпустил академическую статью о специфике алгоритма Tensority, доступную на их основном сайте. Не беспокойтесь о размере, в самой статье около 20 страниц. Остальные 100 страниц — это приложение к дампу данных, которое они должны были включить в статью.

BYTOM управляет несколькими сетями. Самая известная из них — основная сеть, на которой у вас есть BTM, также называемая основной сетью.

Для разработчиков, желающих исследовать и разрабатывать, есть цепочка, которая работает идентично основной цепочке, называемой Testnet. Именно здесь все мы, разработчики, начинаем кодировать и развертывать/испытывать наши смарт-контракты, прежде чем продвигать наши проекты в основной сети. BYTOM также управляет сетью GM, но у меня еще не было возможности изучить ее.

В Testnet также есть кран. Автоматизированная система, которая дает вам активы Testnet BTM, которые вы можете использовать для своих смарт-контрактов, оплачивать расходы на газ и экспериментировать во время разработки. Они работают так же, как Mainnet BTM, но, конечно, не имеют денежной стоимости. Кран доступен через Blockmeta, прямая ссылка здесь.

Это одна из самых неправильно понятых концепций, и я постараюсь, чтобы мое описание было кратким. Модель UTXO BYTOM похожа на UTXO Биткойна.

UTXO расшифровывается как Unspend Transaction ( TX) Ooutput. Давайте представим себе упрощенную транзакцию, одну из концепций, с которой вы, как пользователь криптовалюты, вероятно, хорошо знакомы.

Транзакция состоит из двух отдельных элементов: один вход и один или несколько выходов.

  • Исходные данные описывают откуда перенесенный актив. Кто его предоставляет!
  • Выходные данные описывают куда они идут.

Рассмотрим классический пример «Алиса хочет отправить вам пример BTM:

UTXO «остается» под вашим контролем. Ваш закрытый ключ может использовать его и, следовательно, создать новую транзакцию, чтобы потратить 100 BTM, когда захотите. Ведь они ваши.

Приведенный выше пример слишком упрощен, но он призван показать вам, что UTXO транзакции — это то, что вы контролируете, чтобы «использовать» свои средства. Ваша учетная запись, вероятно, имеет несколько UTXO, по одному для каждой входящей транзакции BTM или других активов BYTOM, которые вы получили.

Самые умные из вас могли что-то заметить. Учитывая тот факт, что один UTXO становится Входом для новой транзакции, тогда Выход этой транзакции становится Входом для другой и т. д. и т. д. И вы знаете, что Блоки в блокчейне — это связки транзакций, не более того… Ну, а где же сами монеты? ?

Это одна из основных концепций блокчейна, как в BYTOM, так и в биткойне. Блокчейну нужно только отслеживать транзакции. «Монеты» на самом деле не существуют, вместо этого они представляют собой только данные в бесконечном продолжении действительных входов и выходов транзакций, от одного пользователя к другому, затем к следующему и т. д. Более полная версия приведенная выше диаграмма была бы такой (например, если бы я хотел потратить 50 из своих 100 BTM):

Узел BYTOM — это компьютер, подключенный к сети BYTOM, активно участвующий в экосистеме BYTOM и блокчейне.

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

Для разработчиков: вы можете запустить узел, запустив bytomd (имеет веб-интерфейс) или bytomcli (строго консольный) в своей системе, доступный в официальной реализации GOLANG BYTOM. Оба этих клиента откроют API (прослушивание localhost:9888) и веб-сокеты (конечные точки ws://localhost:9888/websocket-subscribe). Вы можете использовать API в качестве входа в блокчейн BYTOM, либо для получения информации о цепочке, для создания, подписания и трансляции транзакций, для развертывания смарт-контрактов и всего, что вам может понадобиться.

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

BMIP доступны в этом официальном репозитории.

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

BYTOM приступил к достижению этой вехи, и Vapor — один из их сайдчейнов.

Развернутые вами смарт-контракты не выполняются на вашем компьютере, они работают в блокчейне BYTOM через абстрактную децентрализованную виртуальную машину. Когда разработчик компилирует смарт-контракт (перед его развертыванием в цепочке), вы фактически переводите свой код в коды операций (OP_CODES), что означает логические инструкции для виртуальной машины. .

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

  1. Тип действия: ISSUE используется в основном для регистрации и создания пользовательских активов в блокчейне BYTOM.
  2. Тип действия: SPEND_ACCOUNT, также читается как Потратить со счета, действует как транзакция INPUT. Как мы уже говорили ранее, разрешен только один ввод на транзакцию, поэтому угадайте, сколько действий SPEND_ACCOUNT у нас может быть: одно, конечно! См. также: UTXO.
  3. Тип действия: CONTROL_ADDRESS, также читайте Управление с адресом. Это действует как транзакция OUTPUT, она указывает, кто является новым владельцем/контролером активов транзакции. Смотрите также: UTXO
  4. Тип действия: RETIRE используется для «уничтожения» актива. Это означает, что он просто делает так, что новый UTXO для транзакции ВСЕГДА терпит неудачу. Активы, переданные посредством этого действия, теперь недоступны навсегда, а потому могут считаться списанными, уничтоженными.

Например, простая транзакция/перевод полного UTXO-расхода содержит два действия: одно трата, одно управление. Если вы хотите "запасную мелочь", вам нужен второй элемент управления, обратно к себе. Вы тратите полный UTXO, вы позволяете получателю контролировать часть, а остальное контролируете вы. Это было не так уж плохо, не так ли?

Вы, наверное, часто видели это, когда пытались build или sign транзакций через API. Путь создания — это значение в байтах, которое использовалось с вашим xpub (главным открытым ключом) для создания одного из ваших дочерних открытых ключей (см. также Раздел 1), обычно порядковый номер созданного адреса (первый созданный дочерний адрес имеет "derivation_path": ["010100000000000000", "0100000000000000"], второй — "derivation_path": ["010100000000000000", "0200000000000000"] и т. д.

Дочерний открытый ключ, который вам нужен, был создан xpub + derivation_path, поэтому для создания действительной подписи вам необходимо указать правильный derivation_path.

Кворум — это количество подписей, необходимое для того, чтобы транзакция считалась правильной. Термин кворум в деловом смысле означает минимальное количество людей, необходимое для принятия решения по вопросу. Не забывайте, что BYTOM также поддерживает мультиподписные кошельки (система подписи X-of-Y, как и Биткойн). Итак, a"quorum":1 — это кошелек с одной подписью, более того, мультиподпись.

Первоначально опубликовано на http://github.com/Agouri/Bluechain/wiki