Какие данные отправляются в Corda в непроверяющую нотариальную службу?

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


person Antony    schedule 20.11.2017    source источник


Ответы (1)


Перед отправкой транзакции нотариусу, не прошедшему валидацию, она фильтруется следующим образом:

stx.buildFilteredTransaction(Predicate { 
    it is StateRef || it is TimeWindow || it == notaryParty 
})

(см. NotaryFlow.kt в основном репо Corda). Это означает, что нотариус, не прошедший валидацию, увидит только:

  • Любые входные данные в виде StateRefs
  • Временное окно, если оно существует (поскольку нотариус также является органом, устанавливающим временные метки)
  • Личность нотариуса сделки

Поскольку транзакция представляет собой дерево Меркла (см. https://docs.corda.net/_images/merkleTree.png), хотя остальные компоненты были удалены и не могут быть просмотрены нотариусом, содержимое транзакции не может быть изменено позже после того, как нотариальная подпись будет применена.

person Joel    schedule 20.11.2017
comment
Привет @joel! Цените идеи :) Знаете ли вы, какую информацию можно изменить на основе StateRef и какая дополнительная информация потребуется злоумышленнику, чтобы успешно это сделать? Спасибо! - person Richard Logwood; 30.03.2018
comment
@RichardLogwood Это интересный вопрос. Вы можете поднять это как отдельный вопрос, и я дам ответ? - person Joel; 03.04.2018