means that, in a multiparty workflow,
you don’t want system downtime for a
single party to hold up the overall process. For example, once an exchange
matches a buyer and a seller—known
as an execution—that’s legally binding. If we were trying to employ the
model here that most blockchains
use, the exchange would report the
trade by coordinating a transaction
with a multiparty signature workflow.
A minimum of three different parties
would have to sign to acknowledge
the trade: the exchange, the buyer,
and the seller. And, in practice, there
are always more than three parties. In
fact, you have at least seven different
parties that need to sign each trade
execution transaction among all the
different clearing participants, custodians, and so on.
Still, from a legal standpoint, if one
of these parties’ systems happens to be
down or unresponsive, you don’t want
to hold back the whole workflow, since
the trade is legally binding and must
be entered into the ledger. Maintaining liveness—while also making sure
that, if something needs to go through,
it goes through—is a different problem
to solve. To deal with that, we essentially had to build a very fine-grained
delegation model similar to the OCAP
[object capability] model.
Among the more significant lessons
Kfir and his team at Digital Asset
learned as they were striving to build a
new system for transaction reconciliation was that they actually were dealing
with more than just a distributed system problem. Much more, it turns out.
To their surprise, they found that
each of the financial institutions they
encountered had gone about implementing the industry’s specifications
for transaction reconciliation in a
somewhat different fashion. This resulted in values in end-of-the-day reconciliations that didn’t necessarily
match from one institution to the next.
That’s how they learned they also
had a major data-modeling problem
on their hands.
FOURNIER: Tell me more about the role
blockchain plays in your distributed
KFIR: We don’t use a blockchain data
structure per se. Blockchains at this
point work mostly with tokens. Whether it’s Bitcoin or Ethereum or whatever, they employ tokens that are inherent first-class citizens. But that model
quickly starts to break down as you add
even a small amount of complexity.
The problem is that tokens are the
digital equivalent of a bearer instrument in the financial world. They are
simply unable to capture granular
rights. For example, with a stock, the
owner has the right to transfer, while
the share registry has the right to
split or merge. Cryptocurrencies and
similar tokens don’t capture these
sorts of rights.
And then things become even more
complex with corporate actions like
voting rights. This is how we learned
we would need to come up with an abstraction layer that isn’t token-based.
Which proved to be quite challenging. With that said, one of the Bitcoin
elements we did end up keeping is its
state-management model where each
transaction consumes contracts and
then creates new ones.
People often ask me, “Why did you
feel the need to build a new contract
language or a new abstraction layer?”
I tell them we basically were forced to
look for a new paradigm.
Just as the REST [representational
state transfer] API didn’t exist prior
to 2000 for the simple reason that
nobody really needed a RESTful architecture until the web came along,
we found ourselves in a similar situation. We were tackling a new sort of
problem—a workflow problem—and
found we needed to come up with a
new language and new abstraction
layer. And we learned not to be afraid
of doing that.
Interestingly, driven by customer
demand, we’ve ported our language
over to traditional SQL databases,
because people believe that offers a
powerful abstraction for modeling assets and workflows even in situations
that don’t really require the distributed aspect.
FOURNIER: OK, but I’m still wondering what initially made you think
about blockchain as a potential solution to your reconciliation problem.
What suggested blockchain would be
an obvious fit?
brings to the
that is, how does
each entity know
that its view of the
the truth, the whole
truth, and nothing
but the truth?