Кворум Блокчейн

Опубликовано: 8 Октября, 2022

Quorum — это блокчейн Ethereum, «ориентированный на предприятия», который пытается улучшить технологию блокчейна. Хотя блокчейн первого поколения обеспечивает масштабируемость, одноранговые сети, совместимость, прозрачность и другие функции, он все еще не идеален. Исследователи по всему миру усердно работают над улучшением состояния блокчейна. Quorum — это детище JP Morgan, которое разработало для продвижения технологии блокчейна в финансовой индустрии.

Потребность в кворуме

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

Особенности кворума

  • Производительность: Quorum быстрее, чем Биткойн и Эфириум. Он выполняет более 150 транзакций в секунду. Это происходит из-за простого механизма консенсуса, используемого кворумом. По умолчанию кворум использует консенсус RAFT для отказоустойчивости и консенсус IBFT для византийской отказоустойчивости, что намного быстрее, чем консенсус доказательства работы Ethereum.
  • Управление разрешениями: оно ограничивает участие известным набором узлов, которые должны быть предоставлены, чтобы стать частью сети блокчейна, поэтому оно не открыто для всех и реализуется только между участниками, предварительно одобренными назначенным органом.
  • Устранение транзакционного ценообразования: устранена концепция добавления стоимости к транзакции с использованием газа. Нет необходимости в каких-либо затратах на криптовалюту, связанных с выполнением транзакций в сети кворума. Код Quorum изначально был разветвлен из Ethereum, само использование газа существует, но установлено на ноль.
  • Лучшая конфиденциальность: Quorum обеспечивает публичные и частные транзакции в сети. Открытые транзакции аналогичны Ethereum, тогда как частные транзакции не доступны для общественности. Он использует технологию Constellation, которая шифрует определенные сообщения в месте, называемом анклавом, и хранит информацию о предыдущих транзакциях.
  • Управление активами: это позволяет организации создавать, управлять и распространять цифровые активы, не обращаясь к третьей стороне. Это дает владельцу автономию в отношении того, как управлять своими активами.
  • Открытый исходный код: это открытый исходный код, в котором более 300 участников активны и работают над развитием Quorum.

Преимущества Кворума

  • Алгоритм консенсуса: он использует алгоритм консенсуса «Quorum-Chain», который основан на голосовании большинства. Однако не все узлы могут голосовать. Лишь немногим избранным узлам предоставляется возможность голосовать в процессе голосования. Это помогает в проверке транзакции. Quorum использует модели на базе Istanbul BFT и Raft для повышения отказоустойчивости. В сети принимают участие только избранные участники.
  • Гибридные смарт-контракты: Смарт-контракты устанавливаются как частные, так и общедоступные, и для их программирования используется Solidity. Как только смарт-контракт становится частным, его нельзя преобразовать в общедоступный. Точно так же публичные смарт-контракты нельзя изменить на частные, что делает их более безопасными.
  • Производительность: Quorum обеспечивает более высокую скорость транзакций, поскольку обычно используются частные контракты, а частные контракты работают лучше, чем публичные. Было проверено, что Raft работает лучше, чем Istanbul BFT.

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

  • Масштабируемость. Подход Quorum к конфиденциальности, основанный на каналах, создает проблемы для конфиденциальности и масштабируемости по мере усложнения сценариев использования.
  • Отсутствие криптоэкономики : Quorum не требует встроенной криптовалюты, потому что консенсус не достигается посредством майнинга. С Quorum невозможно разработать нативную валюту или цифровой токен.
  • Отсутствие поддержки: в Quorum меньше разработчиков и участников, из-за чего помощь и поддержка меньше.

Чья Архитектура

Давайте обсудим архитектурные детали Quorum Blockchain.

  • Quorum Node: это инструмент командной строки, представляющий собой упрощенную версию Geth. Он настроен только на разрешение подключения с узлов разрешений, исключая подключение P2P.
  • Constellation: он сохранил менеджер транзакций и анклав. Это гарантирует, что информация, добавленная в блокчейн, останется в безопасности всеми возможными способами.
    • Менеджер транзакций: он заботится о конфиденциальности транзакций и обеспечивает шифрование данных транзакции во время процесса, сохраняя разрешенный доступ и другие важные данные для облегчения транзакций.
    • Enclave: он предоставляет различные криптографические методы, такие как аутентификация участников, история транзакций и другие ключевые функции, чтобы гарантировать оптимальное выполнение всех операций с упором на масштабируемость.

Проект на базе Quorum

  • Аластрия: многопрофильный испанский консорциум. Он способствует созданию полуобщественной инфраструктуры DLT. Он направлен на улучшение услуг в Испании и будет работать в соответствии с европейскими правилами.
  • VAKT: Он предоставляет цифровую экосистему, которая позволяет пользователям выполнять физическую пост-торговую обработку. Его можно назвать «Платформой постторгового управления». Таким образом, он действует как единый источник для жизненного цикла торговли, который можно проверить при необходимости. Он охватывает сквозной жизненный цикл торговли, в отличие от других решений, которые пытаются решить только определенную часть, а не всю проблему.
  • Кимлик: Это KYC на блокчейне. Это децентрализованная платформа для проверки личности. Это помогает стартапам мгновенно добавлять пользователей в свои Dapps и криптобиржи. Это означает, что пользователю нужно пройти KYC только один раз, после чего его можно будет использовать на разных платформах.
  • Blockoneiq-quorum: это поставщик данных для блокчейна Quorum, инфраструктуры Oracle, которая поможет DLT использовать подписанный контент, который генерируется и фиксируется с использованием смарт-контрактов от Thomson Reuters.
  • Komgo: Это интересный проект, который помогает интегрировать финансовую сеть с другими пользователями и сетями.

Приложения Quorum Blockchain

  • Отслеживание прививок. Одной из замечательных особенностей Quorum является хранение записей, доступных только для разных людей. Команда в Нигерии из Организации Объединенных Наций придумала способ использовать Quorum для создания защищенной базы данных для прививок с помощью blockTEST. Эта база данных содержит записи о детях, которым уже сделали или еще не сделали прививки.
  • Отслеживание цепочки поставок. Различные отрасли и предприятия используют Quorum для отслеживания поставок своей продукции. Например, Starbucks использует функцию Microsoft Azure для отслеживания производства кофе в различных частях.
  • Индивидуальные частные блокчейны: любое частное финансовое учреждение может в полной мере использовать блокчейны Quorum, такие как банки или страховые компании. Разрешенный характер помогает Quorum использоваться во всех типах настроек. Возможность настройки с самого начала делает его идеальным кандидатом.

Внедрение блокчейна Quorum с использованием Docker в Google Cloud Shell

Шаг 1. Откройте облачную оболочку Google в предоставленном режиме редактора из консоли разработчика Google.

Шаг 2: Установите Докер.

Шаг 3: Клонируйте репозиторий, выполнив эти команды, после чего перейдите в папку quorum-examples.

$ git clone https://github.com/jpmorganchase/quorum-examples
$ cd quorum-examples
$ PRIVATE_CONFIG=ignore QUORUM_CONSENSUS=raft docker-compose up -d  

Шаг 4: После выполнения вышеуказанной команды запущено 7 контейнеров с 7 узлами и 7 менеджерами транзакций. Требуется не менее 3 узлов. Итак, откройте 3 терминала и активируйте 3 узла, выполнив следующие команды:

For node1:
docker exec -it quorum-examples_node1_1 geth attach /qdata/dd/geth.ipc
eth.accounts
eth.getBalance("0xed9d02e382b34818e88b88a309c7fe71e65f419d")

For node 4:
docker exec -it quorum-examples_node7_1 geth attach /qdata/dd/geth.ipc
eth.accounts
eth.getBalance("0xcc71c7546429a13796cf1bf9228bff213e7ae9cc")

For node 7:
docker exec -it quorum-examples_node4_1 geth attach /qdata/dd/geth.ipc
eth.accounts
eth.getBalance("0x9186eb3d20cbd1f5f992a950d808c4495153abd5")

Шаг 5: Создайте смарт-контракт (пример кода), скопируйте код и вставьте его в любую консоль geth, чтобы сгенерировать адрес контракта:

a = eth.accounts[0]
web3.eth.defaultAccount = a;
// abi and bytecode generated from simplestorage.sol:
// > solcjs --bin --abi simplestorage.sol
var abi = [{"constant":true,"inputs":[],"name":"storedData","outputs":
          [{"name":"","type":"uint256"}],"payable":false,"type":"function"},
           {"constant":false,"inputs":[{"name":"x","type":"uint256"}],"name":"set",
            "outputs":[],"payable":false,"type":"function"},
           {"constant":true,"inputs":[],"name":"get","outputs":
          [{"name":"retVal","type":"uint256"}],"payable":false,"type":"function"},
           {"inputs":[{"name":"initVal","type":"uint256"}],"payable":false,"type":"constructor"}];
var bytecode = "0x6060604052341561000f57600080fd5b604051602080610149833981016040528080519060200190919050505b806000819055505b505b610104806100456000396000f30060606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632a1afcd914605157806360fe47b11460775780636d4ce63c146097575b600080fd5b3415605b57600080fd5b606160bd565b6040518082815260200191505060405180910390f35b3415608157600080fd5b6095600480803590602001909190505060c3565b005b341560a157600080fd5b60a760ce565b6040518082815260200191505060405180910390f35b60005481565b806000819055505b50565b6000805490505b905600a165627a7a72305820d5851baab720bba574474de3d09dbeaabc674a15f4dd93b974908476542c23f00029";
var simpleContract = web3.eth.contract(abi);
var simple = simpleContract.new(40002, {from:web3.eth.accounts[0], 
                                data: bytecode, gas: 0x47b760}, 
                                function(e, contract){
if (e) 
{
 console.log("err creating contract", e);
} else 
{
 if (!contract.address) 
 {
  console.log("Contract transaction send: TransactionHash: " + 
               contract.transactionHash + " waiting to be mined...");
 } else 
 {
  console.log("Contract mined! Address: " + contract.address);
  console.log(contract);
 }
}
});

Шаг 6: После того, как хэш транзакции сгенерирован, можно получить адрес контракта с помощью этой команды:

eth.getTransactionReceipt(mention the txHash here as shown in picture)

Шаг 7: Разверните адрес контракта.

var address = # mention your contract address here
var abi = [{"constant":true,"inputs":[],"name":"storedData","outputs":
          [{"name":"","type":"uint256"}],"payable":false,"type":"function"},
           {"constant":false,"inputs":[{"name":"x","type":"uint256"}],
            "name":"set","outputs":[],"payable":false,"type":"function"},
           {"constant":true,"inputs":[],"name":"get","outputs":
          [{"name":"retVal","type":"uint256"}],"payable":false,"type":"function"},
           {"inputs":[{"name":"initVal","type":"uint256"}],"type":"constructor"}];
var private = eth.contract(abi).at(address)

Вывод: Здесь узел 1 выполнил частную транзакцию для узла 7, а узел 4 полностью изолирован от этого состояния транзакции, поэтому только узел 1 и узел 7 могут видеть состояние транзакции.

РЕКОМЕНДУЕМЫЕ СТАТЬИ