Рубрики
Без рубрики

Blockchain для финансового продукта: зачем вам это и как его построить

Технологии меняются быстро; люди нет. – Jakob Nielsen Blockchain является относительно новым TEC … Теги с Python, Blockchain, Fintech.

Технологии меняются быстро; люди нет. – Jakob Nielsen

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

Примечание: Эта статья не объясняет концепции блокчан; Вместо этого фокусируется на разработке приложения Fintech с использованием этой технологии. Я объясню, почему Fintech уже может усыновить блокчану, а главное, сосредоточиться на разработке децентрализованного приложения, используя эту технологию.

Отрасли, которые готовы к блокчане

Дон Норман однажды писал, что многие продукты не удались, потому что они были освобождены в неподходящее время. Я могу переделать это утверждение и сказать: многие технологии не могут найти практические приложения. Когда Интернет широко доступен в начале 90-х годов, каждая сфера пыталась применить его к своему бизнесу. Это была катастрофа, и его последствия по-прежнему видны тысячами никогда не посещаемых сайтов с ужасными интерфейсами, неуклюжеными, созданными любому, кто имел компьютер. В настоящее время мы являемся свидетелями практически в той же ситуации – самая потенциальная технология десятилетия связана с спекуляциями на криптообменных обменах. Он широко используется для финансовых мошенников, хотя он был изначально создан для наоборот.

Источник: Microsoft Azure.

Попытка исключить человеческий фактор из бизнеса, была одна из причин, почему появился Блокчан. Именно поэтому отрасли, которые могут быть успешно реализованы Blockchain, являются те, которые (1) сильно зависят от человеческой деятельности, и (2) больше всего страдают от человеческих ошибок, таких как финансы.

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

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

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

Читать: Что вам нужно рассмотреть, прежде чем построить Fintech Product

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

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

Я не предлагаю реализовать блокчан в следующих случаях:

  • Вы ограничены в ресурсах. Это способ высокого риска для создания продукта, потому что (1) Есть несколько инженеров Blockchain, а (2) это дорого, чтобы они были в команде.
  • Вы не готовы к значительным изменениям. Изменения включают оперативное управление и людские ресурсы. Если вы являетесь банком, который реализовал BlockChain, вам, скорее всего, нужно будет позволить многим сотрудникам идти, поскольку будет меньше работы для людей.
  • У вас есть краткосрочное видение. Блокчан о долгосрочной перспективе. Это не может быть реализовано в месяц или около того. Если у вас нет долгосрочной дорожной карты продукта, не беспокойтесь с мечтами о том, чтобы меняться завтра.

Что вы можете сделать завтра, и даже во время прочтения этой статьи – построить простой блокчан. Это фокус части 2. Я расскажу вам о основных компонентах, которые необходимы для создания блокчан для Finterch Products, предложите некоторые инструменты и показать реальные кусочки кода с объяснениями.

Как наносить блокчан в Fintech

«Фракции» для использования

Cryptonote.

Cryptonote – это проект с открытым исходным кодом, который позволяет вам создавать монеты Crypto. У них есть простое пошаговое руководство по созданию криптовалюта. Чтобы запустить его, вам нужно будет иметь два узла, которые будут использоваться для запуска сервера Monero.

Полезные ссылки:

Как создать монету

Как создать кошелек

Эфир

Популярная открытая программа для строительства децентрализованных приложений. Его фокус выполняет код программирования вашего приложения на основе Blockchain. Цитируя веб-сайт Ethereum: «Ethereum – это децентрализованная платформа, которая управляет умными контрактами: приложения, которые запускаются точно так же, как и запрограммированы без какой-либо возможности простоя, цензура, мошенничества или сторонних помех».

Zeronet.

Zeronet используется для создания децентрализованных веб-сайтов. Он использует механизмы адресации и проверки биткойн и верификацию, а также сеть доставки распределенного контента BitTorrent для создания сайтов, которые не могут быть цензурами, подделаны или заблокированы.

Построить простой блокчан

Теперь, когда вы знаете инструменты – Cryptonote, Ethereum и Zeronet – мы движемся к созданию базового блокчана нашего собственного. Я буду использовать Python в этом примере, но если это не ваш основной язык кодирования, вы все равно понять логику и сможете написать его на другом языке.

Во-первых, я объясню фундаментальные элементы, необходимые для создания блока. Я начну с даты создания, NONE, Checksum и данных транзакции. Данные транзакции в нашем случае могут быть просто строкой для упрощения кода.

Дата создания

Это ток и время в формате Unix. Требуется для будущего развития вашего блокчана; Когда есть много беговых узлов, и вы добавляете новый блок в свою ветку, узел будет решать, какой блок использовать на основе даты создания.

Неисполнительно

Это уникальный набор символов, которые нам нужно добавить в блок для создания контрольной суммы, которая соответствует требованию. Например, если значение NONES равно 5, то мы должны добавлять 5 нулей (00000) в блок данных, чтобы рассчитать правую контрольную сумму.

Контрольная сумма

Также иногда называют хеш-ценностью, хэш-кодом или просто хеш. Это блочные данные с контрольной суммой NOCE PLUS предыдущего блока. Sha256 защищает цепь гекла от переписывания. Как это работает: узел вычисляет контрольную сумму и сравнивается с одним из новых блоков; Если они совпадают, блок добавляется в блокчану.

Данные

Это набор данных, которые будут храниться в блоке и подписано. Он может содержать любые данные: например, биткойн хранит список транзакций, не только последнюю транзакцию; Или вы можете хранить информацию о компьютере, созданном блоке, как его MAC-адрес; Или вы можете получить более подробную дату создания, скажем, добавляя часовой пояс.

Доказательство работы

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

Давайте начнем с кода

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

import time
from hashlib import sha256

class Block:
    CHECKSUM_LEAD_ZEROS = 5
    NONCE_SYMBOL = 'Z'

    def __init__(self, prev_block, data):
        self._prev_block = prev_block
        self.data = data
        self.checksum = None
        self.nonce = 0
        self.timestamp = time.time()

    @property
    def is_valid(self):
        checksum = self.calculate_checksum()

        return (
            checksum[:self.CHECKSUM_LEAD_ZEROS] == '0' * self.CHECKSUM_LEAD_ZEROS
            and checksum == self.checksum
        )

    def calculate_checksum(self):
        data = '|'.join([
            str(self.timestamp),
            self.data,
            self._prev_block.checksum,
        ])
        data += self.NONCE_SYMBOL * self.nonce

        return sha256(bytes(data, 'utf-8')).hexdigest()
Конструктор

Конструктор принимает только два параметра; Первый – предыдущий блок, а второй – текущие данные блока. Кроме того, конструктор создает знак времени и устанавливает NOCE до нуля в качестве исходного значения.

Является действительным

Свойство, которая рассчитывает контрольную сумму и сравнивает, если текущий равен рассчитанному и имеет правильное количество нулей.

Рассчитать контрольную сумму

Самый сложный метод в нашем коде. Этот метод упаковывает знак времени, данные и контрольная сумма предыдущего блока до одной строки. Затем мы добавляем строку NONECE; В нашем случае это будет список «Z». Затем он рассчитывает контрольную сумму строки результатов.

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

import json

class Chain:

    def __init__(self):
        self._chain = [
            self._get_genesis_block(),
        ]

    def is_valid(self):
        prev_block = self._chain[0]
        for block in self._chain[1:]:
            assert prev_block.checksum == self._prev_block.checksum
            assert block.is_valid()
            prev_block = block

    def add_block(self, data):
        block = Block(self._chain[-1], data)
        block = self._find_nonce(block)
        self._chain.append(block)

        return block

    @staticmethod
    def _get_genesis_block():
        genesis_block = Block(None, None)
        genesis_block.checksum = '00000453880b6f9179c0661bdf8ea06135f1575aa372e0e70a19b04de0d4cbc7'

        return genesis_block

    @staticmethod
    def _find_nonce(block):
        beginning = '0' * Block.CHECKSUM_LEAD_ZEROS
        while True:
            checksum = block.calculate_checksum()
            if checksum[:Block.CHECKSUM_LEAD_ZEROS] == beginning:
                break
            block.nonce += 1

        block.checksum = checksum

        return block

Давайте посмотрим на методы в нашем классе цепочки:

Конструктор

Я только что создал цепочку только с одним блоком – генезисным блоком. Блок Genesis – это первый блок цепи и имеет только контрольную сумму. Этот блок требуется для добавления первого реального блока в цепочку, поскольку реальный блок требует контрольной суммы последнего блока в цепочке.

Добавление нового блока

Он имеет только один параметр – данные для нового блока. Этот метод создает новый блок с данными данными и методом запуска, чтобы найти правильное значение NONE. Только тогда это добавит новый блок в цепочку.

Найти нечесть

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

Подтвердить цепь

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

Нижняя линия

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

Если вы из Fintech Industry, я предлагаю вам изучить больше о продуктах, которые используют Blockchain. Некоторые вещи о них определены; Они более безопасны, более привлекательны для инвестиций, и, если они преуспеют на мировом рынке, будут называться смены игры. Первый шаг адаптации новой технологии принят. Следующим шагом является распространение знаний и обучать людей о чертах блокчан.

Оставайтесь настроиться на следующую часть Blockchain и Fintech, скорее всего, с более сложными частями кода и предложений по его практическому применению в Fintech.

Статья написана Вадимом Заковинко. Эта статья о Финансовый продукт Блокчан Первоначально опубликован в блоге звезд Django. Вы также можете посетить нашу содержание платформы Племя продукта Создано профессионалами для тех, кто участвует в разработке продукта и процессах роста.

Вы всегда можете задать вопросы и делиться темами, которые вы хотите прочитать о!

Оригинал: “https://dev.to/django_stars/how-to-build-your-own-blockchain-for-a-financial-product-1o6m”