Qortal AMA
What is an AMA? An AMA is essentially a ‘session’ wherein a person associated with a project (in this case, crowetic) is asked questions by someone else. It stands for ‘Ask Me Anything’, and it is a useful tool to assist in overall understanding of a project, and get down to the details of said project.
In this AMA the questions were asked by another developer in the blockchain space, GreyWolf. He asked some great questions and we figured that the Qortal community would like to see them and their answers. Enjoy!
Green – GreyWolf questions
Blue – Crowetic answers.
This AMA took place between ‘crowetic’ of Qortal and developer ‘GreyWolf’ in a private telegram community.
"Qortal is basically what crypto was supposed to be all along. They are rebuilding the internet without the internet."
I admit I am a intellectual troll at times and this message begins where I just implore into simple questions to back up such a statement, crypto is defined by the needed application by a business or entity or group.
What is meant by that statement, is… We are doing everything in a 100% decentralized and distributed fashion, along with adding the ability for ‘any’ person to become part of the project, and help power the network. (As these were the original concepts of the Bitcoin whitepaper, and the concepts to bring the ‘power back to the hands of the people’. etc.
Why do people claim the chain is private and not opt in?
I have never claimed the chain was private, so I’m not sure what you mean by that. the CHAIN and TRANSACTIONS are public, but since everything is completely decentralized, there is no method for an ‘identity’ to be tied to an account, unless the person specifically says ‘this is my account’.
Yes, you will see I am just questioning the community as politely as possible. I have not directed anything but love towards your commitment to helping ARRR.
Can you explain what level of funding and or dev hours have gone into your SDK?
Oh wow… lol… well… I have personally been working on the concepts and coming up with the correct people to work on the project, correlating messages between certain high IQ devs who shall remain nameless, who can’t seem to get along with anyone other than me for longer than a week (lol) and dedicating a TON of time to perfecting the concepts, etc… for 10+ years now.
But as far as the actual development goes, it really depends and is difficult to answer that question directly, as there are multiple components to Qortal, such as the AT system and its custom language that took its developer quite a bit of time to build, then our developer some time to translate it into something that was compatible with Qortal, etc etc…
But the actual development of the base level platform that exists today, started around 2016 during the ‘takeover’ of the QORA project. That was when the code actually started being written for what ultimately became the Qortal that exists now.
In order to accurately count the hours, that would be quite difficult, but it has been A TON of time and effort since ~2013 that continues to this day…
Myself personally, I have invested what would equate to nearly 2 million USD (which is part of what makes the current ~1.5 million dollar market cap so offensive to me) in one way or another in order to get the platform live and keep it moving.
Has there been any business application or utility so far applied to your network outside of staking and l1 base tradition functionalities?
We do NOT ‘stake’. In fact that is part of what we are trying to get rid of in the ‘crypto space’. We use a method that gives NO ‘weight’ to ‘money’ in any way, disallowing the ability for anyone to ‘buy’ any sort of ‘influence’ over the network. We believe this is the only way to prevent the platform being ‘owned’ in one way or another, when it inevitably gets to the point that it becomes a more widely known ‘threat’ to the existing system.
It must be impossible for those with the most ‘money’ now, to be able to gain a foothold in Qortal, simply by having more money than others.
that being said… yes, there are TONS of available use cases, including the ability to host a website on our completely decentralized and distributed data network, QDN. Users can right now, publish a website on QDN that is there INDEFINITELY, for a one-time name registration fee.
The data published doesn’t cost ANYTHING to publish, not even a transaction fee (as we use the same MemPoW that is in our consensus, to allow transactions to take place completely feeless in regard to publishing data on QDN, and messaging in Q-Chat) – Q-Chat will soon be getting turned into a protocol in order to remove reliance upon unconfirmed transactions at all, but that’s another story.
Q-Apps will be made available VERY soon, which will leverage the ‘websites’ and give them a TON more functionality, allowing applications to be built in the same fashion, that get more redundant, stronger, faster, as more users access them from their nodes.
QDN is a masterpiece of a data network with a blockchain security layer. It allows you to publish a website with no DNS, no server, no domain, no publishing fee, no continual fee, that cannot be taken down, cannot be hacked, and stays there indefinitely until you as the owner decide to take it down.
You can see one of my QDN hosted sites, even without running a node, by way of a ‘gateway node’ that I run, which I have made accessible here – https://qortal.link/crowetic
(with the gateway node, you can input any registered name after the / there, and it will load that site from QDN and display to ‘the internet’. Making use of the node running on that domain. But if a user accesses the site from the Qortal UI they do NOT need to utilize any domain, or access any server at all. In the future when we have lite nodes we will be able to build a ‘browser’ as well for QDN, so that accessing sites through the UI is not the only way to access them with full decentralization.)
When Q-Apps go live, full ‘merchant sites’, video hosting platforms, social media, blogs, forums, and literally anything you can think of, will be possible to build on top of QDN.
(payment processing, tipping, user account ‘authentication’, cross-site linking, communications from users to site owners, all directly possible from the sites themselves.)
As mentioned by another user there was concern around the model of sponsoring nodes, with the program stopped, have all the leases been revoked to nodes in the previous governance program model?
If you’re referring to the ‘self-sponsorship’ issue… the self-sponsorship algorithm has done its job, and retroactively added a ‘blocksMintedPenalty’ to every account deemed by the algo (utilizing a TON of data points in very specific fasion to both catch the self-sponsors and not catch non-self-sponsors, even those sponsored by obvious self-sponsoring sponsors) to be controlling multiple accounts. The same method was utilized on EVERY account, and every account was treated exactly the same by the algo.
The algo found and removed minting and sponsorship rights from 5,570 minting accounts from ~60 sponsors, and we are now past that scenario. We knew that eventually we would need to address the obvious one game that could be played on Qortal’s minting system, but we had expected that we would be able to do so a bit later down the line, so that we could have gotten more of our new features first, but alas, it worked out this way… no matter, that is now behind us, and we’re moving forward, and massive Q-Chat and QDN improvements are now on the horizon, along with the addition of multiple new signers into the developer group, etc etc. 2023 is going to be a REALLY exciting year for the project.
Understood, so how does your networks consensus work then? Can it not be 51% attacked? Do you control the push and commits for the node updates?
51% attacks are nearly impossible, as the person looking to attack would need to have over 51% of the level 5+ accounts, and also, at the beginning of the network, the ‘founder’ accounts of the network mint with an ‘effective level’ of 10, making them more likely to be the actual SIGNER. This was done specifically for the network’s security while it was still relatively ‘small’.
being the block signer only matters for chain security, every minter is rewarded every block whether they’re the signer or not.
Only minters of level 5 or higher are actually able to sign new blocks, and obtaining the majority of accounts of level 5 or higher, AND the majority of the founders, would be the only way to ‘attack’ the network.
As far as the update question, the Qortal Core has ‘auto-updates’ (which can be disabled by users if they choose) that work by way of a ‘group_approval’ (basically multi-signature transaction usable only by ‘admins’ of a specific group, in this case the ‘dev-group’.) transaction. The developer who is submitting the update code, submits a special type of transaction that sits on the chain until it is signed by the required amount of dev-group admins. This transaction contains the code for the update’s automation. When the update has been signed by the required number of dev-group admins, that final signature block becomes the ‘update block’. Every node that passes the update block and has auto-updates enabled, will automatically update the qortal.jar once their node reaches the block. There is also code included that delays the updates so that the entire network doesn’t go down at once to update at the same time, the staggered update ripples throughout the network until all auto-update-enabled nodes have been updated. This allows for seamless network improvements and much more ease-of-use in regard to running a node and making sure it stays updated with the newest features and functionality.
What format are these websites (on QDN)? html/css?
Yes, websites are written in HTML/CSS/JS (client-side languages) and SECURED by the blockchain. The data itself is encrypted and chunked, and stored on any node that accesses it. (views or follows it)
Viewing nodes become a peer for THAT VERSION of the data only, if an update happens, they would have to re-view it in order to get the new copy of the data.
Followers obtain updated copies of the data automatically, when a new version of a site is published, all of the name’s followers automatically obtain the new version of the data.
Data is only decrypted and built when VIEWED, so even the followers, unless they have specifically clicked the site to VIEW it, only have ‘encrypted chunked nonsense’ on their node as far as any ‘prying eyes’ are concerned, if the data isn’t accessed THROUGH QORTAL, then it is a bunch of encrypted chunked nonsense data.
What is the estimated monthly cost hosting a node now, and versus a ballpark estimate of when the network supports 100,000 websites approx? (To the end user.)
Given the fact that a node can literally be run on basically ANY computer, even a raspberry pi 4 can run Qortal with no issues (as @Theophilus33 can attest to, and many many others 🙂 ) – it costs you only ‘bandwidth’ to run a node, and most people in US and EU have ‘unlimited data’.
In the future our plan is to remove the reliance upon ‘the internet’ and ISPs as well, but that will require a much larger network of nodes, and our Mesh Network addition, and a bit of time to fully accomplish, along with some concepts for cross-ocean connectivity, etc… we have a few ideas there, but we’re not there yet overall. So we will utilize ‘the internet’ a while longer I suspect.
But Qortal was built in such a way that it does not REQUIRE ‘the internet’. It simply requires A method to communicate…
Alright so you index the site over the number needed of blocks, are the blocks dynamic? Or fixed, and to what TPS loads?
The data on a QDN namespace is published in the form of a zip, that zip is then encrypted, chunked, and hashed.
Each hash is then stored in a single file, which is in turn also hashed.
Finally, the single hash, is stored on the blockchain.
With that single hash, we can then tell if any file subordinate to that hash was modified, as that hash would then also be modified, and we can assume data was changed if that happens. At which point the modified data is made note of and acquired to view the newly updated site.
On the privacy side, could an attacker parse a website, and then export it? Or is this not possible without signing by way of public key?
Not sure what you mean exactly by this, but since all of the data is encrypted and chunked, in order to decrypt and build it, you must first have a key.
For public data that key is obviously available publicly, for private data it would be only available to those who were specifically given access to the key (this could be done by way of groups, which we will be adding very soon, or by way of a single-account ‘share’ done by the name’s owner.)
My only concern with this statement is for example, if you run waves tech which can scale to solana TPS on a super machine, or run on a raspberry pi, is determinate on the number of blocks being processed by the network, example:
100tx per second, rapsberry pi can handle, 10,000tx per second, def not, you need more resources or the node will stall.
Our chain functions differently on the base level, and even now, just to process the multiple listed trades (which live on-chain in the form of an AT) and all of their transactions to keep them ‘alive’, there is quite a bit of processing going on at any given time, all of which is handled just fine by a raspberry pi.
I suspect EVENTUALLY we will get to a point wherein pis will not be able to run EVERY aspect of QDN and everything hosted there, but that won’t be for quite a while, until we build a ‘server-side’ hosting method… at which point we will also be ‘modular’ so that nodes that CAN support the added processing necessary, can simply install an additional module that will allow them to do so.
But that’s not on our development radar yet, and as such hasn’t been fully ‘flushed out’ at this time. We do know, though, that Qortal, as it grows, will definitely need to become ‘modular’ in multiple ways, and are planning with that in mind.
Client-side hosting is what we’re focusing on now, and I don’t see any reason why (at least from existing experience and seeing how things have gone so far) that a pi should not be able to continue running everything on QDN for quite a while longer.
Ok so there is public data end user can view, and backend secured by key?
Correct, we have not yet initiated the ‘private data’ functionality, but that will be done very soon, and it will be data that is secured unless you have specifically been given access to it in one way or another, and since Qortal also has on-chain ‘groups’, doing shares and multiple other things becomes able to be accomplished quite easily.
We do not yet have group-controlled or private data live, but both of those are very close.
Ok good answer thank you for being transparent, scale is a serious topic.
Yes, it really is, and we are very aware of that fact, but as it sits right now, the pis are easily able to support everything we have, and should be able to do so for quite a while longer. 🙂 and of course, I am ALWAYS 100% transparent, just like our codebase. 😉
What I am personally VERY excited about, is ‘Qortal Git’, which will allow EVERY NAME on QDN to have along with a ‘namespace’ for a ‘website/app’, also a ‘git repo’, this will be VERY exciting, and allow multiple other open source projects to utilize a truly decentralized distributed git repo location, instead of the Microtrash-owned ‘GitHub’.
Thats a serious application which could help out a lot.
Yes, I am VERY excited about this, and there are only a few other little things we need in order to make it a reality. 🙂
Excellent, this exercise was in the flow of incorrect information, and people to challenge themselves to determine the truth 🔑
some lingering questions
– is your language for SC non turing complete, or turing complete
– is there a shortage, or abundance of libraries available to work wtih
– would you be interested in stateless gateway to TN or DVPN?
– Both would function by using the other network as an oracle
– transfer of funds is between user public keys
So, our ‘SmartContracts’ (I don’t like using that term as I feel like it has been bastardized like many other things in the space, by the likes of Ethereum and Binance ‘smart’ chain… but yea…) are written utilizing a turing complete hardware-level programming language called ‘AT’ or ‘Automated Transactions’.
This language allows for a ‘virtual CPU’ that lives on-chain, to automatically execute transactions on the chain.
At the moment, the primary use case for AT that we’re using now, is the ‘ACCT’ AT, or ‘Atomic Cross-Chain Trade’ AT. This is what powers the ‘Trade Portal’ of Qortal and allows us to cross-chain trade with the 6 ‘foreign’ coins that we now support.
the AT language is able to be read up more on here, on the main developer’s main info website – http://ciyam.org/at.
Interesting, is it possible for you to implement a non turing complete language? As they are the most secure, and what I feel comfortable writing software for, I can cite for you why I have such a position
I do believe I sent this once before – https://hackernoon.com/should-smart-contracts-be-non-turing-complete-fe304203a49e
Well, I suppose it would be possible, but since our ATs are a lot ‘simpler’ in functionality and what they can accomplish, and are not utilized to create ‘full applications’ but instead for simple automation of payments, automated escrow, automated ‘lottery’, and cross-chain trades, I don’t know if it would be something we need to focus on at the moment.
We only utilize the ‘battle-tested’ ATs that have existed for many years, modified to work with Qortal’s unique blockchain, and ATs are limited in terms of what they can accomplish overall, and are only meant to be utilized for automating certain transactions.
Thus far there hasn’t been anything like that that has taken place, but I welcome anyone to try to break anything, always, so that we may make any necessary modifications. 🙂
Can a user make their own AT, deploy and run it locally? Is there an authority of AT modules, and would that be your team?
ATs run on-chain. Yes, users CAN make their own, but it’s not a simple language to learn, and they are limited overall with the things they can do… think of them more as a ‘virtual CPU’ instead of a full VM. there is no ‘authority’ over them per se… other than the ‘authority’ given to them when created… If I understand the question.
What language is this based on or closest to in nature?
Assembly. AT language is a hardware-level language that is meant to run on-chain and be ‘simple’ as a ‘virtual CPU’ instead of a full ‘Virtual Machine’.
You did a great job handling some very simple, and some difficult questions.
Thanks! I do my best. 🙂
IMO the ATs should be a point of focus given the volume of DEFI comes from protocols.
Yes, we have yet to put a lot of focus there, as we first plan to have an ‘AT builder’ available for people, so that they don’t have to learn the AT language fully in order to launch an Automated Transaction. I suspect we will utilize them when we have ‘eBay-like’ markets as well, for automated escrow, etc… they could also be utilized for ‘automatic monthly payments’ and things like that, in tandem with a Q-App.
Just be aware many devs will wish to assemble their own ATs.
Yes, I’m certain that will be a thing as well, and that is totally possible, the language just takes a little learning to grasp. AT is quite unique. The developer of the AT language is one of the highest IQ people I’ve ever dealt with, and has some truly amazing software under his repositories. It took me many years of daily communication to get enough translated to our devs to allow his AT system to be built into Qortal.
You did very well for ARRR, and thats super special to me.
Glad you liked what we’ve done, our lead dev also contributed some improvements to the ARRR repo directly that forge has taken and made use of. 🙂
Thank you, this conversation was very helpful.
My pleasure, I am always around to answer questions from users or potential users of Qortal. I do not expect that every person has taken the time to read our very extensive and ever-growing wiki line-by-line, and am always here to assist in obtaining a better understanding of our completely custom base level infrastructure platform. Thank you!