- On Ethereum, users can create two types of accounts that hold their crypto: External Owned Accounts (EOA) and Contract Accounts (CA).
- EOAs, which most Ethereum users opt for, are the type of account you use if you open a MetaMask and Coinbase Wallet.
- With EOAs, users are given a pair of private and public keys, and anyone can send crypto to an EOA using their public key. On EOAs, only the owner of their account, the person who has access to their private keys, can initiate transactions.
- CAs on the other hand, are accounts controlled by code – not private keys – so they cannot initiate transactions themselves.
- The issue with EOAs comes down to human error – if a user loses their private keys, there is no way to recover that. Account Abstraction addresses the issues of an EOA account by merging it with a CA – therefore creating built-in mechanisms that can allow users to keep access to their crypto.
- Some of these built-in mechanisms include a social recovery system, where several users have the ability to return access to that account should someone lose their personal private key. Account Abstraction also allows users to create “multisig wallets” that give a group of users access to an account, and require multiple users to sign off on transactions as an extra safety mechanism.
Key Points
- Key blockchain alternatives to Hyperledger include: Ethereum, Quorum, Corda
- Hyperledger Fabric has implemented EEA ( Ethereum Enterprise Architecture ) Enterprise stack and can call Ethereum smart contracts now
- Biser Dimitrov's EBC newsletter: https://enterpriseblockchain.substack.com/
References
Reference_description_with_linked_URLs________________________________ | Notes_______________________________________________________________ |
---|---|
Wallets and tokens | |
https://drive.google.com/open?id=16YzIZpOCFDTR4E0SW5EZ31sdQViWJhE7 a redeemable bitcoin token for ERC-20 wallets w transaction interop | |
Hashicorp Vault Tutorial ** - secure mgt of credentials for client apps | Secure store for credentials, passwords, certs and other secrets control, monitor secret access gives apps an ephemeral credential for sessions ( dynamic secret ) strong revocation controls for each single server encrypt as a service ( encrypt, decrypt, sign, key rotation ) Vault can configure secure storage, provide credentials for any app needing creds, json msgs |
Hashicorp EOS Consul Service Mesh Directory software *** | |
Ethereum Concepts | |
_compare-fabric-v-ethereum-v-corda-180914122948.pdf | _compare-fabric-v-ethereum-v-corda-180914122948.pdf |
https://www.ethereum.org/beginners/ | Ethereum for beginners |
https://www.ethereum.org/ | Ethereum |
https://en.wikipedia.org/wiki/Ethereum | Ethereum |
https://medium.com/blockchannel/life-cycle-of-an-ethereum-transaction-e5c66bae0f6e | Ethereum transaction concepts |
https://bitfalls.com/2018/05/31/what-is-an-ethereum-testnet-and-how-is-it-used/ | How to use Ethereum testnets |
Ethereum changes coming: POS, shards, lower gas, burn ether pdf | Ethereum changes coming: POS, shards, lower gas, burn ether |
https://hackernoon.com/costs-of-a-real-world-ethereum-contract-2033511b3214 | Estimated costs of an Ethereum contract - 2017 |
https://www.slideshare.net/Synerzip/blockchain-application-development-101 blockchain-application-development-webinar-sweetbridge-190905082233.pdf | Blockchain App Development Concepts 101 - slideshare - sweetbridge |
https://ethgasstation.info/ | Gas station - current gas prices to run a transaction ... expensive |
https://hackernoon.com/costs-of-a-real-world-ethereum-contract-2033511b3214 | calculating gas prices |
https://ethereum.stackexchange.com/questions/35539/what-is-the-real-price-of- deploying-a-contract-on-the-mainnet | Costs of a contract deployment |
https://entethalliance.org/enterprise-ethereum-alliance-advances-web-3-0-era-public-release-enterprise-ethereum-architecture-stack/ | EEA |
https://entethalliance.org/wp-content/uploads/2018/05/EEA-Architecture-Stack-Spring-2018.pdf | EEA stack |
https://entethalliance.github.io/trusted-computing/spec.html | EEA Off-Chain Trusted Computing Spec |
AWS | |
QLDB slides - 2019 | QLDB slides - 2019 |
AWS Hosted Fabric BAAS | |
Key Concepts
Ethereum Wallet Types drive NFT features
ERC 4337 - Account Abstraction
The Ethereum blockchain has deployed a feature known as “account abstraction,” seen as a key enhancement that could make it easier for users to recover crypto if they lose private keys to an online wallet.
This proposal just adds a new layer atop Ethereum’s mainnet layer. The goal is to eventually integrate account abstraction into the main protocol.
The contract can be used on all EVM chains, meaning it can be deployed anywhere that is EMV-compatible.
Account Abstraction is a concept that turns users' wallets into smart contract accounts, in order to make Ethereum wallets more user-friendly and to prevent any loss of crypto keys
How Account Abstraction works
1) An insightful deep dive from Devcon 2022 on Account Abstraction as a paradigm and its several innovative use cases:
https://archive.devcon.org/archive/watch/6/account-abstraction-making-accounts-smarter/?tab=YouTube
2) A walk through on how account abstraction as a paradigm and its design approaches, evolved through time:
https://medium.com/nethermind-eth/the-history-and-future-of-account-abstraction-10cb097ebdc8
Wallet security challenges
https://securityboulevard.com/2021/09/threats-grow-as-digital-wallets-gain-popularity/
securityboulevard-2021-09-threats-grow-as-digital-wallets-gain-popularity.pdf
tips-for-securing-your-digital-payments/securing-e-wallets.pdf
https://www.darkreading.com/mobile/who-s-in-your-wallet-exploring-mobile-wallet-security
who-s-in-your-wallet-exploring-mobile-wallet-security.pdf
Wallet Concepts
Ethereum Concepts
Ethereum Enterprise Architecture
Hyperledger Fabric has implemented all Enterprise features in the Ethereum Enterprise Architecture in version 2.1x
Web3.js frameworks for Ethereum, smart contracts, whisper & swarm protocols
https://web3js.readthedocs.io/en/v1.2.0/getting-started.html
The web3.js library is a collection of modules which contain specific functionality for the ethereum ecosystem.
- The
web3-eth
is for the ethereum blockchain and smart contracts - The
web3-shh
is for the whisper protocol to communicate p2p and broadcast - The
web3-bzz
is for the swarm protocol, the decentralized file storage - The
web3-utils
contains useful helper functions for Dapp developers.
Adding web3.js
First you need to get web3.js into your project. This can be done using the following methods:
- npm:
npm install web3
- meteor:
meteor add ethereum:web3
- pure js: link the
dist/web3.min.js
After that you need to create a web3 instance and set a provider. Ethereum supported Browsers like Mist or MetaMask will have a ethereumProvider
or web3.currentProvider
available. For web3.js, check Web3.givenProvider
. If this property is null
you should connect to a remote/local node.
// in node.js use: var Web3 = require('web3');
var web3 = new Web3(Web3.givenProvider || "ws://localhost:8546");
That’s it! now you can use the web3
object.
Web3j.lib - java version of Web3js lib
Bitcoinlib - wallet, with multi signature, multi currency and multiple accounts
https://bitcoinlib.readthedocs.io/en/latest/
Bitcoin and other Crypto Currency Library for Python.
Includes a fully functional wallet, with multi signature, multi currency and multiple accounts. Use this library to create and manage transactions, addresses/keys, wallets, mnemonic password phrases and blocks with simple and straightforward Python code.
You can use this library at a high level and create and manage wallets on the command line or at a low level and create your own custom made transactions, scripts, keys or wallets.
The BitcoinLib connects to various service providers automatically to update wallets, transactions and blockchain information.
Wallet
This Bitcoin Library contains a wallet implementation using SQLAlchemy and SQLite3, MySQL or PostgreSQL to import, create and manage keys in a Hierarchical Deterministic way.
EEA Off-Chain Trusted Computing Spec
https://entethalliance.github.io/trusted-computing/spec.html
This document specifies APIs that enable off-chain Trusted Computing for Enterprise Ethereum. In this release, The Trusted Computing specification enables privacy in blockchain translations, moving intensive processing from a main blockchain to improve scalability and latency, and support of attested Oracles
This specification has four objectives:
- Support private transactions on a blockchain between mutually-untrusting parties without disclosing transaction details to other parties who also have access to the blockchain.
- Support disclosure of selected information to chosen parties on a blockchain, while maintaining the secrecy of other information from those same chosen parties ("selective Privacy").
- Move intensive processing from a main blockchain to an off-chain Trusted Compute capability thereby improving throughput and scalability.
- Support Attested Oracles.
These objectives are achieved by executing some parts of a blockchain transaction off the main chain in off-chain trusted computing. There are currently three types of Trusted Compute that are supported by this specification:
- Trusted Execution Environments (Hardware based)
- Zero-Knowledge Proofs (Software based)
- Trusted Multi-Party-Compute (MPC) (Software/Hardware based)
The APIs are grouped in registration, invocation and receipt handing sections. Attested Oracles are considered a special application of Trusted Compute used to create increased trust in an Oracle, and can be implemented using the defined APIs.
Article on EEA TCE
Blockchains can greatly enhance their capacity to meet enterprise requirements around privacy and scalability by using Chainlink oracles to route transactional computation off-chain to the Trusted Computation Framework (TCF).
advantages and limitations of public blockchains, as well as outline the TCF architecture and how attested oracles via Chainlink can enable bi-directional connectivity between on-chain and off-chain environments. To demonstrate how this system works, we detail three industry uses cases in finance, insurance, and global trade in which TCF, Chainlink, and underlying blockchains can work in unison to improve backend business processes and reduce costs for both enterprises and consumers.
Key Points on Ethereum Public Blockchains
- the infrastructure that powers multi-party transactional contracts. They offer a shared computational platform that stores, maintains, executes, and settles the contract for all parties involved. Participating parties can neither decommit from their obligations nor tamper with the process once the contract is set in motion on the blockchain
- No need to trust counterparty or trusted 3rd party
- Data-driven Contract deliverables can automatically be confirmed in many cases ( eg payment, shipments, receipts etc )
- Lower cost, friction, time to settle with smart contracts
- Better transparency and traceability ( provenance ) on origins ( eg Food Trust network tracks lots )
- KYC compliance possible with Self-Sovreign Identities and Zero-Trust Knowledge proofs on public chains where supported
Challenges to overcome on public blockchains
- Scalability ( to fit specific use cases )
- Privacy
- On-chain data scope
Off-chain data, privacy and execution needed to meet these challenges.
Integration with smart contracts needed via trusted agents or oracles.
Trusted agents option
- Trusted agent is invoked by client apps or services
- Agent executes in trusted environment and can access both off-chain data and services as well as on-chain contracts and data
- Agent executes at top level, invokes contract as a service passing required data to the contract including
Oracles option
New Confidential Computing Solutions Emerge on the Hyperledger Avalon Trusted Compute Framework
Blockchain App Development Concepts 101 - slideshare - sweetbridge
https://www.slideshare.net/Synerzip/blockchain-application-development-101
blockchain-application-development-webinar-sweetbridge-190905082233.pdf
Potential Value Opportunities
Potential Challenges
Ethereum has been slow to deliver, losing ground to other platforms
https://cryptopotato.com/ethereum-problems-hinder-its-leadership-defi-world-experts-say/
Faced with the difficulties of delivering a satisfactory user experience, Ethereum developers are beginning to move to rival blockchains that have capitalized on this app migration to expand their reach and increase their own market capitalization.
Blockchains like Solana, Binance Smart Chain, and Avalanche have seen a significant rise during 2021, cementing themselves as more efficient alternatives to Ethereum and its upgrade to Proof of Stake that is not quite there yet.
According to Nicholas Merten, creator of the YouTube channel DataDash, Ethereum’s advantage of being the blockchain used by all is losing ground as time goes on.
Candidate Solutions
Step-by-step guide for Example
sample code block
- To sum up, ERC-1155 is the hybrid between ERC-20 and ERC-721
- It provides an interface that can represent any number of tokens.
- In previous standards, every tokenId in contact only contains a single type of tokens. For instance, ERC-20 makes each token type deployed in separate contracts.
- ERC-721 deploys the group of non-fungible tokens in a single contract with the same configurations. In contrast, ERC-1155 extends the functionality of tokenId, where each of them can independently represent different configurable token types.
- ERC-1155 is the Secure Token Transfer
Due to its unique utilities, we can foresee more and more projects taking on the ERC-1155 standard.