Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
cyberevents
6 лет назад

Script-SegWit-Grin. Спикер: Андрей Соболь

Первый митап в Киеве открыл сооснователь Pandora Boxchain Андрей Соболь с темой, в которой обозначил основные векторы развития и усовершенствования экосистемы Биткоин.

В данной лекции спикер осветит следующие пункты

Снимок экрана 2018-06-04 в 10.06.51.png

Script

Script - язык программирования встроенный в Биткоин с момента создания экосистемы.

Отметим, что Script является прототипом более раннего языка Forth, который работает со стеком. 

Стек - это структура данных, организованная списком по принципу «последним пришёл — первым вышел».

Пример программы на языке Script:

Снимок экрана 2018-06-04 в 10.22.03.png

Это стандартный набор действий для выплаты определенному адресу.

В сети Биткоин существует система входов и выходов. Каждый биткоин создается путем coinbase транзакцией в каждом блоке. Полученные биткоины являются не потраченным выходами и входами для следующей транзакции.

Команда OP_DUP дублирует информацию, находящуюся в стеке
PO_HASH160 - считает хеш верхнего элемента стека и возвращает в стек хеш
OP_EQUALVERIFY - сравнивает два последних элемента в стеке - хеш и publicKeyHash
OP_CHECKSIG - подпись из стека
если выполняются условия OP_EQUALVERIFY и OP_CHECKSIG - пользователь может потратить денежные средства.

Atomic Swap

Язык программирования Script не является Тьюринг полным и может выполнять определенный набор команд и опкодов. Но, есть возможность использования Atomic Swap.

Принцип работы Atomic Swap

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

Снимок экрана 2018-06-04 в 13.52.41.png

Существует два варианта получения денежных средств со смарт-контракта: OP_IF и OP_ELSE.

Первый вариант:

Пользователь может забрать денежные средства, если предоставит хеш секретной фразы

Второй вариант:

locktime и CHECKLOCKTIMEVERIFY означает, что через некоторое время тот, кто предоставит хеш и подпись сможет забрать денежные средства

Создавая два смарт-контракта, пользователи обмениваются криптографическими примитивами таким образом, что транзакция, которая разблокирует деньги на Эфириуме, является секретной фразой, которая разблокирует деньги в цепочке Биткоин.

SegWit

SegWit - это обновление протокола Биткоин по структуре транзакций со следующими свойствами:

  • Transaction Malleability

Дает возможность изменить транзакцию, поменяв ее ID

  • The Segregated Witness Merkle Root

Merkle Root структура данных, которая позволяет оставить блок биткоина неизменным. SegWit выступает второй частью блока

  • Softfork

SegWit реализован с помощью Softfork

  • Transaction-weight

Вводится новое понятие размера транзакции transaction-weight = 4*old + 1 witness - старый размер умножается на 4 и новая часть транзакции умножается на 1, таким образом получаются абстрактные баллы, с помощью которых можно оценить вероятность вхождения новой транзакции в блок биткоина.

Lightning Network

Lightning Network позволяет создавать каналы между пользователями, таким образом получается сеть из каналов, которая не имеет центр и единую точку отказа. По закрытию канала данные записываются в блокчейн Биткоин.

Но, пользователи могут действовать только в рамках сумм, которые заблокированы у них в сети Lightning Network.

Lightning Network - один из первых протоколов, который позволяет совершать транзакции вне блокчейна и платить небольшую комиссию.

Принцип работы Lightning Network

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

Снимок экрана 2018-06-04 в 21.11.33.png

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

Более сложный код, который функционирует когда пользователь хочет отправить транзакцию через другого пользователя:

Снимок экрана 2018-06-04 в 21.41.34.png

Более подробную информацию можно узнать из документации Lightning Network.

Merkelized Abstract Syntax Tree

Merkelized Abstract Syntax Tree позволяет кодировать части IF и ELSE в отдельные скрипты, тем самым скрывая часть скриптов

Снимок экрана 2018-06-04 в 21.46.11.png

Schnorr signatures

Schnorr signatures (Подписи Шнорра) реализуются с помощью Софтфорка. Множество мелких выходов объединяются в одну транзакцию и подписываются одной подписью, что экономит место в блоке и стимулирует использование CoinJoin.

Confidential transactions

Конфиденциальные транзакции скрывает не отправителя и получателя, а сумму транзакции.

В классических конфиденциальные транзакциях существуют лимиты:

Снимок экрана 2018-06-04 в 22.11.11.png

2^32 - возможные вариации сумм денежных средств

Между минимальным и максимальным значениями, включая данные значения, суммы хорошо шифруются.

Для достижения результата используется гомоморфное шифрование (Homomorphic Encryption) в частности Доказательство с нулевым разглашением (Zero-knowledge proof), что позволяет совершать действия над математическими цифрами, не разглашая данные цифры, с возможностью доказать, что совершенные действия были произведены.

Конфиденциальные транзакции еще не реализованы в Биткоин, но уже используются в проекте Elements.

Bulletproofs

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

Mimblewimble

Mimblewimble технология со следующими отличительными чертами:

  • Нет языка Script
  • Нет подписей
  • Нет транзакций

Mimblewimble - это микс Bulletproofs, Confidential transaction и Schnorr signatures.

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

Mimblewimble реализуется как проект Grin.

Drivechain

Снимок экрана 2018-06-04 в 23.00.12.png

Drivechain модифицирует подход к сайдчейнам. В сайдченах используется SPV (Simple Payment Verification), что крайне ненадежно.

Концепция Drivechain состоит в том, что майнер с помощью hash power может перемещать средства с одного блокчейна в другой.

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

экрана 2018-06-04 в 22.11.11.png]()
0
0.037 GOLOS
На Golos с August 2017
Комментарии (1)
Сортировать по:
Сначала старые