//tips
//基本情報理解
ボットネットとは、インターネットに接続された多数のデバイスによるネットワークで、各デバイスはボットと呼ばれるプログラムを実行している。
ボットネットを制御する所有者がC&Cサーバから指示を出すことでボットが活動を始め、サービス不能攻撃の実行やスパムメールの送信などを行う。
TPM trusted platform moduleは一部のPCなどの機器に搭載されるセキュリティ向上のためのハードウェアで次のような機能を持っている。
・公開鍵暗号化アルゴリズムに基づく、鍵の生成と格納
・暗号化と復号に必要となるハッシュ値の演算と保管
・不揮発性(電源を切っても記憶し続ける)と耐タンパ性(不正手段によってアクセスできない)を持ったストレージ機能
これによりTPM搭載機器では端末の個体識別やストレージの暗号化が可能になる。企業のPCなどに搭載される。
//pitch dech
Yalochatはコミュニケーション効率化アプリでクライアントとのコミュニケーションコストを削減するもの。特徴的な写真や絵を用いて、視覚的に製品特性を理解しやすくしている。市場の伸びや競合との差別化のマッピングも加え、活用事例も載せており、botと人間を組み合わせた対応など理解しやすい。これも参考になるpitchだった。
//smartcontract
新規立ち上げでremixのcompilerが変わっていることに気づかず、コード内のエラーをひたすら探す苦行を行なったがやっと気づけた。危なかった。
pragma solidity 0.8.4;
contract Bank{
//eventとコード内のemitで連携される
//indexedをつけることで読み込みする人を限定できる
event balanceUpdate(string _txType,address indexed _owner,uint _amount);
mapping(address=>uint)balance;
function getBalance()public view returns(uint){
return balance[msg.sender];
}
function deposit() public payable {
balance[msg.sender]+=msg.value;
//eventの実行は下記のように記載
emit balanceUpdate("Deposit",msg.sender,balance[msg.sender]);
}
function withdraw(uint _amount) public {
require(balance[msg.sender]>=_amount,"Insufficient balance");
balance[msg.sender]-=_amount;
payable(msg.sender).transfer(_amount);
emit balanceUpdate("withdraw",msg.sender,balance[msg.sender]);
}
//emit balanceUpdate("withdraw",msg.sender,balance[msg.sender]);
//コントラクト財布内での送金/財布内の別の所持者に送金
function transfer(address _to,uint _amount)public {
require(balance[msg.sender]>=_amount,"Insufficient balance");
require(msg.sender != _to,"Invalid recipiant");
balance[msg.sender]-= _amount;
balance[_to]+=_amount;
emit balanceUpdate("Outgoing Transfer",msg.sender,balance[msg.sender]);
emit balanceUpdate("Incoming Transfer",_to,balance[_to]);
}
}