From 5e31ac9bf864a025e8fe73b6d1837adc0dbb2215 Mon Sep 17 00:00:00 2001 From: waalge Date: Wed, 3 Dec 2025 21:34:44 +0000 Subject: [PATCH] a draft of the talk --- flake.nix | 3 +- public/favicon.ico | Bin 14258 -> 62408 bytes public/index.html | 364 +++++++++++++++++++++++++++++++++++++-------- src/index.md | 263 ++++++++++++++++++++++++++------ 4 files changed, 526 insertions(+), 104 deletions(-) diff --git a/flake.nix b/flake.nix index 1211641..f487e77 100644 --- a/flake.nix +++ b/flake.nix @@ -30,7 +30,8 @@ -H src/header.html \ -o public/index.html \ -s \ - --slide-level 2 \ + --slide-level 3 \ + --toc \ src/index.md ''; serve = pkgs.writeShellScriptBin "serve" diff --git a/public/favicon.ico b/public/favicon.ico index 89b950c740b4eb65d4959da3bf8ed673efa1c781..835b0fb60f5ec41b82f5da39498927fd06416a31 100644 GIT binary patch literal 62408 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 literal 14258 zcmYLwc|4SD)c-vgX_Tc5%96Cn3{okkFsVo@3X^3_v?9gOA~Xgi3XjriPqGX%Bb439 zq?FOZ@F+{7k;zs~me6}{&-?ytWiY&VDg`gyn=^I0(VjZ51u(5c>YMhG35OD^MC;pkAhf@ z7Mz~_yERq`v0IB%Mc8H{Yg^K(2bLBcW>1IGFpSMGCS)_a(Q+O_S0N%@gGZ~pH^;za zHu|D;sKoi>edir=NRBF2o^hv9-1^LK_KCfqY~dFj-pmM+z7Cz9d$!8E zAqHE!1%6oMolElMOZDKwjVqw_>gYFp=E^;9pjwByc=saY-MYR8=t|HPB0Z-Jre}DH!(vQO~UmL}aPOlde zROjTkco`f7d(vWH&@H;(^&(ex2iFs`ZYNKQX234F2D>c*aW?cz1}BoW!;0yK>;_qe zp*;toG+sJ}&Sb*O9Rjgqg)xhQ5J5`HwvWwL3*uuQVID#W*&#QUY}*c+*FwRG1dJENtuf*YcVEP!*h7$gEhu7TbM!Cnbb?M`X!7TO5* zAq|rgOZQ9eJ$22paHSw06?%hVWBV5SyUC6!

pE!7jsQys*H{0j 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 z zu+-Qy(qcN{-HJslN-B-_0}(rp!2ztnTMej{cLVThf;H%K2EEYny{}j^cK}*xsh5V$ zhPVydDD7%&@_h^8g6&Mb$S2{7_%Zz$RiYOV+9Dvdd+Ux!fyM$MNIDeu)?egHs}L`> z#r&b-z2WvlsEimDmy{f~A%_+AS5r!ZUFPk&NB2`4bGOb=*z$cH)R~bQ`m)|>p})Ct zN;e*-2JeoyoP7qp;K!l-%$*vamlC%N$~M_PVbPHc%2U6TpvaSZQ@0*I-x&nmzP?x= zE_@Mi-Be^@aH=fJLU@>A$8xW@ed*4z9=J*P@baG(C1EqcV!fB$-{ISsZqkmJXR@ya zjsOtH&l+{UM7L)N0ZDN_DfG~S?O6Z;M2xq4VB#ap$;jZ5tltU?Tpug1upYRvxeLtP z%kf-7;}!Xr=sA;HH=XV{sy+ z@_D%4ifIVOwnQ@>)2=QHqZ}}o+zMLI{_H+JpQ6H&;!-h^3|i||jo8&UejecIQTXN7 zEN61lGuixeMm5t#!!>`y#OfS=jH3?DX&YoKe4!a5flF)ko1LDV8h9Ab@~TxOIE6pk zw|!eOU4CT~M}Ud^UhuT*J!qJwwZha#$a**W`MCsIYOXfnRhGM#9@bBqIH4Tyg6W6| z2|5}f+bIt|o~cO*h&q=X4_96KFG_kl2>{a8TZ@W!dW-TT-31F6Il@weOFU#^|hhnFE7D#k3G=J<8w@9c==s^v7$QJud5!RfaiWrVs$x1g3}8a4_CN13+M>9_qKGW&*{^TqBB*KYt~!y z8dX8;6*1e}P%iC++85IJLNSF~w4K)ocee?aIHxvMBPt7E2F=}Prt!z3nMo;PelWH# zhS^#cZ!xtiR@DIQb8|h9MKY5xqE9DQ?kf^t>f?Mkr1OxoeS_A~O|(OO#^2(#43?nb zb_uJ(z~<8n3JQeEN{UV_Kpb3@VO6d&Te)*SW&Rs(4C*6(y1=EX1oRgg{ZUeW1*i!t~70K4QD!5XrLm*FiT1x$8=@a%$CD)L%~k04m*xF z?6%rPgg9*Hb#$POq!l`0EQ(1ct@Vlow~ox4s<)i^VEGO1FpB58)U6Dr<0>JcRza=o zGBj8-$;sp1WL}=O7*C7D`aH3m9gCj=wLpq~sw^CzPf}s&n~JW)rtOqIu19&$lxFF% zEcDkuK?|~?@cFv|)^3DcNcwafRfwk`@=fs+!ys&(Di@kHm~pIBSWq)#02A-uKiVS^ zx}JdxsQbV11Sh^8C8@&6;Q-*f@!3mv$RRR7wfkH3-;8JWpG~E~;4hHH#xT#?i&zC^~Us^xO z)lgv-x*Nd^ja)+tn);zJ4%*zM6mB`0H;7)Ty(P_K9LS<@&^T@20xgdLIngUaI}QoR z>B4G0Q}QHjW-r7J=&J>O1v|yrbKqVLJF%AU!+B;Ry|rPoXfX;K9oS_{t^uXy@63qg z?RG_|xyql%v|@0=P092XD?^*$8^q$$($&uT%5YExJ5Fgsi8JG|gTBUPxOM=KI1e-Q z`7tF6aYDFVLuwu!;-DU(XfXl4YM1-Dce)IZ6AGXG#*I?+!QxQc&FOkUx(kcqnodiC z`am8c!hoB;ys&$wv-^KNBHd+L<)pj{>j0oNb` zmNl#0IbeR7RbQDwMXgL zHVxg|gvS~O-MEPaxc4AG^CVKB@b2IofvY^71GcH>ZxSepU$4Q*9emqpp%b64mIKm3 zCp&lf@ptFZzyXfLp60of2j+GKiw)rT%GSF{knH`Fs850H%7k(iv3t;t6V63BWaoWR z@}94n$$NPqN1fV1-c-ZoX`7kh^EFT6Fe+~}A!kd_+ z9lQX+(Bt~B-}3c(w_`v39ldHfpjI;x1!=g|dV>ePu9m{WH^9u?L?ib0m=s-_l zirJsM#qL`1F`aWzqeBz+02HYeFvVd}jlFs(FEKFU{e)@w0N;+|S247y3hoY}^z&)k zBFePbY%{|H4Gy@jPl$Od@05F}SGb_|_`AP>YX_OYFgp4f9#4P$O#AEBY(Ab0ORCwk zDeuB)pu-R=57Z4fNjc3Q-l-BnL+|F7(Pr8%&)f-{5qqGGbozD{!RgjA`1Vm}=ckzP zLs4!V7gyH^fnwjv4m_c8ZiC$!s<$lvPBx=81n9du2EJn(mWF5|0zOQrvIEQ&9ld5T z(IYKZXRs9xMT&+7aJK<=C!?OxPJeo4-wkR-C&v2mV+JFRR7v%!dh({m;xDt*JVM~k zr>9~-&~1+=+HTgbj-O9H9F5H{DQP9a=f62ltdkZAKZ1kef)tR+`31BYu+mlS&|mgo zU%gCHyv;!rs5^{`nfx0&!}B`TU&rA2^LWA7tmRqE67N?1nE@NiBItInzW?*03RrY2 z|0fq2*s%-i^Dc9zOU1bYK-Ug?7KL{i5tK!&N;#b(O`f${OF>h}@#=AN*e6H9K}IC$ zk-rV@y~|o}^U|4*H8ZYNQ-k@?_fEjpcw)6uCAeLC^yG!plRpcf>n=Y#tsTf))JDbF z&d;FDysnv!MJsw(YXOtWWiF(G>p|p7H(jnm^dsVqt{%V>+UIm_R;|Wz_6T)E;{&M7 zc>Xy)Zv93G!mGQD0@5rmS8wud2jY*m<%s_1$luO7v-Z<>#Jle&Qvw%U-mel@fk^62 z^8S3B;n|B-qz^!#y_0Sn=n*JXfxDn@v1OiEXH;t|UyJ_Fi{CI^xlG(^P+LRlIX}uF7Mmgb=duguChRjh71L5;nnLnHuX3HP{vf2?)Jb z&YO?Rrh%*ON{z?nKYFxtuG+(7>E6W?q7xtuUm(^*d?%eaXr9!0?&E0?>y{>qJVjPQ z?|+a!4_-Mm@gz`YqdoP-^)daSWFY|=3el%Pi_UcevWYo>?NTG!b~~w?Vfx-Y?$({= z8--;+O)dZ$(I0UpvY&&`e1LRkG~$4~laEh6+%FvK8kc6v12Pd`-W_HM^l8i|dLm%+ zme7wP{Ogb4Ge~Lw9$q=rAXTrVR=yFZ_MGM={?eLEQ6%$1p2><+&Ud|o5DSNFfAbOl z`n8>)tohX!CtU3n#r$`PtM>eYKnjg~&b_CE+jjtMHxiTKo8B<4Aq7;>lDRW>?*^n@ zuuxz&LW($#jg{cYCs^{r17SZFS55TBW-oycSzmYcxbqS>LT!hTXzrYjj*h))%gB%Y zex2t3$fKEw6z&Ax2WJQ?s(d-~v}UG2`(mH+6Vbf4t45rNY#fSFvKmnhh1G@TeEjPN zC|{>S@;TKUkD9Mwf zVu%!I;Hs3n{WQkRi0#8lq=16f${k>^+HQWeQx7495q=D7Vg z6(8fmL36uRdv2@za6ZV2^tD8I1; zJ=9AFZMCwe#la?pds6&_cE};|WjE^kTn2 zJch|yBW6lwMlO4dKvkF>KVL_^tdMfi5XH&*q+`5}XZ{aW4c+ek`voKC;74#Wobw9p zA|eI)oi)@8pQGMrE0Ple#Dt3mb93(W^9P`8xM!})NDo~DHPla3eY;_~fP_{i+JQ9x z@p8qzt*VTk{vyx*|Bkg2FrNLuuTiorPF5-TjWcU6YTv1V+wt>}p(4GV`A!AzyQiDF zk0!{Hcf=ifF|$fMCx>5=9tFCLLhy|ZyQFp2-z%it!xKfH-a)mAnB|S@jziOK0KDgw z-a^L9qf-Z;5!F~1msqGGzK;O}z;CStc4eadQbf7jIDcMa7UV*NLNHiC6k_p*=*P%j)YNkm&Zx;AQEBpcRc(-?D0tz#%0$=Xk-8oJoFtI3T(uOO~>3E%$6K zMLx_T<{`nI3rkNlZ9~46SG=4-TLaRHTkY(YBG>Xx@&`-Nba(M! zoHPJSopwtIs7v(9z={$-6=YNR2y#IQaqM0LhOsoLl-3FD z?qK-d1h-#W#~*N&@;j?=?o`xoEVPVMNtQuY2E9un5m849X|d;_%{nxGL~KOTjZ+FJ zDF&48SH=sFmaKk76r!i9c?l3bbn0X5r|yuS`_N8-^(lnxu!i7d zGbf+X>54<4BbT~AK+ovpEm_2(v@@o}5hbXeCxA4YWuaL+V^x=AV;J%9|BOzzrj@#L zX7g&-A$Cddx@x>DA8pvJTZs4`%TGhX+&IbfhFzq>fsKe=uEAUo2k5s8oCw0(b2uDz z`LlBv?M-Q4p7#H;5#gl7R~%AAqlbEj8tZ{y`76`;NZ`rq^kLI)H|I=04wWSJ(vV3f zd?yBt!t@Q7SJ|33S{iK?Y?4O;*@yH`p;=)~SXGb;GVn%S^vQq!`|XKwCJNF>=hF2@ rql149WH{zK9k#(R3b+3Hi-~BKnjcWVB?SJz9b&t4|BgZ{8uNbuY`a_q diff --git a/public/index.html b/public/index.html index 8bb6e9f..ecaf8c7 100644 --- a/public/index.html +++ b/public/index.html @@ -71,82 +71,155 @@

Konduit.channel

-

(Actually why all* dapps should be L2s)

+

[A bunch of ideas in 15mins]

+
+
+
-
-

Outline

-
    -
  • What is …
  • -
  • Architecture
  • -
  • HTLs
  • -
-
-
+
+

What is …

-

Konduit?

+ +
+
+

Konduit?

A Cardano to Bitcoin Lighting Pipe

-

Bitcoin Lightning?

-

… a payment protocol built on the bitcoin intended to enable fast +

+
+

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?

+
+
+

The problem?

+

  • Scalability
  • Finality
  • +
  • Tx fees
+
-
-

Lightning

+
+

The ask

+

Can we go from Cardano to BLN?

+ +
+
+
+

Lightning / BLN

-

Overview

+
+
+

Overview

  • A network of two party channels
  • L1: Each channel is “underwritten” by locked funds
  • -
  • L2: exchange messages altering how and who can claim these +
  • L2: exchanging messages alters how and who can claim these funds
-

Hops

+
+
+

Hops

  • 2 channels: Alice <-> Bob; Bob <-> Charlie
  • Alice ~> Charlie ?
  • @@ -155,56 +228,229 @@ funds
-

HTLCs

+
+
+

HTLCs

    -
  • Hashed TimeLocked Contract (also, utxo and general mechanism).
  • -
  • A contract parameterized by (timeout, -lock, payer, payee ) with two -spend:
  • +
  • Trustless hops
  • +
  • Hashed TimeLocked Contract
  • +
  • Parameterized by (timeout, lock, payer, payee)
  • Two spend pathways:
      -
    • Ok: -
        -
      • Before timeout,
      • -
      • Has secret (hash(secret) == lock)
      • -
      • Signed by payee
      • -
    • -
    • Ko: -
        -
      • After timeout,
      • -
      • Has payee
      • -
    • +
    • Ok: Signed by payee; Before timeout; Has +secret
    • +
    • Ko: Signed by payer; After timeout
  • +
  • Note: hash(secret) == lock
-

Routes

+
+
+

Routes

  • C ~> A : Invoice including lock.
  • A ~> B : HTLC with timeout T and lock
  • -
  • B ~> C : HTLC with timeout T - d 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

+ +
+
diff --git a/src/index.md b/src/index.md index 25dbd2d..bd426ea 100644 --- a/src/index.md +++ b/src/index.md @@ -1,21 +1,17 @@ --- title: Konduit.channel -subtitle: (Actually why all\* dapps should be L2s) -mainfont: Monobrain +subtitle: "[A bunch of ideas in 15mins]" +mainfont: monospace title-slide-attributes: data-background-image: ./assets/logo.png data-background-size: contain data-background-opacity: "0.3" background-image: ./assets/background.svg background-opacity: "0.35" +toc-title: "toc" +toc-depth: 1 --- -## Outline - -- What is ... -- Architecture -- HTLs - ## What is ... ### Konduit? @@ -28,20 +24,27 @@ background-opacity: "0.35" ### Bitcoin Lightning? -... a payment protocol built on the bitcoin intended to enable fast transactions among participating nodes +... 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;"} + ![](./assets/does-it-scale.jpg) - Scalability - Finality +- Tx fees + +::: -## Lightning +### The ask + +Can we go from Cardano to BLN? + + + +## Lightning / BLN ### Hops @@ -94,46 +106,209 @@ and has been proposed as a solution to the bitcoin scalability problem. ### HTLCs -- Hashed TimeLocked Contract (also, utxo and general mechanism). -- A contract parameterized by (`timeout`, `lock`, `payer`, `payee` ) with two spend: -- Two spend pathways: - - Ok: - - Before `timeout`, - - Has `secret` (`hash(secret) == lock`) - - Signed by `payee` - - Ko: - - After `timeout`, - - Has `payee` +- 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 - d` 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 + +```cddl +amount = int +signature = bytestring .size 64 +iou = #6.121( [ amount, signature ] ) +``` + +```cddl +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 + +```cddl +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: + +```cddl +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 {style="display:none"} + +- 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