►
Description
The Baseline Protocol team takes you through the code of the v0.1 update.
Previous video: https://youtu.be/2WXvTHR4_7Q
Go to https://baseline-protocol.org for more information.
A
So
what
I've
done?
I
ran
this
mdm
test
command
and
we
see
the
the
stack
come
alive,
so
we've
got
it.
Ident
alice,
ident,
not
streaming
the
service
called
in
chain
a
couple
of
consumers
which
are
mapped
streaming:
consumers,
the
nethermine
client
for
alice
postgres
provide
nats,
which
is
a
fork
of
the
nat
server
that
provides
decentralized,
bearer
token
authorization.
A
This
is
an
enterprise
grade
authentication
service
that
then
these
tokens,
rather
a
an
enterprise
grade
authentication
or
an
authorization
service,
called
ident
bins.
These
tokens,
which
then
provide
explicit
access
to
specific
subjects,
for
example,
bob
authorizes
a
specific
set
of
subjects
from
alice
and
signs
the
token
and
then
delivers
it
to
alice
when
he
invites
her
to
this
baseline
worker
alice
gets
a
stats
demon,
which
is
basically
a
a
a
service
event
chain
that
does
analog.
It
basically
subscribes
to
various
various
blockchains.
A
The
various
networks
that
that
that
that
alice
in
this
case
is
interested
in
the
stack
requires
provides
back
requires
redis
for
caching
key
value
pairs
that
are
accessed
frequently
the
vault
instance,
and
then
you
see
bob's
stack
start
to
spin
up
as
well,
and
then
we
see
like
a
bunch
of
logging
happening
and
then
we're
starting
over
here
is
the
creation
of
bob's
creation
of
the
work
group,
essentially
in
his
local
ident
service.
A
Ident
is
the
the
local
service
that
that
implements
the
I
registry
interface,
the
baseline
api,
the
baseline
spec.
You
see
some
assertions
about
how
bob
has
you
know
the
work
group
bob's
work
group
that
he
just
created
has
a
bearer
took
and
it's
authorized
for
it.
That's
a
similar.
A
Similarly
to
what
I
was
mentioning
regarding
that
and
how
that
works,
and
then
a
few
assertions
about
how
the
erc
1820
registry
contract
in
erc
or
registry
contract
I've
been
deployed
for
the
work
group,
and
you
see
like
the
initiator,
which
is
bob
in
this
case.
You
see
the
the
you
know.
His
configuration
is
saying
so
that,
for
you
know
the
instance
of
his
initial,
you
know
for
his
participants
back.
A
It
basically
asserts
that
he
is
the
initiator,
which
means
that
he
is
when
that's
true
or
just
like
his
instance,
will
be
responsible
for
deploying
automatically
deploying
the
work
group
contracts,
for
example.
The
reason
this
happened
is
because
bob
was
the
initiator
bob
is
also
as
the
or
the
initiator
is
also
it's
not
required,
but
likely
responsible
for
setting
up
the
first
workflow,
meaning
the
first
zero
knowledge
circuits
that
are
required
for
the
work
group
to
be
productive
in
the
baseline
context.
A
So
we
do
make
some
assertions
around
housing.
There's
some
output
from
socrates,
there
we're
using
a
very
basic,
no
op
circuit.
Basically,
some
assertions
are
made
about
the
how
a
unique
identifier
it
was
generated
by
our
privacy
cert,
but
by
the
baseline
privacy
package,
every
every
new
setup.
That's
it's!
Every
trusted
setup
that's
run
in
its
service.
It
gets
a
unique
duid
assigned
to
it.
A
The
printing
and
verification
keys
for
the
zero
knowledge
for
the
zk
smart
circuit.
Basically,
the
doctor
t
rocker
2's
is
outputting
these
keys,
and
you
know
in
memory
nothing's
being
written
to
disk.
In
this
case
it
starts
with
the
verify
the
raw
verifier
contract
solidity
source
code
was
generated
properly.
A
A
The
verifier
contract
that
was
generated
during
the
trusted
setup
step
was
also
deployed
to
the
blockchain.
In
this
case.
We're
talking
about
robson,
take
a
look
at
roxanne.
A
A
There
we
go
so
in
roster,
you
see,
we
have
this
transaction,
we
subsidize
the
transaction
for
the
for
the
deployment
deployed
to
contract,
which
deployed
some
contracts.
Essentially,
the
work
report
registered
contract
was
deployed,
and
then
we
made
some
research
that
you
know
we
made
some
assertions
around
the
bobs
or
like
workers,
the
bonds
participants
back
had
a
local
reference
to
the.
A
On
the
you
know,
the
erc
1820
registry
contract,
the
org
registered
contract,
the
shield
contract
that
the
shield
contract
had
been
tracked
in
the
off
chain
mercury
database.
This
is
actually
a
very
awesome
feature,
a
huge
shout
out
to
tomas,
and
that
is
another
mind
for
just
going
above
and
beyond,
for
this
release
to
to
deliver
that.
You
know
this
functionality.
A
I
think
we'll
be
doing
a
sort
of
a
focus
segment
with
with
very
soon
to
to
dig
into
the
into
that
very
good
stuff,
we're
asserting
that
the
the
workflow
circuit.
You
know
that
bob's
organization
has
a
reference
to
the
workflow
verifier
and
that
the
identifier
is
also
cached.
A
We
are
asserting
that
that
a
nas
connection
has
been
established,
we're
asserting
that
that
bob's
stack
participants
back
successfully
connected
to
nats
and
established
a
listener
or
a
message
handler
for
asynchronous
handling
of
the
baseline.inbound
map,
subject,
which
essentially
allows
for
any
authorized
they're
like
any
anyone.
A
Who's
been
authorized
against
using
using
a
bearer
token
find
by
bob
can
connect
to
bob
and
as
long
as
bob
is
granted
permission
on
the
baseline
for
that
for
those
those
connecting
entities
to
publish
messages
on
baseline.nbc
messages,
they
are
protocol
messages
based
on
vertical
messages
that
are
handled
by
bob
bob
is
a
server
that
bob's
organization
is
inserted
in
the
local
registry.
It's
asserted
that
the
on-chain
registry
bob
that
bob's
got
received
a
k1
key
pair.
A
A
That
eyeballs
interface
is
used
to
generate
a
k1
key
pairs
of
ethereum
public.
You
know,
ethereum
address
the
address
representation.
The
ethereum
public
address
representation
that
k1
key
pair
is
used
sort
of
as
a
sort
of
like
a
primary
key.
A
If
you
think
of
a
traditional
relational
database-
and
that's
used
to
look
up
the
organization
on
the
blockchain,
interestingly,
that
that
that
k1
address
that
public
ethereum
address
is
never
used
to
find
any
transactions
and
that's
another
interesting
functionality
or
feature
that
our
vault,
the
provide
vault
service
supports,
is
the
ability
to
restrict
signing
so
like
you
can
use
use.
You
can
be
certain
that
you're
not
leaking
sensitive
information
to
the
blockchain,
because
the
way
the
vault
service
protects
you
from
yourself
essentially
like.
A
Essentially
that
address
is
never
used
to
sign
a
transaction
that
key
rather
and
then
the
hd
wallet
is
subsequently
generated
for
each
organization.
You
know
that
uses
the
vault
and
those
hd
wallets,
never
allow
a
single.
You
know
one
account
within
within
the
with
them.
A
No
no
hierarchical
deterministic,
like
key
derivation
path,
is
ever
used
to
sign
two
transactions.
It
can
only
be
used
to
sign
one
transaction
and
that
again
creates
more
guaranteed
anonymity,
and
you
know
it's
harder
to
you
know
it's
no
transit.
There's
no
address
ever
assigns
more
than
you
know
more
than
one
transaction,
it's
much
much
safer
in
the
context
of
a
work
group,
much
safer
in
the
context
of
the
public
blockchain.
A
You
know,
there's
yeah,
that's
a
good
feature,
the
organization's
associated
with
the
local
work
group
and
then
here's
some
here's
the
assertions
around
the
vault.
He
created
a
default
vault
for
bob.
It
created
a
default
set
of
key
pairs
for
bob.
It
created
a
you
know:
an
elliptic
curve,
a
baby
ginger
elliptic
curve
key
pair
for
bob.
A
It's
used
for
the
the
it's
just
it's
a
special
curve,
that's
used
for
for
the
privacy
protocols,
the
k1
key
pair
was
generated,
and
then-
and
basically
you
can
use
that
key
pair
then
to
resolve
the
organization
on
chain
and
identity.
So
that's
where
that
50
milliseconds
comes
in
this
actually
hit
the
public
blockchains
to
verify
hey.
That
organization
is
in
the
is
in
their
word
registry
contract
and
that
and
the
key
that
we
expected
to
be
keyed
against,
like
that
primary
key
that
I
mentioned
using
the
primary
key
loosely
there.
A
It
is.
It
is
keyed
against
that
primary
key
and
then
sort
of
the
big,
the
big
one,
the
most
important
one,
the
one
that's
gonna
do
all
the
heavy
lifting
here
is
is
the
the
dip
hd
wallet
that,
like
I
mentioned
just
just
moments
ago,
will
only
let
you
sign
a
transaction
with
with
a
derivation
path
once
or
one
transaction
for
derivation
path.
Sign
awesome.
A
So
then
we
start
to
talk
about
alice,
and
we
we
assert
that
hey
alice
was
invited
to
the
work
group.
Alice
then
accepts
the
invite
and
a
bunch
of
of
similar.
A
A
Basically,
we
make
sure
that
the
work
group
that
alice
got
a
copy
from
bob
when
she
pulled
down
the
data
about
the
work
group
from
bob
and
bob
bob
invited
her
alice
was
like
yeah
I'll,
took
the
invite
she's.
The
decoded
bear
jwt
bob
citra
as
part
of
the
invite
process,
to
look
up
bob
to
look
up
the
work
group
and
to
pull
down
data
from
bob
directly,
because
bob
also
included
that
assigned
jwt
in
the
invite
for
alice.
A
So
alice
could
directly
look
bob's,
messaging
and
point
out
on
the
public
blockchain
and
connect
directly
using
assigned
bearer
authorization.
Token
then,
did
by
the
item
service.
A
Yeah
so
similarly
we're
going
to
make
some
assertions
that
alice
when
she
pulled
the
data
down,
she
got.
You
know
a
same
copy
of
all
the
costume
contracts
that
bob
got.
You
know
the
rc1820
registry
contract,
the
on-chain
organization
registry
contract,
the
work
group
shield
contract
the
off
chain,
merkle
tree
database
got
tracked
that
shield
got
tracked
and
then
there's
a
local
reference
to
the
the
verifier,
the
workflow
verifier
and
the
workflow
circuit
identifier
was
also
cached.
A
Similarly,
to
again
we're
going
to
establish
analysis
was
alice
able
to
subscribe
to
baseline.inbound
protocol
messages,
see
what
she
was
was
alice
registered
in
the
look
into
her
local
work
registry.
A
A
Where
she
associated
with
the
local,
the
local
work
group,
alice's
vault,
got
all
the
same
treatment
that
bob's
did
and
then
here
we
we
we
make
some
additional
assertions
about
counterparties
here,
which
is
really
a
nice
addition
where
we're
talking
about
how
each
like
bob
has
a
local
reference
to
alice
and
and
alice,
has
a
local
reference
to
bob,
and
they
can
both
talk
over
the
baseline
protocol,
and
you
see
this
initial
proof
generation
work
step
that
actually-
and
you
say
we
see
this
log
message
and
we
see
some
like
the
the
tx
rx
counts
are
being
started
here.
A
You
know
they're,
we
might,
we
might
put
in
a
couple
of
more
test
tests
into
this
suite,
but
you
know
all
in
all
this
is
this
is
about.
As
far
as
we
were
able
to
get
for
the
v
0.1
release,
I'm
not
disappointed.
I'm
not
disappointed
in
the
result.