We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Fighting back against Libra - Decentralizing Facebook Connect

00:00

Formale Metadaten

Titel
Fighting back against Libra - Decentralizing Facebook Connect
Untertitel
Nym Anonymous Authentication Credentials
Serientitel
Anzahl der Teile
102
Autor
Lizenz
CC-Namensnennung 4.0 International:
Sie dürfen das Werk bzw. den Inhalt zu jedem legalen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen.
Identifikatoren
Herausgeber
Erscheinungsjahr
Sprache

Inhaltliche Metadaten

Fachgebiet
Genre
Abstract
The power of Facebook derives from its control over your digital identity. However, the fundamental technologies behind anonymous (attribute-based) authentication credentials have existed since the mid-90s. This talk will cover new advances in anonymous authentication credentials, how the work was nearly killed by Facebook, and their real-world implementation, including their use in the Nym project's mix-net, cryptocurrency, and decentralized messaging applications. How do we pratically defeat Facebook and build an anonymous internet? Let's start with the building blocks: Getting rid of Facebook Connect using decentralized and privacy-enhancing technologies, then using that as a lever to build the rest of the system. Anonymous authentication credentials have existed since early blind signature schemes, but have historically been both inefficient and required centralized (if often blind!) trusted third parties. New advances such as UnlimitID and the Coconut signature scheme have allowed the creation of "Nym credentials" that are both decentralized and privacy-preserving. We'll go into three use-cases: Mix-networks Credentials allow mix-nets, which provide anonymity at the network level in even a stronger manner than Tor, to both avoid spam (sybil) attacks and grow in a robust, decentralized manner, avoiding the need of proof of work algorithms. Messaging In combination with the new IETF MLS (Message Layer Security) protocol to replace Signal, anonymous authentication credentials can enable a more privacy-preserving messenger. Cryptocurrency If Facebook is building Libra, we'll show how we can take their fundamental design and make it - or any other cryptocurrency - privacy--preserving using Nym credentials Lastly, we'll review how we build the initial work using European Commission funding from NEXTLEAP and PANORAMIX, how Facebook nearly killed the project, and now how we are building from both non-profit and private sector sources, including hiring ex-Facebook employees to work on privacy.
29
30
Vorschaubild
32:05
53
59
65
81
86
Vorschaubild
1:42:59
95
96
Vorschaubild
35:58
FacebookUnordnungInterprozesskommunikationFacebookAuthentifikationProjektive EbeneKoordinatenEinfach zusammenhängender RaumNummerungHilfesystemJSONXMLUMLVorlesung/Konferenz
NeuroinformatikKryptologieAppletSkriptspracheUnordnungTermZentralisatorVorlesung/Konferenz
Gebäude <Mathematik>DatenmissbrauchFacebookMereologieZentralisatorÄußere Algebra eines ModulsIdentitätsverwaltungFacebookCASE <Informatik>Physikalisches SystemDatenmissbrauchEinfach zusammenhängender Raum
FacebookOrdnung <Mathematik>IdentitätsverwaltungMereologiePhysikalisches SystemEinfach zusammenhängender RaumModallogikZuckerberg, MarkDienst <Informatik>PaarvergleichAggregatzustandSchlüsselverwaltungPerspektiveCASE <Informatik>Vorlesung/Konferenz
Kette <Mathematik>p-BlockIdentitätsverwaltungTransaktionValiditätAlgorithmusStörungstheorieMAPp-BlockKette <Mathematik>MaßerweiterungVorlesung/KonferenzXMLUML
MagnetkartePlastikkarteTransaktionValiditätLeistung <Physik>Service providerFacebookAssoziativgesetzUltraviolett-PhotoelektronenspektroskopieBAYESVarietät <Mathematik>Vorlesung/KonferenzComputeranimation
RechenwerkFacebookMagnetkarteStrömungsrichtungQuick-SortService providerAssoziativgesetzFacebookPlastikkarteGruppenoperationValiditätSchreiben <Datenverarbeitung>App <Programm>Open SourceLeistung <Physik>IdentitätsverwaltungKette <Mathematik>TermComputerspielTransaktionMaßerweiterungp-BlockChiffrierungVorlesung/KonferenzComputeranimation
DigitalsignalSchedulingVerschlingungStrom <Mathematik>RankingDualitätstheorieViereckInklusion <Mathematik>ZahlzeichenRechenwerkComputerspielTermTransaktionPhysikalisches SystemWeb logMathematikMAPPerspektiveGruppenoperationFacebookLeistung <Physik>Reelle ZahlHochdruckHypermediaSchreib-Lese-KopfVorlesung/KonferenzXML
FacebookHypermediaSchreib-Lese-KopfRegulator <Mathematik>TransaktionPhysikalisches SystemAssoziativgesetzNummerungBesprechung/InterviewVorlesung/Konferenz
Lokales MinimumComputerspielFacebookBildverstehenNummerungOpen SourceAssoziativgesetzValiditätFlussdiagrammVorlesung/Konferenz
E-MailGoogolVorzeichen <Mathematik>FacebookValiditätRegulator <Mathematik>Exogene VariableXMLUML
FacebookStrömungsrichtungMereologieEinfach zusammenhängender RaumApp <Programm>LoginExogene VariableOrdnung <Mathematik>IdentitätsverwaltungSchlüsselverwaltungSoftwareTransaktionAggregatzustandValiditätGrößenordnungp-BlockKette <Mathematik>Vorlesung/Konferenz
FacebookInduktive logische ProgrammierungAutorisierungService providerComputersicherheitTLSWärmeübergangIdentitätsverwaltungAuthentifikationFacebookTransaktionÄußere Algebra eines ModulsIdentitätsverwaltungEinfach zusammenhängender RaumGrößenordnungPhysikalisches SystemInternetworkingProgrammiergerätGebäude <Mathematik>HackerProfil <Aerodynamik>WärmeübergangRuhmasseHilfesystemDienst <Informatik>LoginSingle Sign-OnStandardabweichungTwitter <Softwareplattform>PasswortQuick-SortAuthentifikationGesetz <Physik>Service providerMultiplikationsoperatorMessage-PassingVorzeichen <Mathematik>AutorisierungNummernsystemExpertensystemDigitale PhotographieBenutzerbeteiligungXMLUMLComputeranimation
ComputersicherheitKryptologieDatenflussDigitalisierungAuthentifikationQuick-SortBenutzerbeteiligungFacebookMultiplikationsoperatorProzess <Informatik>Bildgebendes VerfahrenElektronische UnterschriftTwitter <Softwareplattform>Regulator <Mathematik>CASE <Informatik>FunktionalToken-RingDatenmissbrauchNummernsystemEntropie <Informationstheorie>ZeitstempelSinusfunktionVorlesung/Konferenz
IdentitätsverwaltungFacebookEinfach zusammenhängender RaumDienst <Informatik>NummernsystemZentralisatorEINKAUF <Programm>Service providerCASE <Informatik>Vorlesung/Konferenz
NormalvektorMinkowski-MetrikKette <Mathematik>p-BlockMaßstabPhysikalisches SystemIdentitätsverwaltungDatenmissbrauchFacebookDesintegration <Mathematik>SchlüsselverwaltungBildverstehenMotion CapturingDienst <Informatik>WärmeübergangTwitter <Softwareplattform>GoogolNonstandard-AnalysisInternetworkingGanze FunktionService providerZentrische StreckungKette <Mathematik>Minkowski-MetrikFacebookWeb logPhysikalisches SystemDatenmissbrauchIdentitätsverwaltungKryptologieNichtlinearer OperatorQuick-SortZentralisatorDienst <Informatik>Total <Mathematik>Service providerTermMAPMessage-PassingEinfach zusammenhängender RaumSchlüsselverwaltungNormalvektorLeistung <Physik>GamecontrollerMathematikRuhmassep-BlockÄußere Algebra eines ModulsArithmetische FolgeGraphfärbungBesprechung/InterviewComputeranimation
IdentitätsverwaltungMotion CapturingDienst <Informatik>WärmeübergangTwitter <Softwareplattform>GoogolFacebookKette <Mathematik>p-BlockDatenmissbrauchKontrollstrukturInterprozesskommunikationBasis <Mathematik>KommunikationsprotokollInternetworkingExt-FunktorChiffrierungFundamentalsatz der AlgebraService providerZentralisatorDienst <Informatik>EnergiedichteIdentitätsverwaltungSoftwareindustrieProjektive EbeneKette <Mathematik>Minkowski-MetrikSoftwarePhysikalisches SystemKurvenanpassungFacebookDatenmissbrauchOpen SourceGrundraumVorlesung/KonferenzXMLComputeranimation
IdentitätsverwaltungDatenmissbrauchRechnernetzKontrollstrukturWärmeübergangAuthentifikationDienst <Informatik>InformationRandomisierungTransaktionSchwellwertverfahrenAttributierte GrammatikBeweistheorieDesintegration <Mathematik>AuthentifikationPhysikalisches SystemBeweistheorieKategorie <Mathematik>Betrag <Mathematik>WärmeübergangOrdnung <Mathematik>Zentrische StreckungMetadatenMixed RealityToken-RingGewicht <Ausgleichsrechnung>Attributierte GrammatikKartesische KoordinatenGamecontrollerDatenmissbrauchIdeal <Mathematik>Computeranimation
ValiditätBeweistheorieAuthentifikationMultiplikationMessage-PassingAlgebraische ZahlCodierung <Programmierung>VerschlingungProtokoll <Datenverarbeitungssystem>Orakel <Informatik>ZufallszahlenElektronische UnterschriftAnonymisierungKartesische KoordinatenMessage-PassingProfil <Aerodynamik>FrequenzAuthentifikationIntegralMixed RealityElektronische UnterschriftMultiplikationsoperatorService providerMusterspracheAttributierte GrammatikDienst <Informatik>NummernsystemVerschlingungChiffreVorlesung/Konferenz
ValiditätBeweistheorieAuthentifikationCodierung <Programmierung>Algebraische ZahlMessage-PassingMultiplikationVerschlingungOrakel <Informatik>ZufallszahlenElektronische UnterschriftProtokoll <Datenverarbeitungssystem>KommunikationsprotokollAttributierte GrammatikStabKonsistenz <Informatik>BrowserCookie <Internet>Primitive <Informatik>ComputersicherheitEin-AusgabeFunktion <Mathematik>RechenwerkDatenmissbrauchIntelParametersystemProgrammverifikationComputerAlgorithmusPhysikalisches SystemSchlüsselverwaltungEingebettetes SystemMehrrechnersystemWort <Informatik>KontrollstrukturAlgebraisches ModellBeweistheorieKryptologieQuick-SortSystemaufrufSigma-AlgebraService providerElektronische UnterschriftSchlüsselverwaltungVersionsverwaltungFacebookNummerungProgrammverifikationAttributierte GrammatikKommunikationsprotokollParametersystemGenerator <Informatik>AuthentifikationProtokoll <Datenverarbeitungssystem>Physikalisches SystemTransaktionDatenmissbrauchDienst <Informatik>Symmetrische MatrixOrtsoperatorKonstruktor <Informatik>SchnittmengeLokales MinimumAutorisierungNormalvektorSpieltheorieMechanismus-Design-TheorieMessage-PassingSoundverarbeitungGruppenoperationPlastikkarteIntegralTwitter <Softwareplattform>Vorzeichen <Mathematik>Vorlesung/KonferenzComputeranimation
BitrateAttributierte GrammatikZeichenketteSchlüsselverwaltungMultiplikationIntelKommunikationsprotokollProtokoll <Datenverarbeitungssystem>DatenmissbrauchDemo <Programm>ZentralisatorVersionsverwaltungAlgebraisches ModellDatenmissbrauchQuick-SortInverser LimesLokales MinimumService providerDienst <Informatik>FacebookSchlüsselverwaltungMultiplikationSchwellwertverfahrenMultiplikationsoperatorEinfach zusammenhängender RaumZeichenketteWärmeübergangÄußere Algebra eines ModulsTouchscreenBeweistheorieElektronische UnterschriftBitCodeAutorisierungHash-AlgorithmusWort <Informatik>Demoszene <Programmierung>Inhalt <Mathematik>VektorpotenzialProgrammverifikationMobiles InternetVorlesung/KonferenzComputeranimation
Demo <Programm>IkosaederCodeVideokonferenzZweiService providerDatenmissbrauchValiditätTransaktionMathematikDienst <Informatik>TypentheorieBaum <Mathematik>ChiffreExponentEingebettetes SystemRechenschieberProgramm/QuellcodeJSONXMLComputeranimation
Demo <Programm>Hill-DifferentialgleichungKonvexe HülleExponentKryptologieSymmetrische MatrixKommunikationsprotokollAlgorithmusEingebettetes SystemAttributierte GrammatikBeweistheorieEllipseKurvenanpassungRandomisierungSchwellwertverfahrenChiffrierungProgrammverifikationIdentitätsverwaltungHash-AlgorithmusPartielle DifferentiationChiffreFreewareSoftwareCASE <Informatik>CodierungFunktionalValiditätPhysikalisches SystemSchwellwertverfahrenKryptologieQuick-SortHash-AlgorithmusHinterlegungsverfahren <Kryptologie>Elektronische UnterschriftAttributierte GrammatikIdentitätsverwaltungStandardabweichungGamecontrollerInformationDienst <Informatik>Elliptische KurveOrdnung <Mathematik>IdentifizierbarkeitZusammenhängender GraphEreignishorizontReelle ZahlMultiplikationsoperatorVorzeichen <Mathematik>Token-RingService providerTransaktionDemo <Programm>RandomisierungBeweistheorieComputeranimationVorlesung/Konferenz
Service providerDienst <Informatik>Token-RingKommunikationsprotokollRechenwerkValiditätAuthentifikationMultiplikationsoperatorDienst <Informatik>Zusammenhängender GraphService providerQuick-SortAttributierte GrammatikInterprozesskommunikationp-BlockKette <Mathematik>Vorzeichen <Mathematik>Mixed Reality
RechenwerkMaßstabVerdünnung <Bildverarbeitung>Quick-SortMultiplikationsoperatorAttributierte GrammatikTransaktionMultiplikationVerschlingungProgrammverifikationVorlesung/KonferenzComputeranimation
RandomisierungProgrammverifikationMaßstabLokales MinimumHill-DifferentialgleichungSchlussregelDistributionenraumData MiningBeweistheorieProgrammschemaTransaktionTopologieMessage-PassingToken-RingRechenwerkNotepad-ComputerAnalysisInformationVirtuelles privates NetzwerkInternetworkingIdentitätsverwaltungLoginAuthentifikationDialektInterprozesskommunikationComputersicherheitTermGruppenkeimKonsistenz <Informatik>StandardabweichungStochastische AbhängigkeitKonstanteSchnittmengeKnotenmengePhysikalisches SystemSkalierbarkeitFacebookElektronische UnterschriftKryptologiePlastikkarteGebäude <Mathematik>DigitalsignalDigitales ZertifikatFormation <Mathematik>NummerungQuellcodeDatenmissbrauchChiffrierungTelekommunikationInnerer PunktAlgorithmische ProgrammierspracheBitPhysikalisches SystemDienst <Informatik>Demoszene <Programmierung>SoftwareStandardabweichungSkalierbarkeitÄußere Algebra eines ModulsLeistung <Physik>CASE <Informatik>IdentitätsverwaltungComputersicherheitReelle ZahlFacebookMessage-PassingHook <Programmierung>Protokoll <Datenverarbeitungssystem>TermGruppenoperationOffene MengeEinfach zusammenhängender RaumQuick-SortPlastikkarteInformationAttributierte GrammatikDatenmissbrauchWeb SiteGüte der AnpassungKommunikationsprotokollSchlüsselverwaltungProjektive EbeneWort <Informatik>Gesetz <Physik>CodeHyperbelverfahrenZentrische StreckungMultiplikationsoperatorNP-hartes ProblemGenerator <Informatik>VerschlingungKette <Mathematik>Minkowski-MetrikEinsPersönliche IdentifikationsnummerMereologieNummerungDiagrammComputeranimation
EmulationNummerungElektronische UnterschriftFacebookKette <Mathematik>Minkowski-MetrikDatenmissbrauchTelekommunikationQuellcodePlastikkarteKryptologieGebäude <Mathematik>Digitales ZertifikatDigitalsignalChiffrierungComputersicherheitAuthentifikationToken-RingDatenmissbrauchCASE <Informatik>Web SiteCodeReelle ZahlKette <Mathematik>Generator <Informatik>AuthentifikationPlastikkarteElektronische UnterschriftAlgebraisches ModellGüte der AnpassungSpeicherabzugTransaktionComputeranimation
IdentitätsverwaltungPunktInformationNummernsystemNichtlinearer OperatorKontextbezogenes SystemAutorisierungPhysikalisches SystemGamecontrollerNummerungDatenmissbrauchComputerspielRechter WinkelTransaktionÄußere Algebra eines ModulsFacebookAggregatzustandCodeApp <Programm>Vorlesung/Konferenz
Basis <Mathematik>Vorlesung/Konferenz
PlastikkarteInformationStandardabweichungQuick-SortRuhmasseFacebookGamecontrollerBruchrechnungMAPParallele SchnittstelleOpen SourceIdentitätsverwaltungPhysikalisches SystemService providerAssoziativgesetzDifferenteVorlesung/Konferenz
InterprozesskommunikationAnalysisInformationVirtuelles privates NetzwerkInternetworkingTransaktionIdentitätsverwaltungAuthentifikationLoginSchlussregelDistributionenraumBeweistheorieData MiningProgrammschemaTopologieMessage-PassingToken-RingProgrammverifikationRandomisierungMaßstabService providerDienst <Informatik>p-BlockKette <Mathematik>Attributierte GrammatikSerielle SchnittstelleKommunikationsprotokollSymmetrische MatrixKryptologieAlgorithmusExponentEingebettetes SystemEllipseKurvenanpassungSchwellwertverfahrenHash-AlgorithmusChiffrierungPartielle DifferentiationChiffreIdentitätsverwaltungProgrammverifikationService providerPhysikalisches SystemValiditätDiagrammZentralisatorVorlesung/KonferenzDiagramm
Service providerDienst <Informatik>Token-RingKommunikationsprotokollAttributierte GrammatikSerielle SchnittstelleIdentitätsverwaltungSichtenkonzeptComputeranimationDiagrammVorlesung/Konferenz
JSONComputeranimation
Transkript: Englisch(automatisch erzeugt)
I'm very happy to introduce our next speaker, and his name is Harry Halpin.
He's the founder of NIM and the project co-ordinator of the Next Leap, and he's talking about fighting back against Libra, decentralising Facebook connect, NIM anonymous authentication credentials. I'm happy he's here. Please give a big applause for Harry Halpin.
It's always good to be back at Chaos Computer Camp. A few years ago, when I first came to Chaos Computer Congress, I was working on JavaScript
cryptography, was really thrilled that the community here came back for camp where I talked about my own rather personal experiences in terms of surveillance, and over the last few years, what I've been up to with a lot of other people who will congratulate the end and who have done a huge amount of work is we've been trying to build something
which I think Chaos Computer Congress inspired me to work on, decentralised privacy-enhancing technologies, and, in particular, we're going to look at the case of Facebook as a whole, but, in particular, what we believe is the most dangerous part of not only Facebook but
all of the centralisation inside of Silicon Valley which is their identity systems, in particular, Facebook connect, and then we're going to see how privacy-enhanced decentralised alternatives work. So fighting back against Libra, and I think, you know, the issue with Libra, originally
called Global Coin, is incredibly politically and philosophically interesting. It signals that the nation-state order that arised in Germany at the Treaty of Westphalia
is collapsing, and that now private companies are now taking over parts of infrastructure and parts of services that were traditionally provided by governments.
Currency is obviously one case, and identity is another, and they're intimately connected. Global Coin shows that the ambition of Mark Zuckerberg and the ambition of any of these companies is to build a global system of identity which is a necessity for a global
system of currency, and that, I believe, is extremely dangerous insofar as if it is ran in an authoritarian manner, and all for-profit companies are ran in an authoritarian manner, this is actually considerably worse than nation-state identity, and incredibly dangerous
in comparison to, for example, you know, decentralised key-based identity, or federated email-based identity. So Libra is announced as a global cryptocurrency. It actually makes quite a lot of sense.
As a design, from a technical perspective, I'm not going to go too far into it. I think Morgan Beller, the designer, is somewhere here at camp, so you can talk to her about it, but, effectively, it is a blockchain. There are validators, there are blocks, transactions are collected and written to blocks. On that level, not actually particularly interesting, uses a fast consensus algorithm
which has the rather hilarious name hot crap, and is essentially the validators confirm transactions. And this is where it gets interesting. Because the validators are the exact same companies, and, to some extent, investors
and start-ups that really power surveillance capitalism. So it's not just Facebook, although Facebook has built the technology and initiated the effort, they've created what is called a Swiss Verine which is equivalent to a mutual
association, and in this mutual association, there are different companies, including some traditional blockchain companies such as Coinbase, large investment firms, but also start-ups, Uber, Lyft, and huge Silicon Valley companies such as eBay, telco providers
such as Vodafone, and the current payment providers, MasterCard, Visa, PayPal. This is an incredibly powerful group of companies. And the primary design bet of the Facebook Libra association is that each of these companies
has paid 10 million up front to be a validator for these transactions, so that, you know, even though the blockchain itself will be public, there will be an API against it, you will probably be able to write apps against it, and it is interesting, and I
think very, to some extent, cypherpunk to try to put open source in the middle of such a titantically huge company which really controls the identity of a third of sentient life in terms of humanity. Nonetheless, these are the companies that we're trusting to validate the transactions.
So on that level, it's not exactly decentralised. But that's not the real problem. There's been lots of complaints, is it a blockchain system? Is it the real blockchain system? Is it decentralised? The real problem, from an economic perspective, which I think we should actually congratulate Facebook on, is that they're saying it's completely absurd that the US government
is the reserve currency of the world. I mean, come on, Trump's in power. They're doing a trade war with China, printing tons of money to sustain unsustainable American consumer debt, so they took a basket of uncorrelated assets, yen, dollars, Swiss franc,
combined them with percentages, and they've created a new currency, and this actually does threaten the US dollar as a reserve currency. And that's where the action has been. You can see the US Congress has called the kind of media head and the director of the
Libra inside of Facebook to testify at Congress, but I think, weirdly enough, I mean, probably Facebook screwed it up. Probably the regulators will not allow private companies to create a new global payment and transaction system based on essentially a basket of currencies which will disrupt the
dollar. And, you know, I would be dubious if the kind of six billion that got put in the Libra Association Swiss bank account, the US government can't poke through and get all the way to the 60 billion or however much it is inside of Facebook's bank account. Nonetheless, if it does happen, and we already know these things will eventually
work, even if Facebook doesn't do it, people will have phone numbers, and be able to send payments in their phones, and this will lead to tons of payment, and the vision that Facebook is pushing with the liberal is that this will allow us to bank the unbanked. This will allow us that, you know, the large portion of humanity in countries like India,
Sub-Saharan Africa that do not have access to bank accounts, as an American in Europe, it's actually really hard to get a European bank account. This will allow people to have bank accounts, however, what, even though Facebook has said we will not use your personal data in the Libra Association, we will not share your
personal data with, say, PayPal, or whoever. People running the validators. There is this giant loophole, and that is that the wallet, the Calibra wallet, will have to do what is called KYC AML, know your customer, anti-money laundering, they will
essentially have to identify every person using the Calibra wallet, and they will be able to, as they have stated, and then their response to the regulators, they will be able to leverage the tremendous amount of personal data that they control, at least
they easily can, in order to take these synonymous keys which are on the Libra blockchain which has validators, and they will be able to attach identities to those keys, and how
they do that is a software which no-one has talked about, which is the most important part of Facebook's current empire, and, to be honest, I believe Calibra and Libra are just another way to leverage this kind of technology to create even more personal data, because right now, Facebook obviously has your friends, and your name, and all that,
but they really would like your bank account. This is done via what is called Facebook Connect. Everyone who uses the app typically signs in with Facebook Connect, and there are probably as many Facebook Connect, or on the same magnitude at least, Facebook Connect transactions
as there are Visa transactions. This is the identity system of the internet, currently, for the vast majority of users, whether we like it or not, and, as hackers, as programmers, as people who want to change the system, we should understand this incredibly vital technology and build alternatives.
So the technology is built on a very innocent standard called IETF OAuth which stands for authorization, and what OAuth is, it was invented, a good friend of mine, another great anarchist party called Blaine Cook was working at Twitter, and, at the time, in 2003, 4, 5, people wanted to sign on to Twitter, but they wanted some profile data from them,
a photo, easy access, not having to repeat passwords, so, you know, at the time, they said, well, just give us your Gmail password and we will give you access to Twitter, but that's very dangerous because then Twitter has access to your entire Gmail. So OAuth was invented not as a mass personal data collection scheme, but as a way to essentially
help people log in for single sign-in log in, and then authorize the transfer of data, and the transfer of data takes place through the following players, the identity provider, the user, who is, for example, Facebook, who has a lot of your personal data, and you
would like to hand that data to a service provider, also called a relying party, that needs this personal data, and you have the user who gave you the personal data to begin with, and needs to authorize the service provider, so they've already authenticated
using a password, two-factor authentication, whatever, to the identity provider, they've got a new service, for example, say, Twitter, and they want to use their Facebook ID to log into Twitter, and so you want to transfer data without sharing any authentication credentials. You might want to transfer all sorts of data, cities, age, whatever, you want to
authorize that, and how OAuth does is very simple, because, at the time, JavaScript cryptography and web cryptography in general was very immature, so they couldn't use digital signatures, people couldn't interoperate with digital signatures, instead, all security boils down to TLS. This is the kind of flow, I'm just going to step through the flow
really quickly, but you've all done this a million times, so you kind of know how it works. In the first step, you go up to Twitter, and you say, hi, I would like to use my Twitter account. Twitter says, do you want to log in with Facebook? You click that log in with Facebook button, and you are effectively shipped over to the IDP, which in this case would be Facebook, now you're on, you got shipped, that's
step two. Step three, you say, Facebook says, do you want to authorize Twitter to have my data? You click yes, that's step three. You move, when you click step four, you go back to Twitter. Twitter, you have a token, which is called a bearer token. That token is basically a time-stamped kind of hash, is one way to
think about it, essentially a capability if you're into sort of that kind of way of thinking about things. You hand that token, which functions as a capability, to Twitter, Twitter then shows that to Facebook in step six, and in step seven, all that precious personal data flows from Facebook to Twitter. And what's
really dangerous is that you will have to do that when you use Calibra, when you use a wallet which is compliant, and they'll use the regulation, the compliance regulations as the kind of excuse. There are privacy ways to be compliant, but, of course, I would be highly dubious that people would not
leverage the amount of public data they can, that they already have to use here, that they will be able to control your financial data, and send that data back and forth using this kind of centralized identity scheme they've already set up with Facebook Connect to both verify who you are and what
you're purchasing, because in the current scheme, as you may have noticed, the identity provider, which is Facebook in this case, has a hundred percent transparency into which services you're using, and when you're using them, and with Calibra, they would have a hundred percent transparency into what purchases you're making, and who you're making them with, and when you're making them.
And that, of course, is a tremendous amount of very valuable data currently spread in a heterogeneous manner among various banks. Seems to be a great business ploy to push that all together inside of Facebook. And, you know, we have to do something here, I think, to prevent what will be effectively a
totalitarian identity system on a scale that we have never seen before. It will destroy, people may think however they want about the blockchain space, but essentially attaching Facebook identities via Facebook Connect to
pseudonymous keys will kill innovation in the blockchain space, it will divide the blockchain into essentially a mass-market, identified blockchain, and it will be, to be honest, total nonsense in terms of the people they're trying to serve. Obviously, people who are in countries such as, you know, India, China
may not have all the identity papers, may not be able to pass normal banking compliance, will also not be able to pass very easily banking compliance for the Calibra wallet, and maybe Facebook can help do that via leveraging all this data, but it still seems to be a very flimsy excuse to engage in this
truly tremendous amount of data collection. So what we want is we want a alternative, and luckily, cypherpunks have been working on this along with academic cryptographers for more than 20 years. So the quote I like to repeat is that privacy is the power to selectively reveal oneself to the world
which means under your control, when you want it, and with whatever data you believe is sufficient for the operations of whatever service you choose to use, and that really is freedom. Otherwise, you will be tracked and
the services can be censored, and it's exceedingly dangerous, sorry. So these are the sort of two fundamental problems we have to tackle. One is how do we create, how do we not create the kinds of activities that people want to do, logging into things, paying for things, without a centralised identity provider like
Facebook in the middle? And I hope some will talk about this briefly, but there was a great talk about yesterday by David Stanton. Even with that massive powerful out of reach, the NSA can watch the traffic and use that to violate privacy, so we do need some traffic, TCPI, UDP level protection as
well. So the centralised entity provider is just to repeat the kind of attacks they can use on ordinary people. They capture identity data, they know exactly which services a user uses, when they use them, they can transfer personal data, ideally with consent, but they don't have to ask for consent
technically, and they can even impersonate you to other service providers, and they can censor service providers, they can prevent people from logging in to service providers they may not agree with. Luckily, there is technology, and this is the main technology I'm going to explain. It was created by an obscure London start-up. I recommend looking at the Wired article
called Chain Space that came out of University College London and was a software company that was acquired by Facebook, but luckily for us, that software was left open-source, and the papers are all published without patents and all that stuff. It's very ironic this happened, because the
researchers that were working on this were funded by, you know, the European Commission mostly to create privacy-enhanced decentralised technologies in cities such as Barcelona and Amsterdam to enable citizens to own their own data. So that's kind of the background of where this technology came from, and the
particular technology, some of it also came from another project called NextLeap which I coordinated, which is trying to say, after the Snowden revelations, how can we build better decentralised privacy-enhanced identity systems? So this is going to be a quick overview. I'm just going to give the intuitions behind the cryptography, but I think you'll probably get
something from it. The solutions on a very broad scale is in order to end metadata collection, as mentioned earlier, you need something like Tor or ideally something even better, such as a mix net. We're going to focus on authentication, you want privacy-enhanced transfer of any data under absolute user control, that's why we're going to use anonymous
authentication credentials, and you want tokens which can basically subsidise the whole system. Make sure that it's sustainable and people can do transfer in a privacy-enhanced manner. We also want a few other properties. We want possibly these transfers of data to be cryptographically unlinkable, actually anonymised. We want users to be able to not only show
data such as IM18 but also private attributes, proof that they know something without revealing it, such as proof that I own a secret, or proof that I'm a member of a citizen in Europe without revealing which country. And we also may want, you know, a lot of anonymous
technologies, makes it very hard to produce some very useful applications such as, for example, long-term messaging, where you want a profile which can receive and send messages over a long period of time, so we want pseudonym integration, not just complete anonymity. So, anonymous authentication credentials have been around for a very long time.
The initial work was, of course, done by David Cham, who's one of the fathers of the modern cypherpunk movement, and most of the interesting work we've seen in cryptography, including mixnets that were now finally getting to market, but what they do is a very simple blinded signature scheme where you basically have some credentials, you
verify that these credentials are true, these attributes such as age, name, citizenship, and the blinding basically prevents the issuer to kind of know exactly what the credentials are. They can just show that they're, they have been issued correctly, that they are indeed correct, and that other service providers can verify
them. But the problem is, every time you re-show that credential, you allow yourself to be linked. Again, you know, blind signatures, you see the same, even if you see the same cypher text more than once, you can look at the byte pattern and the cypher text and link it. So luckily, there's been some really amazing work that's been more research papers
that I can possibly go into, primarily by Jan Kamenisch and many other people talking about blinded showing which allows multiple shows of the same credential, and that's really, I think, a wonderful work, but it's very complicated, and we're going to talk about some new work that uses algebraic max, which is we think much more efficient, but not decentralised, and then we're
going to discuss how we can make it decentralised. Okay, so the big picture is you have the user wants to prove that they have some attributes. They get a certified credential from what we call the issuer. So this is sort of a
standard, what we would call sigma protocol game, if you're familiar with cryptography. You show these assertions to a verifier, could be the third-party service providers such as Twitter, and then the verifier can, for example, like, check that these are correct. And the general
intuition is that the, unlike when I go to, for example, a bar in the United States, or I go to vote, I show you my ID card, but, you know, all you really want to know is the age. Instead, you get my name and my date of birth and where I was born. We allow you just to show just
the age. And they learn nothing else. So, we can use MACs, which are essentially a symmetric cryptographic authentication mechanism, which can guarantee integrity, authentication, and symmetric crypto, to sort of make this
work in a privacy-enhanced fashion, but we need a little bit extra. So we want to be able to effectively, we have an issuer, and they want to be able to verify these credentials. So, the MAC credentials are indeed correct, that they've issued them correctly. There's the user, the prover. They get the certified credential. We've
seen this before. And they can make some assertions, which can be proven, but, we essentially, there's a secret MAC key, which is then used to essentially MAC the credential, and we use a new cryptographic formulation, which we'll discuss right now, called algebraic MACs to
basically make it private, because if you just use a normal MAC, it's a normal signature, and you can sort of, you don't have any privacy over the credential itself. Algebraic MACs allow a number of, basically, the way to think about it is it's a normal MAC, but
you can basically make them unlinkable, and they're very efficient, just like MACs typically are very efficient, so you have efficient proofs of MAC creation, and efficient proofs of possession, and you use the possession of the MAC as showing an attribute, and the issuer basically uses MACs as the sort of signature over
the attribute, and you can do these protocols in the clear for parameters and key generation. If you want the whole paper, it's Sarah Michaeljohn and Melissa Chase, Algebraic MACs and keyed verification anonymous credentials. What we did is we took Algebraic MACs and we said let's make a privacy-enhanced version of
Facebook connect, and we made a system called unlimited ID, which embeds the attributes into the MAC messages, but we want not only, again, we don't want people to be able to say, yes, you know, my name is, my age is, but we also want private attributes, possession of keys, for example, possession of keys
and we wanted to make sure that we could access a bank account, which could access a financial transaction. So we take this construction, embed it in the previous set-up we saw, and then using the issuing authority, you kind of
run it like you would run it with a normal MAC-based credential, so you ask or prove her, yes, make sure you sign off the fact that I'm of age X, that I'm a European citizen, whatever, you get that credential, the Algebraic MAC can sort of with over non-zero knowledge proofs can
hide the private attributes, the MAC prevents you from just forging it, from just making it up, so some third party has signed off on it, but you could use an anonymous channel to basically have these Algebraic MACs
verified, and that's kind of one way to create a centralised version of OAuth which has privacy, that's the unlimited ID technique, and you can do all sorts of great things, you can rate limit, you can check for duplication, a lot of these things you can do is by simply embedding various hashes,
strings, proof of knowledge of strings and keys into the credential itself, and so, for example, this prevents reuse, so you can sort of say, hey, I can't just keep showing you the credential multiple times, I can only show it to you once, which sounds sort of silly, but it actually could be very useful if that credential was, for example,
sending money, because then you don't want to say, hey, yes, I got a bank account, this bank account has, let's say, 30 euros in it, and then I send the anonymous credential to a verifier, and I ship them the money, they don't know, no one who's watching can figure it out, your bank has verified that you have 30 euros in your
account, that 30 euros then transfers to the service provider, but the service provider can then check with the bank to make sure that 30 euros is still there, but you can still maintain your privacy. So there's very neat tricks with Algebraic MACs, which unfortunately I do not have time to go into, but we're interested not just in a privacy-enhanced
alternative to Facebook Connect, but a decentralized and privacy-enhanced version of Facebook Connect. So we want something that's a little bit more complicated. We don't want to have trust in a single third party, even if they don't know anything about us,
to be able to hold our keys. So we have an issuing authority, multiple, multiple sort of bobs, multiple bananas, as is in the screen. We get a threshold signature with multiple signing keys, and then we kind of get that credential, we merge the credential, and then we can show that credential
to third parties, service providers. So I'm going to show a little bit of code about how that works. So we have this code for this, and I'm going to explain it on GitHub. But let me just show you a little video while I have a second. So this is what's called a NIM wallet.
You can embed even currency, which we call NIMs, into this wallet, and then you basically, this is why this step takes a while, you can ask different validators to validate that you have that money in your wallet. So this is like three of five validators, or 60 of 100,
or we even get kind of pretty good performance when you have up to 10,000 validators. When that validator confirms that transaction, so it confirms it on essentially a blockchain, you can type in how much you want,
you get that in a credential, you can embed other stuff such as name, and age, or whatever else you want, and then you send it, and this is the real trick, you make it privacy-enhanced by un-linking it. So you can see there's a re-randomised button, you can click on that button, and the ciphertext itself re-randomises by simply taking the existing ciphertext
and taking it to another exponent, and boom, you've just created an unlinkable, decentralised privacy-enhanced transaction. And you can send the money to whatever service provider you want. So they go back to the slides. So the codes, AGPL, free software, online,
we love to have people play with it, but just to give you intuition for the tricks that we use, it's very similar to algebraic case, but there's a few different things going on. You should read the coconut paper, talk to Mustafa Al-Bassam if he's here,
if you can see him around in the audience. You embed the attributes as commitments, sort of standard Peterson-style commits. Like I said earlier, you can use non-reactive zero-knowledge proofs, if you want private attributes, and then you have pairing-based elliptic curve cryptography, which helps allow the signature itself to be re-randomised.
So you package up your commits into an encrypted package using El Gamal encryption, because you can then re-randomise it, ship it up the validators, they validate it, let's say three of five validate it, you ship it back, and you have some new functions. So, while you can get partial credentials from an issuer,
a validator, so to speak, the user merges these credentials together. They don't have any third party do it for them, and that creates a full credential that embeds all the information for identity they need, which is going to be shipped to a verifier in a service. And as I showed in the demo,
the user is under control of re-randomisation, so anytime they want to unlink a transaction, they want no one to connect, their validation and their issuing, they just basically hit the re-randomisation button, simple explanation, and they can re-randomise the signature itself. And the two other tricks, the well-known tricks which essentially allow this to work,
is you use threshold cryptography to achieve decentralisation, and in order to achieve verifiability, because you have to, the people who get these credentials, they have to verify that they're really valid, that they actually, someone actually saw something that said you're 18, or you actually do have this amount of money
in your bank account, you can basically use a hashing trick over the secrets, similar to identity-based encryption, to make a hash which anyone can check, which can be publicly published. So we built this whole giant system which I actually just demoed to you, minus the mixnet component already, taking essentially some sort of NIM,
some sort of token, shipping it around, embedding all sorts of attributes into anonymous authentication credential, you can have third parties sign off with them, you can create these attributes yourself and make them self-sovereign, so you can sign them, ship them up to a validator, the validator doesn't know what credentials
you're getting signed off on, they don't know where you're going with them, they just said yep, looks valid, someone signed that, I don't really care, we trust the user here, they ship it back, depends on the kind of attribute you want, you can then ship it through something like a mixnet or a tour, an anonymous communication channel, bring the linkability on the timing aspects and various other metadata,
the service provider can then check the credential, go back to the blockchain, make sure that there's been no double spending, and then you can both do one-time attribute shows for essentially financial transactions or other kinds of one-time sort of things, and also multi-shows for things like age, date, whatever, your name,
where you really want to tell multiple people you can just do it an unlimited amount of time. And you know, because we're not using full ZK snarks, we're using these kind of very specialized non-interactive zero-knowledge proofs, we get pretty linear scaling, things operate on linkability, can take place in two milliseconds,
and verification tends to be around 50, it's a bit more expensive of procedure because you have to check all the secrets, and you can see the more and more people you add to the system, it of course gets slower because there's more and more things to check, but it's slower in a linear fashion, so we think that's pretty cool.
And I think we won't really go into this, but we're really thinking really hard about rewards and how that works, how we can actually make sure that to make privacy-enhanced services really sustainable, surveillance capitalism is obviously not sustainable, and neither are US government grants to Tor and other projects,
we really need to be able for privacy-enhancing technologies to be able to plug into something that looks like Facebook Connect, that's decentralized, that defends user privacy, and then lets them get paid in a way where they don't have to essentially hold user data. For example, if I run a VPN service, I don't want to have anyone's credit card information,
I don't want any more personal data, ideally zero, I just want to provide a VPN service and get paid at the end of the month, and know there's real users coming through. And there's tons of other use cases outside of VPNs, one which I think the European Commission worked on tribute-based credentials and funded a lot of this for identity management
to make an alternative to Facebook Connect, but there's also I think there's a very powerful use case around secure messaging, you know, when you use, for example, Signal, you have a phone number, you have contacts, all of this stuff should be embeddable within a privacy-enhanced credential, and we have some software,
I recommend taking a look at Status, which actually is decentralized, which tries to provide some of the same capability as Signal, and this software should be embeddable, and some of the newer standards coming out to try to make open standards that have better scalability than the Signal protocol in terms of large group messaging, and to be an actual IETF open standard,
and these kind of standards, because they're built to support things like Facebook Connect is the fundamental identity system, we want to make sure we can slot in sort of decentralized privacy-enhancing credentials into these kinds of next-generation messaging protocols, so I'd recommend anyone interested in messaging,
check out the IETF message layer security work, I won't go into mixnets, because I'm running out of time, but again, there was a great talk yesterday, just check that talk out, essentially it is possible to obfuscate metadata, and hook that to a credential, this is all the wonderful people who have been working on the project, Claudia Diaz, Anja, Dave,
who actually left Libra and has now joined us, Jared, Andrew, who's done a lot of the hard work on the code, and I would really recommend, you know, if you want to get involved, everything is on GitHub, I want to review some of the papers that you may want to take a look at if you're interested in deep diving, so again, the keywords are chain space, a lot of the code is on their website,
lots of good links, even though they were purchased by Facebook, their website and the code is still there, for early work on NOMIS, authentication credentials, the real classic paper that goes over Schnorr signatures, all the way from 1991, efficient signature generation by smart cards, and then the kind of use of this, well, it ended up being Microsoft Passport
by Stefan Braun, and the real core paper for Coconut credentials is called Coconut, that gives you the decentralization and privacy, but if you're interested in the algebraic Mac work, which allows to have centralized privacy enhanced could be useful for some use cases like government, some places where you really need a lot of speed,
a lot of transactions, you can look at my work on unlimited ID, and that's it. I do want to, there was a lot of information at once, but I just wanted, I'm just going to reiterate the fundamental points, and the fundamental points are this, that everyone's very concerned about currency, but identity is the real currency,
and any plays for new global cryptocurrency schemes are effectively plays to make global identity systems. We already have the world's largest identity system operational right now, bigger than any nation state, ran by Facebook, but luckily, due to 20 years of research, we have the technology to build alternative,
we even have working code, we just have more people be aware of the problem, build this into their own apps, and work with us to make more efficient, more private, and a more decentralized alternative, because to be honest, I don't think anyone wants to live in a society where single authority can watch all your transactions,
and have the control over both your financial transactions, and the most intimate details of your life. We need to have privacy enhanced decentralized alternatives, and I welcome you to just join us, and help me make this true. Make this a reality. Fight back against Libra.
So, any questions? Thank you. That was emotional, but I think that's really, really worth it. We need engagement. We need to fight. Okay, do we have questions?
A question about the Libra. Basically, when everybody puts money there, they pile up a lot of cash,
so it's kind of like a debit card. I couldn't find any information about what happens with the money after you give it to Facebook, and before you spend it for something. Yeah, so this is something which there hasn't been too much work on in the public, because Facebook has published very little about this.
That being said, it would likely work as a fractional reserve banking system, so that when you give control over, sort of, you know, I give Facebook $50, 50 euros, they can then, you know, have that under their control, or at least the Libra Association control, and then relend it out.
So that will effectively lead to mass capital accumulation by the Libra Association. If you add that by one-third of humanity being stuck under Facebook Connect, that's a whole lot of cash, that's essentially a parallel corporate payment and banking infrastructure, which can rival traditional banking infrastructures. And that's on some level very cypherpunk,
on another level very terrifying. Okay, we have one more question. We just have one more question now. I'm here afterwards. Yeah, here afterwards. So, have any thoughts on decentralised identity providers? So would they verify governance credentials or anything,
or are there different ideas about that to do that decentralised? Yeah, so what we tried to do, if I can get back to the picture, is we tried to build a system where we disintermediate centralised providers from validation and verification. So there it is. So you can see in this diagram in step two,
okay, your identity party could be the German government, which is a big centralised entity. They might sign off on just your age or just your passport, and you can make up some other stuff, and you can work these together and have them be validated in a decentralised way. So we don't think they're incompatible. Okay, thank you so much. You will be here for questions, and thank you for watching.
Please wash your hands, take your stuff with you, and don't leave any garbage, and a big applause for Harry Hilbert.