imageВ конце февраля на сайте вакансий компании VISA появилось объявление о поиске ведущего программиста в новое подразделение компании Visa Research. Одним из направлений его деятельности, судя по тексту вакансии, является разработка новых методов платежей – в частности, платежей на основе цепочки блоков.

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

Также в вакансии упомянуты возможность работы с виртуальными валютами. Кроме систем платежей будущего, задачами Visa Research названы аналитика данных и безопасность.

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

Среди требований – высшее образование в этой сфере, опыт работы более 5 лет с Java, Scala, JavaScript, опыт работы с криптографией, системами контроля версий, и прочие навыки. Предполагаемый уровень заработной платы не указан.

Прошлой осенью компания VISA вложилась в стартап Chain, собравший инвестиций на $30 миллионов на развитие технологии цепочки блоков.

Технологией давно интересуются и крупнейшие банки – в январе консорциум R3CEV, состоящий из 42 банков, провёл первые успешные испытания технологии в применении к традиционным финансовым операциям. В тесте участвовало одиннадцать членов консорциума. Консорциум R3CEV был основан в 2014 году, и с тех пор к нему присоединилось уже более 40 банков, в частности Barclays, Credit Suisse, Goldman Sachs, J.P. Morgan, Royal Bank of Scotland, Bank of America, Commerzbank, Deutsche Bank, Morgan Stanley, National Australia Bank, Royal Bank of Canada, UniCredit, Wells Fargo и другие.

Комментарии (25)


  1. Artoo-Detoo
    03.03.2016 16:26

    Ну хоть кто то движется вперед.


  1. QWhisper
    04.03.2016 08:40

    А может кто то внятно объяснить, чего именно хотят от blockchain`а, банки? Ведь они не будут это все децентрализовывать, ибо утечек боятся. А без этого, какая разница между тем, что сейчас и blockchain`ом?


    1. wiltko
      04.03.2016 16:32

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


      1. QWhisper
        04.03.2016 19:45

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


        1. wiltko
          04.03.2016 20:10
          +1

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

          А что именно хранить там — данные о переводах, зашифрованную персональную информацию или какие документы с ЭЦП — будет решать уже сам консорциум именно в организационном порядке.


          1. QWhisper
            04.03.2016 21:06

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


            1. wiltko
              04.03.2016 23:28

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


            1. vanxant
              05.03.2016 06:25
              +1

              1. Формально все-таки не "все данные в одном месте", а "у каждого банка своя копия всех данных, но гарантированно признаваемая большинством участников сети".
              2. В записи может быть только "банк А перевел банку Б $99.99 по транзакции №12456483483848348384". При этом детали транзакции знают только эти два банка, но зато этой информации достаточно, чтобы все остальные банки смогли посчитать баланс друг друга и выяснить, кто кому сколько по факту должен по окончании банковского дня.
              3. Сейчас вот эта расшивка — "кто из банков кому сколько должен" — идет через центробанки, которые могут отбирать лицензии, выкатывать штрафы, выставлять неудобные требования, ругаться друг с другом и вот это все. Децентрализованная система позволит выключить центробанки из схемы взаиморасчетов, если перейти на универсальные ценности типа золота.


          1. Valle
            04.03.2016 23:52

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


            1. wiltko
              05.03.2016 00:24

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


              1. Valle
                05.03.2016 00:28

                Биткоин не гарантирует что все транзакции видны всем и может работать в таких условиях.


                1. wiltko
                  05.03.2016 00:33

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


                1. Mad__Max
                  05.03.2016 01:14

                  Гарантирует — транзакция включенная в блок видна всем полноценным участникам сети. А еще не включенная — так ее де-факто еще и не существует даже: до включения в один из блоков это лишь предварительное "заявление о намерениях".


            1. Mad__Max
              05.03.2016 01:11

              Так 1я половинка (кому послали) тут же пошлет эту транзакцию 2й половине банков не спрашивая об этом мнения исходного отправителя. И когда будет попытка отправить 2й раз — любой контрагент ответит: иди нафиг, это уже потрачено.
              Это базовый принцип блокчейна.


              1. Valle
                05.03.2016 01:42

                Как просто :-) А откуда он знает что уже потрачено если ни первая ни вторая транзакция не включена в блок или обе транзакции включены в два разных блока (это возможно)? И что если несколько банков договорятся что можно немножко подшаманить в угоду тому банку и разрешить тратить ему его деньги более чем несколько раз? Я, собственно, к чему это все — транзакции в битке подтверждаются не нодами сети, а большинством майнеров. И если нет майнеров, то и блокчеин построить сложновато. А если есть майнеры для обеспечения безопасности, то внезапно получается что быть майнером дорого, и вся эта затея тоже становится существенно дороже чем все предполагают.


                1. tmaxx
                  05.03.2016 02:32

                  А если все ноды являются майнерами? В межбанковском блокчейене вероятно так и будет. Майнером в таком блокчейне быть относительно дешево, так как количество участников ограничено. Хотя все равно придётся следить, чтобы мощность участников была приблизительно равномерно распределена...

                  По-моему вы исходите из того, что банки будут пытаться систематически сломать систему. Я думаю что блокчейн будет в целом выгоден для участников и целенаправлено ломать его никто не будет. Все что нужно — защититься от случайных сбоев и экстремальных ситуаций типа "я же все равно банкрот, помирать так с музыкой!". От таких вещей блокчейн вполне способен защитить.


                  1. Valle
                    05.03.2016 03:17

                    Если ломать не будут, то гораздо проще сделать обычную БД с репликацией, зачем блокчейн?


                    1. tmaxx
                      05.03.2016 04:10

                      Сделать где? Кто из 30 банков будет разрабатывать эту БД и где она будет физически хоститься? Если требуется некая 31-я организация, то чем она принципиально отчитается от предыдущих 30?

                      Я может быть отстал от жизни в сфере распределённых БД, но, имхо все что было до блокчейна требовало "golden source", то есть некой штуки/БД/сервера, которая разрешает конфликты и говорит всем остальным "как правильно". Штука может кочевать с сервера на сервер, но в каждый момент времени все знают "кто главный". Если штука всегда находится в одном из банков, то открываются возможности для манипуляции (причём пока "штука" у тебя не надо ни с кем вступать в сговор!).

                      Прелесть блокчейна именно в том что "штуки" не требуется! Транзакции любой сложности валидируются простым большинством голосов (особенно если это какой-нибудь Etherium с его Тюринг-полным языком для операций). Никто из участников не может проснуться с бодуна и сломать систему (случайно или намерено). Даже если подделать 1-2-5 транзакций, подделка все равно быстро обнаружится. Сговор все ещё возможен, но он должен включать большинство участников и риск для заговорщиков слишком велик (ну кроме проснувшегося с бодуна инициатора, ему пофиг).


                      1. Valle
                        05.03.2016 10:54

                        Ну я думаю какой-нибудь byzantine paxos с аутентификацией запросов прекрасно справится с задачей репликации транзакций на N баз данных. Гораздо лучше и дешевле чем блокчейн, который и есть та самая «штука». Впрочем, если ту БД назвать «блокчейном» то наверное можно бабло освоить выделенные на новые технологии.


                1. Mad__Max
                  05.03.2016 17:43

                  Он знает об этом получив 1ю транзакцию и проверив ее (что она действительно подписана закрытом ключом банка владевшим этими деньгами и эти деньги раньше еще не были потрачены). После чего он рассылает ее всем другим активным нодам в сети с которыми у него на данный момент есть связь — по p2p схеме (на случай если они еще не получили ее от кого-то другого).

                  После этого повторную подобную транзакцию(например те же деньги но отправленные другому получателю) ни этот банк ни любой другой получивший ее уже не будет принимать и ретранслировать — бракуя ее еще в момент приема. Для этого не важна включена она уже в блок или еще нет — свое подвтерждение и согласие перевести деньги отправитель дал уже в момент отправки кода подписывал ее своим закрытым криптографическим ключом. Теоретически возможна ситуация если пытающийся "жульничать" модифицирует свое ПО так оно может разослать 2 разные транзакции тратящие одни деньги ОДНОВРЕМЕННО(мгновенно — без задержек), причем 1ю послать только одной группе контрагентов, а 2ю только другой группе (не пересекающейся с 1й). Тогда существует вероятность что какая-то часть участников сети получит 2ю еще до момента когда получившие 1ю с ними обменяются — тут счет идет на десятки-сотни миллисекунд (задержка передачи пакета данных порядка 1 кб по сети), но в общем такая ситуация возможна.

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

                  Майниг в каком-то виде естественно должен быть, без этого блокчейн не может полноценно работать. Но почти точно это будет не классический майнинг с перебором триллионов криптографических хэшей и сжиганием мегаватт энергии на специализированном железе, а одна из разновидностей PoS майнинга не требующего существенных материальных затрат. Скорее всего DPoS или один из аналогичных методов. Ну а майнерами будут все полноценные участники допущенные в сеть — т.е. все (каждый) банк согласившийся участвовать и признавать такие расчеты.


    1. tmaxx
      04.03.2016 16:35

      Я думаю что они хотят от него децентрализованную систему межбанковских расчетов без корр. счетов и кредитных лимитов по принципу «каждый с каждым». Может сильно упростить бухгалтерию и перевод денег/ценных бумаг между крупными банками и, потенциально, откроет прямой доступ к транзакциям для более мелких финансовых организаций. Конечным клиентам доступ к блокчейну вряд ли дадут.


    1. Umrug
      04.03.2016 16:36

      Возьмём самый, самый простой вариант: предположим у нас есть консорциум из 30 банков, которые хотят обмениваться неким жетоном (token). Изначально, скажем, доступно 30 миллионов этих жетонов, и каждый банк, допустим, получает по одному миллиону. Возьмём, опять же ради радикальной простоты, метод использования жетона не связанный с другими блокчейнами: например жетонами предполагается расплачиваться за информацию о клиентах (кредитоспособность, история и т.п.).

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

      В варианте блокчейн, каждый банк будеть гонять одну ноду — что есть очень дешево — и все будут контролировать все транзакции. Это не будет революцией с точки зрения пользы, но сокращение стоимости будет существенное. А если мы учтём что современный блокчейн поддерживает Smart Contracts, то можно смело ожидатьс еще и значительное сокращение расходов на legal department — программисты несравненно дешевле адвокатов и судебных тяжб.

      Напоминаю, это простейший из возможных примеров.

      Если есть вопросы или уточнения — пожалуйста спрашивайте, буду рад ответить.


      1. QWhisper
        04.03.2016 19:21

        Ну то есть вопрос не в блокчейне, вопрос в том, что бы консорциум банков договорился работать под одной системой и по одним правилам и чтоб эта система и эти правила были чуть лучше и проще текущих. Тогда мне не понятно, почему блокчейн?
        А сервера и пр, у этих 30 банков куда денутся? так же нужны будут и вероятно так же на аутсорсе.
        Далее вопрос именно по поводу блокчейна, про 51% и все такое, что они будут делать в спорной ситуации в духе 17 банков подтверждают транзакцию и внесли в свою цепь, а 13 банков не подтверждают и не внесли? Да и вообще, будет ли у них одна на всех цепь или каждый банк будет, крутить что то свое?
        Просто криптовалюты мне понятны, тут огромное число узлов, которые могут контролировать корректность и верность исполнения транзакций + хранят транзакции за всю историю валюты своей. А вот когда узлов всего 30…

        Простите если глупые вопросы. Просто понять интересно. Может есть какая нибудь более развернутая статья для чайников на тему банков и блокчейна?


        1. Valle
          04.03.2016 23:57

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


        1. Umrug
          05.03.2016 06:01
          +1

          Что вы, что вы, вопросы совсем не глупые. По порядку:

          что бы консорциум банков договорился работать под одной системой и по одним правилам и чтоб эта система и эти правила были чуть лучше и проще текущих. Тогда мне не понятно, почему блокчейн? А сервера и пр, у этих 30 банков куда денутся?

          Если эта система — всемирный стандарт разработанный на деньги краудсорса (Ethereum), и тестируемый сотнями тысяч пользователей каждую минуту, если есть программисты уже знакомые с технологией, банкам очень и очень просто договориться ей пользоваться. Настолько просто что и сомнений-то особо не останется (консорциум R3, хотя они использовали фирму Eris написавшую абстрактный слой поверх, видимо деньги есть лишние, флаг им в руки).

          По сложности развёртки и поддержки нода Ethereum похожа на, скажем, ftp сервер. Буквально один компьютер с единственным скриптом на нём. Так как речь о банках с высокими требованиями к производительности, ок, это будет супер-пупер сервер с восьмю топовыми графическими картами и сорока SSD дисками в RAID (логично предположить что консорциум будет требовать какую-то минимальную производительность от каждой ноды, скажем 100 MH/s). Всё равно, это буквально самое простое оборудование, и поддержка простая до смешного. Плюс вся система в принципе безотказна — если нода целиком сгорела — нет проблем, запустили новую, скачали блокчейн у пиров и понеслись, а пока что переключились на лёгкий клиент висящий где-нибудь на EC2.

          Сравните это с типичной инфраструктурой банков. Не знаю знакомы ли вы… я знаком :) Очень дорого и очень сложно.

          про 51% и все такое, что они будут делать в спорной ситуации в духе 17 банков подтверждают транзакцию и внесли в свою цепь, а 13 банков не подтверждают и не внесли?

          А вот как раз в случае консорциума это вообще не вопрос, такая атака в принципе не релевантна. Каждый из участников мгновенно заметит ЛЮБУЮ попытку нарушить протокол (например пресловутый double-spending), и будет по именам знать всех участников, чьи ноды это допустили (или как минимум инициатора и пира который это передал, следовательно допустил), то есть это как воровство под видеокамерой. Скорее всего такая попытка просто не будет совершена, а если и произойдёт то будет решаться в судебном порядке (или проще говоря все сети).

          Да и вообще, будет ли у них одна на всех цепь или каждый банк будет, крутить что то свое?

          Люди которые изобретали TCP/IP не могли себе представить чем всё закончится. Поживём — увидим.

          Может есть какая нибудь более развернутая статья для чайников на тему банков и блокчейна?

          Гугл в помощь — Vitalik Buterin (основатель Ethereum) как раз на неделе написал развёрнутую статью на английском.