Upgrade to Pro — share decks privately, control downloads, hide ads and more …

FinTech Lecture 11 : Smart Contracts (w/ Demo)

Kenji Saito
December 21, 2023

FinTech Lecture 11 : Smart Contracts (w/ Demo)

Slides I used for FinTech - Financial Innovation and the Internet 2023 Fall at Graduate School of Business and Finance, Waseda University on December 22, 2023.

Kenji Saito

December 21, 2023
Tweet

More Decks by Kenji Saito

Other Decks in Technology

Transcript

  1. Financial technology in the living room. Generated by Stable Diffusion

    XL Beta FinTech — Financial Innovation and the Internet 2023 Fall Lecture 11 : Smart Contracts (w/ Demo) Kenji Saito, Graduate School of Business and Finance, Waseda University Lecture 11 : Smart Contracts (w/ Demo) — FinTech — Financial Innovation and the Internet 2023 Fall — 2023-12-22 – p.1/40
  2. This class is recorded Using Zoom The recordings could be

    used for research on (online) learning Transcribed for use and anonymized Will let you know when the necessity arises Lecture 11 : Smart Contracts (w/ Demo) — FinTech — Financial Innovation and the Internet 2023 Fall — 2023-12-22 – p.2/40
  3. The lecture slides can be found at : https://speakerdeck.com/ks91/collections/fintech-2023-fall Trial

    automatic transcription for lectures will be posted at Discord Lecture 11 : Smart Contracts (w/ Demo) — FinTech — Financial Innovation and the Internet 2023 Fall — 2023-12-22 – p.3/40
  4. Schedule (provisional) Lecture 1 10/6 Overview of FinTech (1) •

    Lecture 2 10/13 Overview of FinTech (2) • Lecture 3 10/20 Internet Technology and Governance (1) • Lecture 4 10/27 Internet Technology and Governance (2) on-demand • Lecture 5 11/10 The World of Apps (1) • Lecture 6 11/17 The World of Apps (2) • Lecture 7 11/24 Basics of Cryptography and Blockchain • Lecture 8 12/1 Blockchain • Lecture 9 12/8 Blockchain Continued • Lecture 10 12/15 Blockchain and Smart Contracts • Lecture 11 12/22 Smart Contracts (w/ Demo) • Lecture 12 1/12 Cyber-Physical Society and Future of Finance Lecture 13 1/19 FinTech Ideathon Lecture 14 1/26 Presentations and Conclusions Online presence is possible but not recommended for non-online lectures for interactivity reasons Lecture 11 : Smart Contracts (w/ Demo) — FinTech — Financial Innovation and the Internet 2023 Fall — 2023-12-22 – p.4/40
  5. Last Week, We Did . . . Impossibility and Challenges

    of Blockchain Brief Introduction to Upgrading and Governance of Blockchain Assignment Review Smart Contracts and Ethereum What is Smart Contract? Ethereum (half way through the physical model) Lecture 11 : Smart Contracts (w/ Demo) — FinTech — Financial Innovation and the Internet 2023 Fall — 2023-12-22 – p.5/40
  6. Today’s Topics Smart Contracts and Ethereum Ethereum — Beaker/Newspaper/Machine Model

    Smart Contract Programming Demonstration How do we purchase digital rights to a real estate with digital currency? Assignment Lecture 11 : Smart Contracts (w/ Demo) — FinTech — Financial Innovation and the Internet 2023 Fall — 2023-12-22 – p.6/40
  7. Smart Contracts and Ethereum Ethereum — Beaker/Newspaper/Machine Model Smart Contract

    Programming Lecture 11 : Smart Contracts (w/ Demo) — FinTech — Financial Innovation and the Internet 2023 Fall — 2023-12-22 – p.7/40
  8. Overview of Ethereum Blockchain and State Transition EVM (Ethereum Virtual

    Machine) Ethereum explained by a physical model Lecture 11 : Smart Contracts (w/ Demo) — FinTech — Financial Innovation and the Internet 2023 Fall — 2023-12-22 – p.8/40
  9. What is Ethereum? Vitalik Buterin, “Ethereum White Paper: A NEXT

    GENERATION SMART CONTRACT & DECENTRALIZED APPLICATION PLATFORM” Applying blockchain technology Block interval : at most 1 block in a 12-second time slot Put a programming language on it Turing complete = can emulate a universal Turing machine (well that’s almost a definition of a programming language) Foundation for DApps (applications that automate the center) An attempt to make the current financial and monetary system obsolete That’s what smart contracts are all about Automate digital asset transfers and their state transitions Lecture 11 : Smart Contracts (w/ Demo) — FinTech — Financial Innovation and the Internet 2023 Fall — 2023-12-22 – p.9/40
  10. Blockchain and State Transitions TUBUF FYUFSOBMBDUPST BDDPVOU &7.DPEF &UIFSˠHBT JOWPLF

    DPOUSBDUDPEF NFTTBHFPSBOFXBVUPOPNPVTPCKFDU EBUBFYDIBOHFEBNPOHBDDPVOUTPS&UIFS TUPSBHF TUBUF` TFUPG USBOTBDUJPOT EJHJUBMTJHOBUVSF &7. IVNBO GPSFYBNQMF Blockchain = Run of a state machine (state transition system) = Operation of a computer Lecture 11 : Smart Contracts (w/ Demo) — FinTech — Financial Innovation and the Internet 2023 Fall — 2023-12-22 – p.10/40
  11. Glossary Ether (ETH) Native currency of Ethereum (compensation for validating)

    External Actor A real person/entity who can digitally sign, having an account EOA : Externally-Owned Account Autonomous Object (internal actor) Operates autonomously within the system, and has an account That said, if you don’t send a message, it won’t work (and validators run them) Account Has an Ether balance, and can have storage (state) and EVM code EVM Code Smart contract program Smart contract = application program on Ethereum = intelligent contract Authenticity is ensured by being recorded in blockchain Lecture 11 : Smart Contracts (w/ Demo) — FinTech — Financial Innovation and the Internet 2023 Fall — 2023-12-22 – p.11/40
  12. EVM : Ethereum Virtual Machine TUBUF FYUFSOBMBDUPST BDDPVOU &7.DPEF &UIFSˠHBT

    JOWPLF DPOUSBDUDPEF NFTTBHFPSBOFXBVUPOPNPVTPCKFDU EBUBFYDIBOHFEBNPOHBDDPVOUTPS&UIFS TUPSBHF TUBUF` TFUPG USBOTBDUJPOT EJHJUBMTJHOBUVSF &7. IVNBO GPSFYBNQMF BVUPOPNPVT PCKFDU Triggered when an autonomous object receives a message, performs a contract, and changes state Gas (computing resource) must be bought for the following reasons To avoid infinite loops and control congestion (base fee; burnt), and compensate the block proposers (priority fee) Lecture 11 : Smart Contracts (w/ Demo) — FinTech — Financial Innovation and the Internet 2023 Fall — 2023-12-22 – p.12/40
  13. Beaker/Newspaper/Machine Model (1/7) Physical model of how Ethereum works today

    cf. PROOF-OF-STAKE (POS), Eth2Book Preconditions About beakers (containers for native cryptocurrency) Unlike Bitcoin, beakers are not created anew for each transaction, but are created as a set with the private key and placed at a specific address for each Private key opens the stopper, and the liquid is injected somewhere (no need to empty it) The pour spout is always open, allowing liquid to be injected About Liquid The liquid is used as fuel for the mechanical calculator to run automatically About the machine (mechanical calculator) We use the world’s one and only mechanical calculator It has a vast memory and works by inserting punch cards and setting a beaker Programmers cannot type directly into a punch card Use a service that compiles human-readable code into punch cards Lecture 11 : Smart Contracts (w/ Demo) — FinTech — Financial Innovation and the Internet 2023 Fall — 2023-12-22 – p.13/40
  14. Beaker/Newspaper/Machine Model (2/7) Transactions Calculator-assisted processing is called a transaction,

    and there are three types: (1) Set source and destination beakers and move the fuel by the specified amount (2) Set up a beaker with a card deck describing the application program and initial parameters, and write the program in memory (deploy) · The calculator also executes the initialization code for that program to set up the application (3) Set up a card and beaker and use it to call a program in memory Signed newspaper article The person wishing to execute their transaction distributes copies of the following information as their signed article to the validators described later Address of the beaker from which the fuel was injected (signed so we know it is you) Punch card contents Amount of fuel that may be given to the validator running the calculator (priority fee) and the maximum amount of fuel that may be used The articles of the executed transactions make up one page of the newspaper Lecture 11 : Smart Contracts (w/ Demo) — FinTech — Financial Innovation and the Internet 2023 Fall — 2023-12-22 – p.14/40
  15. Beaker/Newspaper/Machine Model (3/7) Fuel consumption Mechanical calculator does not run

    at a constant fuel consumption rate; it runs worse (requires more fuel) when transactions are crowded and better (requires less fuel) when not One unit of calculation that consumes fuel is confusingly called gas Newspaper page size is also weighed in gas (Total gas usage for executed transactions) The standard paper size is 15 million gas and the maximum size is 30 million gas If the page standard is exceeded, the fuel consumption of transactions will be worse on the next page, and if below the standard, the fuel consumption of the next page will be better People like to use the calculator when they can get the most mileage, so we hope this will help regulate congestion (what do you think?) Move to the next method with sufficiently accumulated costs of PoW Method described on the next page and beyond cannot be started from zero Ethereum has moved from PoW to the next scheme in September 2022 Lecture 11 : Smart Contracts (w/ Demo) — FinTech — Financial Innovation and the Internet 2023 Fall — 2023-12-22 – p.15/40
  16. Beaker/Newspaper/Machine Model (4/7) Deposits and Validators Fuel is weighed in

    units of Gwei where 1 Giga Gwei is ETH A validator is an entity or person who has deposited 32 ETH(!) into the system Validators are required to do the following tasks, and if they do them diligently, they will increase the ETH deposit, and if they do them sloppily, they will forfeit the ETH deposit · The maximum value that counts as a deposit is 32 ETH (actual amount can be more) · Validator is expelled for falling below 16 ETH Slot and Newspaper Page (block) proposal Time is separated by slots at 12 second intervals In each slot, one of the validators wins a raffle (in the usual sense) Winning validator lets selected articles actually run on the calculator (if they fail to run, the articles are discarded), composes a page of the newspaper and proposes it to everyone If the validator skips it, the page was not made in that slot Other validators that received the page will do confirmation calculations Lecture 11 : Smart Contracts (w/ Demo) — FinTech — Financial Innovation and the Internet 2023 Fall — 2023-12-22 – p.16/40
  17. Beaker/Newspaper/Machine Model (5/7) Epoch and Finalization 32 slots as 1

    epoch (384 sec) Validator is assigned to a committee for one of the slots in each epoch (beacon committee) to testify (sign) the correctness of the page proposed for that slot The first slot in an epoch is called the checkpoint Validator specifically attests to the checkpoints of two consecutive epochs If testimonials from validators that amount ≥ 2 3 of the total deposit are obtained The latest checkpoint is justified The second latest checkpoint is finalized (the pages up to it are their final versions) Sync Committee Every 256 epochs, 512 validators are selected as a committee to testify for the pages This will help non-validators to consider the correctness of the pages Lecture 11 : Smart Contracts (w/ Demo) — FinTech — Financial Innovation and the Internet 2023 Fall — 2023-12-22 – p.17/40
  18. Beaker/Newspaper/Machine Model (6/7) What if the sequence of pages in

    an epoch branches? Since everyone does what they do as they please, divergence may occur For example, one validator might think that no block was proposed in the previous slot In that case, we will use the history with the most testimonials weighed by the deposits (modified Nakamoto consensus ← the history with the largest cost is the most correct) Confiscation and expulsion If you are selected for a sync committee and do not respond, you forfeit from your deposit If you do not testify at checkpoints, you forfeit from the deposit Failure to finalize a page for more than 4 epochs will result in forfeiture from the deposits attested to the minority side (no reward for the majority side in the meantime) Hopefully this will make it easier for the majority side to get ≥ 2 3 of the deposits If you propose more than one page in the same slot, attempt to alter the history, or double-vote, you will be banned after forfeiting your deposit (after 36 days) If there are multiple validators who misbehaved at the same time, we will consider possibility of a conspiracy and confiscate them so badly Lecture 11 : Smart Contracts (w/ Demo) — FinTech — Financial Innovation and the Internet 2023 Fall — 2023-12-22 – p.18/40
  19. Beaker/Newspaper/Machine Model (7/7) Rewards Reward for working diligently as a

    validator is proportional to the amount of your deposit and inversely proportional to the square root of everyone’s total deposit Delay in testifying will reduce the amount of your reward Rewards are given per epoch Way of drawing lots or electing validators to committees (existing metaphor) Uses a conceptual DAO (RANDAO) to generate random numbers This is a deck of playing cards placed in the memory of the calculator Validator proposing a page shuffles the deck once during the proposal Takes XOR of the digest of the signature on the data based on the epoch number and the existing RANDAO Each time a page is generated, the deck is shuffled one after the other, so that it accumulates enough randomness It is random yet deterministic since everyone is looking at the same deck The deck at the end of each epoch is used to determine the proposers and committee members after 2 epochs Lecture 11 : Smart Contracts (w/ Demo) — FinTech — Financial Innovation and the Internet 2023 Fall — 2023-12-22 – p.19/40
  20. Smart Contract Programming Programming language Characteristics and challenges Lecture 11

    : Smart Contracts (w/ Demo) — FinTech — Financial Innovation and the Internet 2023 Fall — 2023-12-22 – p.20/40
  21. Programming Language EVM interprets bytecode (instruction set for virtual machines

    or interpreters) EVM is a stack machine (stack calculator) (see Lecture 6) Programmers don’t usually program in bytecode or machine languages Requires compilers for other, high-level languages High-level language : human-readable/writable language On the other hand, languages close to machines are called low-level languages . . . We may be scolded by artificial intelligence in the near future ;) Examples : Solidity — JavaScript-like language Current primary language Vyper — Python-like language LLL — Lisp-like language Fe — Rust-like features with reference to Vyper? ← NEW! Lecture 11 : Smart Contracts (w/ Demo) — FinTech — Financial Innovation and the Internet 2023 Fall — 2023-12-22 – p.21/40
  22. Solidity Sample Code (this is a high-level language!) pragma solidity

    >=0.4.18 <0.6.0; contract IndivisibleAsset { /* transfer ownership of non-divisible assets */ string public _name; string public _symbol; uint256 public _quantity; address public _owner; constructor(string name, string symbol, uint256 quantity) public { _name = name; _symbol = symbol; _quantity = quantity; _owner = msg.sender; } function transfer(address to) public returns (bool) { require (_owner == msg.sender); _owner = to; return true; } } Lecture 11 : Smart Contracts (w/ Demo) — FinTech — Financial Innovation and the Internet 2023 Fall — 2023-12-22 – p.22/40
  23. Another Solidity Sample Code (snippet) . . . function transfer(address

    to, uint256 value) public returns (bool) { balances[msg.sender] = balances[msg.sender] - value; balances[to] = balances[to] + value; return true; } . . . This can be the core of a (not-so-secure) token contract Without considering overflow/underflow A token contract typically manages the balances of all users Lecture 11 : Smart Contracts (w/ Demo) — FinTech — Financial Innovation and the Internet 2023 Fall — 2023-12-22 – p.23/40
  24. Features of Programming Language Solidity JavaScript-like Object-oriented Describe a contract

    as a template (type or class) Constructor is called during deployment Deploy here means to deploy the contract to the blockchain Decides what parameters to pass to the constructor upon deployment Conforms to Ethereum programming model Deployed contract is a specific entity (instance) Has an account (identified by the address, just like a human user) Has storage and ETH balance Can send messages to other contracts Model where deployed contracts are manipulated by sending messages On the assumption that the authenticity of the code that responds to the message is guaranteed Lecture 11 : Smart Contracts (w/ Demo) — FinTech — Financial Innovation and the Internet 2023 Fall — 2023-12-22 – p.24/40
  25. Characteristics and Challenges Characteristics Execute the program during the block

    validation process, and reflect the results in the “world state” Redundant verifiers Closed within the state of blockchain (maintained by the verifiers) This design is consistent in the Ethereum system Challenges I/O commands cannot be issued from within the program Not affected by the outside world other than external actors who send signed messages ⇒ ex. Data from sensors cannot be read directly (problem of an oracle) Not able to directly affect the outside world ⇒ ex. Cannot send commands to the motor to turn it on/off Lecture 11 : Smart Contracts (w/ Demo) — FinTech — Financial Innovation and the Internet 2023 Fall — 2023-12-22 – p.25/40
  26. Demonstration Automated Escrow An attempt to automate real-estate brokerage, banking,

    and Legal Affairs Bureau (or judicial scrivener) Lecture 11 : Smart Contracts (w/ Demo) — FinTech — Financial Innovation and the Internet 2023 Fall — 2023-12-22 – p.26/40
  27. ex. Automated Escrow to Purchase Land (automation of centers) %FpOFEb"JS`

    SFUVSOMBOE 1VSDIBTF$POUSBDU -BOE"TTFU MBOE EFQPTJU USBOTGFSMBOESJHIUTUPCVZFS USBOTGFSQBZNFOUUPTFMMFS QBZNFOU EFQPTJU %JHJUBM5PLFO DSFBUFBOEpYJOUIFBJS FJUIFSDBOEPUIJT DSFBUFBOEpYJOUIFBJS DBOGSFFMZKPJOBOEMFBWF DBOGSFFMZKPJOBOEMFBWF 4FMMFS #VZFS JOUFSOBM TUBUF SFUVSONPOFZ TFUUMF USBOTGFS JOUFSOBM TUBUF USBOTGFS JOUFSOBM TUBUF     1. Purchase contract is fixed in the air to prevent taking away of land or money (both parties can verify the contract) 2. Deposit land rights and purchase money in the contract (if they change their minds, they can take them back) 3. When settled (anyone can do it if both right and money are deposited), the rights and money for the property are transferred simultaneously Lecture 11 : Smart Contracts (w/ Demo) — FinTech — Financial Innovation and the Internet 2023 Fall — 2023-12-22 – p.27/40
  28. For Demonstrations, We Use Brownie, a Python-based development and testing

    framework for smart contracts on EVM https://eth-brownie.readthedocs.io/en/stable/ Today, we will use the Python interpreter environment it provides And infura.io that provides accesses to Ethereum (main and test) networks https://infura.io Lecture 11 : Smart Contracts (w/ Demo) — FinTech — Financial Innovation and the Internet 2023 Fall — 2023-12-22 – p.28/40
  29. A Little Preparation If you have problems with newer versions

    of Python 3, try Python 3.9 (3.9.18) We are going to use Sepolia testnet of Ethereum, whose settings are not included in brownie by default Add the following to “Ethereum” “networks” in “.brownie/network-config.yaml” - chainid: 11155111 explorer: https://api-sepolia.etherscan.io/api host: https://sepolia.infura.io/v3/$WEB3_INFURA_PROJECT_ID id: sepolia multicall2: '0x5BA1e12693Dc8F9c48aAD8770482f4739bEeD696' name: Sepolia (Infura) provider: infura Lecture 11 : Smart Contracts (w/ Demo) — FinTech — Financial Innovation and the Internet 2023 Fall — 2023-12-22 – p.29/40
  30. Sample Code and Demo git clone from GitHub $ git

    clone https://github.com/ks91/sample-smart-contracts.git Follow README 1. Setup a sample token project with brownie Brownie is a Python-based Ethereum programming and test environment Javascript-based one is called Truffle, and an Ethereum remote procedure call client is called Ganache See? Engineers are fun people to work with! 2. Copy the content of contracts, scripts and tests directories of this sample project into the corresponding directories of the token project 3. Compile 4. Test Today, I will demonstrate manually the test for automated escrow Lecture 11 : Smart Contracts (w/ Demo) — FinTech — Financial Innovation and the Internet 2023 Fall — 2023-12-22 – p.30/40
  31. settle() from OneTimeEscrow function settle() public returns (bool) { require(_token_.balanceOf(address(this))

    >= _price_); /* ’this’ means this contract */ require(_asset_.getOwner() == address(this)); _token_.transfer(_seller_ , _price_); _asset_.transfer(_buyer_); emit Settled(); /* event log */ return true; } Just to introduce the settle() part from the sample code Only if both the price and the asset are deposited with the contract, It transfers money to the seller and asset to the buyer Lecture 11 : Smart Contracts (w/ Demo) — FinTech — Financial Innovation and the Internet 2023 Fall — 2023-12-22 – p.31/40
  32. Open console and connect to Sepolia testnet Use brownie console

    >>> network.disconnect() # disconnect from the default, simulated environment of Ethereum >>> network.connect(’sepolia’) >>> len(accounts) 0 >>> accounts.add(paste the hexadecimal string of the private key here) <LocalAccount object ’hexadecimal string of the account’> >>> accounts[0].balace() Here is the ETH balance of the account We set up two accounts Once you have created multiple accounts, you can try to transfer ETH, for example as follows >>> accounts[0].transfer(accounts[1], "1 ether") But before that, you may want to feed the accounts with Sepolia ETH from some public faucet Lecture 11 : Smart Contracts (w/ Demo) — FinTech — Financial Innovation and the Internet 2023 Fall — 2023-12-22 – p.32/40
  33. Test Code (1) from brownie import * import pytest def

    test_deploy_and_settle(Token, IndivisibleAsset, OneTimeEscrow): asset = accounts[0].deploy(IndivisibleAsset, "5322 Endo", "mˆ2", 300) token = accounts[0].deploy(Token, "Test Token", "TEST", 18, "1000 ether") Deploying token and asset contracts The above is just the test code as it is, so in the console we will just type the inside of the function First, let’s do seller = accounts[0] and buyer = accounts[1] for readability Lecture 11 : Smart Contracts (w/ Demo) — FinTech — Financial Innovation and the Internet 2023 Fall — 2023-12-22 – p.33/40
  34. Test Code (2) token.transfer(accounts[1], 300, {’from’: accounts[0]}) escrow = accounts[0].deploy(OneTimeEscrow,

    token, accounts[1], asset, accounts[0], 300) Sending 300 coins from seller (accounts[0]) to buyer (accounts[1]) to prepare Because the buyer has to cast a transaction that pays 300 coins Deploying Escrow Contracts Buyer is accounts[1], seller is accounts[0], and the price is 300 coins Since we are using the sample arguments of the baked Token as they are, 300 coins is actually a very small unit, like wei in ETH Lecture 11 : Smart Contracts (w/ Demo) — FinTech — Financial Innovation and the Internet 2023 Fall — 2023-12-22 – p.34/40
  35. Test Code (3) token.transfer(escrow, 300, {’from’: accounts[1]}) asset.transfer(escrow, {’from’: accounts[0]})

    assert token.balanceOf(accounts[0]) == 999999999999999999700 assert token.balanceOf(accounts[1]) == 0 assert token.balanceOf(escrow) == 300 assert asset.getOwner() == escrow Buyer (accounts[1]) deposits 300 coins in escrow, and Seller (accounts[0]) deposits the asset in escrow assert tests a statement, and fails the test if it turns out to be false But we are in console (not doing an automated test), so we just see the values Lecture 11 : Smart Contracts (w/ Demo) — FinTech — Financial Innovation and the Internet 2023 Fall — 2023-12-22 – p.35/40
  36. Test Code (4) escrow.settle({’from’: accounts[0]}) assert token.balanceOf(accounts[0]) == 1000000000000000000000 assert

    token.balanceOf(accounts[1]) == 0 assert token.balanceOf(escrow) == 0 assert asset.getOwner() == accounts[1] Calling settle() and closing the transaction In this code, it is called by seller (accounts[0]), but it is OK to call from either side Let’s see some transactions on an Ethereum Sepolia testnet explorer Lecture 11 : Smart Contracts (w/ Demo) — FinTech — Financial Innovation and the Internet 2023 Fall — 2023-12-22 – p.36/40
  37. Authenticity of Contracts Anyone can participate in block validation and

    contract execution as a verifier ⇒ Everyone has access to the contract code It is in principle verifiable that the correct contract is being executed I/O is outside blockchain → this is possible without revealing the entirety of the agreement True worth of smart contract is that everyone can confirm that “the correct contract was executed”? Program code and its execution results as “record whose contents and existence cannot be denied by anyone” But Ethereum’s method should not be the only one There are many issues including how to manage the contracts’ life cycles We have already talked about The DAO Incident Lecture 11 : Smart Contracts (w/ Demo) — FinTech — Financial Innovation and the Internet 2023 Fall — 2023-12-22 – p.37/40
  38. Assignment Lecture 11 : Smart Contracts (w/ Demo) — FinTech

    — Financial Innovation and the Internet 2023 Fall — 2023-12-22 – p.38/40
  39. Assignment 5. “Artificial General Intelligence” AGI (Artificial General Intelligence) is

    capable of performing all the intellectual activities possible for humans at a level equal to or better than that of humans This will mean the replacement of intellectual labor, and will also accelerate the replacement of physical labor because of the precise control of robots, as well as any other major changes in society Suppose that AGI will appear in 2025 Please briefly describe the changes that could occur in the area of finance by 2030 Deadline and how to submit January 9, 2023 at 17:59 JST From Moodle (mandatory) (Q&A forum) So that your classmates can read your report, refer to it, and comment on it Optionally, you can also post to #assignments channel at Discord Just plain text, and be concise, please Lecture 11 : Smart Contracts (w/ Demo) — FinTech — Financial Innovation and the Internet 2023 Fall — 2023-12-22 – p.39/40
  40. Have Nice Holidays and See You Next Year! I wish

    you a happy new year of the dragon Lecture 11 : Smart Contracts (w/ Demo) — FinTech — Financial Innovation and the Internet 2023 Fall — 2023-12-22 – p.40/40