Решение Teechan: масштабирование Биткойна на основе «доверенного» оборудования

Решение Teechan: масштабирование Биткойна на основе "доверенного" оборудования

Уже больше года главным вопросом сообщества Биткойна является возможность масштабирования этой цифровой валюты.

Во всем мире разрабатывается множество решений и идей, но наиболее перспективными инновациями являются двунаправленные платежные каналы. Они могут использовать Lightning Network, позволяя пользователям безопасно совершать транзакции, при этом, практически не оставляя следов на блокчейне. Внедрение такого рода решений можно было бы значительно улучшить с помощью Segregated Witness — обновления протокола, предложенного командой разработчиков Bitcoin Core. Однако, СегВит пока что не активирован.

Уже долгое время ключевым вопросом, стоящим перед сообществом Биткойна, является возможность масштабирования цифровой валюты.

Во всем мире разрабатывается множество решений и идей, но наиболее перспективными инновациями являются двунаправленные платежные каналы. Они могут быть использованы Lightning Network, позволяя пользователям безопасно совершать транзакции, практически не оставляя, при этом следов на блокчейне. Внедрение этих решений можно было бы значительно улучшить с помощью Segregated Witness, обновления протокола, предложенного командой разработчиков Bitcoin Core. Однако, СегВит пока что не активирован.

Четверо исследователей из Имперского колледжа Лондона и Университета Корнуелла — Джошуа Линд, Итей Эял, Питер Питцух и Эмин Гюн Сирер – предложили новое решение для реализации платежных каналов. Исследователи опубликовали документ с подробным описанием реализации, получившей название «Teechan», которая отдаленно напоминает концепцию OtherCoin и успешно протестировали первую версию программного обеспечения.

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

«Teechan более эффективен, чем прочие платежные каналы. Платёж с ним проходит быстрее, и, таким образом, он позволяет совершать больше платежей в секунду», — сказал исследователь из Корнельского университета. «Кроме того, он не требует внесения никаких изменений в текущий протокол Биткойна».

Старые добрые платежные каналы

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

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

Затем, и Алиса, и Боб отправляют на этот адрес какие-то средства – скажем, каждый по биткойну.Транзакция транслируется в сеть и записывается на блокчейне Биткойна, поэтому биткойны, так сказать, оказываются «заблокированы».

Таким образом, «состояние канала» — 1-1: у обоих на счету по одному биткойну.

Теперь, Алиса хочет купить у Боба пару туфель, стоимостью 0,1 BTC. Вместо того, чтобы отправлять Бобу этот 0,1 BTC на блокчейне, Алиса и Боб просто договариваются, что теперь Бобу принадлежит 1,1 BTC c их общего адреса, а Алисе остается 0,9 BTC.

То есть, состояние канала теперь 0,9-1,1. Алиса фактически выплатила Бобу 0,1 биткойна.

Если Алиса, или Боб, или они оба, вдруг захотят закрыть этот канал, они подписывают и проводят транзакцию с их адреса с мультиподписью, и каждый получает ту долю, которая предусмотрена последним «состоянием канала». В нашем случае, это будет 0,9-1,1 в пользу Боба.

«Вся прелесть платежных каналов заключается в том, что, наши Алиса и Боб могут совершать транзакции между собой хоть тысячу раз», — рассказывает Эял. «До тех пор, пока они не произведут окончательный расчёт в Биткойн-сети, они могут обновлять канал и платить друг другу «вне цепи» столько, сколько посчитают нужным».

Конечно, существуют некоторые проблемы, которые мешают проделать всё это безопасно. Одной из главных таких проблем, является поиск решения, чтобы контрагенты, когда закрывают канал, делали закрытие и выравнивание балансов по последнму состоянию канала. Платежным каналам требуюется подобное решение, чтобы гарантировать, что контрагенты закрывают канал именно с учетом последнего состояния балансов. (Например, если Алиса, сможет представить не последнее, а одно из предыдущих состояний их с Бобом платежного канала, это позволит ей претендовать на целый 1 биткойн, даже после того, как она купила туфли).

Типовые двунаправленные платежные каналы решают эту проблему новыми способами, которые требуют временных замков и других ухищрений. Это работает, но в некоторых случаях требует исправления проблемы пластичности транзакций (в составе Segregated Witness), который по-прежнему ожидает активации.

Но Линд, Эял, Питцух и Сирер предложили другое решение.

Что в чёрном ящике?

Teechan, что означает «Канал с доверенной средой выполнения» (Trusted Execution Environment Channel) — это новый протокол платежных каналов. Как и сам Биткойн, это решение является программным обеспечением с открытым исходным кодом. Благодаря этому, Teechan прозрачен и поддается проверке для всех, кто пожелает.

А для того, чтобы Алиса и Боб могли на момент закрытия канала представить последнее (и только последнее!) состояние балансов канала, Teechan использует «доверенную среду выполнения» (Trusted Execution Environments, TEE). TEE – это компоненты аппаратных средств защиты, включенные в состав центрального процессора Intel с программным обеспечением Software Guard Extensions (SGX); оно поставляется в соатаве многих новых компьютеров. (Полный список можно посмотреть здесь).

«С TEE SGX, никто не сможет «заглянуть внутрь» и увидеть, что происходит. Незашифрованные данные никогда не покидают чип, и поэтому даже владелец компьютера с SGX не сможет пронаблюдать, что делают эти чипы; пользователи видят только конечный результат», — объяснил Эял.

Чтобы использовать Teechan, и Алиса, и Боб, должны каждый создать по паре открытый и закрытый ключ на своём TEE. Поскольку эти ключи создаются внутри самого TEE, то ни Алиса, ни Боб не будут знать свои закрытые ключи.

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

Кроме того, Алиса и Боб оба создают закрытые Биткоин-ключи для своих TEE. Здесь опять же, ни Алиса, ни Боб не знают, какой именно секретный ключ является «их» ключом; эта информация скрыта внутри TEE.

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

Затем, с использованием секретных ключей, их TEE устанавливает вполне обыкновенный платежный канал. Они создают адрес с мультиподписью, на который Алиса и Боб отправляют, скажем, по одному биткойну. Эта сделка финансирования канала транслируется и записывается на блокчейне Биткойна, и средства «блокируются».

Всякий раз, когда Алиса и Боб платят друг другу, они уточняют состояние своего платежного канала, и все это с помощью TEE. На практике это означает, что их TEE просто отслеживает состояние канала. Оба TEE обновлят состояние канала, только в случае, если и Алиса и Боб дадут на это своё согласие.

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

TEE решает обе основных проблемы платежных каналов. Так как TEE Боба и Алисы контролируют закрытые Биткойн-ключи, то Боб и Алиса всегда могут быть уверены, что получат свои биткойны обратно. А предоставить усчтаревшее состояние канала не сможет ни один из них по одной простой причине: софт Teechan этого не позволит.

Чтобы все заработало нужно совсем чуть-чуть доверия …

Остается всего одна реальная проблема: наша Алиса может солгать Бобу об использовании TEE в самом начале их взаимодействия – или же Боб может солгать Алисе.

Даже если они утверждают, что они создали свои закрытые биткойн-ключи внутри TEE, и даже если они обмениваются зашифрованными сообщениями, они могли бы делать всё это с использованием обычного процессора. Алиса смогла бы придержать собственные ключи, но расшифровать закрытый Биткойн-ключ Боба. А получив его, она смогла бы забрать все средства из открытого канала.

Здесь требуется немного больше доверия.

С помощью процесса под названием «удаленная аттестация» Intel — создателя процессора SGX, которым и пользуются наши Алиса и Боб — существует способ проверить, правду ли говорят ребята. Используя специальный секретный ключ, который должен быть исключительно у компания Intel, эта технологическая компания может использовать первую транзакцию, которую отправляют Алиса и Боб (зашифрованную транзакцию внесения денег в канал) чтобы удостоверить, что эта операция была произведена с использованием программы Teechan, и посредством TEE обоих участников. Тем не менее, у Intel не будет возможности изучить содержимое транзакции, так как она остается зашифрованной.

Если Алиса и Боб доверятся Intel в том, что компания их не обманет, то каждый из них может быть уверен, что контрагент действительно создал транзакцию финансирования канала с использованием TEE. Также, Алиса и Боб смогут быть уверены, что ни один из них не знает закрых Биткойн-ключей для их общего адреса с мультиподписью.

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

Несмотря на это, Эял считает, что все эти опасения чрезмерно преувеличены.

«Любой, кто работает с программным обеспечением Биткойна, на технике Intel, уже в какой-то степени выражает свое доверие к этой компании, поэтому доверие к механизму SGX кажется вполне естественным», — говорит он. «Если же вы не доверяете конкретно этой компании, то существуют альтернативные TEE, на случай, если вы предпочитаете какого-то другого поставщика оборудования, из-за вопросов безопасности, доступности или в силу любых других причин. Кроме того, необходимость в доверии сведена к участвующим сторонам: оно нужно со стороны участников платежного канала к поставщиками их TEE. Любой человек вне канала, то есть все остальные пользователи Биткойна, не имеют никакого отношения к созданию этього конкретного канала и никак не вовлечены в доверительные отношениям».

 

Источник



Categories: Криптография, Разработчикам, Технологии

Tags: , , , , , ,

Leave a Reply

10 Комментарий на "Решение Teechan: масштабирование Биткойна на основе «доверенного» оборудования"

Notify of
avatar
Анонимно
Гость

Бэкапы приватных ключей делать нельзя. Сгорел процессор — пропали деньги.

trackback
Метод Била Вильямса: Руководство по торговле криптовалютой (Часть 1) | Заработок онлайн доступный каждому

[…] […]

Anonymous
Гость

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

Анонимно
Гость

Если доверие к Intel есть, то эта схема работает практически идеально.

Доверие к тем, кто внедрил в процессор и чипсет бэкдор IntelME и не потрудился защитить вход от злоумышленников?
https://arstechnica.com/security/2017/05/intel-patches-remote-code-execution-bug-that-lurked-in-cpus-for-10-years/

пирамидчик
Гость

цитата:
«Уже больше года главным вопросом сообщества Биткойна является возможность масштабирования этой цифровой валюты.»
Разве традиционные валюты аналоговые?

Анонимно
Гость

А какая страна на уровне законодательства утвердила отказ от бумажных денег?

Анонимно
Гость

Конечно, официально фиат бумажный.

trackback
Решение Teechan: масштабирование Биткойна на основе “доверенного” оборудования

[…] Источник […]

Asd_skala
Гость

Чтобы узнать все подписи достаточно эмулировать модуль SGX программно, с открытым кодом Teechan это не проблема. Как будто этим проектом занимались чиновники.

bitcoindaytoday
Гость

Помогите профить 580 сапфир на 8гб плз!

wpDiscuz