{"id":"B_ROpWp7PJw","title":"Daml Developer Meetup: Why Daml (by Bernhard Elsner) & UTXO and Account Models (by Anthony Lusardi)","description":"📚Check out Daml Learning Center: https://bit.ly/LearnDaml\n📖Join our forum and get started: https://bit.ly/tryDaml\n\nDaml is a development framework for creating systems of record that securely connect across business processes and data boundaries while retaining privacy, guaranteeing data integrity, and enforcing strict authorization. Allowing such systems to cross boundaries — legal, regulatory, organizational, or other — enables them to form seamless economic networks.","channel_name":"Daml","published_at":"2021-06-23T00:00:00.000Z","thumbnail_url":"https://i.ytimg.com/vi/B_ROpWp7PJw/hqdefault.jpg","transcript_text":"data or do you want to do interactive questions during the talk anthony yeah of course or which oh sorry oh no people can you can definitely feel free to ask questions all right it's all free to ask questions good yeah yeah definitely feel free to interrupt either of us it's always better when when uh you know people are asking questions as they come up but again if you have questions at the end and they're maybe a bit more sensitive then you know that would be a good time to save them too and we can always cut that part from the video but yeah uh bernhard you should be able to share it now and recording is started all right thank you so let me see what i can share uh can you see the uh the introduction to demo perfect so as i said uh this is a relatively you know relatively broad introduction um trying to give you a high level understanding of um of the whole sort of tamil uh technology suite and really what i'm trying to get across with this is what sorts of problems uh you can solve with them and how so you can decide whether it's the right tool for you but it's a half hour talk so i'll really only be able to scratch the surface um so hopefully this will serve as a sort of a basis for conversations uh later in this session uh the structure of this talk is really around the sort of why what how firstly just talking about the problems why should we even care about this technology what problems does it solve um then a little bit of a sort of an abstract uh sort of description of the solution our overall approach to solving the problems described in the first section and then the last section is really the sort of the slightly deeper dive into into the demo technology uh and how how we actually realize uh that that solution starting with a y it really boils down to silos data and process silos which are everywhere and how they impact digital transformation now digital transformation uh is of course much more than a technology technological challenge but many businesses do face very serious technological challenges in their digital transformation projects and with damo we are solving i would say the biggest offloads data and process silos because if you think about what you need for a digital business there are sort of three core um three core concerns that silos are really in the way of the first is you need access to real-time consistent and quality data that you can use for analytics and decision-making with the sort of fractured silo landscape you get in most enterprise enterprises you simply do not have a source of truth that you can use for that sort of purpose secondly you need to be able to automate your processes ideally even make them self-service so that you can compete on cost and speed with other purely digital businesses and you know we are focused on the financial domain where such things are really common if you need manual intervention or reconciliation as part of your business processes you cannot offer that right you end up with multi-day slow processes and the last is you know business is accelerating more and more but so if you want to sort of if you really want to play in that sort of digital space you need to be able to adapt with changing business needs quickly but this is complex almost to the point of impossible in many of the siloed application landscapes that enterprise have in place today yet you know we're saying silos are sort of a real problem here but they actually exist for value very valid reasons if you think about it almost every business application somehow involves the processing of data across multiple parties right across enterprises across enterprise and business units within that or even just sort of software services in an application landscape and such parties typically need to or want to control their own records so they create independent systems silos right and this could be for organizational reasons each enterprise really needing leading their own systems regulatory reasons or just technological reasons right service oriented architecture actually makes the choice very deliberately to decouple functionality as much as possible instead of get some sort of composability so in short silos are created by multi-party applications applications in which multiple parties interact but need or want to keep control of their own systems and records and these types of applications absolutely everywhere both between organizations as well as within right sort of i've illustrated here very simplified view of the doctor's visit patient visits hospital and there's an interaction with medical records registries insurance companies and banks that ultimately make the money flow but then we can also go inside an organization like the insurance here where you have different units and systems for policy administration claims and finance right so even in this highly simplified view you've already got about 10 10 silos or 10 parties that need to interact here and the real pictures is much much worse and this is you know this exists and healthcare and finance and supply chain really these multi-party application applications everywhere and you know don't need to take all this from us let's iterate reiterate data and process silos are really the core technological challenge for digital transformation got a nice quote from harvard business review here the our systems don't talk problem which redevelops most companies and this anathema digital transformation leads to enormous process inefficiencies right core problem in digital transformation secondly data silos are caused by parties acting independently often for good reasons so there's a nice quote from gartner here businesses business units undertake data analytics projects individually which results in data silos and inconsistent processes and then the third point i made previously data and process silos are everywhere found this nice statistic via salesforce but according to the american management association 83 percent of executives say the organizations have silos and 97 think they have a negative effect now data and process silos are in my opinion really about business consensus right if we could keep all these silos in perfect synchronization i.e achieve consensus i think there would actually be no problem right and now an even mental image of the world actually matches that idea when we think of services in a service oriented architecture for example which you know i consider parties on application in a business network we often think of that local state in each of the silos somehow as being the local view of some global truths right so we think sort of the our our silos from some sort of nice landscape that synchronized with each other there's some things exclusive to silos and some things that are synchronized but you all know that that isn't the truth right that's naive mental image is false in reality each silo is completely independent right synchronized somewhere in the business logic imperfectly and we get this very fuzzy image right where data is sort of colored by the silo it lives in so there'll be there'll be data that is in multiple systems and is slightly different depending on which silo one looks at and that imperfect synchronization takes a whole number of forms at the moment right so worst case it's manual we send emails maybe with an excel spreadsheet attached maybe we manually type in data from a phone call or pdf and that typically happens between sort of between enterprises or the like more and more we automate the stuff by some sort of messaging you know message queues enterprise service buses direct api calls with json xml but really all of that is just fancy machine email right we really still just send send messages that we interpret at each of these silos and lastly and this has this has been a trend over the last few years we try to synchronize after the fact we put solutions on top of our stack right integration platforms uh that try to glue together processes or all the data so as examples we have things like api integration platforms data warehouses or data lakes etc and especially with those sort of analytics solutions like data lakes worst case sort of basically just throw everything into a big pot and make the reconciliation the problem of the end user right if you want to analyze the data you scrape it out of the data lake and have to do your own data sanitization and the point i'm sort of the main point is that none of these problems none of these sort of approaches actually solve the synchronization problem at the foundation synchronization using any of these techniques really happens close to this top of the software stack far away from where the actual data lives and that's where damol comes in that's what we're trying to change with damo we're trying to really eliminate data and process silos in favor of composable networks of seamlessly interconnected business now we need to give you an idea really how we're thinking about this so to give you some idea of what i'll stumble is all talk about the solution we're proposing in the abstract under the term virtual shared systems of record what we're trying to do with tamil is really make the naive mental picture of multi-party applications that we saw earlier reality right where those sort of the venn diagram overlapped nicely but we said silos exist for a reason so what we're trying to achieve is that data is still physically at and controlled by individual parties a and b sort of in their infrastructure but we want to guarantee that these local systems aren't kept these systems are kept in sync automatically and securely so that for all intents and purposes in particular from the developers point of view they are really just views into a global shared system and that's why i'm talking about a virtual shared system of record virtual because it doesn't really exist this foundational layer is really an abstract concept that emerges from the synchronization of these towers and shared because for all intents and purposes you can sort of pretend as if you're writing to a shared system of record now most of the magic is in that phrase i just used secure synchronization right which we which we can now talk about so the first actually first of all sort of the in this picture a and b somehow exclusively own some of the data and processes right indicated here in the in the dark and light blue but some of the data and processes indicated in the black overlap here specify how amd interact with each other somehow the interface between them that needs to be synchronized and it's there where that secure synchronization needs to take place and with that we can really talk about what secure synchronization means it's the first i already scraped straight over on the previous slide the first one is about data ownership we need to really specify who owns a piece of data or process is it really under ace control is it under bees control or is it something that needs to be co-owned jointly governed is it part of the interface the second is that we need to permission the interactions between our two parties quite strongly right when when we are interacting in this interface a and b need to have pre-agreed on the rules that concern the data and processes in that overlap thirdly we need very good privacy properties right the the data and processes need to be shared really on a strict need to know basis it is often even sort of a requirement that a must never learn of these exclusive data or that b learns of a's exclusive data so these need to be really well isolated from each other and the last is sort of isolation more on the on the security side right we really need to maintain that that siloing that is the reason why people build silos in the first place parties mustn't be able to falsify each other's records either through fault or malicious behavior or deny availability of the system right a must be able to work on a's exclusive data you know no matter what b does and to make this a bit more concrete what we are really proposing architecturally is this at a very high level most applications currently look something like this you've got a data store a system of record on top of that you've got a bunch of business logic and often written in general purpose languages like java.net and you've got you know some integrations or uis on top and the synchronization that i mentioned before you know if it isn't manual on the ui level usually happens at the business logic level right we have apis here connect to message queue or similar right so it's sort of not at the not at the data level what we are proposing is that you enhance the database with a virtual shared system of record so you keep building your application using your favorite technologies like java or javascript but instead of directly talking to a database you talk to the api of a virtual shared system of record right that api uh wraps the local data store and exposes data and processes as a view to this virtual shared system of records and again so we're trying to um sort of give a really easy sort of mental model there so that api is really against that global state so even though in reality you're talking to a local system that api feels as if you're talking to this virtual shared system of record right and the important thing here is if we look at the two slides next to each other the synchronization has moved from the sort of mid to top of the stack from the business logic really into the into the data and process layer where sort of the crown jewels live and we really see this as the natural evolution in the architecture of enterprise applications so if we look at this timeline uh we've moved from entirely centralized models in the 80s and 90s mainframe mainframe uplift applications to loosely connected models over the internet in the 2000s and 2010s to distributing our it infrastructure using cloud services in the in the 10s and 20s we have iteratively broken down and decentralized our it silos right now so we are now on decentralized servers the next logical step is to do the same with our data and processes and virtual shared systems of record are the way to do so which give rise to what i call here composable architecture now you may wonder how did i jump from what i've just presented to composable well basically we've so far always looked at the picture with two parties a and b but hopefully it doesn't come as a surprise that the idea is to do this with many parties right and once you once you look at that multilateral situation solving the synchronization problem at the foundation in the way illustrated here with this global uh shared virtual system of record has a really quite nice consequence right on the virtual shared system of record the individual party silos compose into multi-party applications first bilateral then multilateral and those applications that compose in the same way into networks of applications and i'll go into much more depth on that later if you think back to the doctor's appointment example where we had lots of bilateral interaction right from the patient at the hospital hospital and the records registry and the patient and the insurance and so on all of these bilateral interactions come together into a coherent application on this sort of composable virtual set system of record and this is really just down to the fact that wherever part your application sort of views overlap and interface the data and processes are guaranteed to be in sync so the the composability really just comes for free so let me tie the sort of the what that we've just discussed the virtual shared system supply code back to the original section where i described the silo problem what do you get with a virtual shared system of record firstly you get that golden source of truth if you can access the views of multiple parties which can be multiple services or multiple teams you're guaranteed to be able to reconstruct the consistent whole so analytics data stores and other trails across your systems basically come for free right you can always construct um sort of always reconstitute a global truth secondly the manual reconciliation just disappears right this really opens the door to highly automatized digital business processes and thirdly your systems become composable at the foundation layer this allows so for much more dynamic and nimble adaptation where you can reassemble and extend functionality with ease and i'll talk about that in quite a bit more detail in the next section so so far this has all been very abstract i think so it's time to bring all this back down to earth and really give you a glimpse of the magic source and how how dumble is able to provide such a virtual shared system of record which we usually describe as a demo badger so so let's go back to the core concern of secure synchronization of these overlaps in views to just remind you those were about data ownership permissions and privacy now these need to be agreed upon by the parties that want to interact on these systems so this type of system actually needs a schema that describes those interactions really just like a database needs a data schema but a schema for a virtual shared system of record needs to capture all of these core concerns of secure synchronization so we actually need a much broader type of schema which in our case is the demo smart contract language so demo takes care of the data schema in line with databases but also of permissions in terms of ownership and read write access as well as the processes which describe how parties interact on the interfaces and modify that co-owned data and i think it's time we really look at one of these schemas in practice so the core concept in double is a template indicated here with a template keyword and it closely resembles a class in an object-oriented language a template has properties data properties that are stored on an instance of the template we've got something very similar to methods for those that have used them already we usually call these choices but you can really think of them as methods those methods have parameters with which you call them and once you call them there's business logic that gets executed now the state of a dummel ledger is simply a set of instances of such templates so if you're familiar with such things already you can really just think of tamil as an object store where the objects are instances of these templates but here comes the new part the properties of your of your templates really are your data schemas you can think of templates as tables and these properties as columns right you may be familiar from other language ecosystems with uh sort of object database methods for example microsoft's entity framework but here there's actually no real translation to sql in the same way really dumble is your main schema language and you actually store instances of these objects on your on your data store the second really new aspect is that permissions really permeate every aspect of these templates we've got a signatory clause here which is all about data ownership we've got an observer clause here which is all about read access and we've got a controller clause here which is all about method access ie write access the third new part here is that the methods on these things are really your primary apis they are both how you interact with the system of record from the outside world from your business application but also how you assemble complex business logic within demo how you compose these objects into more complex logic that's where you get to the last part the method bodies different to what you might be used from.net or or java are pure meaning they have no sort of no real side effects they're deterministic and they allow the atomic composition of other actions i.e other api calls i'll go into that in more detail later but we can see several examples of that here where exercise indicates a call to another method now because the instances of these templates encapsulate really the mutual agreement on permissions and processes we don't typically call them objects but contracts because they're really a contract of how we interact between multiple parties and it is the deterministic nature of these methods and the atomic execution that are key to the system as a whole if you think about it if you can establish consensus on the order and validity of api calls you know in this case uh you know these these onboarding calls you get the rest for free because from from the api calls the order and the validity you can deterministically just rerun all the logic to get to the final state of your system and that's why the demo virtual shared system of record is at the core and event block and i've illustrated that here using a cache issuance and transfer application the system ensures that each party in this case we see we see amicia keeps mutually consistent and valid event blocks and these can always be joined together into a virtual shared event block all right so we've got amy's event back here where she sees events that affect her right so the fed issued to a hundred dollars tom transferred her fifty dollars and then she transferred eighty dollars back to prom and we can guarantee that if you had amy's event blog and um tom's event blog and the pets event blog and the bank of england's event block here you could reconstitute those into a consistent virtual shared event block here indicated with which parties see see which of these events and from those event blocks both the sort of the concrete local version as well as the reconstituted virtual version you can get to the system state right from the issuance and transfer events you can get to balances both in terms of the local view as well as a consistent virtual global view and the demo language and execution model are really all about ensuring that the consistent ordering and validity of these individual parties use guarantees global consistency and that is the sort of the not so secret ingredient to the magic sauce we call that the dummel ledger model which is open source you can and very well document it you can look at that online and that design as a whole allows the demo architecture to actually resemble that of the abstract virtual shared system of record that i showed earlier very closely the party's local system is a component that we call a participant which really consists of a stock database usually postgresql oracle wrapped in an api called the demo ledger api which exposes parties events event blocks and state you know to the parties which of course as i showed in the previous night i had the same time their view into that virtual sort of shared event block are either the virtual shared system of record the big difference to the abstract picture is that the virtual shared system of record is here replaced with an actual concrete consensus and synchronization layer which makes sure that the ledger updates are made atomically and consistent right so somehow the database interacts with synchronization services which go into a shared consensus and synchronization layer which then makes sure that everything works as it should and because that's the role of that synchronization layer it's really reduced to ordering and validity consensus there are many many types of systems that can solve this and with dummle we can abstract that away pretty much completely and that is through a sort of a product we call them drivers these exist for centralized databases um you know if you just want to synchronize between services in one end enterprise you don't need all the sort of the the low trust properties of blockchains or dlts but we also um have drivers for blockchains for distributed ledger technologies for cloud platforms and so on there's a sort of an overview here of all the drivers that we've got and the idea is that you pick these really entirely on your non-functional requirements on the scalability the resilience and the trust context you always get the same double ledger api i.e the same sort of virtual shared system of record from your participant so the applications that you develop on top don't need to worry at all what sort of driver they run on from an application perspective the drivers are entirely interchangeable which then also removes the lock-in to these underlying technologies you're no longer tied to a fabric blockchain or an ethereum blockchain or you know any of these other systems and we sometimes parrot the java mantra here right once right once run anywhere but we don't stop there we don't just stop at the ledger api we want to make it as easy as possible to integrate dumble into existing systems or indeed build entirely new applications on top of thermal edges so we've got this suite called demo connect on the one side demo connect is a suite of developer tools uh both to develop demo code but also the client applications that consume the ledger api but probably more importantly we're building out an entire application stack with which we aim to generically solve the most common integration automation and presentation tasks our aim with this stack is that many applications actually require no custom backend components at all but simply configure and deploy demo connect as the backend that is not to say uh that this is a world garden the idea is that one can take as much or as little of this stack as one once it provides numerous public apis throughout and the components internally only communicate via those and then sort of the last offering you can get from us which is again really in the spirit of making it as easy as possible to build on demo and we've got our demo hub managed cloud offering which tries to take care of the whole operational side it's basically a fully managed cloud platform for demo where you get all the functionality of democonnect plus a driver with some value-add integrations and application templates and i like to think of it as serverless double adjusted applications so to recap the demo ecosystem as a whole we've got demo drivers which wrap up an underlying database blockchain or dlt so it can act as the synchronization or consensus layer for bummer ledger you have the participant node which exposes the dhamma ledger api which is completely uniform across all demo dialers on top of that you've got demo connect which contains everything you need to build test and deploy applications on top of such a demo ledger and you've got double hub which offers the whole stack in a fully managed environment and really the whole stack is driven by this schema smart contracts it doesn't just determine what happens on ledger but through code generation and dynamic api is really it predetermines a lot of the functionality you get from this entire stack so there's a lot of a lot of code reuse now it's important to note here that the majority of this technology is free and open source um uh drivers and connect actually have community editions that are open source demo hub has a free tier that you can use to get your application off the ground and all of this is supported by a fairly lively community on the demo forums um which is a really nice space now at this point what i've shown you actually only demonstrates how we're able to provide a virtual shared system of record which inherently solves the data and process synchronization problem which gives you two of the three benefits i touted earlier right a golden source of truth and reconciliation-free processes so we'll have a quick look now at the how of the key third benefit i talked about already which is composability and for that the example i want to take a look at is a sort of a simple one which is we imagine we have two independent applications running already one to transfer cache from one person to another a and b here have the cache models uh and one which allows user to record ious ious as you just mean i owe someone some cash right it's a record of owing money and what we would like to do is to compose these two apps into a slightly more complex loan application one in which a lender can swap cash for an iou from a borrower what we need to do here is to add first of all add a new schema right new double templates which we usually refer to as a demo contract a demo model now the loan schema here depends on both the cash schema as well as the iou schema because of course issuing a loan involves a cash transfer and the issuance of a loan or redemption of a sorry issuance of an iou the consistency properties of the dummel ledger which again sort of that's only on the black overlaps here already guarantee that where the cache interacts everything is in sync whether i use interact everything in sync so by putting on top here the loan schema we suddenly get synchronization guarantees between cash and loans and between iou and loans and between the loans of different parties right so by entering into a loan we're actually suddenly forcing synchronization between iu and cash which wasn't there before in other words we have connected or composed these two previous applications and this is done primarily by composing the processes governing those right i've indicated that here sort of with a sort of a mock a mock loan template really executing a loan means atomically transferring cash in exchange for the issuance of an iou and we can see that very clearly in the code here we've got this method or choice called grant which means granting the loan which takes as a parameter some cash and i've noticed a typo there need to fix that um and what happens in this of the business logic here which is very abbreviated to keep it clear is we exercise a transfer from the lender to the borrower and we create an iou i issue an iou and then mark the uh mark the uh the the loan as granted and this is where the atomicity of this composition really comes in we can guarantee that whenever a loan is granted the transfer and the iou happen together or not at all and that is where the synchronization comes in we can now guarantee that the ius and the cash used in in loans always have both sides on ledger the last thing we need to make sure is that all this translates into client application composition and this is actually done architecturally the lender and seller applications are independent and don't communicate directly here so we've got a's and b's cache apps and a's and b's iou apps uh all communication happens through the virtual shared system of record so just like synchronization of this of the data on the virtual shared system of record just required a new schema extending our client application landscape here simply means adding new loan and well new new loan applications for a and b right so composition with demo is really an additive exercise and that is the general theme of composability right to compose two applications we just add a new one which connects data and processes through a new schema that synchronizes at key points in the processes and this is what brings the third benefit of sort of dynamically composable business processes and applications now i'm almost done but i'm going to call myself out here i cheated slightly in the last section because i made a quiet assumption that maybe some of you have noticed which is that the cache application and the iou application live on the same virtual shared system of record and you are all familiar with enterprise software things rarely live on the same it infrastructure so we have to make the assumption that actually the original applications we want to compose cache and iu may live on different demo ledgers well this is where the second sort of composability comes in which i like to call network composability and this idea of them being on different dummel ledgers basically we're just saying that doesn't exist conceptually we think of all dumbell applications in the world living on the same virtual shared ledger whether it's actually possible to connect or compose two applications using the techniques i showed you previously really depends on whether the parties involved in transactions share sufficient synchronization infrastructure to make this concrete with the previous example imagine we had cash transaction synchronized on the on the fabric domain here iu synchronized on the postgres domain here if the lender and seller are both participating in both applications are thus connected to both synchronization layers they can still compose these this transaction into into loans in short these two networks as long as the individual parties share enough sort of connections they form the same or at a single double ledger from the point of view of the participating parties now this sort of network composability is currently in alpha as part of what we call the canton protocol you can already download this you can try it but it's not quite ready for for enterprise production use but this is really where the development with dumbledore is going to really form this more global coherent picture and that gives you a glimpse into where the journey is going with tamil uh we're delivering value today providing these virtual shared systems of record on a range of different synchronization technologies and in doing so we're eliminating the core problem caused by data and process silos but it's the composability of those networks that hints at our vision for the future which is building a global economic network of really seamlessly interconnected businesses where you know different financial institutions can really transact not only across regional and organizational boundaries but also these network boundaries and with that i will i think i'm already quite a bit over time i don't know when we started so i'll stop here thanks for listening awesome thank you bernard this is a great presentation and no worries for going a little over we've got uh plenty of time so anyway i'm gonna share my screen in a moment let me just move a couple windows around and yeah if anybody has any questions for me or bernhard in between or at any other point you know feel free feel free to ask so one second so i can set up here apology i don't know where my speaker notes have i'm gone oh there they are okay now we're good to go share my screen all right everybody can see my screen all right yes all right perfect okay so um this is a fairly interactive session so i am going to ask audience questions uh during it and so please you know don't be shy if you um i also have answers to every question that i'm going to ask so if everybody is shy we don't have to worry there either and some people were joining earlier and uh may not have got in my introduction so i'll just reintroduce myself again my name is anthony lucerti i am a developer advocate at digital asset working on demo and from day to day i'm just trying to show people demo and get them interested and uh kind of explain what's what's interesting about it and also you know talk honestly about what the positives and negatives are what the tradeoffs are and different types of designs around these around these systems because there's always so many things to to consider whenever we're designing any sort of application so today i'm going to be showing you utxo and account models basically the good the bed and the costly so this is going to cover the two major types of designs that we often consider when we're talking about multi-party applications blockchains that type of thing and i'm going to also be painting with very broad strokes so even a single real world implementation of either of these types of concepts with the specificity that would be necessary to understand how that particular implementation works would take far far longer than the time we have allotted so as such everything that i'm going to talk about in the first half is going to be very general there's exceptions to every role here and i really just want to describe how these generally behave because you can take that general knowledge about it and really apply it to a lot of things but in the second half i am going to dive a little more into the technicals and specifics of these two models in some real life examples and kind of demonstrate what the positives and negatives are there in a specific one so first question i have for the audience is uh what is a utxo and what is an account model i just kind of want to gauge knowledge here so you know feel free to unmute yourself or type it in the chat i just want to understand where everybody is at right now when it comes to comes to these models and if you don't know then it's fine to say that as well all right so i'm going to take the silence as you know we're all here to learn them so a utxo or end account model both of them are any system of accounting or state management and where they differ is how they manage that accounting or state management in a utxo model every entry depends on previous entries and so a new entry will consume a previous entry such that the prior entry can no longer be be used uh this is similar to for example a dollar if i were to give you uh cash then you would take the cash from me and i would no longer have the cash and i couldn't spend it again oh and avalash just mentioned that bitcoin uses utxo and ethereum uses accounts yes this is a great point and is actually something that i'll talk a little bit about later but actually all of our systems largely derive uh from from these original models though there are some account models that i think existed before ethereum but not not so much in popularity and as far as the account side uh on the account side they tend to work more of how we imagine these things work in real life and that is they you're perpetually updating existing entries such that they can be accessed again in the future and so what i mean by that is something that you would think of like a bank account or a credit card is that you can give the same account number the same credit card number over and over again and more and more money can be taken out of it or uh the same account can be referenced in any sort of way for everything and so now to kind of think about it uh does anybody know i kind of actually gave it away so maybe i'll skip this question but there are lots of examples of non-blockchain utxon account models uh like i touched on before the rough analogs of these things are things like cash and bank accounts and they've existed for quite a lot of time utxos have largely existed in the form of divisible and fundable bearer instruments so that's cash coins gold and all that and it counts in the form of various types of leisure ledgers that involve either single or double double entry bookkeeping so debt ious bank deposits uh these interesting very old things called bullet and things like credit card accounts that are also fall under the account models and it's in the name and when it comes to public blockchains and private blockchains as well uh or these other types of ledgers where we're recording these things you can kind of imagine that the utxo side is very much these discrete units and the account side are these more general units and belay even though i have them under accounts they're kind of somewhere in between uh they're the these very interesting though double entry accounting where as you can see there's these little bones or rocks and there's this clay ball on the left and what people would do is they would use these little rocks to uh to basically encode rights and obligations and so the rocks would uh encode somebody's rights and the outside impressions would encode somebody's obligations and you can actually combine these two things so you would take the clay when it was soft press them in and then put these little rocks inside the clay and let it dry and now you suddenly have this thing that you can't forge the outside of it and change what it says on the inside and whenever a debt comes due you can actually break it open uh and have it come due and this is just a very interesting model that there's some resemblance there to the utxo side as well and so it's a great demonstration of the very funky nature of these things how utx sales can sometimes look like accounts and accounts can sometimes look like utxos um and it's just something to keep in mind as we go through this but i thought it was a really excellent you uh real world example of these things and so that's kind of what the real life ones are and so there's you know there's good and bad aspects of these models in the real world on the good side for utxos is that once you the utxo versions is that you get you know a high degree of privacy you have a high degree of fungibility uh you have very much easy guarantees that once something is transacted there's no going back on it you know transactions essentially happen once on accounts they tend to be you know fairly simpler to reason about and they are generally easier to reference because you just reference the same account over and over again instead of referencing different stacks of coins or or dollars or that type of thing and one other interesting thing to think about is that when it comes down to accounts we actually see accounts everywhere not just in finance but we see them for example there you have social media accounts and email accounts and all that that really are somewhat similar in those models because you have these things that you can go ahead and reference uh differently and also if anybody has any other thoughts on what the positives and negatives are of these then then feel free to just you know put them in the chat or mute yourself and feel free to interrupt and so now we're going to talk just about blockchain so we could or rather multi-party systems is what i should be saying and so can some buddy maybe mention in the chat or over here uh over voice you know what are some examples of utxo and account model based blockchains uh in your mind and if if not i mean avalanche actually mentioned earlier that bitcoin uses utxo and ethereum uses accounts and this is exactly correct you know the first we have quite a few of them and the first real digital ut excel design kind of came through bitcoin uh and in this system you have a wallet where you have one or more addresses that can receive one or more utxos and spend them later and so along with some more critical parts of its design that enable people to freely and trustlessly transact money on the internet without any intermediary uh this invention in ut excels in the part of the utxos has really very much continued to spark considerable interest because it has a lot of other consequences that we'll see on accounting models and on safety and on how to do very good multi-party systems uh and then after bitcoin you know we saw many more clones of this model and then we also have accounts and on the account side really like one of the largest things we saw was ethereum where it was it made for much easier arbitrary state access uh and code execution but it also led to a lot of bugs and very interesting things to think about that were kind of contrary to how we normally when we're dealing with shared systems we normally want to think of them as non-shared systems where we're in charge of the entire execution of them and thus our bugs are only dependent on what we do or enable in the system and that actually turns out to not always be true and so i'll go into that a bit but you know we have tons of other utxo examples um we've got fabric double encoder that i've listed here demo of course runs on top of almost anything but implements utxos in and of itself and then on the account side we also have best on fabric i've actually put fabric in both because this is another great demonstration of how you can do both fabric is largely just key value store so you can implement either type of model on top of it corda generally sticks to a utxo model at its base layer but again has other parts that could be considered more accounts so these things are fairly uh fungible and enough themselves or interchangeable in some ways and so on the technical side we have quite a lot of positives and negatives of utxos and it's all right if you don't know these um so i'm just gonna go go through them a bit and obviously these also um some of these things are debatable and so if you have any debates on them you know feel free to interrupt and discuss because there are quite a lot of things here and so on the utxo model on the good side we can say well they're more private by default if i give bernhard for example or deepak a utxo only me and bernhard need to care about the utxo however in an account model if i were to be spending from one account to another uh every other account would also need to be somewhat aware of this transaction so that they can make sure i wasn't spending more than i had um that's not the case in a utxl model you can also prune the state significantly for that same reason because every unit is discrete once it's used that's it it can't it doesn't need to be used again and if you see it again it's obviously invalid uh there's a general lack of arbitrary state access which is again somewhat related to this and that just removes a huge class of bugs you know you don't have out of order execution issues and you don't have other issues that we'll see later as well when i walk through the demonstration and you also i i'll skip this next point but um you also get parallelizable operations because every every um entry is discrete uh you can run multiple entries in parallel as long as they don't interact with each other on the good side of the account model is you tend to and some people would argue this get smaller packets over the wire which theoretically uh means less storage for your data and you also oh sorry can we just uh you also um get much more easy arbitrary state access so sometimes it's very tempting to you know you want to have the best kind of i don't want to put this you want you want to be able to write the richest application with the least amount of things in your way and the account model is really good at that of course having no safety guards can sometimes be a very bad thing and we'll we'll see that in a little bit um but it is from some perspective a positive and also account models really closely approximate how users and programmers think about these these types of things because that's how we envision the world and that makes reasoning about them a good deal easier there is always that little bit of of thinking you have to first accomplish in order to get more comfortable with the utxo model whereas the account model comes a lot more intrinsically i think that's what attracts a lot of people to it at first now on the bad side uh utxos constantly need to manage contention uh like i said before you can only spend one once so if two transactions simultaneously use the same one when you're actually trying to consume one of them then you're going to end up in a place where you where you kind of have to figure out which one goes through and which one doesn't and the good news is that only one of them goes through but you still have to figure that out and you also have to learn a new way to reason about the structure of your programs and you also often end up with larger transaction sizes because sometimes like if i had a 20 bill and a 10 bill and i wanted to spend 30 i have to combine them both and that is a larger uh transaction size because i have two things then compared to a credit card number where i have one thing and that that's the type of thing that you have to sometimes consider but it's generally not too too big of a deal in most cases on the account model side you know you get less available to stay pruning because you have to every account basically exists into perpetuity uh you never know when one's going to be accessed or and by whom um arbitrary state access creates a lot of opportunity for bugs as we'll see in a little bit and you also get reordering bugs and other things in there you tend to get less privacy because again everybody needs to know about every other transaction to some degree in order to make sure that you're not trying to do something that you aren't allowed to do and uh this also reduces down to single threaded uh operation so in an account model every transaction coming in basically for the most part i'm sure there are more advanced designs out there but speaking generally has to pause the execution of every other person's transactions commit that that transaction and then go on to the next one and can't really do much about that because the order of transactions and the fact that you can affect any part of the global application state just necessitate that you have a single threaded operation and so that was the most uh in-depth technical slide and now let's move on to actual real world examples so at their most basic these models are just a way to reference data within a ledger uh more commonly they are kind of the address of an application and its associated data and realistically these two things can somewhat behave identically to each other if you program hard enough in order to do that but in practice they don't and so in utxos what we generally see on the left is that each discrete contract has its own utxo and within it the account model each generalized contract has its own address uh one thing to note here too is that i am presenting very simplified models here so these when you're looking at them know that the things that i'll be talking about they they can get a lot more complex and they can leak a lot more information than you would expect given this this small set of information and anat did you have a question okay uh so now i kind of want to think about some problems that can arise from these models like side channel attacks so we can say the following happens and just to give you a little bit of background the side channel attack is where an attacker can basically use information they do know about a system to make guesses and predictions that information that they don't know about a system and in some cases even wholly uncover information they didn't know so we'll say carol and bob are competitors they're aware of each other and carol's working on your project under a strict set of ndas and you also haven't told bob you're working with carol because it's a sensitive project bob's also recently worked with carol on another project and bob wants more work and wants to know more about your network in general uh and bob wants to kind of just bend the rules of your network so that any so that he can find any competitive intelligence that as as bob would call it i'd probably call it spying so in these models what can bob do to carry out his attack on the utxo model um first both on both models we're going to remove the parts bob doesn't know so this is actually bob's intended view of both of these networks and so bob goes home studies your distributed ledger and says oh you know um within these models i know that for these things for that a particular job process to start two transactions have to happen one from you to me and one from me to you uh so what bob does is goes home and decides that okay i know these two pieces of information and it's a very trivial fact so it's very easy to overlook and bob also happens to be working with carol and so bob wonders if he transacts with both of you can he figure out something that he doesn't know so what bob decides to do is create a contract with you and a contract with carol and arranges these things so that they happen around the time that other contracts should be happening and bob says well if i could link these two things in some way my transactions with with you and carol i could maybe figure out some information about the network maybe i can figure out whether or not uh you and carol are interacting as well and that would look like this transaction over here but bob quickly figures out that in the ctxl network these are all discrete units and so there's no relationship that bob can derive from these two transactions the account model is slightly different because bob goes over here and says okay well we have transaction four between you and me and bob says oh we have transaction 90 between me and carol and so that's peculiar because bob knows that the last transaction he did with you was transaction number two and the last transaction he did with carol's account which i should be saying carol's account in your account is transaction 88 so where are the other ones where's transaction 3 and where's transaction 989 bob can take a guess here now that and basically say oh you might have recently started a project with carol and so the fact that each of mine are offset by one uh has leaked a little bit of information to me and worth noting too is that this is a very simple pr problem this is very simplified in the real world uh bob you and carol might have thousands tens of thousands hundreds of thousands of transactions going on in these networks and lots of different opportunities for small bits of information to have leaked not only at the utxo and account layers themselves but at the application layers up that run on top of these models and within the utxo model we just get a lot more safety here by default uh in both models you could program really hard and think really hard about your application and try and compensate for these deficiencies for example in the account model but it's going to take a lot more work and it's just going to be much much harder to actually create secure systems like that uh obviously i'm not saying that any system is ever 100 perfect in every way i'm just saying which one tends to tr uh trend more towards this this nicer security and that's the utxo model so now we're going to get a little more specific and look at an interesting real-life implementation or very close to real life and these are going to be an ethereum and demo so again we can compare accounts in utxos and we're going to look at and basically uh a little bit of information leakage and an attack called reentrancy which are neither things we want and tends to happen much more and really can only happen in an account model so in practice say we have here a uh a program on a running on ethereum and we the program basically allows you to owe someone a beer and within that class we have a few functions and instances of this class will have these functions and also carry with them an internal state well like any program and in so what we have here are two functions we have the ober function and the except beer function and so what we would want to happen here is that uh somebody who has a beer say alice and bob um are doing something together and then alice says hey bob i owe you a beer and so alice goes ahead executes oh beer on the recipient bob and over here will say uh basically if you can see my mouse here's the proposal and i'm going i want to owe bob one beer and then bob on can eventually accept the beer and say okay uh i will accept the bureau offer from you and say basically okay well beer is owed we're gonna increment it by one and then we're going to do let everybody know that the beer has been accepted through running an event and then we're going to have the beer proposal where we're going to deduct one from the beer proposal such that the state over here on the left where you have one under beer proposal of alice to bob will go back to zero and then that will make sure that when uh we're owing new beers that it doesn't end up owing more beers than is intended from from the person sending them and bob can also know that there's 10 beers owned because the this is a safety mechanism that we've kind of put into the system to stop execution at some point so that alice can never own oh more beers than she owns and the intended state is that bob eventually uh is going to be owed one beer from alice but what we see actually is that something else happens and this is not very good so when bob goes to accept the beer uh because we didn't order our execution correctly bob can do this attack called a reentrancy attack and so bob goes and says okay i'm going to accept the beer but before bob's completed this call bob actually goes ahead and gives an address that does another call that basically says oh accept the beer again and it re-enters except the beer again and we are still trying to decrement the beer proposal but we can't and so bob goes accepts the beer except the beer accepts the beer 10 times until it explodes and we end up hitting the limit of the total amount of beers that that alice actually owns but in the meantime bob has basically escaped with alice owing him ten beers and having obligation obligations to him that she had never intended and that was all because two lines in our pseudocode here were kind of out of order there are a couple of things in the pseudocode by the way that i kind of skipped over to simplify for the slide but let's just imagine that that everything is there and it's it's executing truly and now in demo with the utxo model we kind of have the same thing except uh we don't have to worry about that type of out of order execution because what happens is every utxo depends on other ones so first thing is that alice's beer's owned doesn't exist and bob can't even know it because each beer that alice owns was purchased from a store and is owned as a discreet utxo so alice takes one of her utxos and basically creates a beer iou that says okay bob i want to owe you this beer bob goes ahead and and accepts it and then goes to exercise beer received bob again though tries to do the attack um and tries to save beer receive many many times but what ends up happening is the transaction just fails because bob exercises it exercises it exercises it and the system goes and says well you can't exercise this more than once you can have your one beer but all these other exercises that just came in consume a utxo that i know is already consumed and used and so it explodes uh alice actually maybe gets to see that bob's been dishonest and rebroadcast this many times but luckily the state ends up entirely as we intended and so that's another very interesting thing that can happen with regards to either of these models and by default and utxo is much more safe and an account model could be made safe you could order these things correctly and make sure you do a lot of due diligence in any smart contract you should be doing significant due diligence but there's um to put it in the uh it's much much easier to to have things go wrong in these account models particularly where they're accessing very rich state which you typically want in an account model as it is and so yeah that's basically my presentation and now uh we're happy to do q a if you have any questions about bernhard's proposal i mean bernhard's presentation my presentation or any questions about daimler itself we're more than happy to answer and yeah hey anthony so this example which you just presented is this closely related to the uh double spend problem that we're trying to solve in utxo i somewhat the double spend problem is solved kind of add a couple layers so really you're solving double spend most inherently at the consensus layer where you're saying that i don't want the same exact transaction to happen twice but in a sense yes you're also solving double spends here where you're saying i don't want two very similar transactions to happen twice um so there is there is definitely some minutia there but yes you do prevent certain types of double spending activity uh in a utxo model by default whereas in an account model you wouldn't but ultimately it boils down to a somewhat consensus layer thing if that makes sense and if it doesn't i'm happy to explain more so uh if i refer to that slide where you talked about the good and the bad between udxo and account in account if i remember correctly you had that everything is a single thread so everything is happening one after the other so is that in a way targeting this particular problem that we're trying to solve uh yes that would definitely be affecting that a little bit uh but since it's one discrete transaction you would almost the threaded nature of it almost doesn't matter because it is all still happening in that one transaction so over here where we're re-entering this is all really kind of occurring in one transaction uh so it's not it's not exactly the same thing right i got your point but no that's a really really good question there's a lot of there's a lot of minutiae there so what you're saying is in essence whatever the good and the bad that we can say on paper between udxo and account model in practice that line is pretty blurry because i can model my system using any to mimic the other uh yes you can in in pr in theory you can model a utxo system in an account model and you can almost model an account and you can definitely model an account model in a ut excel system but the in practice it actually becomes very hard and what you'll end up with is you'll if you were to take an account model and try to make it as safe by default as a utxo model what you would find is you're basically creating a utxo model inside that account model so you might as well use utxos in and of themselves if you need that level of safety basically right right makes sense yeah the type of uh you know the type of uh authority that tamil has in in built in it like the observers the controllers the parties concepts all those now when it gets you know integrated with something like ethereum where you can apply various consensus mechanisms proof of stake delegated proof of stake anything so now how does damil fit in over there where a different third party consensus mechanisms has to be applied on that uh yes so demo can interface with any system that has an api or other way of talking to it in the much way most applications can ultimately if you have uh say you have a system that's part demo and part ethereum and they're communicating with each other and you have code executing on ethereum uh daimle can not do anything to guarantee the safety of the code that's executing there on ethereum it can only guarantee the safety of the code that it's executing itself and can only go and can guarantee the safety of any data that's coming into the system from outside sources like ethereum or some other database but it still cannot fully provide safety throughout every layer of the system if you're doing things outside of it um like almost anything else so yeah you're understanding those correct so does that implies that if i if i develop a application using demo with no other you know blockchain framework such as ethereum's quarter or others being integrated can i apply you know the different consensus principles within dml somehow or itself like you know the the way how daml is built or it will only be restricted to the you know theories that ml has in within oh okay so demo actually has another way to do transactions um you can make them non-consuming and in that case uh utxos can persist and they would function a lot more like like accounts so if you needed that type of functionality for certain things uh you can definitely do it and then but even if you have like ut excels that were generated out of those non-consuming transactions you could still have them be consuming further down the line and make sure that everything still stays safe if if that makes sense so you do have quite a lot of flexibility there you don't have to worry too much about that because you still get that safety regardless okay okay maybe i'll i'll answer that if you remember back to uh my my segment earlier um the consensus mechanism that you mentioned the proof of work or proof of stake happens at the very foundation of the system in what i called earlier the consensus or synchronization layer which in principle can use any sort of um of uh of uh consensus you know we we integrate with some blockchains which use pbft uh proof of stake i would say the only one that we currently don't target proactively is proof of work the reason the reason being that proof-of-work blockchains tend to be very very expensive right and the sorts of applications um that our our customers are building tend to be um tend to be targeted more at enterprise there are very high throughput um so proof of work consensus just isn't isn't appropriate but there's nothing in principle that would stop us building a proof of i mean a double driver for proof of blockchain in fact we've i mean we've sort of fought for fun and interest built um double drivers for ethereum which we think would work on the main met um we just don't think it makes sense um to you know do anything with them okay thanks and abelash had also asked a question in the chat about how does damon fabric handle private data collection in hyperledger fabric um so i assume you're talking about fabric's specific functionality called the private data collection for demo we use uh basically the the ledgers we're running on top of for consensus and synchronization only and so the way you would do this in fabric is you say your organization might run one one fabric ledger another organization might be running another you don't want to share all data between each other we have um essentially another layer called canton where your demo applications don't need to change at all but you can use that layer to guarantee privacy and get that much broader uh network interactivity that bernhard had talked about in his talk so that's kind of how we would handle uh keeping data private uh within within fabric and all other ledgers as well when when you're when you're communicating you know at those borders between different different parts of the business that you don't want to share data between all right so i guess those are all the questions but before you go um and obviously ask more questions if you if you have them right now i would encourage you to check out bitly try demo uh over there is our fairly active forum that you can find tons of information on demo at it uh sorry it's i'm still waking up a little bit you can find tons of information on demo uh you can go ahead and try out demo yourself by installing download connect you can go to uh download.com learn where you can try a variety of different tutorials in the browser so if you wanted to get started with demo or check out fundamental concepts you can go ahead and run through all of these they'll just execute remotely elsewhere so you don't even need to install anything we have excellent docs that really dive deep into demo of course if they take you too long you can always hop back to the forum and ask a question uh we have an introduction to demo which bernhard has written probably almost all of it uh it is excellent it had covers everything you need to know to learn demo it is how i learn demo uh so if you're interested check that out uh we have tons more videos um that you can check out we have a video training course right now that that you can check out uh we have youtube channels and everything else we even have a google where if you use the haskell you can go ahead and use it to query and figure out demo functions in the same way as as haskell's google uh oh and certification of course where if you want to get certified in demo you can go go check that out um and you can always you know message me if you have any questions about it and yeah we also got have links to canton there double cheat sheet lots of stuff i've just read the entire screen but yeah check it out and obviously if you have any questions you can hop over uh to our forum we're answering questions in there each and every single day i already have a bunch of things to read this morning so yeah thank you everybody for attending and uh thank you all for the very great questions so uh last thing anthony like i just wanted to know like whether uh we will be getting this uh recording or this ppt that we have shared throughout the uh session uh yeah i'm gonna save the recording now and then i'm going to upload it on youtube and i'll make sure to email it out to everybody okay thank you welcome all right thanks everybody and thanks bernhardt thanks anthony bye","transcript_synced_at":"2026-10-26T04:11:54.069Z","segments":[{"start_seconds":0,"text":"data or do you want to do interactive questions during the talk anthony yeah of course or which","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=0s"},{"start_seconds":9,"text":"oh sorry oh no people can you can definitely feel free to ask questions all right it's all free to ask questions good yeah","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=9s"},{"start_seconds":16,"text":"yeah definitely feel free to interrupt either of us it's always better when when uh you know people are asking questions as they come up but again if","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=16s"},{"start_seconds":24,"text":"you have questions at the end and they're maybe a bit more sensitive then you know that would be a good time to save them too and we can always cut that part from","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=24s"},{"start_seconds":32,"text":"the video but yeah uh bernhard you should be able to share it now and recording is started all right thank you so let me see what i","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=32s"},{"start_seconds":39,"text":"can share uh can you see the uh the introduction to demo perfect so as i said uh this is a","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=39s"},{"start_seconds":48,"text":"relatively you know relatively broad introduction um trying to give you a high level understanding of um of the whole sort of tamil uh","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=48s"},{"start_seconds":56,"text":"technology suite and really what i'm trying to get across with this is what sorts of problems uh you can","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=56s"},{"start_seconds":64,"text":"solve with them and how so you can decide whether it's the right tool for you but it's a half hour talk so i'll really only be able to scratch the surface","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=64s"},{"start_seconds":72,"text":"um so hopefully this will serve as a sort of a basis for conversations uh later in this session","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=72s"},{"start_seconds":80,"text":"uh the structure of this talk is really around the sort of why what how firstly just talking about the problems why should we even care about this","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=80s"},{"start_seconds":88,"text":"technology what problems does it solve um then a little bit of a sort of an abstract uh sort of description of the solution","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=88s"},{"start_seconds":97,"text":"our overall approach to solving the problems described in the first section and then the last section is really the sort of the slightly deeper dive","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=97s"},{"start_seconds":106,"text":"into into the demo technology uh and how how we actually realize uh that","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=106s"},{"start_seconds":113,"text":"that solution starting with a y it really boils down to silos data and process silos which are","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=113s"},{"start_seconds":122,"text":"everywhere and how they impact digital transformation now digital transformation uh is","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=122s"},{"start_seconds":130,"text":"of course much more than a technology technological challenge but many businesses do face very serious technological challenges in their","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=130s"},{"start_seconds":138,"text":"digital transformation projects and with damo we are solving i would say the biggest offloads data and process silos because if you","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=138s"},{"start_seconds":146,"text":"think about what you need for a digital business there are sort of three core um three core concerns that silos are really in the way of","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=146s"},{"start_seconds":154,"text":"the first is you need access to real-time consistent and quality data that you can use","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=154s"},{"start_seconds":162,"text":"for analytics and decision-making with the sort of fractured silo landscape you get in most enterprise enterprises","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=162s"},{"start_seconds":169,"text":"you simply do not have a source of truth that you can use for that sort of purpose","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=169s"},{"start_seconds":177,"text":"secondly you need to be able to automate your processes ideally even make them self-service so that you can compete","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=177s"},{"start_seconds":184,"text":"on cost and speed with other purely digital businesses and you know we are focused on the financial domain where such things are","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=184s"},{"start_seconds":193,"text":"really common if you need manual intervention or reconciliation as part of your business processes you cannot offer that right you end up with","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=193s"},{"start_seconds":201,"text":"multi-day slow processes and the last is you know business is accelerating more and more","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=201s"},{"start_seconds":210,"text":"but so if you want to sort of if you really want to play in that sort of digital space you need to be able to adapt with changing business needs quickly","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=210s"},{"start_seconds":219,"text":"but this is complex almost to the point of impossible in many of the siloed application landscapes","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=219s"},{"start_seconds":226,"text":"that enterprise have in place today yet you know we're saying silos are sort","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=226s"},{"start_seconds":234,"text":"of a real problem here but they actually exist for value very valid reasons if you think about it almost every business application somehow involves","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=234s"},{"start_seconds":243,"text":"the processing of data across multiple parties right across enterprises across enterprise and business units within that","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=243s"},{"start_seconds":252,"text":"or even just sort of software services in an application landscape and such parties typically need to or","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=252s"},{"start_seconds":260,"text":"want to control their own records so they create independent systems silos right and this could be for","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=260s"},{"start_seconds":267,"text":"organizational reasons each enterprise really needing leading their own systems regulatory reasons or just technological reasons right","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=267s"},{"start_seconds":275,"text":"service oriented architecture actually makes the choice very deliberately to decouple functionality as much as possible instead of get some sort of","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=275s"},{"start_seconds":282,"text":"composability so in short silos are created by multi-party applications applications in which multiple parties","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=282s"},{"start_seconds":291,"text":"interact but need or want to keep control of their own systems and records and these types of applications","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=291s"},{"start_seconds":299,"text":"absolutely everywhere both between organizations as well as within right sort of i've illustrated here very simplified view of the doctor's visit","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=299s"},{"start_seconds":307,"text":"patient visits hospital and there's an interaction with medical records registries insurance companies and banks that ultimately make the money","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=307s"},{"start_seconds":315,"text":"flow but then we can also go inside an organization like the insurance here where you have different units and systems for policy","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=315s"},{"start_seconds":322,"text":"administration claims and finance right so even in this highly simplified view you've already got about 10 10 silos or 10 parties that","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=322s"},{"start_seconds":331,"text":"need to interact here and the real pictures is much much worse and this is you know this exists and","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=331s"},{"start_seconds":338,"text":"healthcare and finance and supply chain really these multi-party application applications everywhere and you know don't need to take all this","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=338s"},{"start_seconds":345,"text":"from us let's iterate reiterate data and process silos are really the core technological challenge","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=345s"},{"start_seconds":353,"text":"for digital transformation got a nice quote from harvard business review here the our systems don't talk problem which","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=353s"},{"start_seconds":361,"text":"redevelops most companies and this anathema digital transformation leads to enormous process inefficiencies right","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=361s"},{"start_seconds":368,"text":"core problem in digital transformation secondly data silos are caused by parties acting","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=368s"},{"start_seconds":375,"text":"independently often for good reasons so there's a nice quote from gartner here businesses business units undertake data","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=375s"},{"start_seconds":383,"text":"analytics projects individually which results in data silos and inconsistent processes and then the third point i made","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=383s"},{"start_seconds":390,"text":"previously data and process silos are everywhere found this nice statistic via salesforce but according to the","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=390s"},{"start_seconds":398,"text":"american management association 83 percent of executives say the organizations have silos and 97 think they have a negative effect","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=398s"},{"start_seconds":408,"text":"now data and process silos are in my opinion really about business consensus right if","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=408s"},{"start_seconds":416,"text":"we could keep all these silos in perfect synchronization i.e achieve consensus i think there would actually","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=416s"},{"start_seconds":425,"text":"be no problem right and now an even mental image of the world actually matches that idea when we think of services in a service oriented architecture for example which","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=425s"},{"start_seconds":433,"text":"you know i consider parties on application in a business network we often think of that local state in each of the silos","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=433s"},{"start_seconds":441,"text":"somehow as being the local view of some global truths right so we think sort of the our our silos from some sort of nice landscape that synchronized with each","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=441s"},{"start_seconds":448,"text":"other there's some things exclusive to silos and some things that are synchronized but you all know that that isn't the truth right","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=448s"},{"start_seconds":456,"text":"that's naive mental image is false in reality each silo is completely independent right synchronized somewhere in the","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=456s"},{"start_seconds":465,"text":"business logic imperfectly and we get this very fuzzy image right where data is sort of colored by the silo it","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=465s"},{"start_seconds":473,"text":"lives in so there'll be there'll be data that is in multiple systems and is slightly different depending on which silo one looks at","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=473s"},{"start_seconds":484,"text":"and that imperfect synchronization takes a whole number of forms at the moment right so worst case it's manual we send emails maybe with an excel spreadsheet","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=484s"},{"start_seconds":493,"text":"attached maybe we manually type in data from a phone call or pdf and that typically happens between sort of between enterprises or the like","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=493s"},{"start_seconds":502,"text":"more and more we automate the stuff by some sort of messaging you know message queues enterprise service buses","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=502s"},{"start_seconds":509,"text":"direct api calls with json xml but really all of that is just fancy machine email right we really still just send","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=509s"},{"start_seconds":517,"text":"send messages that we interpret at each of these silos and lastly and this has this has been a trend over the last few years we try to","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=517s"},{"start_seconds":526,"text":"synchronize after the fact we put solutions on top of our stack right integration platforms uh that try to glue together processes","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=526s"},{"start_seconds":534,"text":"or all the data so as examples we have things like api integration platforms data warehouses or data lakes etc","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=534s"},{"start_seconds":542,"text":"and especially with those sort of analytics solutions like data lakes worst case sort of basically just throw everything into a big pot","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=542s"},{"start_seconds":550,"text":"and make the reconciliation the problem of the end user right if you want to analyze the data you scrape it out of the data lake and have to do your own","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=550s"},{"start_seconds":558,"text":"data sanitization and the point i'm sort of the main point is that none of these problems none of these sort of approaches","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=558s"},{"start_seconds":565,"text":"actually solve the synchronization problem at the foundation synchronization using any of these techniques really happens","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=565s"},{"start_seconds":572,"text":"close to this top of the software stack far away from where the actual data lives and that's","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=572s"},{"start_seconds":580,"text":"where damol comes in that's what we're trying to change with damo we're trying to really eliminate data and process silos in favor of","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=580s"},{"start_seconds":587,"text":"composable networks of seamlessly interconnected business now we need to give you an idea really","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=587s"},{"start_seconds":597,"text":"how we're thinking about this so to give you some idea of what i'll stumble is all talk about the","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=597s"},{"start_seconds":604,"text":"solution we're proposing in the abstract under the term virtual shared systems of record","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=604s"},{"start_seconds":612,"text":"what we're trying to do with tamil is really make the naive mental picture of multi-party applications that we saw earlier","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=612s"},{"start_seconds":619,"text":"reality right where those sort of the venn diagram overlapped nicely but we said silos exist for a reason so","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=619s"},{"start_seconds":627,"text":"what we're trying to achieve is that data is still physically at and controlled by individual parties a and b sort of","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=627s"},{"start_seconds":635,"text":"in their infrastructure but we want to guarantee that these local systems aren't kept these systems are kept","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=635s"},{"start_seconds":643,"text":"in sync automatically and securely so that for all intents and purposes in particular from the developers point of view","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=643s"},{"start_seconds":650,"text":"they are really just views into a global shared system and that's why i'm talking about a","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=650s"},{"start_seconds":657,"text":"virtual shared system of record virtual because it doesn't really exist this foundational layer is really an abstract concept that emerges from the","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=657s"},{"start_seconds":666,"text":"synchronization of these towers and shared because for all intents and purposes you can sort of pretend as if you're writing","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=666s"},{"start_seconds":674,"text":"to a shared system of record now most of the magic is in that phrase i just used","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=674s"},{"start_seconds":682,"text":"secure synchronization","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=682s"},{"start_seconds":689,"text":"right which we which we can now talk about so the first actually first of all sort of the in this picture","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=689s"},{"start_seconds":697,"text":"a and b somehow exclusively own some of the data and processes right indicated here in the in the dark and light blue","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=697s"},{"start_seconds":706,"text":"but some of the data and processes indicated in the black overlap here specify how amd interact with each other","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=706s"},{"start_seconds":714,"text":"somehow the interface between them that needs to be synchronized and it's there where that secure synchronization needs to take place","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=714s"},{"start_seconds":722,"text":"and with that we can really talk about what secure synchronization means it's the first i already scraped","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=722s"},{"start_seconds":730,"text":"straight over on the previous slide the first one is about data ownership we need to really specify","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=730s"},{"start_seconds":736,"text":"who owns a piece of data or process is it really under ace control is it under bees control","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=736s"},{"start_seconds":745,"text":"or is it something that needs to be co-owned jointly governed is it part of the interface","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=745s"},{"start_seconds":752,"text":"the second is that we need to permission the interactions between our two parties quite strongly right when when we are","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=752s"},{"start_seconds":760,"text":"interacting in this interface a and b need to have pre-agreed on the rules that concern the data and processes in","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=760s"},{"start_seconds":767,"text":"that overlap thirdly we need very good privacy properties right the the data and processes need to","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=767s"},{"start_seconds":776,"text":"be shared really on a strict need to know basis it is often even sort of a requirement that","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=776s"},{"start_seconds":782,"text":"a must never learn of these exclusive data or that b learns of a's exclusive data so these need to be really well isolated","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=782s"},{"start_seconds":791,"text":"from each other and the last is sort of isolation more on the on the security side right we really need to maintain that","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=791s"},{"start_seconds":800,"text":"that siloing that is the reason why people build silos in the first place parties mustn't be able to falsify each other's records","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=800s"},{"start_seconds":808,"text":"either through fault or malicious behavior or deny availability of the system right a","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=808s"},{"start_seconds":814,"text":"must be able to work on a's exclusive data you know no matter what b does","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=814s"},{"start_seconds":825,"text":"and to make this a bit more concrete what we are really proposing architecturally is this at a very high level most applications currently look","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=825s"},{"start_seconds":833,"text":"something like this you've got a data store a system of record on top of that you've got a bunch of business logic","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=833s"},{"start_seconds":841,"text":"and often written in general purpose languages like java.net and you've got you know some integrations or uis on top","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=841s"},{"start_seconds":850,"text":"and the synchronization that i mentioned before you know if it isn't manual on the ui level usually happens at the business logic","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=850s"},{"start_seconds":857,"text":"level right we have apis here connect to message queue or similar right so it's sort of not at the not at the data level what we are proposing","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=857s"},{"start_seconds":866,"text":"is that you enhance the database with a virtual shared system of record so you keep building your application","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=866s"},{"start_seconds":873,"text":"using your favorite technologies like java or javascript but instead of directly talking to a database you talk to the api of a virtual shared","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=873s"},{"start_seconds":883,"text":"system of record right that api uh wraps the local data store and exposes","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=883s"},{"start_seconds":890,"text":"data and processes as a view to this virtual shared system of records and again so we're trying to um","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=890s"},{"start_seconds":900,"text":"sort of give a really easy sort of mental model there so that api is really against","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=900s"},{"start_seconds":907,"text":"that global state so even though in reality you're talking to a local system that api feels as if you're talking to","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=907s"},{"start_seconds":914,"text":"this virtual shared system of record right and the important thing here is if we look at the two slides","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=914s"},{"start_seconds":922,"text":"next to each other the synchronization has moved from the sort of mid to top of the stack from the business logic","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=922s"},{"start_seconds":930,"text":"really into the into the data and process layer where sort of the crown jewels live","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=930s"},{"start_seconds":939,"text":"and we really see this as the natural evolution in the architecture of enterprise applications so if we look at this timeline uh we've moved","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=939s"},{"start_seconds":947,"text":"from entirely centralized models in the 80s and 90s mainframe mainframe uplift applications","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=947s"},{"start_seconds":955,"text":"to loosely connected models over the internet in the 2000s and 2010s to distributing our it infrastructure using cloud","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=955s"},{"start_seconds":963,"text":"services in the in the 10s and 20s we have iteratively broken down and decentralized our it silos","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=963s"},{"start_seconds":971,"text":"right now so we are now on decentralized servers the next logical step is to do the same with our data and processes","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=971s"},{"start_seconds":981,"text":"and virtual shared systems of record are the way to do so which give rise to what i call here composable architecture","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=981s"},{"start_seconds":989,"text":"now you may wonder how did i jump from what i've just presented to composable well basically we've so far always looked at the picture with","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=989s"},{"start_seconds":996,"text":"two parties a and b but hopefully it doesn't come as a surprise that the idea is to do this with many parties right and once you","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=996s"},{"start_seconds":1005,"text":"once you look at that multilateral situation solving the synchronization problem at the foundation in the way illustrated here with this global","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1005s"},{"start_seconds":1013,"text":"uh shared virtual system of record has a really quite nice consequence right on the virtual shared system of record","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1013s"},{"start_seconds":1021,"text":"the individual party silos compose into multi-party applications first bilateral then multilateral and","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1021s"},{"start_seconds":1028,"text":"those applications that compose in the same way into networks of applications and i'll go into much more depth on that later if you","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1028s"},{"start_seconds":1036,"text":"think back to the doctor's appointment example where we had lots of bilateral interaction right from the patient at the hospital hospital and the records registry and","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1036s"},{"start_seconds":1046,"text":"the patient and the insurance and so on all of these bilateral interactions come together into a","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1046s"},{"start_seconds":1053,"text":"coherent application on this sort of composable virtual set system of record and this is really just down to the fact","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1053s"},{"start_seconds":1062,"text":"that wherever part your application sort of views overlap and interface the data and processes are guaranteed to","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1062s"},{"start_seconds":1070,"text":"be in sync so the the composability really just comes for free so let me tie the sort of the what that","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1070s"},{"start_seconds":1080,"text":"we've just discussed the virtual shared system supply code back to the original section where i described the silo problem what do you","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1080s"},{"start_seconds":1087,"text":"get with a virtual shared system of record firstly you get that golden source of truth","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1087s"},{"start_seconds":1095,"text":"if you can access the views of multiple parties which can be multiple services or multiple teams you're guaranteed to be able to","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1095s"},{"start_seconds":1102,"text":"reconstruct the consistent whole so analytics data stores and other trails across your systems basically come for free right you can","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1102s"},{"start_seconds":1111,"text":"always construct um sort of always reconstitute a global truth secondly the manual reconciliation just","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1111s"},{"start_seconds":1119,"text":"disappears right this really opens the door to highly automatized digital business processes","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1119s"},{"start_seconds":1127,"text":"and thirdly your systems become composable at the foundation layer this allows so for much more dynamic and nimble adaptation","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1127s"},{"start_seconds":1136,"text":"where you can reassemble and extend functionality with ease and i'll talk about that in quite a bit more detail","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1136s"},{"start_seconds":1143,"text":"in the next section so so far this has all been very","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1143s"},{"start_seconds":1150,"text":"abstract i think so it's time to bring all this back down to earth and really give you a glimpse of the magic source and","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1150s"},{"start_seconds":1158,"text":"how how dumble is able to provide such a virtual shared system of record which we usually describe as a demo badger","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1158s"},{"start_seconds":1167,"text":"so so let's go back to the core concern of secure synchronization of these overlaps in views","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1167s"},{"start_seconds":1174,"text":"to just remind you those were about data ownership permissions and privacy now these need to be agreed","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1174s"},{"start_seconds":1182,"text":"upon by the parties that want to interact on these systems so this type of system actually needs a schema that describes those interactions","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1182s"},{"start_seconds":1191,"text":"really just like a database needs a data schema but a schema for a virtual shared system of record needs to capture all of these","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1191s"},{"start_seconds":1198,"text":"core concerns of secure synchronization so we actually need a much broader type of schema which in our case is the demo","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1198s"},{"start_seconds":1205,"text":"smart contract language so demo takes care of the data schema in line with databases","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1205s"},{"start_seconds":1212,"text":"but also of permissions in terms of ownership and read write access as well as the processes which describe","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1212s"},{"start_seconds":1219,"text":"how parties interact on the interfaces and modify that co-owned data and i think it's time we really look at","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1219s"},{"start_seconds":1228,"text":"one of these schemas in practice so the core concept in double is a template indicated here with a template keyword","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1228s"},{"start_seconds":1237,"text":"and it closely resembles a class in an object-oriented language a template has properties data","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1237s"},{"start_seconds":1247,"text":"properties that are stored on an instance of the template we've got something very similar to methods for those that","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1247s"},{"start_seconds":1255,"text":"have used them already we usually call these choices but you can really think of them as methods those methods have parameters with which","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1255s"},{"start_seconds":1264,"text":"you call them and once you call them there's business logic that gets executed now the state of a dummel ledger is","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1264s"},{"start_seconds":1272,"text":"simply a set of instances of such templates so if you're familiar with such things already you can really just think of tamil","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1272s"},{"start_seconds":1279,"text":"as an object store where the objects are instances of these templates","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1279s"},{"start_seconds":1286,"text":"but here comes the new part the properties of your of your templates","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1286s"},{"start_seconds":1293,"text":"really are your data schemas you can think of templates as tables and these properties as columns right","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1293s"},{"start_seconds":1301,"text":"you may be familiar from other language ecosystems with uh sort of object database methods for example microsoft's entity framework","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1301s"},{"start_seconds":1308,"text":"but here there's actually no real translation to sql in the same way really dumble is your main schema","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1308s"},{"start_seconds":1315,"text":"language and you actually store instances of these objects on your on your data store","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1315s"},{"start_seconds":1322,"text":"the second really new aspect is that permissions really permeate every aspect of these templates","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1322s"},{"start_seconds":1329,"text":"we've got a signatory clause here which is all about data ownership we've got an observer clause here which","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1329s"},{"start_seconds":1336,"text":"is all about read access and we've got a controller clause here which is all about method access ie write access","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1336s"},{"start_seconds":1347,"text":"the third new part here is that the methods on these things are really your primary apis","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1347s"},{"start_seconds":1356,"text":"they are both how you interact with the system of record from the outside world from your business application but also how you","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1356s"},{"start_seconds":1363,"text":"assemble complex business logic within demo how you compose these objects into more complex logic","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1363s"},{"start_seconds":1371,"text":"that's where you get to the last part the method bodies different to what you might be used from.net","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1371s"},{"start_seconds":1377,"text":"or or java are pure meaning they have no sort of no real side effects they're deterministic","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1377s"},{"start_seconds":1386,"text":"and they allow the atomic composition of other actions i.e other api calls i'll go into that in more detail","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1386s"},{"start_seconds":1393,"text":"later but we can see several examples of that here where exercise indicates a call to another","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1393s"},{"start_seconds":1400,"text":"method now because the instances of these templates encapsulate really the mutual agreement","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1400s"},{"start_seconds":1408,"text":"on permissions and processes we don't typically call them objects but contracts because they're really a contract","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1408s"},{"start_seconds":1416,"text":"of how we interact between multiple parties and it is the deterministic nature of these methods and the atomic execution","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1416s"},{"start_seconds":1424,"text":"that are key to the system as a whole if you think about it if you can establish consensus","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1424s"},{"start_seconds":1431,"text":"on the order and validity of api calls you know in this case uh you know these","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1431s"},{"start_seconds":1437,"text":"these onboarding calls you get the rest for free because from from the api calls the order and the validity","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1437s"},{"start_seconds":1445,"text":"you can deterministically just rerun all the logic to get to the final state of your system and that's why the demo virtual shared","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1445s"},{"start_seconds":1453,"text":"system of record is at the core and event block and i've illustrated that here using a cache issuance and transfer application","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1453s"},{"start_seconds":1463,"text":"the system ensures that each party in this case we see we see amicia keeps mutually consistent and valid","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1463s"},{"start_seconds":1471,"text":"event blocks and these can always be joined together into a virtual shared event block all right so we've got amy's event back here","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1471s"},{"start_seconds":1479,"text":"where she sees events that affect her right so the fed issued to a hundred dollars tom transferred her fifty dollars and","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1479s"},{"start_seconds":1488,"text":"then she transferred eighty dollars back to prom and we can guarantee that if you had amy's","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1488s"},{"start_seconds":1495,"text":"event blog and um tom's event blog and the pets event blog and the bank of england's event block here","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1495s"},{"start_seconds":1502,"text":"you could reconstitute those into a consistent virtual shared event block","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1502s"},{"start_seconds":1509,"text":"here indicated with which parties see see which of these events and from those event blocks both the sort of the","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1509s"},{"start_seconds":1517,"text":"concrete local version as well as the reconstituted virtual version you can get to the system state right from the","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1517s"},{"start_seconds":1524,"text":"issuance and transfer events you can get to balances both in terms of the local view as well as","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1524s"},{"start_seconds":1532,"text":"a consistent virtual global view and the demo language and execution","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1532s"},{"start_seconds":1539,"text":"model are really all about ensuring that the consistent ordering and validity of these individual parties","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1539s"},{"start_seconds":1547,"text":"use guarantees global consistency and that is the sort of the not so secret ingredient to the magic sauce we call that the dummel ledger","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1547s"},{"start_seconds":1555,"text":"model which is open source you can and very well document it you can look at that online","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1555s"},{"start_seconds":1563,"text":"and that design as a whole allows the demo architecture to actually resemble that of the abstract virtual shared system of record that i showed","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1563s"},{"start_seconds":1572,"text":"earlier very closely the party's local system is a component that we call","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1572s"},{"start_seconds":1580,"text":"a participant which really consists of a stock database usually postgresql oracle wrapped in an","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1580s"},{"start_seconds":1587,"text":"api called the demo ledger api which exposes parties events event blocks and state you know to the","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1587s"},{"start_seconds":1595,"text":"parties which of course as i showed in the previous night i had the same time their view into that virtual sort of","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1595s"},{"start_seconds":1603,"text":"shared event block are either the virtual shared system of record the big difference to the abstract picture is that the virtual shared","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1603s"},{"start_seconds":1610,"text":"system of record is here replaced with an actual concrete consensus and synchronization layer which makes sure that the ledger updates are made","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1610s"},{"start_seconds":1619,"text":"atomically and consistent right so somehow the database interacts with synchronization services which go into a shared consensus and","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1619s"},{"start_seconds":1627,"text":"synchronization layer which then makes sure that everything works as it should and because that's the role of that synchronization layer it's really","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1627s"},{"start_seconds":1635,"text":"reduced to ordering and validity consensus there are many many types of systems that can solve this and with dummle we can abstract that","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1635s"},{"start_seconds":1644,"text":"away pretty much completely and that is through a sort of a product we call them drivers these exist for","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1644s"},{"start_seconds":1652,"text":"centralized databases um you know if you just want to synchronize between services in one end enterprise","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1652s"},{"start_seconds":1660,"text":"you don't need all the sort of the the low trust properties of blockchains or dlts but we also um","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1660s"},{"start_seconds":1668,"text":"have drivers for blockchains for distributed ledger technologies for cloud platforms and so on there's a sort of an overview","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1668s"},{"start_seconds":1676,"text":"here of all the drivers that we've got and the idea is that you pick these really entirely on your non-functional requirements on the scalability","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1676s"},{"start_seconds":1684,"text":"the resilience and the trust context you always get the same double ledger api i.e the same sort of virtual shared system of","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1684s"},{"start_seconds":1691,"text":"record from your participant so the applications that you develop on top don't need to worry at all what sort of driver they run on from an","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1691s"},{"start_seconds":1700,"text":"application perspective the drivers are entirely interchangeable which then also removes the lock-in to these underlying technologies you're no","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1700s"},{"start_seconds":1707,"text":"longer tied to a fabric blockchain or an ethereum blockchain or you know any of these other systems","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1707s"},{"start_seconds":1715,"text":"and we sometimes parrot the java mantra here right once right once run anywhere","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1715s"},{"start_seconds":1724,"text":"but we don't stop there we don't just stop at the ledger api we want to make it as easy as possible to integrate dumble into existing systems","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1724s"},{"start_seconds":1732,"text":"or indeed build entirely new applications on top of thermal edges so we've got this suite called demo connect","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1732s"},{"start_seconds":1739,"text":"on the one side demo connect is a suite of developer tools uh both to develop demo code but also the client applications that consume the","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1739s"},{"start_seconds":1748,"text":"ledger api but probably more importantly we're building out an entire application stack with which","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1748s"},{"start_seconds":1756,"text":"we aim to generically solve the most common integration automation and presentation tasks our aim with this stack is that many","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1756s"},{"start_seconds":1764,"text":"applications actually require no custom backend components at all but simply configure and deploy demo connect as the backend that is not","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1764s"},{"start_seconds":1774,"text":"to say uh that this is a world garden the idea is that one can take as much or as little of this stack as one once it provides numerous public apis","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1774s"},{"start_seconds":1783,"text":"throughout and the components internally only communicate via those and then sort of the last","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1783s"},{"start_seconds":1791,"text":"offering you can get from us which is again really in the spirit of making it as easy as possible to build on demo and we've got our demo hub managed cloud","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1791s"},{"start_seconds":1799,"text":"offering which tries to take care of the whole operational side it's basically a fully managed cloud platform for demo where you get all the functionality of","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1799s"},{"start_seconds":1808,"text":"democonnect plus a driver with some value-add integrations and application templates and i like to think of it as","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1808s"},{"start_seconds":1816,"text":"serverless double adjusted applications so to recap the demo ecosystem as a whole","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1816s"},{"start_seconds":1824,"text":"we've got demo drivers which wrap up an underlying database blockchain or dlt so it can act as the synchronization or","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1824s"},{"start_seconds":1831,"text":"consensus layer for bummer ledger you have the participant node which exposes the dhamma ledger api which is","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1831s"},{"start_seconds":1838,"text":"completely uniform across all demo dialers on top of that you've got demo connect which contains everything you need to","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1838s"},{"start_seconds":1846,"text":"build test and deploy applications on top of such a demo ledger and you've got double hub which","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1846s"},{"start_seconds":1854,"text":"offers the whole stack in a fully managed environment and really the whole stack is driven by this schema smart contracts it doesn't just","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1854s"},{"start_seconds":1862,"text":"determine what happens on ledger but through code generation and dynamic api is really it predetermines a lot of the functionality","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1862s"},{"start_seconds":1870,"text":"you get from this entire stack so there's a lot of a lot of code reuse now it's important to note here that the","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1870s"},{"start_seconds":1878,"text":"majority of this technology is free and open source um uh drivers and connect actually have community editions that are","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1878s"},{"start_seconds":1886,"text":"open source demo hub has a free tier that you can use to get your application off the ground and all of this is supported by a fairly","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1886s"},{"start_seconds":1894,"text":"lively community on the demo forums um which is a really nice space","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1894s"},{"start_seconds":1901,"text":"now at this point what i've shown you actually only demonstrates how we're able to provide a virtual shared system of record which inherently","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1901s"},{"start_seconds":1910,"text":"solves the data and process synchronization problem which gives you two of the three benefits i touted earlier right a golden source of truth","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1910s"},{"start_seconds":1919,"text":"and reconciliation-free processes so we'll have a quick look now at the how of the key third benefit","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1919s"},{"start_seconds":1927,"text":"i talked about already which is composability and for that the example i want to take a look at is a","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1927s"},{"start_seconds":1935,"text":"sort of a simple one which is we imagine we have two independent applications running already one to transfer cache from one person to","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1935s"},{"start_seconds":1942,"text":"another a and b here have the cache models uh and one which allows user to record ious","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1942s"},{"start_seconds":1948,"text":"ious as you just mean i owe someone some cash right it's a record of owing money and what we would like to","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1948s"},{"start_seconds":1956,"text":"do is to compose these two apps into a slightly more complex loan application one in which a lender can swap cash","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1956s"},{"start_seconds":1965,"text":"for an iou from a borrower what we need to do here is to add first of all add a new schema","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1965s"},{"start_seconds":1973,"text":"right new double templates which we usually refer to as a demo contract a demo model now the loan schema here","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1973s"},{"start_seconds":1981,"text":"depends on both the cash schema as well as the iou schema because of course issuing a loan involves a cash transfer","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1981s"},{"start_seconds":1989,"text":"and the issuance of a loan or redemption of a sorry issuance of an iou the consistency","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1989s"},{"start_seconds":1997,"text":"properties of the dummel ledger which again sort of that's only on the black overlaps here already guarantee that where the cache interacts","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=1997s"},{"start_seconds":2006,"text":"everything is in sync whether i use interact everything in sync so by putting on top here the loan schema we suddenly get","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2006s"},{"start_seconds":2013,"text":"synchronization guarantees between cash and loans and between iou and loans and between the loans of different parties right so by","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2013s"},{"start_seconds":2023,"text":"entering into a loan we're actually suddenly forcing synchronization between iu and cash which wasn't there before in other words","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2023s"},{"start_seconds":2031,"text":"we have connected or composed these two previous applications and this is done primarily by composing","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2031s"},{"start_seconds":2039,"text":"the processes governing those right i've indicated that here sort of with a sort of a mock a mock loan template really executing a","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2039s"},{"start_seconds":2048,"text":"loan means atomically transferring cash in exchange for the issuance of an iou and we can see that very clearly in the","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2048s"},{"start_seconds":2056,"text":"code here we've got this method or choice called grant which means granting the loan","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2056s"},{"start_seconds":2065,"text":"which takes as a parameter some cash and i've noticed a typo there need to fix that um and what happens","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2065s"},{"start_seconds":2072,"text":"in this of the business logic here which is very abbreviated to keep it clear is we exercise a transfer from","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2072s"},{"start_seconds":2080,"text":"the lender to the borrower and we create an iou i issue an iou","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2080s"},{"start_seconds":2088,"text":"and then mark the uh mark the uh the the loan as granted","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2088s"},{"start_seconds":2097,"text":"and this is where the atomicity of this composition really comes in we can guarantee that whenever a loan is granted","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2097s"},{"start_seconds":2105,"text":"the transfer and the iou happen together or not at all and that is where the synchronization comes in","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2105s"},{"start_seconds":2113,"text":"we can now guarantee that the ius and the cash used in in loans always have","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2113s"},{"start_seconds":2121,"text":"both sides on ledger the last thing we need to make sure is that all this translates into client application composition and","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2121s"},{"start_seconds":2130,"text":"this is actually done architecturally the lender and seller applications are independent and don't communicate","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2130s"},{"start_seconds":2137,"text":"directly here so we've got a's and b's cache apps and a's and b's iou apps uh all communication happens through the","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2137s"},{"start_seconds":2146,"text":"virtual shared system of record so just like synchronization of this of the data on the virtual shared system of record","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2146s"},{"start_seconds":2153,"text":"just required a new schema extending our client application landscape here simply means adding new loan and","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2153s"},{"start_seconds":2162,"text":"well new new loan applications for a and b right so composition with demo is really an","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2162s"},{"start_seconds":2169,"text":"additive exercise and that is the general theme of composability right to compose two applications","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2169s"},{"start_seconds":2176,"text":"we just add a new one which connects data and processes through a new schema that synchronizes at key points in the processes","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2176s"},{"start_seconds":2184,"text":"and this is what brings the third benefit of sort of dynamically composable business processes and applications","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2184s"},{"start_seconds":2191,"text":"now i'm almost done but i'm going to call myself out here i cheated slightly in the last section because i made a quiet assumption that","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2191s"},{"start_seconds":2199,"text":"maybe some of you have noticed which is that the cache application and the iou application live on the same virtual shared system","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2199s"},{"start_seconds":2207,"text":"of record and you are all familiar with enterprise software things rarely live on the same it","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2207s"},{"start_seconds":2214,"text":"infrastructure so we have to make the assumption that actually the original applications we want to compose","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2214s"},{"start_seconds":2222,"text":"cache and iu may live on different demo ledgers well this is where the second sort of","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2222s"},{"start_seconds":2230,"text":"composability comes in which i like to call network composability and this idea of them being on different","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2230s"},{"start_seconds":2239,"text":"dummel ledgers basically we're just saying that doesn't exist conceptually we think of all dumbell applications in the world","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2239s"},{"start_seconds":2247,"text":"living on the same virtual shared ledger whether it's actually possible to connect or compose two applications","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2247s"},{"start_seconds":2255,"text":"using the techniques i showed you previously really depends on whether the parties involved in transactions share sufficient synchronization infrastructure to make","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2255s"},{"start_seconds":2264,"text":"this concrete with the previous example imagine we had cash transaction synchronized on the on the fabric domain here iu","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2264s"},{"start_seconds":2273,"text":"synchronized on the postgres domain here if the lender and seller are both","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2273s"},{"start_seconds":2282,"text":"participating in both applications are thus connected to both synchronization layers","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2282s"},{"start_seconds":2289,"text":"they can still compose these this transaction into into loans in short these two networks as long as","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2289s"},{"start_seconds":2298,"text":"the individual parties share enough sort of connections they form the same or at a single double ledger from the point of view of the","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2298s"},{"start_seconds":2307,"text":"participating parties now this sort of network composability is currently in alpha as part of what we call the canton","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2307s"},{"start_seconds":2314,"text":"protocol you can already download this you can try it but it's not quite ready for for enterprise production use but this","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2314s"},{"start_seconds":2323,"text":"is really where the development with dumbledore is going to really form this more global coherent picture","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2323s"},{"start_seconds":2331,"text":"and that gives you a glimpse into where the journey is going with tamil uh we're delivering value today providing these virtual shared systems","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2331s"},{"start_seconds":2339,"text":"of record on a range of different synchronization technologies and in doing so we're eliminating the core problem caused by data and process silos","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2339s"},{"start_seconds":2348,"text":"but it's the composability of those networks that hints at our vision for the future which is building a global economic","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2348s"},{"start_seconds":2355,"text":"network of really seamlessly interconnected businesses where you know different financial institutions can really transact","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2355s"},{"start_seconds":2362,"text":"not only across regional and organizational boundaries but also these network boundaries","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2362s"},{"start_seconds":2370,"text":"and with that i will i think i'm already quite a bit over time i don't know when we started so i'll stop here","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2370s"},{"start_seconds":2378,"text":"thanks for listening awesome thank you bernard","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2378s"},{"start_seconds":2386,"text":"this is a great presentation and no worries for going a little over we've got uh plenty of time","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2386s"},{"start_seconds":2393,"text":"so anyway i'm gonna share my screen in a moment let me just move a couple windows around and yeah if anybody has any questions","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2393s"},{"start_seconds":2402,"text":"for me or bernhard in between or at any other point you know feel free feel free to ask","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2402s"},{"start_seconds":2410,"text":"so one second so i can set up here","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2410s"},{"start_seconds":2436,"text":"apology i don't know where my speaker notes have","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2436s"},{"start_seconds":2451,"text":"i'm gone","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2451s"},{"start_seconds":2467,"text":"oh there they are okay now we're good to go","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2467s"},{"start_seconds":2476,"text":"share my screen all right everybody can see my screen","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2476s"},{"start_seconds":2486,"text":"all right yes all right perfect","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2486s"},{"start_seconds":2494,"text":"okay so um this is a fairly interactive session","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2494s"},{"start_seconds":2501,"text":"so i am going to ask audience questions uh during it and so","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2501s"},{"start_seconds":2508,"text":"please you know don't be shy if you um i also have answers to every question that i'm going to ask so if everybody is shy","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2508s"},{"start_seconds":2516,"text":"we don't have to worry there either and some people were joining earlier and uh may not have got in my","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2516s"},{"start_seconds":2523,"text":"introduction so i'll just reintroduce myself again my name is anthony lucerti i am a developer advocate at digital asset working on demo","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2523s"},{"start_seconds":2532,"text":"and from day to day i'm just trying to show people demo and get them interested and uh kind of explain what's what's","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2532s"},{"start_seconds":2539,"text":"interesting about it and also you know talk honestly about what the positives and negatives are what the tradeoffs are and different","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2539s"},{"start_seconds":2547,"text":"types of designs around these around these systems because there's always so many things to to consider whenever we're designing any sort of application","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2547s"},{"start_seconds":2556,"text":"so today i'm going to be showing you utxo and account models basically the good the bed and the costly","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2556s"},{"start_seconds":2564,"text":"so this is going to cover the two major types of designs that we often","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2564s"},{"start_seconds":2572,"text":"consider when we're talking about multi-party applications blockchains that type of thing and i'm going to also be painting with","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2572s"},{"start_seconds":2581,"text":"very broad strokes so even a single real world implementation of either of these types of concepts","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2581s"},{"start_seconds":2590,"text":"with the specificity that would be necessary to understand how that particular implementation works","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2590s"},{"start_seconds":2597,"text":"would take far far longer than the time we have allotted so as such everything that i'm going to talk about in the first half","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2597s"},{"start_seconds":2606,"text":"is going to be very general there's exceptions to every role here and i really just want to describe how these generally behave because you can","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2606s"},{"start_seconds":2615,"text":"take that general knowledge about it and really apply it to a lot of things but in the second half i am going to dive a little more into the technicals","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2615s"},{"start_seconds":2623,"text":"and specifics of these two models in some real life examples and kind of demonstrate what the positives and negatives","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2623s"},{"start_seconds":2630,"text":"are there in a specific one so first question i have for the audience","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2630s"},{"start_seconds":2637,"text":"is uh what is a utxo and what is an account model i just kind of want to gauge knowledge here so you know feel free","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2637s"},{"start_seconds":2646,"text":"to unmute yourself or type it in the chat i just want to understand where everybody is at right now when it comes to","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2646s"},{"start_seconds":2654,"text":"comes to these models and if you don't know then it's fine to say that as well","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2654s"},{"start_seconds":2668,"text":"all right so i'm going to take the silence as you know we're all here to learn them","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2668s"},{"start_seconds":2675,"text":"so a utxo or end account model both of them are any system of accounting or state management","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2675s"},{"start_seconds":2683,"text":"and where they differ is how they manage that accounting or state management in a utxo model every","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2683s"},{"start_seconds":2691,"text":"entry depends on previous entries and so a new entry will consume a previous entry such that the prior entry can no longer","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2691s"},{"start_seconds":2699,"text":"be be used uh this is similar to for example a dollar if i were to give you uh cash then","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2699s"},{"start_seconds":2708,"text":"you would take the cash from me and i would no longer have the cash and i couldn't spend it again oh and avalash just mentioned","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2708s"},{"start_seconds":2716,"text":"that bitcoin uses utxo and ethereum uses accounts yes this is a great point and is actually something that i'll talk","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2716s"},{"start_seconds":2725,"text":"a little bit about later but actually all of our systems largely derive uh from from these original models","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2725s"},{"start_seconds":2733,"text":"though there are some account models that i think existed before ethereum but not not so much in popularity","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2733s"},{"start_seconds":2741,"text":"and as far as the account side uh on the account side they","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2741s"},{"start_seconds":2749,"text":"tend to work more of how we imagine these things work in real life and that is they you're perpetually updating","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2749s"},{"start_seconds":2757,"text":"existing entries such that they can be accessed again in the future and so what i mean by that is something that you would think of","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2757s"},{"start_seconds":2764,"text":"like a bank account or a credit card is that you can give the same account number the same credit card number over and over again","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2764s"},{"start_seconds":2772,"text":"and more and more money can be taken out of it or uh the same account can be referenced in any sort of way","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2772s"},{"start_seconds":2779,"text":"for everything and so now to kind of think about it","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2779s"},{"start_seconds":2786,"text":"uh does anybody know i kind of actually gave it away so maybe i'll skip this question but there are","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2786s"},{"start_seconds":2792,"text":"lots of examples of non-blockchain utxon account models uh like i touched on before the rough","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2792s"},{"start_seconds":2801,"text":"analogs of these things are things like cash and bank accounts and they've existed for","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2801s"},{"start_seconds":2808,"text":"quite a lot of time utxos have largely existed in the form of divisible and fundable","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2808s"},{"start_seconds":2816,"text":"bearer instruments so that's cash coins gold and all that and it counts in the form of various types of leisure","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2816s"},{"start_seconds":2823,"text":"ledgers that involve either single or double double entry bookkeeping so debt ious bank deposits uh","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2823s"},{"start_seconds":2830,"text":"these interesting very old things called bullet and things like credit card accounts that","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2830s"},{"start_seconds":2837,"text":"are also fall under the account models and it's in the name and when it comes to public blockchains","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2837s"},{"start_seconds":2846,"text":"and private blockchains as well uh or these other types of ledgers where we're recording these things you can kind of imagine that","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2846s"},{"start_seconds":2854,"text":"the utxo side is very much these discrete units and the account side are these more general units and belay even though i have them under","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2854s"},{"start_seconds":2863,"text":"accounts they're kind of somewhere in between uh they're the these very interesting though double entry accounting where","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2863s"},{"start_seconds":2871,"text":"as you can see there's these little bones or rocks and there's this clay ball on the left","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2871s"},{"start_seconds":2879,"text":"and what people would do is they would use these little rocks to uh to basically encode","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2879s"},{"start_seconds":2887,"text":"rights and obligations and so the rocks would uh encode somebody's rights and the outside impressions would","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2887s"},{"start_seconds":2894,"text":"encode somebody's obligations and you can actually combine these two things so you would take the clay when it was soft","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2894s"},{"start_seconds":2901,"text":"press them in and then put these little rocks inside the clay and let it dry and now you suddenly have this","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2901s"},{"start_seconds":2908,"text":"thing that you can't forge the outside of it and change what it says on the inside and whenever a debt comes due you can actually break it open","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2908s"},{"start_seconds":2915,"text":"uh and have it come due and this is just a very interesting model that there's some resemblance there","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2915s"},{"start_seconds":2923,"text":"to the utxo side as well and so it's a great demonstration of the very","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2923s"},{"start_seconds":2930,"text":"funky nature of these things how utx sales can sometimes look like accounts and accounts can sometimes look like utxos","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2930s"},{"start_seconds":2937,"text":"um and it's just something to keep in mind as we go through this but i thought it was a really excellent you uh","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2937s"},{"start_seconds":2944,"text":"real world example of these things and so that's kind of what the real life ones are and so","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2944s"},{"start_seconds":2953,"text":"there's you know there's good and bad aspects of these models in the real world on the good side for utxos","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2953s"},{"start_seconds":2961,"text":"is that once you the utxo versions is that you get you know a high degree of privacy you have a high degree of","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2961s"},{"start_seconds":2971,"text":"fungibility uh you have very much easy guarantees that once something is transacted","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2971s"},{"start_seconds":2978,"text":"there's no going back on it you know transactions essentially happen once on accounts they tend to be you know","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2978s"},{"start_seconds":2985,"text":"fairly simpler to reason about and they are generally easier to reference because you just reference the same account over and over again instead","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2985s"},{"start_seconds":2993,"text":"of referencing different stacks of coins or or dollars or that type of thing and one other interesting thing to think","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=2993s"},{"start_seconds":3002,"text":"about is that when it comes down to accounts we actually see accounts everywhere not just in finance but we see them for example there you have social media","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3002s"},{"start_seconds":3011,"text":"accounts and email accounts and all that that really are somewhat similar in those models because you have these things that","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3011s"},{"start_seconds":3019,"text":"you can go ahead and reference uh differently and also if anybody has any other thoughts on what the positives","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3019s"},{"start_seconds":3027,"text":"and negatives are of these then then feel free to just you know put them in the chat or mute yourself and feel free to interrupt","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3027s"},{"start_seconds":3036,"text":"and so now we're going to talk just about blockchain so we could or rather multi-party systems is what i should be saying","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3036s"},{"start_seconds":3043,"text":"and so can some buddy maybe mention in the chat or over here uh","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3043s"},{"start_seconds":3050,"text":"over voice you know what are some examples of utxo and account model based blockchains uh in your mind","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3050s"},{"start_seconds":3058,"text":"and if if not i mean avalanche actually mentioned earlier that bitcoin uses utxo and ethereum uses accounts","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3058s"},{"start_seconds":3066,"text":"and this is exactly correct you know the first we have quite a few of them and the first real digital ut excel design","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3066s"},{"start_seconds":3075,"text":"kind of came through bitcoin uh and in this system you have a wallet where you have one or more addresses that can receive one or","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3075s"},{"start_seconds":3083,"text":"more utxos and spend them later and so along with some more critical parts of its design that enable people to freely and","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3083s"},{"start_seconds":3091,"text":"trustlessly transact money on the internet without any intermediary uh this invention in ut excels","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3091s"},{"start_seconds":3099,"text":"in the part of the utxos has really very much continued to spark considerable interest because it has a lot of","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3099s"},{"start_seconds":3108,"text":"other consequences that we'll see on accounting models and on safety","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3108s"},{"start_seconds":3114,"text":"and on how to do very good multi-party systems uh and then after bitcoin you know we","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3114s"},{"start_seconds":3122,"text":"saw many more clones of this model and then we also have accounts and on the account side really like one of the largest things we saw","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3122s"},{"start_seconds":3130,"text":"was ethereum where it was it made for much easier arbitrary state access uh","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3130s"},{"start_seconds":3138,"text":"and code execution but it also led to a lot of","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3138s"},{"start_seconds":3145,"text":"bugs and very interesting things to think about that were kind of contrary to how we normally when we're dealing with shared systems","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3145s"},{"start_seconds":3153,"text":"we normally want to think of them as non-shared systems where we're in charge of the entire execution of them","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3153s"},{"start_seconds":3160,"text":"and thus our bugs are only dependent on what we do or enable in the system and that actually turns out","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3160s"},{"start_seconds":3168,"text":"to not always be true and so i'll go into that a bit but you know we have tons of other utxo examples um","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3168s"},{"start_seconds":3175,"text":"we've got fabric double encoder that i've listed here demo of course runs on top of almost anything but implements utxos in and of itself","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3175s"},{"start_seconds":3184,"text":"and then on the account side we also have best on fabric i've actually put fabric in both because this is another great demonstration of how you can do both","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3184s"},{"start_seconds":3192,"text":"fabric is largely just key value store so you can implement either type of model on top of it","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3192s"},{"start_seconds":3199,"text":"corda generally sticks to a utxo model at its base layer but again has other parts that could be considered more","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3199s"},{"start_seconds":3207,"text":"accounts so these things are fairly uh fungible and enough themselves or interchangeable in some ways","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3207s"},{"start_seconds":3214,"text":"and so on the technical side we have quite a lot of positives and negatives of utxos","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3214s"},{"start_seconds":3223,"text":"and it's all right if you don't know these um so i'm just gonna go go through them a bit","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3223s"},{"start_seconds":3230,"text":"and obviously these also um some of these things are debatable and so if you have any debates on them","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3230s"},{"start_seconds":3238,"text":"you know feel free to interrupt and discuss because there are quite a lot of things here and so on the utxo model","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3238s"},{"start_seconds":3247,"text":"on the good side we can say well they're more private by default if i give bernhard for example or deepak","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3247s"},{"start_seconds":3255,"text":"a utxo only me and bernhard need to care about the utxo","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3255s"},{"start_seconds":3261,"text":"however in an account model if i were to be spending from one account to another uh every other account would also need to","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3261s"},{"start_seconds":3269,"text":"be somewhat aware of this transaction so that they can make sure i wasn't spending more than i had um that's not the case in a","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3269s"},{"start_seconds":3277,"text":"utxl model you can also prune the state significantly for that same reason because every unit is discrete once it's used that's it","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3277s"},{"start_seconds":3285,"text":"it can't it doesn't need to be used again and if you see it again it's obviously invalid uh there's a general","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3285s"},{"start_seconds":3293,"text":"lack of arbitrary state access which is again somewhat related to this and that just removes a huge class of bugs you know you don't have out of order","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3293s"},{"start_seconds":3301,"text":"execution issues and you don't have other issues that we'll see later as well when i walk through the demonstration","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3301s"},{"start_seconds":3310,"text":"and you also i i'll skip this next point but um you also get parallelizable operations because every","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3310s"},{"start_seconds":3319,"text":"every um entry is discrete uh you can run multiple entries in parallel as long as they don't interact with each other","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3319s"},{"start_seconds":3326,"text":"on the good side of the account model is you tend to and some people would argue this get smaller packets over the wire","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3326s"},{"start_seconds":3334,"text":"which theoretically uh means less storage for your data and you also","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3334s"},{"start_seconds":3343,"text":"oh sorry can we just uh you also um get much more easy arbitrary state","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3343s"},{"start_seconds":3352,"text":"access so sometimes it's very tempting to you know you want to have the","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3352s"},{"start_seconds":3360,"text":"best kind of i don't want to put this you want you want to be able to write the richest application with the least amount","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3360s"},{"start_seconds":3369,"text":"of things in your way and the account model is really good at that of course having no safety guards can","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3369s"},{"start_seconds":3377,"text":"sometimes be a very bad thing and we'll we'll see that in a little bit um but it is from some perspective","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3377s"},{"start_seconds":3384,"text":"a positive and also account models really closely approximate how users and programmers think about","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3384s"},{"start_seconds":3392,"text":"these these types of things because that's how we envision the world and that makes reasoning about them","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3392s"},{"start_seconds":3400,"text":"a good deal easier there is always that little bit of of thinking you have to first accomplish in order to get more","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3400s"},{"start_seconds":3409,"text":"comfortable with the utxo model whereas the account model comes a lot more intrinsically i think that's what attracts a lot of people to it at first","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3409s"},{"start_seconds":3417,"text":"now on the bad side uh utxos constantly need to manage contention uh like i said before you can only spend","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3417s"},{"start_seconds":3425,"text":"one once so if two transactions simultaneously use the same one when you're actually trying to consume one of them","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3425s"},{"start_seconds":3433,"text":"then you're going to end up in a place where you where you kind of","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3433s"},{"start_seconds":3440,"text":"have to figure out which one goes through and which one doesn't and the good news is that only one of them goes through but you still have to","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3440s"},{"start_seconds":3448,"text":"figure that out and you also have to learn a new way to reason about the structure of your programs and you also often end up with larger","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3448s"},{"start_seconds":3457,"text":"transaction sizes because sometimes like if i had a 20 bill and a 10 bill and i wanted to spend 30","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3457s"},{"start_seconds":3465,"text":"i have to combine them both and that is a larger uh transaction size because i have two things then compared to","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3465s"},{"start_seconds":3472,"text":"a credit card number where i have one thing and that that's the type of thing that you have to sometimes consider","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3472s"},{"start_seconds":3479,"text":"but it's generally not too too big of a deal in most cases on the account model side you know you get less available to stay","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3479s"},{"start_seconds":3488,"text":"pruning because you have to every account basically exists into perpetuity uh you never know when one's going to be","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3488s"},{"start_seconds":3496,"text":"accessed or and by whom um arbitrary state access creates a lot of opportunity for bugs as we'll see in","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3496s"},{"start_seconds":3503,"text":"a little bit and you also get reordering bugs and other things in there you tend to get less privacy because again","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3503s"},{"start_seconds":3512,"text":"everybody needs to know about every other transaction to some degree in order to make sure that you're not trying to","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3512s"},{"start_seconds":3519,"text":"do something that you aren't allowed to do and uh this also reduces down to single threaded","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3519s"},{"start_seconds":3526,"text":"uh operation so in an account model every transaction coming in basically for the most part i'm sure there are","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3526s"},{"start_seconds":3535,"text":"more advanced designs out there but speaking generally has to pause the execution of every other person's transactions","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3535s"},{"start_seconds":3544,"text":"commit that that transaction and then go on to the next one and can't really do much about that because the order of transactions","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3544s"},{"start_seconds":3552,"text":"and the fact that you can affect any part of the global application state just necessitate that you have a single threaded operation","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3552s"},{"start_seconds":3561,"text":"and so that was the most uh in-depth technical slide and now let's move on to actual real world examples","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3561s"},{"start_seconds":3568,"text":"so at their most basic these models are just a way to reference data within","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3568s"},{"start_seconds":3574,"text":"a ledger uh more commonly they are kind of the address of an application and its","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3574s"},{"start_seconds":3583,"text":"associated data and realistically these two things can somewhat behave identically to each other if you program hard enough","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3583s"},{"start_seconds":3591,"text":"in order to do that but in practice they don't and so in utxos what we generally see on the left is that","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3591s"},{"start_seconds":3599,"text":"each discrete contract has its own utxo and within it the account model each generalized contract","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3599s"},{"start_seconds":3606,"text":"has its own address uh one thing to note here too is that i am presenting very simplified models here","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3606s"},{"start_seconds":3614,"text":"so these when you're looking at them know that the things that i'll be talking about","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3614s"},{"start_seconds":3622,"text":"they they can get a lot more complex and they can leak a lot more information","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3622s"},{"start_seconds":3629,"text":"than you would expect given this this small set of information","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3629s"},{"start_seconds":3637,"text":"and anat did you have a question","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3637s"},{"start_seconds":3644,"text":"okay uh so now i kind of want to think about some problems that can arise from these models like side channel","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3644s"},{"start_seconds":3652,"text":"attacks so we can say the following happens and just to give you a little bit of background the side channel attack is","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3652s"},{"start_seconds":3660,"text":"where an attacker can basically use information they do know about a system to make guesses and predictions that information that","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3660s"},{"start_seconds":3668,"text":"they don't know about a system and in some cases even wholly uncover information they didn't know","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3668s"},{"start_seconds":3676,"text":"so we'll say carol and bob are competitors they're aware of each other and carol's working on your project under a strict set of ndas","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3676s"},{"start_seconds":3684,"text":"and you also haven't told bob you're working with carol because it's a sensitive project bob's also recently worked with carol on another project","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3684s"},{"start_seconds":3693,"text":"and bob wants more work and wants to know more about your network in general uh and bob wants to kind of just bend","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3693s"},{"start_seconds":3701,"text":"the rules of your network so that any so that he can find any competitive intelligence that as as bob would call it","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3701s"},{"start_seconds":3709,"text":"i'd probably call it spying so in these models what can bob do to carry out","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3709s"},{"start_seconds":3715,"text":"his attack on the utxo model um first both on both models we're going to","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3715s"},{"start_seconds":3722,"text":"remove the parts bob doesn't know so this is actually bob's intended view","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3722s"},{"start_seconds":3729,"text":"of both of these networks and so bob goes home studies your distributed ledger and","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3729s"},{"start_seconds":3736,"text":"says oh you know um within these models i know that","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3736s"},{"start_seconds":3744,"text":"for these things for that a particular job process to start two transactions have to happen one from you to me and one from me to you","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3744s"},{"start_seconds":3753,"text":"uh so what bob does is goes home and decides that","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3753s"},{"start_seconds":3760,"text":"okay i know these two pieces of information and it's a very trivial fact so it's very easy to overlook","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3760s"},{"start_seconds":3768,"text":"and bob also happens to be working with carol and so bob wonders if he transacts with both of you","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3768s"},{"start_seconds":3776,"text":"can he figure out something that he doesn't know so what bob decides to do","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3776s"},{"start_seconds":3783,"text":"is create a contract with you and a contract with carol and arranges these things so that they happen","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3783s"},{"start_seconds":3791,"text":"around the time that other contracts should be happening and bob says well if i could link these two things in some way my","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3791s"},{"start_seconds":3798,"text":"transactions with with you and carol i could maybe figure out some information about the network maybe i can figure out","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3798s"},{"start_seconds":3806,"text":"whether or not uh you and carol are interacting as well and that would look like this transaction over here","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3806s"},{"start_seconds":3814,"text":"but bob quickly figures out that in the ctxl network these are all discrete units and so there's no relationship that bob","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3814s"},{"start_seconds":3822,"text":"can derive from these two transactions the account model is slightly different because bob goes over here and says okay well we","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3822s"},{"start_seconds":3831,"text":"have transaction four between you and me and bob says oh we have transaction 90","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3831s"},{"start_seconds":3838,"text":"between me and carol and so that's peculiar because bob knows that the last transaction","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3838s"},{"start_seconds":3846,"text":"he did with you was transaction number two and the last transaction he did with carol's account which i should be saying carol's account in","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3846s"},{"start_seconds":3853,"text":"your account is transaction 88 so where are the other ones where's transaction 3","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3853s"},{"start_seconds":3859,"text":"and where's transaction 989 bob can take a guess here now that and basically say oh you might have recently started a","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3859s"},{"start_seconds":3867,"text":"project with carol and so the fact that each of mine are offset by one uh has leaked a little bit of","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3867s"},{"start_seconds":3874,"text":"information to me and worth noting too is that this is a very simple pr problem this is very","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3874s"},{"start_seconds":3882,"text":"simplified in the real world uh bob you and carol might have thousands tens of thousands hundreds of thousands of","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3882s"},{"start_seconds":3890,"text":"transactions going on in these networks and lots of different opportunities for","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3890s"},{"start_seconds":3898,"text":"small bits of information to have leaked not only at the utxo and account layers themselves but at the application layers","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3898s"},{"start_seconds":3906,"text":"up that run on top of these models and within the utxo model we just get a lot more safety here by default","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3906s"},{"start_seconds":3914,"text":"uh in both models you could program really hard and think really hard about your application","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3914s"},{"start_seconds":3922,"text":"and try and compensate for these deficiencies for example in the account model but it's going to take a lot more work and","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3922s"},{"start_seconds":3930,"text":"it's just going to be much much harder to actually create secure systems like that uh obviously i'm not saying","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3930s"},{"start_seconds":3938,"text":"that any system is ever 100 perfect in every way i'm just saying which one","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3938s"},{"start_seconds":3946,"text":"tends to tr uh trend more towards this this nicer security and that's the utxo model","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3946s"},{"start_seconds":3953,"text":"so now we're going to get a little more specific and look at an interesting real-life implementation or very close to real life","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3953s"},{"start_seconds":3961,"text":"and these are going to be an ethereum and demo so again we can compare accounts in utxos","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3961s"},{"start_seconds":3968,"text":"and we're going to look at and basically uh a little bit of information leakage and","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3968s"},{"start_seconds":3976,"text":"an attack called reentrancy which are neither things we want and tends to happen much more and","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3976s"},{"start_seconds":3985,"text":"really can only happen in an account model so in practice say we have","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3985s"},{"start_seconds":3992,"text":"here a uh a program on a running on ethereum and we the program basically allows you to owe someone a","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=3992s"},{"start_seconds":4001,"text":"beer and within that class we have a few functions and instances of this class will have these functions and also carry with them an internal state","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4001s"},{"start_seconds":4009,"text":"well like any program and in so what we have here are two functions we have the ober function","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4009s"},{"start_seconds":4018,"text":"and the except beer function and so what we would want to happen here","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4018s"},{"start_seconds":4025,"text":"is that uh somebody who has a beer say alice and bob um","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4025s"},{"start_seconds":4033,"text":"are doing something together and then alice says hey bob i owe you a beer and so alice goes ahead executes oh beer","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4033s"},{"start_seconds":4042,"text":"on the recipient bob and over here will say uh","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4042s"},{"start_seconds":4050,"text":"basically if you can see my mouse here's the proposal and i'm going i want to","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4050s"},{"start_seconds":4056,"text":"owe bob one beer and then bob on can eventually accept the beer and say","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4056s"},{"start_seconds":4063,"text":"okay uh i will accept the bureau offer from you and say basically okay well beer is owed","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4063s"},{"start_seconds":4070,"text":"we're gonna increment it by one and then we're going to do let everybody know that the beer has been accepted through","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4070s"},{"start_seconds":4078,"text":"running an event and then we're going to have the beer proposal where we're going to deduct one from the beer","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4078s"},{"start_seconds":4086,"text":"proposal such that the state over here on the left where you have one under beer proposal of alice to bob will go back to zero and then that will","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4086s"},{"start_seconds":4095,"text":"make sure that when uh we're owing new beers that it doesn't end up owing more beers than is intended","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4095s"},{"start_seconds":4102,"text":"from from the person sending them and bob can also know that there's 10 beers owned because the this is a","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4102s"},{"start_seconds":4110,"text":"safety mechanism that we've kind of put into the system to stop execution at some point so that alice can never own oh more","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4110s"},{"start_seconds":4119,"text":"beers than she owns and the intended state is that bob eventually","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4119s"},{"start_seconds":4127,"text":"uh is going to be owed one beer from alice but what we see actually is that","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4127s"},{"start_seconds":4135,"text":"something else happens and this is not very good so when bob goes to accept the beer","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4135s"},{"start_seconds":4141,"text":"uh because we didn't order our execution correctly bob can do this attack called a reentrancy attack","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4141s"},{"start_seconds":4150,"text":"and so bob goes and says okay i'm going to accept the beer","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4150s"},{"start_seconds":4156,"text":"but before bob's completed this call bob actually goes ahead and gives an","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4156s"},{"start_seconds":4164,"text":"address that does another call that basically says oh accept the beer again and it re-enters except the beer again and we are still","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4164s"},{"start_seconds":4171,"text":"trying to decrement the beer proposal but we can't and so bob goes accepts the beer except the beer accepts the beer","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4171s"},{"start_seconds":4178,"text":"10 times until it explodes and we end up hitting the limit of the total amount of beers that","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4178s"},{"start_seconds":4186,"text":"that alice actually owns but in the meantime bob has basically escaped with alice owing him ten beers and having","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4186s"},{"start_seconds":4195,"text":"obligation obligations to him that she had never intended and that was all because two lines in our pseudocode here were kind of out of order","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4195s"},{"start_seconds":4204,"text":"there are a couple of things in the pseudocode by the way that i kind of skipped over to simplify for the slide but let's just imagine that that everything is there","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4204s"},{"start_seconds":4212,"text":"and it's it's executing truly and now in demo with the utxo model we kind of have the same thing","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4212s"},{"start_seconds":4220,"text":"except uh we don't have to worry about that type of out of order execution","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4220s"},{"start_seconds":4229,"text":"because what happens is every utxo depends on other ones so first thing is that alice's beer's","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4229s"},{"start_seconds":4237,"text":"owned doesn't exist and bob can't even know it because each beer that alice owns was purchased from a store","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4237s"},{"start_seconds":4246,"text":"and is owned as a discreet utxo so alice takes one of her utxos and","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4246s"},{"start_seconds":4254,"text":"basically creates a beer iou that says okay bob i want to owe you this beer","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4254s"},{"start_seconds":4262,"text":"bob goes ahead and and accepts it and then goes to exercise beer received","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4262s"},{"start_seconds":4269,"text":"bob again though tries to do the attack um and tries to save beer receive many many times","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4269s"},{"start_seconds":4278,"text":"but what ends up happening is the transaction just fails because","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4278s"},{"start_seconds":4285,"text":"bob exercises it exercises it exercises it and the system goes and says well you can't exercise this more than once","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4285s"},{"start_seconds":4293,"text":"you can have your one beer but all these other exercises that just came in consume a utxo that i know is already consumed and used","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4293s"},{"start_seconds":4301,"text":"and so it explodes uh alice actually maybe gets to see that bob's been dishonest and rebroadcast this many times","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4301s"},{"start_seconds":4308,"text":"but luckily the state ends up entirely as we intended and so that's another very interesting","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4308s"},{"start_seconds":4316,"text":"thing that can happen with regards to either of these models and by default and utxo","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4316s"},{"start_seconds":4325,"text":"is much more safe and an account model could be made safe you could order these things correctly and make sure you do","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4325s"},{"start_seconds":4332,"text":"a lot of due diligence in any smart contract you should be doing significant due diligence","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4332s"},{"start_seconds":4339,"text":"but there's um to put it in the uh it's much much easier to to have things go wrong in these account","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4339s"},{"start_seconds":4348,"text":"models particularly where they're accessing very rich state which you typically want in an account model as it is","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4348s"},{"start_seconds":4355,"text":"and so yeah that's basically my presentation and now uh we're happy to do q a if you have any","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4355s"},{"start_seconds":4363,"text":"questions about bernhard's proposal i mean bernhard's presentation my presentation or any questions about daimler itself we're","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4363s"},{"start_seconds":4371,"text":"more than happy to answer and yeah","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4371s"},{"start_seconds":4382,"text":"hey anthony so this example which you just presented is this closely related to the uh double spend problem that we're trying to solve in utxo","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4382s"},{"start_seconds":4391,"text":"i somewhat the double spend problem is solved kind of add a couple layers","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4391s"},{"start_seconds":4399,"text":"so really you're solving double spend most inherently at the consensus layer where you're saying that i don't want the same","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4399s"},{"start_seconds":4408,"text":"exact transaction to happen twice but in a sense yes you're also solving","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4408s"},{"start_seconds":4415,"text":"double spends here where you're saying i don't want two very similar transactions to happen twice","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4415s"},{"start_seconds":4422,"text":"um so there is there is definitely some minutia there but yes you do prevent certain types of double spending","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4422s"},{"start_seconds":4430,"text":"activity uh in a utxo model by default whereas in an account model you wouldn't but ultimately it boils down to a","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4430s"},{"start_seconds":4439,"text":"somewhat consensus layer thing if that makes sense and if it doesn't i'm happy to explain more so uh if i refer to that","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4439s"},{"start_seconds":4448,"text":"slide where you talked about the good and the bad between udxo and account in account if i remember correctly you had that","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4448s"},{"start_seconds":4456,"text":"everything is a single thread so everything is happening one after the other so is that in a way targeting this particular problem that we're trying to","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4456s"},{"start_seconds":4464,"text":"solve uh yes that would definitely be affecting that a little bit uh","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4464s"},{"start_seconds":4471,"text":"but since it's one discrete transaction you would almost the threaded nature of it","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4471s"},{"start_seconds":4479,"text":"almost doesn't matter because it is all still happening in that one transaction so over here where we're re-entering this is all","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4479s"},{"start_seconds":4487,"text":"really kind of occurring in one transaction uh so it's not it's not exactly the same","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4487s"},{"start_seconds":4494,"text":"thing right i got your point","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4494s"},{"start_seconds":4505,"text":"but no that's a really really good question there's a lot of there's a lot of minutiae there","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4505s"},{"start_seconds":4515,"text":"so what you're saying is in essence whatever the good and the bad that we can say on paper between udxo and account model","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4515s"},{"start_seconds":4524,"text":"in practice that line is pretty blurry because i can model my system using any to mimic the other","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4524s"},{"start_seconds":4531,"text":"uh yes you can in in pr in theory you can","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4531s"},{"start_seconds":4538,"text":"model a utxo system in an account model and you can almost model an account and you can definitely model an","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4538s"},{"start_seconds":4546,"text":"account model in a ut excel system but the in practice it actually becomes very hard","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4546s"},{"start_seconds":4554,"text":"and what you'll end up with is you'll if you were to take an account model and try to make it as safe by default as a utxo model","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4554s"},{"start_seconds":4563,"text":"what you would find is you're basically creating a utxo model inside that account model","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4563s"},{"start_seconds":4569,"text":"so you might as well use utxos in and of themselves if you need that level of safety basically","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4569s"},{"start_seconds":4576,"text":"right right makes sense yeah","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4576s"},{"start_seconds":4592,"text":"the type of uh you know the type of uh authority that tamil has in in built in it like the observers the controllers the","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4592s"},{"start_seconds":4601,"text":"parties concepts all those now when it gets you know integrated with something like ethereum where you can apply various","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4601s"},{"start_seconds":4609,"text":"consensus mechanisms proof of stake delegated proof of stake anything so now how does damil fit in over there where a","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4609s"},{"start_seconds":4617,"text":"different third party consensus mechanisms has to be applied on that uh yes so","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4617s"},{"start_seconds":4623,"text":"demo can interface with any system that has an api or other way of talking to it","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4623s"},{"start_seconds":4630,"text":"in the much way most applications can ultimately if you have","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4630s"},{"start_seconds":4637,"text":"uh say you have a system that's part demo and part ethereum and they're communicating with each other and you have code executing on","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4637s"},{"start_seconds":4645,"text":"ethereum uh daimle can not do anything to guarantee the safety of the code that's executing there on ethereum it can only","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4645s"},{"start_seconds":4654,"text":"guarantee the safety of the code that it's executing itself and can only go and can","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4654s"},{"start_seconds":4662,"text":"guarantee the safety of any data that's coming into the system from outside sources like ethereum or some other","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4662s"},{"start_seconds":4669,"text":"database but it still cannot fully provide safety throughout every layer of the system if you're doing","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4669s"},{"start_seconds":4677,"text":"things outside of it um like almost anything else so yeah you're understanding those correct","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4677s"},{"start_seconds":4684,"text":"so does that implies that if i if i develop a application using demo with no other you know blockchain framework such as","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4684s"},{"start_seconds":4693,"text":"ethereum's quarter or others being integrated can i apply you know the different consensus principles within dml","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4693s"},{"start_seconds":4701,"text":"somehow or itself like you know the the way how daml is built or it will only be restricted to the you know theories that ml has in within","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4701s"},{"start_seconds":4709,"text":"oh okay so demo actually has another","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4709s"},{"start_seconds":4717,"text":"way to do transactions um you can make them non-consuming and in that case uh utxos can persist","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4717s"},{"start_seconds":4725,"text":"and they would function a lot more like like accounts so if you needed that type of functionality for certain things uh you can definitely do it and then but","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4725s"},{"start_seconds":4734,"text":"even if you have like ut excels that were generated out of those non-consuming transactions you could still have them be consuming further down the line and make","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4734s"},{"start_seconds":4743,"text":"sure that everything still stays safe if if that makes sense so you do have quite a lot of flexibility there you","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4743s"},{"start_seconds":4750,"text":"don't have to worry too much about that because you still get that safety regardless","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4750s"},{"start_seconds":4760,"text":"okay okay maybe i'll i'll answer that if you remember back to","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4760s"},{"start_seconds":4769,"text":"uh my my segment earlier um the consensus mechanism that you mentioned the proof of work or","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4769s"},{"start_seconds":4777,"text":"proof of stake happens at the very foundation of the system in what i called earlier the consensus or","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4777s"},{"start_seconds":4783,"text":"synchronization layer which in principle can use any sort of um of","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4783s"},{"start_seconds":4790,"text":"uh of uh consensus you know we we integrate with some blockchains which use pbft","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4790s"},{"start_seconds":4798,"text":"uh proof of stake i would say the only one that we currently don't target proactively is proof of work the reason the reason being that","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4798s"},{"start_seconds":4806,"text":"proof-of-work blockchains tend to be very very expensive right and the sorts of applications um that our our customers are building tend to be um","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4806s"},{"start_seconds":4815,"text":"tend to be targeted more at enterprise there are very high throughput um so proof of work consensus just isn't isn't appropriate but there's","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4815s"},{"start_seconds":4823,"text":"nothing in principle that would stop us building a proof of i mean a double driver for proof of blockchain in fact","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4823s"},{"start_seconds":4830,"text":"we've i mean we've sort of fought for fun and interest built um double drivers for ethereum which","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4830s"},{"start_seconds":4837,"text":"we think would work on the main met um we just don't think it makes sense um to you know do anything with them","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4837s"},{"start_seconds":4846,"text":"okay thanks and abelash had also asked a question in the chat","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4846s"},{"start_seconds":4853,"text":"about how does damon fabric handle private data collection in hyperledger fabric um so i assume you're talking","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4853s"},{"start_seconds":4861,"text":"about fabric's specific functionality called the private data collection for demo we use","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4861s"},{"start_seconds":4869,"text":"uh basically the the ledgers we're running on top of for consensus","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4869s"},{"start_seconds":4876,"text":"and synchronization only and so the way you would do this in fabric is you","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4876s"},{"start_seconds":4884,"text":"say your organization might run one one fabric ledger another organization might be running another you don't want to share all data between","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4884s"},{"start_seconds":4891,"text":"each other we have um essentially another layer called canton where your demo applications don't need","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4891s"},{"start_seconds":4899,"text":"to change at all but you can use that layer to guarantee privacy and get that much broader","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4899s"},{"start_seconds":4907,"text":"uh network interactivity that bernhard had talked about in his talk so that's kind of how we would handle uh keeping data private","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4907s"},{"start_seconds":4916,"text":"uh within within fabric and all other ledgers as well when when you're when you're communicating you know at those borders between different","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4916s"},{"start_seconds":4924,"text":"different parts of the business that you don't want to share data between","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4924s"},{"start_seconds":4944,"text":"all right so i guess those are all the questions but before you go um and obviously ask more questions if you","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4944s"},{"start_seconds":4952,"text":"if you have them right now i would encourage you to check out bitly try demo uh over there is","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4952s"},{"start_seconds":4960,"text":"our fairly active forum that you can find tons of information on demo at it uh sorry it's i'm still waking up a","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4960s"},{"start_seconds":4970,"text":"little bit you can find tons of information on demo uh you can go ahead and try out demo yourself by installing download connect you can go to","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4970s"},{"start_seconds":4978,"text":"uh download.com learn where you can try a variety of different tutorials in the browser","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4978s"},{"start_seconds":4986,"text":"so if you wanted to get started with demo or check out fundamental concepts you can go ahead and run through all of these they'll","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4986s"},{"start_seconds":4993,"text":"just execute remotely elsewhere so you don't even need to install anything we have excellent docs that","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=4993s"},{"start_seconds":5001,"text":"really dive deep into demo of course if they take you too long you can always hop back to the forum and ask a question","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=5001s"},{"start_seconds":5008,"text":"uh we have an introduction to demo which bernhard has written probably almost all of it uh it is excellent","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=5008s"},{"start_seconds":5016,"text":"it had covers everything you need to know to learn demo it is how i learn demo uh so if you're interested check that","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=5016s"},{"start_seconds":5024,"text":"out uh we have tons more videos um that you can check out we have a video training course right now that","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=5024s"},{"start_seconds":5031,"text":"that you can check out uh we have youtube channels and everything else we even have a google where if you use the haskell","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=5031s"},{"start_seconds":5039,"text":"you can go ahead and use it to query and figure out demo functions in the same way as as haskell's google uh oh and","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=5039s"},{"start_seconds":5047,"text":"certification of course where if you want to get certified in demo you can go go check that out um and you can always you know message","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=5047s"},{"start_seconds":5056,"text":"me if you have any questions about it and yeah we also got have links to canton there double cheat sheet lots of stuff i've","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=5056s"},{"start_seconds":5063,"text":"just read the entire screen but yeah check it out and obviously if you have any questions you can hop over uh to our forum we're","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=5063s"},{"start_seconds":5073,"text":"answering questions in there each and every single day i already have a bunch of things to read this morning so yeah thank you everybody for","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=5073s"},{"start_seconds":5080,"text":"attending and uh thank you all for the very great questions so uh last thing anthony like i just","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=5080s"},{"start_seconds":5088,"text":"wanted to know like whether uh we will be getting this uh recording or this ppt that we have shared throughout the","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=5088s"},{"start_seconds":5095,"text":"uh session uh yeah i'm gonna save the recording now and then i'm going to upload it on youtube and i'll make sure to email it out to everybody","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=5095s"},{"start_seconds":5103,"text":"okay thank you welcome all right thanks everybody and thanks","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=5103s"},{"start_seconds":5111,"text":"bernhardt thanks anthony","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=5111s"},{"start_seconds":5118,"text":"bye","url":"https://www.youtube.com/watch?v=B_ROpWp7PJw&t=5118s"}],"youtube_url":"https://youtube.com/watch?v=B_ROpWp7PJw","url":"https://ccpedia.xyz/videos/B_ROpWp7PJw"}