Zločinci se radují, PayPal nabídne platby bitcoinem

23. 10. 2020

Sdílet

Autor: Adobe Stock
Populární platební portál začne podporovat virtuální měny. Autor knihy o Bitcoinu nad tímto záměrem vyjádřil rozpaky.

PayPal si podává ruku s virtuální měnou. Firma ohlásila, že její klienti budou moct prostřednictvím PayPal účtů nakupovat Bitcoin a další kryptoměny a zároveň s nimi nakupovat zboží od zhruba 26 milionů prodejců z celé světa, kteří platbu přes PayPal v současnosti podporují. Tato možnost by měla být v nejbližších týdnech dostupná v USA, začátkem příštího roku pak i ve zbytku světa.

S oznámením cena Bitcoinu vyskočila na 12 tisíc dolarů za jednotku. Bitcoin bude také první kryptoměnou, která bude do systému zapojená, následovat mají Ethereum, Litecoin a Bitcoin Cash. Všechny mají být ukládány přímo v PayPalové digitální peněžence, obdobně jako běžné peníze. Dle vyjádření zástupců firmy chce PayPal tímto rozhodnutím přispět k tomu, aby lidé „kryptoměnám porozuměli a přijali je za své“. Se zavedením novinky tak PayPal pro své uživatele vytvoří i jakýsi edukační manuál, který je se systémem virtuálních měn seznámí.

David Gerard, autor knihy Attack of the 50 Foot Blockchain, pojednávající o vývoji Bitcoinu, vyjádřil nad záměrem PayPalu rozpaky. To, co firma popisuje, je dle něj prakticky kryptoměnová burza.

„Jen si to zkuste, uložte si tam deset dolarů, naučíte se, co byste se jinak nenaučili, ale počítejte s tím, že je to gambling,“ poznamenává maličko jízlivě. Dle něj se na trhu pohybuje „spousta velkých hráčů, kteří dokáží manipulovat s cenou“, zatímco běžní smrtelníci riskují ztráty.

„Moc mi není jasné, co tímto krokem PayPal sleduje. Nejspíš je ve firmě někdo, kdo má v kryptoměnách svůj nemalý zájem.“

Je sice fakt, že jiné platební systémy jako například Square´s Cash či Revolut už kryptoměny podporují, PayPal však oproti konkurenci disponuje zdaleka největší sítí obchodníků na světě. Zároveň je první firmou svého druhu, která k tomuto kroku obdržela tzv. Bitlicenci, tedy oficiální povolení od newyorského regulátora finančních služeb – Department of Financial Services.

Celá věc má i další aspekt, na který upozorňuje  Chester Wisniewsky, hlavní výzkumný pracovník společnosti  Sophos.

„Vstup PayPalu na trh kryptoměn bohužel způsobí, že kyberzločinci budou zas o něco bohatší. Mnoho zločinců zadržuje významné množství bitcoinů pocházejících z plateb výkupného, ransomwarových útoků a jiných podvodných aktivit, které dělají na temném webu. Jsem si jist, že tito kyberzločinci jsou šťastní, že je dnes PayPal obohatil o 7 až 11 %,“ předpokládá Wisniewsky.

zabbix_tip

Hodí se také připomenout, že nejde o první pokus PayPalu proniknout na trh kryptoměn. Firma byla před časem partnerem Facebooku v projektu Libra, ačkoliv jej po pár měsících jako první opustila. Kontroverzní schéma vzbudilo pozornost napříč zeměmi a Facebook od projektu v jeho stávající podobě nakonec pod tlakem upustil.

 

'; document.getElementById('preroll-iframe').onload = function () { setupIframe(); } prerollContainer = document.getElementsByClassName('preroll-container-iframe')[0]; } function setupIframe() { prerollDocument = document.getElementById('preroll-iframe').contentWindow.document; let el = prerollDocument.createElement('style'); prerollDocument.head.appendChild(el); el.innerText = "#adContainer>div:nth-of-type(1),#adContainer>div:nth-of-type(1) > iframe { width: 99% !important;height: 99% !important;max-width: 100%;}#videoContent,body{ width:100vw;height:100vh}body{ font-family:'Helvetica Neue',Arial,sans-serif}#videoContent{ overflow:hidden;background:#000}#adMuteBtn{ width:35px;height:35px;border:0;background:0 0;display:none;position:absolute;fill:rgba(230,230,230,1);bottom:20px;right:25px}"; videoContent = prerollDocument.getElementById('contentElement'); videoContent.style.display = 'none'; videoContent.volume = 1; videoContent.muted = false; const playPromise = videoContent.play(); if (playPromise !== undefined) { playPromise.then(function () { console.log('PREROLL sound allowed'); // setUpIMA(true); videoContent.volume = 1; videoContent.muted = false; setUpIMA(); }).catch(function () { console.log('PREROLL sound forbidden'); videoContent.volume = 0; videoContent.muted = true; setUpIMA(); }); } } function setupDimensions() { prerollWidth = Math.min(iinfoPrerollPosition.offsetWidth, 480); prerollHeight = Math.min(iinfoPrerollPosition.offsetHeight, 320); } function setUpIMA() { google.ima.settings.setDisableCustomPlaybackForIOS10Plus(true); google.ima.settings.setLocale('cs'); google.ima.settings.setNumRedirects(10); // Create the ad display container. createAdDisplayContainer(); // Create ads loader. adsLoader = new google.ima.AdsLoader(adDisplayContainer); // Listen and respond to ads loaded and error events. adsLoader.addEventListener( google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, onAdsManagerLoaded, false); adsLoader.addEventListener( google.ima.AdErrorEvent.Type.AD_ERROR, onAdError, false); // An event listener to tell the SDK that our content video // is completed so the SDK can play any post-roll ads. const contentEndedListener = function () { adsLoader.contentComplete(); }; videoContent.onended = contentEndedListener; // Request video ads. const adsRequest = new google.ima.AdsRequest(); adsRequest.adTagUrl = iinfoVastUrls[iinfoVastUrlIndex]; console.log('Preroll advert: ' + iinfoVastUrls[iinfoVastUrlIndex]); videoContent.muted = false; videoContent.volume = 1; // Specify the linear and nonlinear slot sizes. This helps the SDK to // select the correct creative if multiple are returned. // adsRequest.linearAdSlotWidth = prerollWidth; // adsRequest.linearAdSlotHeight = prerollHeight; adsRequest.nonLinearAdSlotWidth = 0; adsRequest.nonLinearAdSlotHeight = 0; adsLoader.requestAds(adsRequest); } function createAdDisplayContainer() { // We assume the adContainer is the DOM id of the element that will house // the ads. prerollDocument.getElementById('videoContent').style.display = 'none'; adDisplayContainer = new google.ima.AdDisplayContainer( prerollDocument.getElementById('adContainer'), videoContent); } function unmutePrerollAdvert() { adVolume = !adVolume; if (adVolume) { adsManager.setVolume(0.3); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } else { adsManager.setVolume(0); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } } function onAdsManagerLoaded(adsManagerLoadedEvent) { // Get the ads manager. const adsRenderingSettings = new google.ima.AdsRenderingSettings(); adsRenderingSettings.restoreCustomPlaybackStateOnAdBreakComplete = true; adsRenderingSettings.loadVideoTimeout = 12000; // videoContent should be set to the content video element. adsManager = adsManagerLoadedEvent.getAdsManager(videoContent, adsRenderingSettings); // Add listeners to the required events. adsManager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, onAdError); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED, onContentPauseRequested); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED, onContentResumeRequested); adsManager.addEventListener( google.ima.AdEvent.Type.ALL_ADS_COMPLETED, onAdEvent); // Listen to any additional events, if necessary. adsManager.addEventListener(google.ima.AdEvent.Type.LOADED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.STARTED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.COMPLETE, onAdEvent); playAds(); } function playAds() { // Initialize the container. Must be done through a user action on mobile // devices. videoContent.load(); adDisplayContainer.initialize(); // setupDimensions(); try { // Initialize the ads manager. Ad rules playlist will start at this time. adsManager.init(1920, 1080, google.ima.ViewMode.NORMAL); // Call play to start showing the ad. Single video and overlay ads will // start at this time; the call will be ignored for ad rules. adsManager.start(); // window.addEventListener('resize', function (event) { // if (adsManager) { // setupDimensions(); // adsManager.resize(prerollWidth, prerollHeight, google.ima.ViewMode.NORMAL); // } // }); } catch (adError) { // An error may be thrown if there was a problem with the VAST response. // videoContent.play(); } } function onAdEvent(adEvent) { const ad = adEvent.getAd(); console.log('Preroll event: ' + adEvent.type); switch (adEvent.type) { case google.ima.AdEvent.Type.LOADED: if (!ad.isLinear()) { videoContent.play(); } prerollDocument.getElementById('adContainer').style.width = '100%'; prerollDocument.getElementById('adContainer').style.maxWidth = '640px'; prerollDocument.getElementById('adContainer').style.height = '360px'; break; case google.ima.AdEvent.Type.STARTED: window.addEventListener('scroll', onActiveView); if (ad.isLinear()) { intervalTimer = setInterval( function () { // Example: const remainingTime = adsManager.getRemainingTime(); // adsManager.pause(); }, 300); // every 300ms } prerollDocument.getElementById('adMuteBtn').style.display = 'block'; break; case google.ima.AdEvent.Type.ALL_ADS_COMPLETED: if (ad.isLinear()) { clearInterval(intervalTimer); } if (prerollLastError === 303) { playYtVideo(); } break; case google.ima.AdEvent.Type.COMPLETE: if (ad.isLinear()) { clearInterval(intervalTimer); } playYtVideo(); break; } } function onAdError(adErrorEvent) { console.log(adErrorEvent.getError()); prerollLastError = adErrorEvent.getError().getErrorCode(); if (!loadNext()) { playYtVideo(); } } function loadNext() { iinfoVastUrlIndex++; if (iinfoVastUrlIndex < iinfoVastUrls.length) { iinfoPrerollPosition.remove(); playPrerollAd(); } else { return false; } adVolume = 1; return true; } function onContentPauseRequested() { videoContent.pause(); } function onContentResumeRequested() { videoContent.play(); } function onActiveView() { if (prerollContainer) { const containerOffset = prerollContainer.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight/1 && containerOffset.bottom > 0.0) { if (prerollPaused) { adsManager.resume(); prerollPaused = false; } return true; } else { if (!prerollPaused) { adsManager.pause(); prerollPaused = true; } } } return false; } function playYtVideo() { iinfoPrerollPosition.remove(); youtubeIframe.style.display = 'block'; youtubeIframe.src += '&autoplay=1&mute=1'; } }
OSZAR »