cl-pitch/src/index.md

8.1 KiB

title subtitle mainfont title-slide-attributes background-image background-opacity toc-title toc-depth
Konduit.channel [A bunch of ideas in 15mins] monospace
data-background-image data-background-size data-background-opacity
./assets/logo.png contain 0.3
./assets/background.svg 0.35 toc 1

What is ...

Konduit?

A Cardano to Bitcoin Lighting Pipe

Bitcoin Lightning?

... a payment protocol built on bitcoin intended to enable fast transactions among participating nodes and has been proposed as a solution to the bitcoin scalability problem.

The problem?

::: {style="display:flex;flex-direction:row;justify-content: space-around; align-items: center;"}

  • Scalability
  • Finality
  • Tx fees

:::

The ask

Can we go from Cardano to BLN?

Lightning / BLN

Overview

  • A network of two party channels
  • L1: Each channel is "underwritten" by locked funds
  • L2: exchanging messages alters how and who can claim these funds

Hops

  • 2 channels: Alice <-> Bob; Bob <-> Charlie
  • Alice ~> Charlie ?
  • Alice ~> Bob ~> Charlie.
  • Problem: Naive hops require trust

HTLCs

  • Trustless hops
  • Hashed TimeLocked Contract
  • Parameterized by (timeout, lock, payer, payee)
  • Two spend pathways:
    • Ok: Signed by payee; Before timeout; Has secret
    • Ko: Signed by payer; After timeout
  • Note: hash(secret) == lock

Routes

  • C ~> A : Invoice including lock.
  • A ~> B : HTLC with timeout T and lock
  • B ~> C : HTLC with timeout T - delta and lock
  • C ~> B : Secret
  • B ~> C : Commitment to pay (no htlc)
  • B ~> A : Secret
  • A ~> B : Commitment to pay (no htlc)

Cardano Lightning

Pitch

  • Do Lightning but on Cardano

. . .

  • And better

Subbit.xyz

Trustless* subscriptions

  • Alice wants to subscribe to Bob's service
  • Alice locks funds on the L1; Bob sees
  • Each request Alice includes an "IOU"; Bob verifies and responds
  • At Bob's leisure, he claims (subs) funds owed

An embarrassingly simple L2

IOU

amount = int
signature = bytestring .size 64 
iou = #6.121( [ amount, signature ] )
tag = bytestring
message = #6.121( [ tag, amount ] ) 

Unidirectionality boons

  • Alice's safety is not dependent on chain liveness
  • Bob's sub is unilateral. No contestation.

Overhead?

  • Alice (client) must remember their keys
  • Must be able to produce a signature
  • Maybe some other state (< 100 bytes) or 2 trips.

Konduit

Subbit + HTLCs

Not IOUs, but cheques + squashes

cheque_body = [index, amount, timeout, lock]
cheque = [cheque_body, signature]

excludes = [* index]
squash_body = [amount, index, excludes] 
squash = [squash_body, signature]

Keep the boons

  • Alice still doesn't need chain liveness
  • Bob unilateral subs now have the evidence:
unlocked = [cheque_body, signature, secret]
receipt = [squash, [*unlocked]] 

Other deets

  • Token free design
  • "Batch" txs are first class
  • "Mutual" txs are first class and invoke no futher verification steps (beyond required_signers)

Demo ?!

Soon™

Ideas

ideas inner

  • The topology of our networks should reflect their usage
  • Cardano's super power: verify signatures of arbitrary data
  • All dapps should be L2s
  • A dapp devs main role is to keep user's from others
  • You don't need tokens