Re: [PATCH 0/6] block: add support for REQ_OP_VERIFY

Matthew Wilcox
2022-12-08T20:02:33Z

On Sat, Dec 03, 2022 at 07:19:17AM +0300, Javier González wrote:
> > On 2 Dec 2022, at 17.58, Keith Busch <kbusch@kernel.org> wrote:
> > As long as the protocols don't provide proof-of-work, trying this
> > doesn't really prove anything with respect to this concern.
>
> Is this something we should bring to NVMe? Seems like the main disagreement can be addressed there.
>
> I will check internally if there is any existing proof-of-work that we are missing.

I think the right thing for NVMe to standardise is a new command, HASH.

It should be quite similar to the READ command, at least for command
Dwords 10-15. Need to specify the hash algorithm to use somewhere
(maybe it's a per-namespace setting, maybe a per-command setting).
The ctte will have to decide which hash algos are permitted / required
(it probably makes sense to permit even some quite weak hashes as we're
not necessarily looking to have cryptographic security).

While there may be ways to make use of this command for its obvious usage
(ie actually producing a hash and communicating that to somebody else),
its real purpose is for the drive to read the data from storage and prove
it's still there without transferring it to the host, as discussed in
this thread.