<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      幻想通過套利腳本躺著賺錢的懵懂青年竟然遭遇上了龐氏騙局

      前情提要

      一個月總有那么二十幾天不想努力了,于是乎心心念念想去搞個套利腳本,那樣他就可以自動套利,從此走上財富自由的人生道路。啊!話不多說直接開干,立馬在開始在谷歌上搜索致富秘訣,我可勁兒搜,在谷歌前列就看到了一篇文章( BNB Train Brings World’s first EVM Arbitrage Dapp on Binance Smart Chain ),它在給一個叫 BNB Train 的項目做推廣,簡單說就是他做了個套利 DAPP,你把錢給他,他幫你套利。

      我的愿望就要實現了?!美妙人生我來啦!

      于是乎我迫不及待地打開了它的官網,開始我的危險的致富之路。

      相關信息

      BNB Train 官網:https://bnbtrain.ognius.com/

      官網所提供的合約地址:https://bscscan.com/address/0xEa9068C2ECa022A0D0133903D905FA2F4112ae77

      一打開官網呀他就主動彈我的小狐貍,一看就很迫不及待的樣子。看來是等我這個知音等了很久了,等不及了都。但是我們不急,先不要輸密碼,先看看再說。保持優雅,不要著急,即使你很急,但是你別急。

      合約分析

      廢話不多說,先康康合約,啊只有一個合約文件,短短的 208 行。

      首先看一下,合約版本 >= 0.8.0,沒有溢出風險,然后就是 Plan, DepositPlayer 三個結構體,啊這玩意不重要,過。

      pragma solidity >=0.8.0;
      
      struct Plan {
        uint8 plan_days;
        uint8 percent;
      }
      
      struct Deposit {
        uint8 plan;
        uint256 amount;
        uint40 time;
      }
      
      struct Player {
        address upline;
        uint256 dividends;
        uint256 match_bonus;
        uint40 last_payout;
        uint256 total_invested;
        uint256 total_withdrawn;
        uint256 total_match_bonus;
        Deposit[] deposits;
        uint256[5] structure; 
      }
      

      然后就是一些合約的全局變量和 event ,隨便康康。

      contract BNBTrain {
          address public owner;
      
          uint256 public invested;
          uint256 public withdrawn;
          uint256 public match_bonus;
          
          uint8 constant BONUS_LINES_COUNT = 5;
          uint16 constant PERCENT_DIVIDER = 1000; 
          uint8[BONUS_LINES_COUNT] public ref_bonuses = [50, 30, 20, 10, 5]; 
      
          mapping(uint8 => Plan) public plans;
          mapping(address => Player) public players;
      
          event Upline(address indexed addr, address indexed upline, uint256 bonus);
          event NewDeposit(address indexed addr, uint256 amount, uint8 plan);
          event MatchPayout(address indexed addr, address indexed from, uint256 amount);
          event Withdraw(address indexed addr, uint256 amount);
          
          ...
          
       }
      

      構造函數,設定一下 萬惡的 owner 以及利率。哦喲好奇怪的噢,你這個套利腳本定的還是固定利率的噢,搞得這么自信的嗷。

      constructor() {
      	owner = msg.sender;
      	uint8 planPercent = 119;
      	for (uint8 duration = 7; duration <= 30; duration++) {
      		plans[duration] = Plan(duration, planPercent);
      		planPercent += 5;
      	}
      }
      

      然后我開始著急了,這么高的利率,存款函數在哪里,我要給你打錢,實現我的夢想,快,我已經迫不及待了,躺著賺錢的生活在向我招手,我已經想好在哪里買房了。

      傳入你想存的計劃id _plan ,上線(推薦人)地址 _upline ,每次最少存入 0.01 BNB。

      然后 payable(owner).transfer(msg.value / 10); 嗯?我剛存進來的錢你就要拿走十分之一?這不得是賺了錢以后你才從利潤中扣點么,哪有上來就把我本金給扣了的,有點不對勁了。

      function deposit(uint8 _plan, address _upline) external payable {
        	require(plans[_plan].plan_days > 0, "Plan not found");
        	require(msg.value >= 0.01 ether, "Minimum deposit amount is 0.01 BNB");
      	
        	Player storage player = players[msg.sender];
      
        	require(player.deposits.length < 100, "Max 100 deposits per address");
      	
        	// 更新你的上線相關的信息,我只關心我自己,不管他
        	_setUpline(msg.sender, _upline, msg.value);
      
        	player.deposits.push(Deposit({
          	plan: _plan,
          	amount: msg.value,
          	time: uint40(block.timestamp)
        	}));
      
        	player.total_invested += msg.value;
        	invested += msg.value;
      	
        	// 也還是處理你上線的函數,不重要,一點也不重要
        	_refPayout(msg.sender, msg.value);
      
        	payable(owner).transfer(msg.value / 10);
      
        	emit NewDeposit(msg.sender, msg.value, _plan);
      }
      

      那看完存錢,再看看取錢的情況唄,大丈夫能存能取。_payout 函數先更新一下你連本帶利能取多少錢。然后合約再從余額中把你應得的錢打給你。誒慢著,還記得我們調用 despoit 函數存錢的時候 owenr 扣了我們 10% 的本金嗎?直接取是余額不夠的,那么接下我們來看一下他的套利邏輯,看看它是如何賺錢的吧!

      function withdraw() external {
          Player storage player = players[msg.sender];
      
          _payout(msg.sender);
      
          require(player.dividends > 0 || player.match_bonus > 0, "Zero amount");
      
          uint256 amount = player.dividends + player.match_bonus;
      
          player.dividends = 0;
          player.match_bonus = 0;
          player.total_withdrawn += amount;
          withdrawn += amount;
      
          payable(msg.sender).transfer(amount);
      
          emit Withdraw(msg.sender, amount);
      }
      
      function _payout(address _addr) private {
          uint256 payout = this.payoutOf(_addr);
      
          if(payout > 0) {
              players[_addr].last_payout = uint40(block.timestamp);
              players[_addr].dividends += payout;
          }
      }
      
      function _refPayout(address _addr, uint256 _amount) private {
        	address up = players[_addr].upline;
      
          for(uint8 i = 0; i < ref_bonuses.length; i++) {
              if(up == address(0)) break;
      
              uint256 bonus = _amount * ref_bonuses[i] / PERCENT_DIVIDER;
      
              players[up].match_bonus += bonus;
              players[up].total_match_bonus += bonus;
      
              match_bonus += bonus;
      
              emit MatchPayout(up, _addr, bonus);
      
              up = players[up].upline;
          }
      }
      

      啊,啊哈!很可惜200行代碼已經被我們分析的差不多了,合約中好像沒有,或者說壓根就沒打算準備套利的功能!上當了!這下子上了個大當了!什么躺著賺錢,都成泡沫,什么美好生活,剎那煙火。

      這個合約做得呢,就是一個龐氏騙局。每進來一個人, owenr 就從他身上薅一筆(10%)。你要是能夠拉到人進來做你的下線呢,就給你點獎勵。后面來的人越來越多,那么先加入的人就可以套利成功,拿著自己的本金與利息成功離場。然后,后入場的人,就要靠后后入場人的錢來補這個窟窿,一直傳下去。

      啊那我們可以回過頭來看一下之前被我們忽略掉的一些函數,關于上線的 _setUpline 函數,關于拉人頭分成的 _refPayout 函數,在這里就不詳細贅述了,夢想都破滅了還分析啥呀分析

      function _setUpline(address _addr, address _upline, uint256 _amount) private {
          if(players[_addr].upline == address(0) && _addr != owner) {
              if(players[_upline].deposits.length == 0) {
                	_upline = owner;
              }
      
              players[_addr].upline = _upline;
      
              emit Upline(_addr, _upline, _amount / 100);
      
              for(uint8 i = 0; i < BONUS_LINES_COUNT; i++) {
                	players[_upline].structure[i]++;
      
                	_upline = players[_upline].upline;
      
                	if(_upline == address(0)) break;
              }
          }
      }
      
      function _refPayout(address _addr, uint256 _amount) private {
          address up = players[_addr].upline;
      
          for(uint8 i = 0; i < ref_bonuses.length; i++) {
              if(up == address(0)) break;
      
              uint256 bonus = _amount * ref_bonuses[i] / PERCENT_DIVIDER;
      
              players[up].match_bonus += bonus;
              players[up].total_match_bonus += bonus;
      
              match_bonus += bonus;
      
              emit MatchPayout(up, _addr, bonus);
      
              up = players[up].upline;
          }
      }
      

      后記

      官網拉到最下面還標了一個 Verified by BSC Scan 的字樣,也確實是上傳了自己的代碼嗷,即使是用套利作為羊頭騙騙你的。

      怎么說,幻想破滅了,再琢磨琢磨點別的唄。然后也希望大家在趟各種 DeFi 的這渾水的時候能夠留個心眼,啊壞人很多的,都覬覦這你手里的這點銀兩呢。

      posted @ 2022-07-16 15:27  ACai_sec  閱讀(415)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产精品香蕉在线观看不卡| 亚洲人成网站77777在线观看| 伊人久久综合无码成人网| 中文字幕日韩人妻一区| 亚洲AV无码东方伊甸园| 国产农村妇女高潮大叫| 建昌县| 久99久热这里只有精品| 亚洲精品国产一二三区| 台北市| 亚洲男人在线天堂| 无码人妻一区二区三区四区AV| 中文字幕av国产精品| 亚洲中文字幕人妻系列| P尤物久久99国产综合精品| 午夜射精日本三级| 九九热热久久这里只有精品| 激情内射亚洲一区二区三区| 国产稚嫩高中生呻吟激情在线视频| 波多野结衣网站| 国产不卡精品视频男人的天堂| 国产精品成人一区二区三区| 亚洲AV永久无码嘿嘿嘿嘿| 久久夜色国产噜噜亚洲av| 老鸭窝在线视频| 浴室人妻的情欲hd三级国产| 成人国产精品一区二区不卡| 无遮挡aaaaa大片免费看| 国产精成人品日日拍夜夜| 日韩中文字幕人妻精品| 国产99久久久国产精品~~牛| 精品国偷自产在线视频99| 国色天香成人一区二区| 久热这里只有精品12| 久爱无码精品免费视频在线观看| 在线中文字幕第一页| 精品国产AV无码一区二区三区| 在线国产精品中文字幕| 日韩人妻无码精品系列| 91精品国产老熟女在线| 欧美成人看片黄A免费看|