Archethic TechUpdate - April 2022
The Archethic network published a new release end of April 2022.
What is about ?
This network upgrade correct bugs and enhance the system by pro the overall behavior and functioning of the network.
- New database engine
Databases are one of the most critical subject around software development and design, and we took this approach really seriously, doing a lot of benchmarks and studies for our need. Those far we used an enterprise database solution to provide our needs which were: NoSQL, Columar data selection and high throughput of write.
However, we faced some challenges along the road with the solution we used, from latencies to industrialization issues. So we have decided to re-think and re-design something which will be completely design for our need.
Then we have created a new custom and tailored embedded database for Archethic's needs.
This new storage engine leverages things we wanted from the ground but with the addition of the specificities of Blockchain protocols which are immutable, append-only writes.
We took inspiration from things which exists out there, from Bitcoin to Facebook.
By running again our benchmarks, we got really great metrics of our new database without the constraints we faced before.
The results are way better and can make the system more responsive.
So in addition to make the system faster, we are also making it easier and more accessible by reducing the hardware requirements to run a node (specifically less memory is required) which was higher with the previous database solution.
For more technical details, there is a dedicated page on the Archethic docs: https://archethic-foundation.github.io/archethic-docs/build/core/database
- Keychain & Decentralized Identity
Nowadays, we are using a lot of passwords to identify ourselves to websites other online services. And the crypto world doesn't escape the rule. We are struggling with private keys and passphrase to remember and store for retrievals and backups.
Archethic, since its design, took this problem into consideration and wanted to bring a better solution with a password-less authentication while backed by the crypto. We designed a system which reduces the overhead of the private keys retrieval. This includes:
- Key derivation: This is a mechanism in such a way we generate private key deterministically with a given seed (mnemonic sentence or strong random data) and path (to identify how keys will be generated). This helps to be able to retrieve keys after loss if you know the path and the seed.
- Keychain: This is a new concept brought by Archethic to leverage an on-chain wallet which references the seed and all the several derivation paths we can use for services (Archethic, Bitcoin, Ethereum, Google, Amazon, etc.)
- Keychain's access: The important point is the keychain (or on-chain wallet) should be accessible by multiple origins and authorized ways such as password, hardware devices (ledger, usb keys) and biometric devices. Also, these accesses must be secured through cryptography using end-to-end encryption, so only the authorized keys would be able to access the wallet
We are now proud to announce all those concept have been implemented through the first version of the keychain, which will help to retrieve and store new way of generating keys while keeping easy access to them.
This new feature brings us on the journey of the password-less authentication to be the only key in a near future.
But to go further on the read of the Web3, we have decided to create a decentralized identity on top of this keychain by using W3C standards such as DID (Decentralized Identity)
Each keychain would map to DID which can be used and served across other applications using W3C DID Document, such as Verifiable Credentials
- Origin shared keys
Archethic's transaction are built in such a way to identify which device or origin created the transaction. This identification help to known if an authorized origin or device is allowed to make a transaction.
Archethic's Proof of Work is to verify that a transaction have been signed by an authorized device, then the validation nodes will just scan over the authorized public keys to check the validity of the transaction's origin signature.
To leverage this list of authorized keys, a dedicated transaction chain is built during the network initialization, to define the initial authorized keys and the origin shared private keys.
So every client, from now, would have to get the shared origin private keys and decrypt them (if authorized) to be able to build a transaction and secure the origin of it.
- Smart Contract Language
Along with some networking, synchronization and validation improvements we are also working on the smart contract layer to add some utilities functions to the language.
This month we have added two main functions we help to identify the first public key and address of a transaction chain.
Why is this important ?
Because Archethic is using a transaction chain when we are coding a smart contract for a given type, we won't know what will be the address of a specific chain at another time.
Then if you want to apply some logic and condition based on a given person or a given chain, we want to know the first(genesis) address or public key to uniquely identify some chain.
- Node distribution world map
We wanted from some time to be able to show and plot nodes in a world-map, to see the distribution of the miners.
Thanks to geographical patch algorithm, we can reverse back it to coordinates into 2D plan to plot nodes by cluster and identify how many nodes there are in those patches
So for now there is a distribution map available in the explorer.
- Testnet's faucet limiter
To test the network, Archethic's testnet can send UCO as experimental funds. Those can be used to send UCO to others or deploy contract.
However, in order to prevent the draining of the faucet by someone, we have implemented a limiter.
So when someone will request some UCO for a given address, this address could not receive more than 3 funding for an hour.
- Bug fixes
We worked on an overall improvement of the network by fixing some issues:
- GeoPatch algorithm: Node's coordinates leads to a more accurate geo patch to ensure a better distribution of the nodes around the world
- During Self-Repair, synchronization and aggregation of BeaconChain summaries work better now and reduce the risk of an out-of-sync when a new node joins the network
- Explorer have been updated to resolve some UI issues
We also make the integration with origin key retrieval and usage smoother.
The updates are available on Github
- JS SDK: https://github.com/archethic-foundation/libjs
- Dart SDK: https://github.com/archethic-foundation/libdart
Thank you !
A big thanks to the Archethic community and to all Archethic developers who come together to provide input, thoughts, and contributions.
Archethic Public Blockchain
Archethic is a Layer 1 aiming to create a new Decentralized Internet.
Its blockchain infrastructure is the most scalable, secure & energy-efficient solution on the market thanks to the implementation of a new consensus: "ARCH".
Archethic smart contracts expand developers' boundaries by introducing internal oracle, time-triggers, editable content & interpreted language.
Through native integration for DeFi, NFTs & decentralized identity; Archethic offers an inclusive and interoperable ecosystem for all blockchains.
In order to achieve the long-term vision of an autonomous network in the hands of the world population, we developed a biometric device respecting personal data privacy (GDPR compliant).
Making the blockchain world accessible with the tip of a finger. Be the only key! https://www.archethic.net/
Archethic Foundation Non-profit in order to manage decentralized governance of the public blockchain
Do you want to learn more?