Turn-key Smart Contracts
Devcon·Sun, Oct 7, 2018, 12:00 AM
Visit the https://archive.devcon.org/ to gain access to the entire library of Devcon talks with the ease of filtering, playlists, personalized suggestions, decentralized access on IPFS and more. https://archive.devcon.org/archive/watch/3/turn-key-smart-contracts How do we empower Rapid Application Development on Ethereum? How do we enable mass adoption of Ethereum? And how does one build such a platform? Now is the time to abstract development away from the “elusive and mythical creature,” or the average user as defined by Alex Van de Sande. UI driven development will finally bridge the gap between Ethereum developers and the average user. Speaker(s): Mike Alonso, Matt Swezey Skill level: Advanced Track: Developer Infrastructure Follow us: https://twitter.com/efdevcon, https://twitter.com/ethereum Learn more about devcon: https://www.devcon.org/ Learn more about ethereum: https://ethereum.org/ Devcon is the Ethereum conference for developers, researchers, thinkers, and makers. Devcon 3 was held in Cancún, Mexico on Nov 1 - 4, 2017 Devcon is organized and presented by the Ethereum Foundation, with the support of our sponsors. To find out more, please visit https://ethereum.foundation/
Transcript
our contract developers are there well the answer is not enough we're mirroring a similar situation that happened in the early days of what development in the 1990s we have high demand low supply right now we have around 9 million Java developers and that's paled and conspiracy to like the less than 10000 blockchain developers and even less mark contract developers and these smart contract developers are up against a lot and here's one example of how they are and so we created a smart contract lifecycle and this is a brand departure actually from traditional software development life cycles and I come from a project management so I love the life cycles we start the business model specifications currently we're programming money essentially with smart contracts that's a departure from traditional software depending on what you're programming and what you're building but analysis requirements are standard architecture design code that's standard and then we get to system testing we are programming money and any bug is actually catastrophic to our business model it ruins our entire business model so we spend a lot of time in testing and we go through UAT testing regression testing we try to break these things and then we try to get it audited that's all so the parts are from traditional software development it's not a standard but here it pretty much is we confident we deploy it and then we support maintain that's another departure supporting maintaining is done by the EVM there's no back office supporting this it's supported by four nodes and miners and so after death or business power user really how to interact with your smart contract it's a minimal footprint and you will have to support any bugs and what does that mean when a bug comes across your smart contract or you have to upgrade it or a feature you have to run through this entire cycle again traditional software development allows us to just add features upgrades fix bugs and really just deploy it again here we have to create a new smart card to fix anything or to upgrade it and so that adds to the smart contracts that are retired what they're now really retired and so we have a lot of them on the network so there's more than 1.8 million smart contracts on the EVM that's closer to 2 million now and they're growing so let's go inside the network and so we got this information from ether camp and ether scan since 2015 we've been slowly growing on smart contracts in the EVM and now in quarter 3 2017 we've have more than a million in the court in this quarter alone deployed to the EVM and we project that it's going to grow until we get you know 2018 where we have a million smart contracts per month and if you compare that to blogging there's over a hundred million blogs created each month and so that's a trivial number when you compare that to these systems that are already been extracted and are being used and so what else are we going up against well difficulties our contract so we have you know basic nuances like the differences between send transfer and call that value and then we have more advanced nuances like reenter C issues and so all this adds to creating going back into that smart contract lifecycle and running through it over again because you have to add a feature fix a bug and so how do we enable rapid smart contract development well we need to abstract a few things from here namely this portion right and this is and there's this has been this is gonna help average users to use this platform now Alex funder son said the average user is just a lift and mystical and elusive creature but that's not true because we know who the average user is and so the average user is really developers there's a highly technical and a small portion is just the consumer Chad and so we have to develop a platform that targets all three of these to enable rapid mark on tech development and mass adoption and so how do we do that well we start small we crawl there right we do templates these are very easy just fill in the blank templates yeah very one use case they do it very well and that's it but it's too narrow and that's not enough so what's the next step configurable smart contracts you basically take that template and you add features and and additions to it so you can just switch on and off what you need but that still isn't enough because that is still a rather narrow use case and so what's the next step smart contract creation via a GUI so what we can do is throw a template or throw I'm sorry we can throw elements of GUI onto another a canvas and we can abstract code from it and develop our smart contracts and then reverse we can take our smart contract upload it into the platform and develop a GUI from it so you can interact with your smart contract and so we've answered the what and the why and well now we got to answer the powell hello everyone I'm Matt Swezey founder product lead and developer at pactum how would one build such a platform to further encourage mass adoption and enable rapid smart contract development first let's do a quick user error there you I'm sure many of you have seen and recognize this diagram this platform needs to be able to receive store Allies and compile solidity and VIPRE source code as well as captured the generated ABI and byte code and be able to sign and submit transactions to the EVM there's nothing new here what is needed is an interactive friendly UI to allow everyday people are not developers to build out and deploy smart contracts to meet their unique needs at the same time this platform cannot forget about developers more on that later now let's explore the platform layer by layer the platform needs a killer UI and an Internet intuitive and cutting-edge UX that is a must do UI needs to be desktop and mobile friendly thanks to dozens of front-end libraries frameworks and templating engines such as jQuery and Euler bootstrap mustache and various others building such a UI won't be much of a challenge once the design has been established required at the client-side is web 3j s implementation and third-party wallet integration for outside wallets such as meta mask to allow users that to control their own wallets directly or indirectly to sign and submit transactions mobile developers web app developers back-end developers front-end developers blockchain and finally smart contract developers there's such a vast amount of skill sets out there it's impossible to master them all the API layer of the platform will enable any developer to harness the power of smart contracts without having to wrestle actual smart contract code this layer of abstraction will empower regular websites and applications to deploy execute and query the EVM without needing to do actual code development themselves save me time money and stress of having learning a new skill set moving on to the meat and the potatoes of the platform the middle layer of the stack or the back end of the platform is what connects the UI api to the EBM along with running other methods and business logic to interact with the EVM the middle layer needs to leverage web 3gs for JSON RPC calls to the EVM nodes luckily for us back in developers we have Java and.net libraries such as web 3j and aetherium two important two projects as dependencies eliminating the need to code direct web 3 JS integration developers can now call Java and c-sharp methods to interact with the blockchain now what are other features this should be extracted to accelerate smart contract adoption username to wallet address association similar to how ENS works but now for contact information says phone numbers emails user names can be used instead of handling 40 character hexadecimal strings if you exclude the prefix with these associations users will now be able to have a directory lookup and keep their own private address book on the platform another example is wallet management while at generation security and handling for new non tech savvy users are those wanting to be lazy and not worrying about handling their private keys this is not the preferred method though amongst early adopters before mass adoption there must be a middle ground to encourage new user growth and finally to the EVM note layer the platform should have its own local within iam clients one to support that both the test net and main it works and also in order to deploy execute and query smart contracts as well as send transactions if the user is utilizing the platform's user wallet management system now here's the stack as the layers come together and let's run through a non developer user story to see how the platform stack is utilized now say users come in to this platform desktop or mobile UI and they want to sign a Dowell smart contract well they drag and drop UI elements onto a camp let's say the first one they drag pick select is a UI element representing the Board of the Dow now after they drag it onto the canvas they should be able to click on the element and then configure what should they could figure well let's for example say how many board members total there are or what decisions require majority are unanimous votes how our board members added removed or replaced now after completing the design of the Dow these are will know immediately if their design contains any errors once error-free the user ability' deploy the dow smart contract to the test net or directly to the main net the steps involved here can be contained in the user's browser are taken to the middle layer of the platform depending if the users utilizing their own third-party wallet which is preferred or if they're using like utilizing the platform's wallet management system okay let's move on to a dev user story a developer comes up with the most amazing ICL smart contract and once the community to utilize their design they've come to the platform's interface upload the source code and vie for our solidity the platform would then check for errors compile and generate the API and finally parse out the annotations to generate the UI interface now the developer can publish this configurable smart contract now to the public along someone like a chat to launch his own token with minimal effort and no coding this is an intro alright so closing thoughts here that here's a great visualization of what this platform is striving to achieve at a high level we want mass adoption of a thin idioms smart contract technology right this is possible through abstracting smart contract development away from non smart contract developers and non developers among the use of the platform users enter the platform through the UI and API layers this allows for a sec CSC and CST T's to be consumed now smart contract developers will also enter in through the platform's you although smart contracts source code as stated before have you i aughtta generated through the use of parsing the ABI and also through new development methods and ideologies we will introduce the through the platform such as annotations that allow audible generation of the UI for interaction and if they desire to they can publish this source code to the platform's library and now that smart contract is now a configural smart contract our smart contract template that your average user can't consume now we talked about how the platform is going to do it now there are some responsibilities that this platform should take in encouraging mass adoption one is education we want to promote user growth so we need to educate new users on what a blockchain is what restless agreements are and how programmable currency can improve their lives on a daily basis also involved is protection we need to prevent and stop attackers and scammers as much as possible especially as new users come in they're very naive y'all sure get slack email spam all that but you know check your wallet check this you know fake leak to mune upload your private key like they're gonna fall for that but the average user will because these emails are more and more on a daily basis getting more official-looking one way to stop this is to blacklist proven bad contract addresses or wallet addresses now this can you know range from different levels one you can notify the user like hey you're about to sin transactions to a known bad wallet our smart contract address or if you the user chooses to through the platform they should be allowed full protection and then the platform should completely block their transaction and then notify them why the transaction was blocked for further protection now people browse the web every day most do not realize they're indirectly using TCP and IP protocols to visit their favorite sites and five years or so this plan form should achieve the same result the average user will be extracted away from the protocol and essentially never knew they were interacting with the EVM thank you [Applause] [Music]
Automatic transcript — names and jargon may be misspelled.