How the Internet Computer Brings Web-Speed Smart Contracts to Bitcoin
Crypto Valley Conference 2021 · October 2021 · 43:31
Dieter Sommer of Dfinity gives a master class at Crypto Valley Conference 2021 on how the Internet Computer brings web-speed smart contracts to Bitcoin. The session subject is taken from its title.
Speakers
Topics
From Crypto Valley Conference 2021, hosted by Crypto Valley Association.
Transcript
way points and an outlook now the first part and let's talk about the internet computer there have been three great blockchain revolutions so far the first one was bitcoin bitcoin showed the world that it's possible to build a completely decentralized ledger which is secure and you don't need to trust any central party that was a revolution however it's just a ledger and you can't run out very close in little trim laid along ethereum the second block chamber though ethereum also to run arbitrary chose on the blockchain with the same trust assumptions in queen has this was the second revolution
smart contracts to go forward the third big revolution is the internet computer intended computer completely reconsiders how to build a secure distributed system based on blockchain technology a system which is extremely efficient a system which is limitless in terms of its validity a system which provides a nice developer experience rich language support and a system which has a novel governance approach the internet computer the foundation of the infinite computer are data centers and node machines running in those data centers the node machines are connected to the public internet the node machines run the internet computer protocol icp
and running the icp on the nodes creates the internet computer in the internet video resides in public cycle space it's not located anywhere it's a virtual supercomputer if you will and people can deploy smart contracts we call them canisters or canvas to smart contracts on this public cyberspace or if you will directly on the internet or this extension of internet and users can interact with the internet computer by sending messages to canvas stores and canvas can send messages about the handstands and the internet community is secure fault tolerant and scalable so what's a canister a canister smart contract it's a ground form of smart contracts it comprises two things web assembly
byte code the instructions and memory pages the state of the canister both together from the canister they encapsulated secure units and what's special about it it's very powerful it's powerful in the sense that canisters can for example serve the complete user interface the web page from the blockchain you don't need it excel services anymore which of course reduced it uh which of course strength strengthens the just model of sub-contracts served by the internet computer furthermore users don't need gas or tokens in order to interact with canisters so it makes it much simpler also have a very nice user interface a user experience in terms of how users authenticate they can use biometric authentication based on web awesome
using our internet identity system and canisters can scale up very well a single chemist that can consume tens or hundreds of gigabytes of memory if you want to build scalable services in terms of language support we support plethora of languages so essentially any language that compiles to web assembly can be used to write smart contracts for we have two languages for which we offer a rich sdk this is rust you will know it i guess modoco is a language specifically grafted to be aligned with the features of the internet computer and extremely easy to learn so next let's look at what the internet
computer is built up of so it's subnets or sub-networks let's look under the hood of a subnet the subnet is built up from node machines those node machines are located throughout video so the idea is to achieve decentralization so we decentralized as much as possible in an algorithmic way and there are four dimensions of decentralization so first of all choosing nodes from independent node providers having these nodes located in independent data centers number three having the data centers in different countries or geographies number four having the countries in different jurisdictions this helps to achieve best possible decentralization
and this uh forms the basis of the basic level of decentralization the decentralized commune platform and it's secure default which is achieved by application essentially each subnet is a replicated plate machine each node or each replica performs the same computations on the same messages and this is done through consensus so each of those sub-network is an own blockchain and progresses at its own base and can communicate with other sub-networks now let's look at how we scale out because if you just have one sub-network it's rather infinite calculator not an internet computer in order to reach the real internet computer the big scalable thing we need mix-up networks in the
future are going to have tens or hundreds of thousands of sub-networks to change up as we want and can you communicate not just the candidates on the same but also kind of dominance in different sub networks this makes it easy to build a scale out architectures with the canisters or something similar what you can do on public gel but it's not public gal it's a secure blockchain based system which scadies liked about the kell that hit the novel approach to secure blockchains capable of secure blockchain so next let's look at the government you also have a new approach of how we do governance so the idea is that we have so-called nns the network nervous system it lives on a special subnet and it has
special driven edges to control the internet computer you know there's a governance though we use the icp token protocol token and token holders can vote using this token and this voting determines what we do with the internet what this nns network does so the is a more operational area of governance of the mms controls all the subnets for example it decides which node gets added in which subnet can remove nodes from subnets it can update the replicas all of those things are controlled by the nns and there's no strategic aspect to the governance which is how the computer protocol and the whole internet computer evolves at large so this is done by for example motion proposals we or anybody can launch motion proposals which is
both are voted on by the nns and this determines which items which roadmap items are we will work on which we won't work on so this is governance by the community so the big goal is that our community the internet community community decides what happens with the internet computer what we build what we don't build how the protocol evolves we are more and more trying to push this responsibility to community with this voting on this system one good example is the bitcoin thing i'm talking about now it has been voted on by the community it has been discussed extensively in the forums so we've got requirements from people who want to build uh on this feature and what we're also doing like next week with an upcoming developer workshop where we
talk to some of the developers that already have ideas what they want to build with this bitcoin integration so it's pretty exciting to work with the community so closely and to try to intensify this in order to decentralize so this was a rough introduction to the infinite computer let's next talk about the integration with bitcoin at the high levels of bitcoin the world's digital value store digital gold bitcoin is based on the utics over accounting mode it means transactions generate utxos unspent transaction outputs those can get consumed in new transactions once and create new the utics always send their coin now let's look at the transaction the
transaction is built up from you they chose that our outputs of old transactions have been spent yet then we define whom the new edu should go to for example the bob in this case and then alice in this case needs to sign you she owns in order to unlock them and prove she's the holder and protect the integrity of transaction if that stunt transaction is finalized a finish can be sent to bitcoin network it gets mined into a block then the block goes onto the blockchain at some point and then there's further blocks coming on top this proof of work uh mechanism we wait a little bit in order that we can be sure that there's no other chain where other transactions saying and then we can be assured that this transaction is ready so that's roughly how bitcoin works and i used it
for introducing the visual notation so now integrating the internet computer with bitcoin what are the goals first of all web speed smart contracts for bitcoin second we want direct integration which means no intermediaries no bridges this is unique no one has done that before it means less risk for bitcoin holders and the developed by experience which is easy to use apis you can easily get started doing a bitcoin work on the internet computer and of course a great experience for the end user which comes out of stocks because of using internet computer smart contracts internet identity all of those things we get this for free now there are two challenges the first one is uh canisters need to be able to hold and receive bitcoin directly on the bitcoin
network without intermediaries and second chemists need to be able to transfer bitcoin out to other canisters or users and if we solve those two challenges with a very powerful framework to have one blockchain directly integrated with another blockchain and use uh the one thousands of one blockchain on the other one so it's very powerful without any individuals which makes it of course more secure and it gives it a very slick trust mode let's look at this how it's done at a high level so with the internet computer a couple of notes of it can network first of all direct integration means no intermediaries within your results yeah less risk for had lots of breaches up in the
areas like bridges and hacks where millions of dollars in bitcoin and other currencies got lost over the recent years can't happen here because there are no intermediaries so what does it mean for us first of all uh we need to now look at the challenges we have so canisters can receive until this point how to achieve that the canister needs a public key we use ecdsa so the public key needs to be generated somehow we uh extend our staff here with a threshold bcpsa scheme i'll talk a bit more about this uh shortly and the canvas that can obtain the public key from here then the chemistry can obtain arbitrarily many public keys using standards with 32g derivation
these public keys can be used to create addresses to which transactions can be made so that's the first part receiving and holding bitcoin it's passive on the internet computer that actually receives bitcoin um the sanding is now the active thing so canisters second challenge canisters can now transfer all the bitcoin out this requires a couple of things so first of all we need to get the udxos of the canister holes how do we do that so we built another extension the broncos stack this bitcoin extension here and then we need to do the fall we need to get somehow bitcoin blocks into the internet computer so we connect in a decentralized manner from many node machines essentially all
the node machines in the subnet that is bitcoin enabled to connect to multiple bitcoin nodes and pull in bitcoin blocks those blocks get processed in terms of extracting the utxo in the box and keeping it in the state of the internet computer and then we can serve you pixel theories to canvas the chemists can ask which utxos are available for giving bitcoin address and get the response now based on this we can build up transactions so we can build a transaction based on you pixels this is quite simple normal coding we can define the new music social photos now the complicated part is we need to sign this transaction so we need some kind of appropriate signature this signature mechanism is threshold easy as a signature the reason
is that we are a general decentralized system with a just assumption that uh up to strictly less than one third of the nodes can be arbitrarily faulty which means we can nowhere store the private key in its entire date which means we secret share the private keys the private key is stored in the secret shared manager and one more direct because it's never ever reconstructed not during key generation but during senior generation never it never exists as a private key it exists as private key shares among all the replicas could be 50 replicas 100 150 20 whatever depending on the subnet selection now if you want the signature the canister asks the subnet to generate the
signature on its behalf the subnet then performs a cryptographic multi-party computation to compute based on signature shares without pre-constructing the private key uh it is dsa signature on the message this is a signatures can be used by the canister to finish up the bitcoin transaction the signal signatures in and then submit the bitcoin transaction with an api with a bitcoin uh component here and then it can be submitted out uh to the bitcoin network through all the connected nodes so it's very quickly disseminated network so that's a rough high level overview of how the integration works without intermediaries this is something that hasn't been done before the internet builder can do it because of
some of the powerful features it has yeah so it's like when you're doing a transaction as a user so it's just a regular transaction it's just done in any centralized way so you will do it then later because when i think of the computer i think it was a lot of transactions very quickly usability et cetera so you can have wrapped bitcoin on the internet computer which is one application of this stuff then you can have transaction finality in two seconds just doing ref bitcoin transactions in your canister on but this is just one application we can
do much more so now what does it mean to bring web speed smart controls to bitcoins first of all we can bring some of bitcoin's liquidity to applications on the internet computer we can do we can build smart contracts we have a great user experience like easy authentication for example users authenticate using the web author protocol passwordless sorted mobile major platforms and on the mainstream platforms you can do biometric authentication which is really nice no passwords anymore easy authentication to a smart contract furthermore you don't think the big ass feast also very convenient as an end user and but this all gives us immediately that we have the possibility of building or having a bitcoin wallet in a decentralized fashion on the internet
computer you never touch a bitcoin key you don't need to trust the cd barclay still you have a bitcoin wallet so it's a very powerful feature and this feature can be used in any smart contract to build an internet computer so it comes with every canister you can just use this api which is also very nice so what we do is we lay this technical foundation that every canister can use bitcoin in a very generic manner and some application scenarios you can think of are something like uh directly wrapped bitcoin like wrapping bitcoin with open intermediary very powerful much more secure than represent with intermediaries let's call it icpc or we can do decentralized ict b2c exchanges or buying nfds with bitcoin or things like topping up canisters with bitcoins
obtained by the computations as developer and there's lots of more things you can think of i think your imagination is the only limitation here so next let's look at the internet computer protocol stack in somewhat more detail so this now starts part two this somewhat more clean part of the presentation the protocol stack is comprised of four layers the lower two layers are responsible for message message acquisition and message ordering which means every replica on the same on the subnet agrees at the end of a round on one in the computer block or ic block containing messages and it's all the same block on every replica this block is given up to the upper layer and is getting executed in the
deterministic fashion that's exactly what's required for deterministically uh executing the state machine obtaining a replicated state machine and obtaining this secure blockchain-based distributed system that's now so essentially what happens is in every round we have a state transition from the previous version of the state using one block same block every replica getting to a new version of the state and the same one on every so now let's look at the product full stack with somewhat multi-then so at the lower layer let's say user submits to one replica an ingress message between the two things could be some form of transaction this gets broadcast all the nodes of the subnet
and other projections come in as well so there's a pool of transactions in the end now what we need to do is we need to build an ic block which then can get the deterministic execution in the round how this is done is by a multi-stage consensus protocol consensus in internet realtor is designed in a way to be very high throughput so one block per second and very low latency so the finality time of two seconds if the sub network behaves well and it can go up a bit if there's lots of malicious activity like network attacks or dishonest replicas now there's three stages there's block making militarization and finalization let's start with block making so block making means one of the replicas or multiple so if we need multiple if
there's a dishonest behavior in the ideal case we have only one let's now look at this one so we block naked that grows ingress messages into a block and they'll also pull messages from other subnets that's exactly the cross sublet communication that i've talked about and then it proposes a block by putting it into the artifact pool and having it broadcast all the replicas of the subnet and this proposal of a block is now picked up by every replica acting as an authorizer by military an authorization has the goal of the subnet agreeing on when it blocks agreement means at least two-thirds of the replicas agree that the clock is valid how does it work an authorizer issues multitasking
shares on blocks that it seems valid valid block is one where the signatures on the messages validate so at issues search uh notary signature shares those get broadcast all the nodes on subnet and also receives signature shares from other nodes of the subnet and based on the blocks that it has seen in a round and also all the signature shares it is seen on the round it decides whether it will sign a given block and also based on how far the time is progressed within the round but they can't go into all the details the goal here is to produce as few boxes possibly around because this makes finalization easier but as many as needed at least one now if you have at least one fully no dressed block so one that has
at least two thirds of directly just behind it we can go towards finalization finalization works also the finalizer so every replica acts as a finalizer the finalizer pulls in received fully notarized block and in case this replica has not notary signed a different block in this round then it signs this given block and broadcasts the share again and receive their fears from others and exactly using this rule we can prove that if there is a block that receives finality signature shares from at least two-thirds of the replicas in the subnet then there is only one block of course
it can happen that there is no final blocking around then finalization can happen around or a couple of rounds later this again happens if there is malicious behavior going on i can't give the details you can read up on this it's an extremely efficient protocol to have low latency for blocks to late low finality time and high throughput now all of this is what we call changing cryptography so things like um bls threshold signatures non-interactive distributed key generation for those bls multi signatures a large toolbox of rather advanced cryptographic products that are used to power those brotherhood so it's not only in this way i just mentioned those this chain key cryptography is mentioned but is used in all layers of so next let's look at what happens with
the bindwest block as i said before it's the same final as block and all the replicas of the subnet and this is now passed up to the upper protocol stack layers and there there's a deterministic execution happening so first all the messages are extracted from the block going into the induction bool which is essentially all the queues input cues of the canisters and then they get scheduled for execution so we cut the message tattler essentially calls the canister code in the hypervisor which executes the web assembly instructions based with the in press uh basis inputs and the returns can be responses or can because of other canisters which is killed again in the induction pool or it could be responses or other canister calls which would go to supplement to
cues to other supplements which again provides responses or canister cross canister calls to other supplements and those would then be pulled back by blocked mates on other subnet much like wool without lock maker from other subnets in the beginning so this explains how the cross subnet communication uh works in terms of the product mistake so this was very high level introduction to the brothercon stack just to give a rough overview then use it as a basis to show how we integrated sorry so now let's look at the technical architecture of the bitcoin integration so again let's look at the products that
but this time with bitcoin and threshold easy dsa functionalities enabled but also still at the higher level but a bit more technically we have the same diagram with a couple of bitcoin nodes only waiting for the integration now what we need needed to do is the following we need to build a bbc system compound and this against the bulk of the bitcoin processing logic uh it offers an api on the one hand uh getting into xo set for bitcoin addresses egyptian enclosure and also something for submitting transactions to the bitcoin network at the networking layer with a couple of new components as well so if a bitcoin adapter most notably this implements from the bulk of the bitcoin-related functionality of the networking layer with a networking transit which is essentially a proxy for communicating with the outside world we did first
security policy enforcement and architecture reasons we have an adapter realtor which orchestrates between multiple adapters in the future so in future those planning an ethereum adapter for integration with this blockchain and then the adapter out would orchestrate uh the flow here with all those adapters so what's happening is the networking level is going the bitcoin adapter asynchronously to the operation of the ics isds icstack connects where the transit to the bitcoin network and synchronizes the state with the bitcoin network so essentially it pulls bitcoin headers and blocks and obtains a recent view of the same last 100 bitcoin blocks and all the forks on there and now let's you notice a bitcoin block here with uh
so this is the hashtags it's relevant then for some of the things i'm explaining and now we need to implement the protocol between the system component compounded bitcoin so this product always two purposes first of all bringing transactions uh that should be submitted down and bring bitcoin blocks up and the bitcoin blocks that are going up uh will be used for building a view of the bitcoin network also in this btc system component but this view also something like a hundred blocks by it and contains all the forks and essentially a union view of all the adapters in this app network because all adapters submit the blocks now um but uh if you look at this in a more focused way so whenever a block is processed what's happening is that we
also if we extract transactions from the block and build up the utxo set that we keep in the replicated state those things are used for responding to it excel queries furthermore we keep the transactions that canis to submit in replicated state for writing it to the networking layer now let's focus on those two components and see how things work in a bit more detail so as i said transactions need to go down transactions then go into an output queue in the bitcoin adapter and our asynchronous system is submitted uh quickly to the bitcoin network so that's rather easy another thing we have is this x here it represents this block hash here essentially all the block caches from the view of the bitcoin blockchain that the component here has are provided down as requests so the
semantics is that the bitcoin adapter will write any block that builds upon one of those blocks that the bbc component has it's essentially request for blocks we'll soon see an example so let's say the bitcoin adapter receives a new block y which extends the blockchain eclipse which is administer network and get replicated here now this block y is going up to the bitcoin system component through the protocol stack i'll show this shortly how it works and then the block is processed by the bbc system component so it means processed in the sense that it's validated whether the timestamp described whether the groove of burke using bitcoin semantics is correct and whether it fits here or extends uh the view that the btc system her bond has if
that's the case um and if there's no competing forks like here then the oldest block in this fuel will get processed it means that it will be consumed in our utics ozarks so if so of this block get extracted and get into this utex ocean which will keep the replicated state and both these mutex process and this u are used to respond to utxo theories by canisters so we can uh give canisters all the utxo contained here and here so all the others that we know about and we let them also know how many confirmations in terms of blocks on top of the transaction that each new pixel has using this a canister can then easily decide
whether it uses you picks o already for transaction or it wants to wait a bit longer that maybe it doesn't want to use a utxo with only one or two confirmations with weight maybe for six confirmations like we usually do the bitcoin network so let's now look at how this works in terms of the protocol stack integration it's actually very simple conceptually so let's say again we have received at the networking level in new block y which extends the blockchain here updates what's happening now there's a regular block making going on and now we need an extension to build so we need the dock maker to pull a new auto drive to pull a bitcoin block from the adapter router and this one first of all goes to the state manager which is now a technical issue how we implement it so
it can access the state of the btc system component via this and pull those things pulls down the transactions to be submitted and also these requests so the x and all the other uh block hashes of the ptc system command is a request for blocks those two things are then given over to the bitcoin adapter the bitcoin adapter then matches the hashes with its low local blockchain view intensities okay why again is the one that extends the view of the ptc system component and that's why this block y will be provided back as a response so the supply is now getting the lock make another block make again as usual create an ic block but this time with an
additional payload uh the bitcoin block here now the next step is very similar as it used to be before there's only one difference so this bitcoin block needs to be also validated in order to prevent that this honest ic nodes can spam the system components with maliciously grafted bitcoin blocks and we do this by requesting a check of this block by the adapter out and what we do is very simple we check the block based on the hash work and based on the timestamp and we need to do so in a way that it's the same all the replicas and otherwise consensus wouldn't work this was the tricky part but it's a rather easy at the point of details and all the rest now is exactly the same
with this layer so we do all the notarization in the same way also the finalization the same way let's just do small extensions we did in implementing those components and now uh the next step as usual the block goes out of the upper part of the protocol stack what happens here is that it gets also inducted in the induction pool and now needs to get scheduled for execution by the btc system component so that's similar to execution of canister code it's just not wasn't code but it's native code and then the update of the view and the process of the block as i explained before happens and the unpixel set gets updated and the mutex offset cannot be used to respond to your pixel queries so it was a rough overview how it works
all the rest now the processing works the same as usual also the graph does softnet processing so this was the integration it's a rather small integration surface like mainly those two integrations here at consensus layer building those additional components but the integration surface is small most of the code is stained in those isolated components it does of course one more thing now threshold ecpsa the threshold ecgs special easy dsa so threshold dtsa itself is a huge component that cuts across the whole protocol stack and it implements a cryptographic multiparty computation protocol which is integrated tightly with contensor so it is much much
bigger integration surface with the ic protocols that i won't go into energy that's unfortunately because of dying reasons uh but i would say the threshold cpsa project building uh this component here is coming up so this threshold uh ecdsa component is i would say is substantially large project and the basic bitcoin integration we are also well on the way with implementation efforts which will still take a little bit of time so i hope we've shown you some in a little bit of still highlighted overview of how the integration of bitcoin with the internet video stack works and how we have a somewhat okay integration surface and
what i would like to show you next is how streamlined the developer experience is for the internet computer when you want to do something with bitcoin so let's say with bitcoin enabled canister that wants to build a smart content using bitcoin we have bitcoin library that we can run inside that's code running inside the canister there's the system component threshold easy disa and we have the bitcoin network and now it's very easy let's say we use an nfg trading platform first we need to get the private key from the ecdsa component and we can picture the two derive after a number of private keys we can derive bitcoin addresses we can give bitcoin addresses step four to our users for example every user gets their own address for
transferring bitcoin for making purchases and if these um then let's say some user wants to buy an nfd and makes a bitcoin transaction on the bitcoin blockchain the block is at some point being pulled in instead of files we can then make it clearly whether the balance is already there it is done by the library the library would uh make it get used it's also clear to the btc assistant component and compute the balance for us and if the balance is okay we can have some smart contract logic which would transfer the nfd to the buyer and then in step seven we need to transfer price that was paid for the nfd uh to the seller of the nfd this can again be done with the library call which then
does all they have left inside both received the utxo set from the system component it will create the transaction it will do the ecdsa signing it will add the signature of the transaction and then it will submit the transaction to the bitcoin network so all of this will be done behind the scenes but the library you make a simple call in step seven for performing bitcoin reset with some parameters and that's it so it's a very very stringent and easy developer experience that we have here in the internet computer to do immediately integrated bitcoin transactions which is unique so now this brings me already to the conclusions i have a couple of aqua messages i would like to convey so the first of all is that we are not bringing powerful smart contracts for bitcoin which brings
potentially a lot of bitcoin liquidity to smart contracts on the internet this is done with direct integration direct means no intermediaries whatsoever no intermediaries means strong trust model less risk that something goes wrong with intermediaries because there may be many cases where intermediaries and bridges have been hacked and bitcoin other cryptocurrencies were lost so this is the strongest possible trust model and it's unique in the blockchain world to do such a direct integration no one else has been able to do this before next they have a very broad support of programming languages essentially everything that can compile to webassembly and two languages that they support within sdk like rust and mobile code so it's very easy for
you to get started because you probably can use language that you know already next we have a streamlined developer experience as i showed before streamlined in the sense that you know you need to know only very few simple api calls and library calls and use those in order to transfer bitcoin and use the different features and all this was done in a process of a very so in a very decentralized way so decentralized in the sense that we asked the community for requirements we worked with the community and what they what use case they want to do and from this derived body to build and the community voted in a proposal of building this feature so we decentralized or we are in process of
decentralizing the governance of the internet community more and more that is community involvement and having a community vote on proposals of features we do or should not do and notably also we are doing a workshop next week with the community where we go even further and directly working together with the community on certain aspects of this feature now this brings an order into an outlook so the internet computer is open with a rapid base and our community is increasingly driving our roadmap so this is one of our big goals decentralization of this also and i would like to show you know two features that are up on the roadmap that that are coming so one is at some point ethereum ethereum integration the ethereum
integration will allow ethereum smart contracts to call ic smart contracts and vice versa for example this will allow that ethereum can use internet computer smart contracts instead of so far serving the web page of the smart country because today web pages for ethereum smart contracts are usually hosted on big tech skills which means it's not as not just as a blockchain and with this integration we could reach a state where we have everything for ethereum smart conflicts on the blockchain but of course there are much more ways you can use this integration for and then there is another very interesting feature it's the service nervous system sns so essentially the sns is an nns a network nervous system that i explained earlier for the governance
in a box or in a canister that you can take you can customize it and you can deploy it for your decentralized app that you're building so it means it bakes distribute takes decentralized decentralization one step further so we know if we now have three layers of decentralization if we deploy this the basic first layer of decentralization is decentralized computing on the decentralized internet computer platform the second layer of decentralization is the decentralized governance of the internet computer through the network nervous system the nns the third layer of decentralization is the governance tokenization tokenized governance of each or of selected decentralized apps that are running on the internet computer so it brings
decentralization to the extreme level essentially it's total decentralization of everything and having this total decentralization and combining this with the limitless scalability of the internet computer we received or we obtained decentralized infinity thank you [Applause] wonderful thank you thank you all we might have some time for a few questions if anyone has uh won one or two please how do you select the amount of nodes that are responsible for validating particular chemistry
uh so the subnet selection depends on subnet types so we can have different subnet types and i think the smallest one is a storage subnet with four nodes and the biggest one will be uh fiduciary great subnet i think with 151 nodes but of course it can also go further and depending on your security requirements or decentralization requirements you can host your canister on supplements with different uh number of nodes but the important thing is that it's not just the number of nodes but these four dimensions of decentralization i was talking about so what we do is we algorithmically select the number of nodes that the subnet should have in a way that decentralization is the highest possible so that's the important part it's not a
random selection but it's really a selection that the nodes are as boss as much decentralized as possible so geographically geographically distributed distributed among different node providers different data centers and different legislations by this we can reach a very high security essentially this decentralization directly translates to security yeah but how does the network actually know what exactly i'm doing within the canister like it may hold just one bitcoin for me or like a thousand bitcoins and it's like totally different security requirement and that's how many of you know so so you say so if you uh deploy a canister you select this you can select subnet properties where you want to deploy the
canister on so you can say i want my canister on a small subnet or a super large subnet it's a large one where you know explains your controls creator defines that that that's creative design and like in your case i guess you're gonna even we want larger subnets because there's lots of there might be lots of value uh in those bitcoin enabled subnets so what we suggest is to use subnets with probably something like 50 nodes or more yeah and how do you know like what is the cost of the attack on those 15 hours like it just becomes like oh it's very super large like i mean because i don't know the economic models now but i mean it's a good question maybe we can take it off then also but in principle it's very hard to compromise 10 20
[Music] completely independent entities and of course we can grow by having more nodes and make it as much substantially harder so in the future everybody will be able to do it but they still need some work to get there okay okay i want to do it because it's useful to me yeah you get revenue so you get paid in icp dolphins i couldn't show this model so there's a live cycle of icp tokens so when you run a node you get
paid in icp tokens and then you can sell these icp tokens on exchange or you can keep them and wait if they appreciate in value and if you sell it in exchange if you get money for them or you can use also the icp tokens can is the developer to charge the canisters with psyche so that's how you pay for the competition costs of the canisters so if you want to become a note provider you need to provide a node hardware and you get the open space for providing the computational services i can see the three cases when we can buy some tokens i can actually buy all tokens if
the value of bitcoin is higher than the price of copies i guess so once it gets all tokens the price of attack is lower you can't buy anything but they are owned by independent people currently it's a market cap of 8 billion dollars and lots of it is locked up in voting neurons and can currently not be sold my question slightly is that technically quite over my head but very interesting um you talked a lot about the decentralized um
nature of and the the community making decisions are you saying that the more the more um icp that you own the more influence you have on the phone you have to directly i think so ultimately that's kind of like it's not it's not ultimately democratic is it basically which you are the more say you get so that the idea is that you want to evolve the network in a way that
is in the interest of the network and people hold lots of tokens have lots of interest in the network and it's so much decentralized there is that there's no syrian parties even not the dfinity foundation of the internet association it's not it's not decentralized is it it's very centralized it's centralized around people who have lots of money it's not decentralized this is a fundamental question at the heart of cryptocurrency in the heart is like basically you know is idea of decentralized he said like yeah we love decentralized it makes perfect sense but ultimately we're getting away from decentralized and what we're getting is just a new version of
rich people having the most say right so that's why i'm just challenging you a little bit on that on that um it's an interesting discussion it's a good discussion perfect thank you thank you all so much