<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Bach N. on Medium]]></title>
        <description><![CDATA[Stories by Bach N. on Medium]]></description>
        <link>https://medium.com/@xbach?source=rss-170d778cc259------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*wJgD2qztCMQbdVMPdYzhgw.jpeg</url>
            <title>Stories by Bach N. on Medium</title>
            <link>https://medium.com/@xbach?source=rss-170d778cc259------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sat, 14 Nov 2026 21:50:42 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@xbach/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[Run a local instance of Trezor Wallet.]]></title>
            <link>https://medium.com/@xbach/run-a-local-instance-of-trezor-wallet-442febc4ac81?source=rss-170d778cc259------2</link>
            <guid isPermaLink="false">https://medium.com/p/442febc4ac81</guid>
            <category><![CDATA[guide]]></category>
            <category><![CDATA[trezor]]></category>
            <category><![CDATA[bitcoin]]></category>
            <dc:creator><![CDATA[Bach N.]]></dc:creator>
            <pubDate>Mon, 02 Jul 2018 13:29:48 GMT</pubDate>
            <atom:updated>2019-01-11T13:32:23.556Z</atom:updated>
            <content:encoded><![CDATA[<p><strong>Required: Terminal, Python, a few minutes.</strong></p><p>First of all, you will need to make sure you have Python installed. macOS users have Python preinstalled as do certain Linux distros. Windows users will need to install Python manually — you can <a href="https://github.com/BurntSushi/nfldb/wiki/Python-&amp;-pip-Windows-installation">follow this guide</a>. Linux users can <a href="http://docs.python-guide.org/en/latest/starting/install3/linux/">use this guide</a>.</p><blockquote>If you do not have Python installed, then setting it up will take the most time.</blockquote><ol><li>To download Trezor Wallet, access this link: <a href="https://wallet.trezor.io/data/mytrezor-archive.tgz">https://wallet.trezor.io/data/mytrezor-archive.tgz</a></li><li>Extract it into a folder. I used my home folder. ~/mytrezor</li><li>Open Terminal and navigate to the folder with Trezor Wallet.<br> cd ~/mytrezor</li><li>In the folder with Trezor Wallet, run this command python -m SimpleHTTPServer 8000 . <em>Make sure there is no space after 8000. <br></em>(If you have python3, then run python3 -m http.server 8000 )</li><li>This will run a server at localhost:8000</li><li>Open localhost:8000 in Google Chrome or Firefox.</li><li>And you are done.</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/834/1*1FUSdixeZdgWLwx-elMd9A.png" /></figure><p>If you decide to rely on a local-served Trezor Wallet, make sure to regularly download a snapshot off the link above to keep the Wallet app updated at all times.</p><h3>Next step?</h3><p>Done? Still have time to spare? Then you can run a local backend, to be completely independent of the SatoshiLabs infrastructure. A guide is available in Trezor Wiki: <a href="https://wiki.trezor.io/User_manual:Running_a_local_instance_of_Trezor_Wallet_backend_(Blockbook)">https://wiki.trezor.io/User_manual:Running_a_local_instance_of_Trezor_Wallet_backend_(Blockbook)</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=442febc4ac81" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Watch your TREZOR Bitcoin accounts with Sentinel.]]></title>
            <link>https://blog.trezor.io/watch-trezor-bitcoin-account-wallet-sentinel-android-guide-304aeccbd9e4?source=rss-170d778cc259------2</link>
            <guid isPermaLink="false">https://medium.com/p/304aeccbd9e4</guid>
            <category><![CDATA[bitcoin]]></category>
            <category><![CDATA[android]]></category>
            <category><![CDATA[cryptocurrency]]></category>
            <dc:creator><![CDATA[Bach N.]]></dc:creator>
            <pubDate>Fri, 19 Jan 2018 13:43:39 GMT</pubDate>
            <atom:updated>2024-11-01T08:35:12.880Z</atom:updated>
            <cc:license>https://creativecommons.org/licenses/by-nc-sa/4.0/</cc:license>
            <content:encoded><![CDATA[<p>Did you know that you can create a watch-only wallet with Sentinel for Android (by Samourai Wallet)? You don’t even need any special cable to connect your TREZOR, just scan the XPUB with your phone! Moreover, Sentinel also supports standard accounts which have <strong>Segregated Witness</strong> enabled, allowing you to track all your Bitcoin accounts easily.</p><p>Why would you even need such a thing, you might ask? Simple: Maybe you need to keep a watch over your TREZOR accounts without having the device next to you. Or you would like to accept payments to your TREZOR, but don’t want to carry a computer with you.</p><p>Wondering how simple it is? Continue reading 😉</p><h4>Privacy disclaimer</h4><p>First of all, I would like to reiterate that you are importing a watch-only account. You are not sharing your private keys with Sentinel; these remain in your TREZOR device only. On the other hand, you are sharing your public keys with the application. This means that the app will know your transaction history, as it needs that information to work correctly. Don’t worry though, Sentinel is entirely <a href="https://github.com/Samourai-Wallet/sentinel-android">open-source</a>. For more information about the app, <a href="https://samouraiwallet.com/sentinel.html">visit its website</a>.</p><h4>View your XPUBs in TREZOR Wallet</h4><p>Do you know how to access your XPUBs — your public keys? They are available in your TREZOR Wallet. Go to the Wallet and click on the device name to go to Settings. XPUBs are accessible right under Basic settings of the device.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*o2bX4sawoMfvuqY5Ov3OoQ.png" /></figure><h4>Set up Sentinel</h4><p>Install Sentinel from Google Play or build the application yourself from <a href="https://github.com/Samourai-Wallet/sentinel-android">source</a>. It will take just a few seconds. Start the program, and you will be welcomed with an informational screen about the app.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Qv0oNlhkzsW94xsYO9814g.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*PU-iIbsoFInWOxCc0sCeUg.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*CHqVdo4yvzpyEUvMFwfVqg.png" /></figure><p>Dismiss the welcome pop-up, and you can start using the app right away. Click on <em>Start</em>. The next option will differ based on what account you want to import. TREZOR supports two types of accounts for Bitcoin, Legacy accounts and Standard accounts (SegWit).</p><p>If you would like to import a <a href="https://blog.trezor.io/how-does-segregated-witness-work-in-trezor-wallet-e8dd34d0fc1a">Legacy account</a>, choose to track <em>Bitcoin Wallet (BIP44)</em>. If you are importing a <a href="https://blog.trezor.io/how-does-segregated-witness-work-in-trezor-wallet-e8dd34d0fc1a">Standard account</a>, select <em>Segwit Bitcoin Wallet (BIP49)</em>.</p><blockquote>Legacy accounts (BIP44) start with the string xpub <br>Standard accounts (BIP49) start with the string ypub</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/593/1*5YIFlFm6lOyJOLjt9T0spg.png" /><figcaption>Don’t worry, these XPUBs belong to a testing seed.</figcaption></figure><p>Select the type of account and then continue by choosing <em>Scan. (</em>You can also choose <em>Manual</em> if you would rather write the long string by hand.) On your computer, click on the desired XPUB and scan the QR code with your phone. Voilà, done! Name your account so you can identify it quickly. A list of the account’s past transactions, along with its balance will show up on your phone.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*4mk1O31b6_i9xsjO7sbvQA.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*jXsoVOyYEuX3HDC0uRjoTg.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*fBtSnfZYOUVmPQdLrVsnDQ.png" /></figure><p>You have successfully added your first account! To add more accounts, just rinse and repeat the procedure. You can also explore the app’s settings. One notable feature is the app lock. You might not want people snooping around your bitcoin balance.</p><p>Sentinel is a great application if you like to keep track of your Bitcoin accounts on-the-go. Simple and clean interface, but most importantly, completely open source. By the way, Sentinel is developed by the same team that created Samourai Wallet for Android.</p><p>Do you have any other apps that you like to use? Let us know in comments or <a href="https://twitter.com/trezor">tweet at us</a>!</p><h4>iOS support? Soon!</h4><h3>Samourai Wallet on Twitter</h3><p>@vojtechcerny @EmanuLBlokchain @TREZOR @arc_bit If everything goes well (and it looks like it is) before the end of Q2 is the rough estimate.</p><h3>About Us</h3><p><em>TREZOR Model T is the next-generation hardware wallet, designed with experiences of the original TREZOR in mind, combined with a modern and intuitive interface for improved user experience and security. It features a touchscreen, faster processor, and advanced coin support, as well as all the features of the TREZOR One.</em></p><p><em>TREZOR One is the most trusted and ubiquitous hardware wallet in the world. It offers an unmatched security for cryptocurrencies, password management, Second Factor, while maintaining an absolute ease-of-use, whether you are a security expert or a brand new user.</em></p><p><em>SatoshiLabs is the innovator behind some of the most pivotal and influential projects with Bitcoin and cryptocurrencies, mainly </em><a href="https://trezor.io/"><em>TREZOR</em></a><em>, the world’s first cryptocurrency hardware wallet, or </em><a href="https://coinmap.org/"><em>CoinMap.org</em></a><em>, the primary resource for bitcoin-accepting venues.</em></p><h3>Links</h3><p>Sentinel: <a href="https://samouraiwallet.com/sentinel.html">samouraiwallet.com/sentinel</a><br>TREZOR: <a href="https://blog.trezor.io/">trezor.io</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=304aeccbd9e4" width="1" height="1" alt=""><hr><p><a href="https://blog.trezor.io/watch-trezor-bitcoin-account-wallet-sentinel-android-guide-304aeccbd9e4">Watch your TREZOR Bitcoin accounts with Sentinel.</a> was originally published in <a href="https://blog.trezor.io/">Trezor Blog</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Using TREZOR with Electrum v3.]]></title>
            <link>https://blog.trezor.io/using-trezor-with-electrum-v3-a0b9bcffe26e?source=rss-170d778cc259------2</link>
            <guid isPermaLink="false">https://medium.com/p/a0b9bcffe26e</guid>
            <category><![CDATA[bitcoin]]></category>
            <category><![CDATA[trezor]]></category>
            <category><![CDATA[electrum]]></category>
            <dc:creator><![CDATA[Bach N.]]></dc:creator>
            <pubDate>Thu, 02 Nov 2017 12:28:55 GMT</pubDate>
            <atom:updated>2019-05-22T12:38:45.878Z</atom:updated>
            <content:encoded><![CDATA[<h4>Access your new SegWit accounts from Electrum.</h4><blockquote><strong><em>This article was originally published in 2017 and has not been updated since. For up-to-date information, please </em></strong><a href="https://wiki.trezor.io/Apps:Electrum"><strong><em>visit this Trezor Wiki article</em></strong></a><strong><em>.</em></strong></blockquote><p><a href="https://electrum.org/#download">Electrum</a> just released a new version, v3, with support for Segregated Witness. But the first question is: Does it work with <a href="https://trezor.io/">TREZOR</a>?</p><p>Short answer: Yes, it does!</p><p>Long answer: Read more to learn how to properly import your SegWit accounts.</p><p>First of all, download the new Electrum from their website. Make sure you are using the right address, <a href="https://electrum.org/#download">electrum.org</a>, to avoid installing malware on your computer. After installation, run the application.</p><h4>Import your account info as a new wallet.</h4><p>Electrum handles TREZOR accounts as separate wallets. To add your new account, you will therefore have to create a new wallet — choose File-New.</p><p>Pick the name for your wallet and in the next window, select ‘Standard wallet’.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/712/1*cuxuVdp3DV1Bsf2ZzS-Ydw.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/712/1*zMis7yKOQlhICE24kRGjlw.png" /></figure><p>When selecting Keystore, the place where your private keys are stored, make sure to choose ‘Use a hardware device’. Before clicking on next, plug your TREZOR in. In the next window, select the TREZOR you want to use.</p><p>(If the device is not recognized, try again. Sometimes it takes a while for Electrum to discover TREZOR. Also try closing TREZOR Wallet or any other apps connected to the device.)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/712/1*XVdyehwJ1TNmCr3pMNRlJw.png" /></figure><p>Looks good! Click on next. In the next window enter your PIN (and passphrase) and confirm.</p><blockquote>Note that by doing this you are not exporting your private keys. TREZOR will never leak your confidential data.</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/712/1*XvSqGBR6dK-13XGBbnTErA.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/712/1*rIYe_08uGopQYOLhgDvQDw.png" /></figure><p>Okay, now here, make sure you change the derivation path. <strong>TREZOR uses BIP49 for new SegWit accounts</strong>, therefore the first account is <strong>m/49’/0’/0’</strong>. Iterate the last number to get the next account. (If you want to import more accounts, for each you will need to create a new wallet in Electrum though.)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/712/1*v-XJTajY71vsLq8Jv1PJsA.png" /></figure><p>Here is a list of example derivation paths for BIP49, to use new accounts.</p><pre>m/49&#39;/0&#39;/0&#39; (first account)<br>m/49&#39;/0&#39;/1&#39; (second account)<br>m/49&#39;/0&#39;/2&#39; (third account)<br>...</pre><p>If you would rather use legacy accounts, use BIP44 paths.</p><pre>m/44&#39;/0&#39;/0&#39; (first account)<br>m/44&#39;/0&#39;/1&#39; (second account)<br>m/44&#39;/0&#39;/2&#39; (third account)<br>...</pre><p>Click on ‘Next’ and you are done! You are ready to use TREZOR with Electrum!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/952/1*B-WRdQpk7mItHIYh6g3YIA.png" /></figure><p>All addresses are properly generated, SegWit accounts with a 3-address. You can check them against the addresses in TREZOR Wallet, in case you want to be completely sure.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/952/1*tCCNBuI13XGet0stMPyvGw.png" /></figure><p>And that’s it! You can now use Electrum with TREZOR as the signing device.</p><h3>About Us</h3><p><em>TREZOR model T is the next-generation hardware wallet, designed with experiences of the original TREZOR in mind, combined with a modern and intuitive interface for improved user experience and security. It features a touchscreen, faster processor, and advanced coin support, as well as all the features of the TREZOR One.</em></p><p><em>TREZOR One is the most trusted and ubiquitous hardware wallet in the world. It offers an unmatched security for cryptocurrencies, password management, Second Factor, while maintaining an absolute ease-of-use, whether you are a security expert or a brand new user.</em></p><p><em>SatoshiLabs is the innovator behind some of the most pivotal and influential projects with Bitcoin and cryptocurrencies, mainly </em><a href="https://trezor.io/"><em>TREZOR</em></a><em>, the world’s first cryptocurrency hardware wallet, or </em><a href="https://coinmap.org/"><em>CoinMap.org</em></a><em>, the primary resource for bitcoin-accepting venues.</em></p><h3>Links</h3><p>Electrum: <a href="https://electrum.org/#download">electrum.org</a><br>TREZOR: <a href="https://blog.trezor.io/">trezor.io</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=a0b9bcffe26e" width="1" height="1" alt=""><hr><p><a href="https://blog.trezor.io/using-trezor-with-electrum-v3-a0b9bcffe26e">Using TREZOR with Electrum v3.</a> was originally published in <a href="https://blog.trezor.io/">Trezor Blog</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Thoughts on Catalan Referendum Oct. 2017]]></title>
            <link>https://medium.com/@xbach/thoughts-on-catalan-referendum-oct-2017-1b8feaf83a1?source=rss-170d778cc259------2</link>
            <guid isPermaLink="false">https://medium.com/p/1b8feaf83a1</guid>
            <category><![CDATA[referendum]]></category>
            <category><![CDATA[catalonia]]></category>
            <category><![CDATA[catalunya]]></category>
            <dc:creator><![CDATA[Bach N.]]></dc:creator>
            <pubDate>Sun, 01 Oct 2017 22:11:06 GMT</pubDate>
            <atom:updated>2017-10-01T23:13:27.394Z</atom:updated>
            <content:encoded><![CDATA[<p>Don’t know how to feel about the Catalonian referendum. On one hand, it is obvious that the use of force against civilians is disgusting and unnecessary. (Also, a PR nightmare, well done, whoever thought this was a good idea.)</p><p>On the other hand, the referendum is legally dubious, at best (actually, illegal). The fact that the Constitution of Spain prohibits such actions only lead to the court ruling, and enabled the government to proceed with enforcement. But this is not the only problem with the referendum. Legality is actually a smaller problem, as one can generalize that all calls for independence are illegal, and yet they are carried out. The other issues with this referendum are about the legitimacy, which is now conveniently overlooked, thanks for the botched involvement of Spanish police forces.</p><p>First of all, there is NO minimum turnout. In conjunction with a simple majority requirement, a minority vote would be sufficient for Catalonia to secede. Considering that those likely to vote are those who would vote for secession, with the supporters of Spain abstaining, it is likely that a Catalan minority would vote to leave Spain. Every referendum should have a minimum turnout rule.</p><p>Secondly, the referendum is not only illegal according to the Spanish constitution, it is also illegal in Catalonia. Catalan Statues of autonomy require a two-thirds majority in the parliament for any changes to Catalonia’s status. October’s referendum law was “rushed through”, with a simple majority confirmation in the parliament. (Noteworthy: opposition parties boycotted the vote.)</p><p>Considering that a two-thirds majority requirement is a check on misuse of powers within a democracy, the fact that the Catalan government decided to bypass it is alarming.</p><p>Thirdly, a voter could have totally voted twice. Or three times, or four times. There were no checks on this.</p><p>Fourthly, I have my own reservations about binding, non-compulsory referenda. But this is probably less relevant.</p><p>This is in no way an effort to excuse the aggressive reaction of Spanish police. The overzealous attempts to block the referendum actually gave it more legitimacy than it had, as it now looks like Catalan people are oppressed in Spain (they’re not). A good reaction would be to let the referendum go through and not accept its result as it is illegal and illegitimate.</p><p>No, what I am trying to highlight is that despite the image of the referendum being all-heroic and about self-determination, in reality, it is not that glorious. I do support the right of self-determination. But it needs to be done well — it needs to have legitimacy, by having checks and balances. By not skipping corners, and actually giving both sides time for campaigning. Scotland managed to do it, and, despite of hating Brexit, even that vote was more legitimate than this referendum.</p><p>(Maybe the Catalan government did actually play their cards well, considering that 1) support for independence was below 50% and 2) the support for their cause can only increase after the violence during the vote. Who knows. It will be interesting what comes next. General strike? Roadblocks? Barricades? Hopefully no civil war.)</p><p>Tl;dr: I cannot support either side in this debate. Spain is fucking stupid for letting police fire on its own people. The Catalonian referendum lacks legitimacy. It only looks legitimate because Spanish government fucked up.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=1b8feaf83a1" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[What Segregated Witness Means for TREZOR]]></title>
            <link>https://blog.trezor.io/what-segregated-witness-means-for-trezor-808c790a05bd?source=rss-170d778cc259------2</link>
            <guid isPermaLink="false">https://medium.com/p/808c790a05bd</guid>
            <category><![CDATA[security]]></category>
            <category><![CDATA[bitcoin]]></category>
            <category><![CDATA[segwit]]></category>
            <category><![CDATA[trezor]]></category>
            <dc:creator><![CDATA[Bach N.]]></dc:creator>
            <pubDate>Wed, 25 Jan 2017 16:05:15 GMT</pubDate>
            <atom:updated>2017-08-28T13:54:50.749Z</atom:updated>
            <content:encoded><![CDATA[<h4>Simplifying Transaction Input Verification with SegWit</h4><h4>No Politics. Just Effects.</h4><p>Segregated Witness, also known as SegWit, has been a target of frequent debates online and offline. For some it might be controversial due to its political implications for the Bitcoin ecosystem. However, for the sake of clarity, let’s take a step away from politics. In other words, <strong>this article will not discuss the connotation of SegWit for the blocksize debate</strong>. This article will not delve deeply into the actual technology and code behind SegWit either; <a href="https://medium.com/segwit-co">many articles</a> have been written on the merits of SegWit, and I cannot explain it as well as them. Instead, I will focus exclusively on the <strong>positive effects of Segregated Witness on TREZOR</strong>, and Bitcoin wallets in general.</p><blockquote>SegWit is a blessing for hardware wallets for many reasons. I actually think that rolling out SegWit will increase security, because it will reduce huge complexity in hardware wallets as it is today.</blockquote><blockquote>— Marek “Slush” Palatinus, CEO of SatoshiLabs</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*rCeRRnmoEJdMl7KxI8jOgA.jpeg" /></figure><blockquote><strong>Too Long; Did Not Read <em>version at the </em></strong><a href="#0d47"><strong><em>end</em></strong></a><strong><em> of the article.</em></strong></blockquote><h3>Back to Basics: Bitcoin Transaction</h3><p><a href="#1c98"><em>Click here to skip to ‹‹Verifying Inputs››</em></a></p><p>In Bitcoin, a wallet never stores actual coins, real or virtual. Instead, the wallet carries private keys, which are used to digitally sign transactions. The currency network is held together by these records of transactions, as every transaction is entered into the unchangeable common ledger — the Bitcoin blockchain.</p><p><strong>A </strong><a href="https://en.bitcoin.it/wiki/Transaction#Principle_example_of_a_Bitcoin_transaction_with_1_input_and_1_output_only"><strong>Bitcoin transaction</strong></a><strong> is composed of inputs, outputs and signature</strong>. There can be a single input, or multiple of them; the same applies to outputs. Signature verifies the ability of the user to spend the coins (the user signs using his/her private key, others can verify the signature against his/her <a href="https://en.wikipedia.org/wiki/Public-key_cryptography">public key</a>).</p><p>Let’s say Alice wants to send 10 bitcoins to Bob. She will have to create a new transaction with Bob’s address (public key) as the receiver. Alice has previously received three different transactions, with values 3 BTC, 4 BTC and 5 BTC. <em>Let’s label these as N1, N2 and N3</em>. You can see that the sum of these transactions is larger than the 10 BTC Alice wants to send, and there is no way to combine just two of those transactions to have 10 BTC. What Alice has to do is add another output into the transaction, with her own address. She will state that she wants to send 1.5 BTC back to her own account.</p><p>Notice that the sum of outputs (10+1.5=11.5) does not add up to the sum of inputs (3+4+5=12). This by design, as the difference between the two will serve as the <strong>transaction fee</strong> for the miner who adds this transaction to his/her mined block.</p><pre>Alice&#39;s Transaction<br>Inputs           Outputs<br>[N1, 3BTC]       [B, 10BTC]<br>[N2, 4BTC]       [A, 1.5BTC]<br>[N3, 5BTC]<br>-----------------------------------------</pre><pre>Calculating TXFEE<br>SUM=12BTC        SUM=11.5BTC       DIFF=TXFEE=0.5BTC</pre><pre>// The transaction does not actually look like this.</pre><p>This looks quite simple, so where is the catch?</p><h3>Verifying Inputs</h3><p>When composing a new transaction, the wallet has to request the information on previous outputs it received, to use them as inputs. <strong>However, the amount in the previous output is not explicitly given to the wallet.</strong> Instead, the wallet only knows the Transaction ID of the previous transaction and the position of the previous output inside of that transaction.</p><p>Alice’s Transaction will therefore look more like this, with no amounts in the inputs, but rather Transaction IDs and positions of previous outputs:</p><pre>Alice&#39;s Transaction<br>Inputs           Outputs<br>[TXID1, #0]      [B, 10BTC]<br>[TXID2, #4]      [A, 1.5BTC]<br>[TXID3, #2]<br>-----------------------------------------</pre><pre>Calculating TXFEE<br>SUM=12BTC        SUM=11.5BTC       DIFF=TXFEE=0.5BTC</pre><pre>// The transaction does not actually look like this.</pre><p>The wallet can stream the value of these inputs/previous outputs from somewhere, but <strong>how can it know that the amount is correct</strong>? What if it was intercepted and modified by someone?</p><p>In addition, you have surely noticed that the transaction fee is not explicitly stated. It is implicitly given by the difference between the sum of all outputs and sum of all inputs. This unfortunately opens up an <strong>attack vector, where one of the inputs used is actually larger than the user expects</strong>, and thus the user can lose a significant amount of coins to the transaction fee. This is the so-called <strong>Fee Attack</strong> vector.</p><p>There is a way to protect your wallet from this attack; TREZOR and many other (hardware) wallets employ this method. Essentially, the wallet depends on cryptographic verification of the input — <a href="https://en.wikipedia.org/wiki/Hash_function"><strong>hashes</strong></a>, to confirm the correctness of the input value supplied.</p><p>The wallet calculates the hash of the previous transaction and compares it to the hash published with the transaction in the blockchain. If the hashes match, then the wallet can be certain that the amount to be used as an input was not modified.</p><h4>Let’s go slower, one by one.</h4><p>Consider the input N1. Assume the input was a part of transaction TXID1 and output #0. The transaction TXID1 might have looked something like this:</p><pre>Transaction TXID1<br>Inputs           Outputs<br>[TXIDa, #0]      <strong>[N1, 3BTC]</strong><br>[TXIDb, #2]      [P4, 11.5BTC]<br>HASH:34b23ea....<br>-----------------------------------------</pre><pre>Calculating TXFEE<br>SUM=15BTC        SUM=14.5BTC       DIFF=TXFEE=0.5BTC</pre><pre>// The transaction does not actually look like this.</pre><p>When composing a new transaction, the wallet will stream the previous transaction (TXID1) from the blockchain, and ask for the specific output #0 (first position) and its value. Once it receives the value, the wallet will start hashing then entire transaction. Only if the hash exactly matches the hash published (34b23ea….), then the wallet can be certain that the amount is correct; in this case 3 BTC.</p><p>The wallet has to do this for <strong>each and every input</strong> to be used for a new transaction.</p><h4>Hardware Wallets: Limited Power</h4><p>Verifying inputs is, in itself, not a problem. The verification process only reinforces the security of hardware wallets. The issues with this operation only arise when there is a<strong> large number of inputs</strong> in a new transaction, as the hardware wallet will have to calculate all of the hashes of previous transactions.</p><p>Hardware wallets do not, in comparison with a phone or a computer, have sufficient computational power to run through a large number of hashes quickly. This explains why some transactions might take a long time to be processed on TREZOR, especially in accounts with a large amount of small inputs.</p><p>This issue with limited power is further exacerbated by the fact that sighash operations (signature-hashing — <em>different operation</em>) <a href="https://bitcoincore.org/en/2016/01/26/segwit-benefits/#linear-scaling-of-sighash-operations"><strong>scale quadratically</strong></a> and not linearly. This means that a transaction double in size will take four times as long to compute.</p><h3>How Will SegWit Change This?</h3><p>SegWit transactions are designed in such a way that allows hardware wallets to get rid of the verification process altogether. Why? Because SegWit transactions will <strong>include the value of previous outputs </strong>in the signature of the transaction. The wallet thus does not need to request the previous transactions nor hash them anymore, saving precious time for users.</p><p>It might seem to be a trivial change, but the security implications are large. The lower the amount of operations the hardware wallets need to do, the lower the probability of something going awry. As the value of the previous output to be used as input is already included in the signature of the previous transaction, <strong>there is no possibility of anyone modifying the input value</strong>.</p><p>Moreover, with SegWit, wallets do not sign each inputs separately anymore, but first they will hash all the inputs, and then sign the hash. With this method, the amount of operations the wallets have to do is decreased, and thus the transaction creation process is sped up. This also means that the quadratic difficulty of sighash operations is replaced by linear difficulty; doubling the size of the transaction will theoretically only double the computation time.</p><h3>Should SegWit Be Activated?</h3><p>From a hardware wallet’s perspective there is <strong>no reason to delay SegWit</strong> activation. In fact, for any user with a hardware wallet, which is probably the most secure device you can use to store your private keys in, the benefits of SegWit activation should be obvious.</p><p>To reiterate, this article raises the merits of SegWit <strong>without</strong> mentioning its implications for the Blocksize debate. It also <strong>does not</strong> discuss the method of implementation: softfork or hardfork. Nonetheless, it is disappointing that this piece of code has not been activated yet due to political disagreements within the Bitcoin ecosystem, in conjunction with the inability to compromise.</p><h3>Too Long; Did Not Read</h3><p>Currently, <strong>transactions do not contain the bitcoin value of inputs.</strong> Instead, they enclose the reference to the previous transaction, forcing TREZOR to use a workaround in order to safely retrieve the values and verify them. <strong>This process, however, takes precious amount of time</strong>. With SegWit, this will no longer be necessary as <strong>SW transactions include the value of inputs</strong>.</p><h4>Other resources</h4><p><a href="http://blog.trezor.io/segwit">TREZOR SegWit Resources - TREZOR Blog</a></p><h3>Links</h3><p><a href="https://en.bitcoin.it/wiki/Transaction">Bitcoin Transaction Structure — Bitcoin Wiki</a><br><a href="https://bitcoincore.org/en/2016/01/26/segwit-benefits/">SegWit Benefits — Bitcoin Core</a><br><a href="https://bitcoinmagazine.com/articles/segregated-witness-part-how-a-clever-hack-could-significantly-increase-bitcoin-s-potential-1450553618/">SegWit Benefits — Bitcoin Magazine</a><br>SegWit BIPs —<a href="https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki"> BIP 141</a>, <a href="https://github.com/bitcoin/bips/blob/master/bip-0143.mediawiki">BIP 143</a>, <a href="https://github.com/bitcoin/bips/blob/master/bip-0144.mediawiki">BIP 144</a></p><p><a href="https://www.khanacademy.org/economics-finance-domain/core-finance/money-and-banking/bitcoin/v/bitcoin-transaction-records">Bitcoin: Transaction Records — Khan Academy</a></p><p>TREZOR: <a href="https://trezor.io/?a=medium.com">trezor.io</a></p><h3>SatoshiLabs Disclaimer</h3><p><strong>SatoshiLabs does not take any stance in the ongoing Bitcoin scaling debate</strong>. Slush Pool has been long maintaining neutrality and advocating for miners’ independence in choosing a specific proposal. The TREZOR Team does not side with any proposal either. On the other hand, it cannot help but publicly <strong>support Segregated Witness</strong>, due to its positive effects for hardware wallets and our customers.</p><h3>About SatoshiLabs</h3><p><strong><em>SatoshiLabs</em></strong><em> is the innovator behind some pioneering projects in the Bitcoin universe, from </em><a href="https://trezor.io/?a=medium.com"><em>TREZOR</em></a><em>, </em><a href="https://coinmap.org/"><em>CoinMap.org</em></a><em> to </em><a href="https://slushpool.com/"><em>Slush Pool</em></a><em>, the world’s first bitcoin mining pool.</em></p><p><strong><em>TREZOR</em></strong><em> is the most secure hardware wallet in the world. It offers an unmatched security for Cryptocurrencies, Password Management, Second Factor, while maintaining an absolute ease-of-use, whether you are a security expert or a general user.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=808c790a05bd" width="1" height="1" alt=""><hr><p><a href="https://blog.trezor.io/what-segregated-witness-means-for-trezor-808c790a05bd">What Segregated Witness Means for TREZOR</a> was originally published in <a href="https://blog.trezor.io/">Trezor Blog</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[TREZOR/U2F Login into Your macOS (Updated)]]></title>
            <link>https://blog.trezor.io/trezor-u2f-login-into-your-mac-os-x-9fdd808b0aa4?source=rss-170d778cc259------2</link>
            <guid isPermaLink="false">https://medium.com/p/9fdd808b0aa4</guid>
            <category><![CDATA[homebrew]]></category>
            <category><![CDATA[u2f]]></category>
            <category><![CDATA[trezor]]></category>
            <category><![CDATA[authentication]]></category>
            <dc:creator><![CDATA[Bach N.]]></dc:creator>
            <pubDate>Thu, 08 Dec 2016 14:40:30 GMT</pubDate>
            <atom:updated>2024-11-01T08:43:34.255Z</atom:updated>
            <cc:license>https://creativecommons.org/licenses/by-nc/4.0/</cc:license>
            <content:encoded><![CDATA[<p><strong><em>16/12 Update: Added </em></strong><a href="#92e4"><strong><em>Workaround for Full Disk Encryption</em></strong></a><strong><em>.</em></strong></p><p>Working for <a href="https://medium.com/u/b8686215a986">SatoshiLabs</a> has taught me a lot, especially about privacy and security. One of the main lessons is that passwords, despite our reliance on them as the ultimate gatekeeper, are the weakest link in our digital security. There have been <a href="https://www.wired.com/2012/11/ff-mat-honan-password-hacker/">many articles</a> and opinions written on this topic, and I will leave it to them to explain why we should not rely on a combination of letters and numbers as the means of our authentication. Instead, I will introduce you to <strong>U2F</strong>, a second factor authentication protocol, and <strong>guide you how you can conveniently use to log into</strong> Unix-based systems, in this case <strong>macOS</strong>. <em>(Looking for Linux Guide? </em><a href="https://blog.trezor.io/trezor-u2f-login-into-your-linux-mint-bd3684d4a8ba#.y8mgd5fqn"><em>It’s here!</em></a><em>)</em></p><p><strong>Universal Second Factor (U2F)</strong> has been developed as a secure method of second factor authentication, as the name suggests. Unlike TOTP, which relies on symmetric keys, U2F uses <strong>asymmetric encryption</strong> and a challenge-response mechanism to prove you are really you.</p><p>TREZOR, the world’s first hardware wallet for cryptocurrencies, is also a wonderful U2F device that can serve as your U2F token. The advantage of TREZOR over other traditional U2F tokens is that it sports a display, and therefore you will always see what you are authenticating with. This feature limits the phishing attack vector against you.</p><blockquote><strong>Disclaimer!</strong></blockquote><blockquote><strong>You are doing this at your own risk.</strong> <strong>There is no guarantee it will work</strong>, and I cannot ascertain that you will not make any mistakes. Errors in PAM configuration may break your computer. If you are not comfortable working with command line, you are not ready to do this! I am not liable for mistakes done by following this guide.</blockquote><h3>Preparation</h3><p>In essence, we are going to work with Unix system’s Pluggable Authentication Module (PAM). First we will install the U2F module for PAM (pam-u2f). This is not a standard module in macOS, but it is easily downloadable. Then we are going to configure U2F authentication, and set up PAM to work with U2F.</p><blockquote><strong>Special Case: Full Disk Encryption</strong></blockquote><blockquote>If you have FileVault 2 enabled (FDE), you might want to read the limitations and necessary workaround first. <a href="#92e4">Go to FDE Section</a>.</blockquote><h4>Step 0 — Install Homebrew</h4><p>If you do not have Homebrew installed, run the following command in your Terminal:</p><pre>/usr/bin/ruby -e &quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)&quot;</pre><p><em>What is Homebrew? It is a convenient package manager for </em>macOS<em>, allowing you to install various applications. Check out </em><a href="http://brew.sh/"><em>Homebrew</em></a><em> for more info.</em></p><h4>Step 1 — Install pam-u2f</h4><p>Install the pam-u2f module by running the following command:</p><pre>brew install pam-u2f</pre><p>For users running macOS <strong>without System Integrity Protection</strong>, symlink the module into a directory where PAM looks for modules:</p><pre>sudo ln -s /usr/local/Cellar/pam-u2f/1.0.4/lib/pam/pam_u2f.so /usr/lib/pam/</pre><p>Alternatively, you can directly copy the module into the pam directory:</p><pre>sudo cp /usr/local/Cellar/pam-u2f/1.0.4/lib/pam/pam_u2f.so /usr/lib/pam/</pre><p>If you are using macOS from <strong>version 10.11 El Captain onwards</strong>, you will probably have <strong>System Integrity Protection</strong> activated, which protects system folders from being edited. In this case you will not be able to write into /usr/lib/, and will have to write the full path of the module into pam.d rules. This will be explained in Step 4B, but do <em>not</em> skip the next steps. (Or you can <a href="http://www.imore.com/el-capitan-system-integrity-protection-helps-keep-malware-away">turn off SIP</a>, but that’s up to you.)</p><h4>Step 2— Set Up U2F Credentials in Home Directory</h4><p>Create a folder where you will store credentials and set up your key. At the moment of running <em>pamu2fcfg</em> plug your TREZOR/U2F device into the computer.</p><pre>mkdir -p ~/.config/Yubico/<br>pamu2fcfg &gt; ~/.config/Yubico/u2f_keys</pre><p>If you want to check if the key was set up correctly, run the following command:</p><pre>cat ~/.config/Yubico/u2f_keys</pre><blockquote><strong>WARNING!</strong></blockquote><blockquote>If you use<strong> Full Disk Encryption</strong> (FDE), you will need your password to decrypt your disk. Therefore U2F cannot replace your password, otherwise you might not be able to log in.</blockquote><blockquote>Your disk will only be decrypted after the first successful login, and thus the credentials file cannot be read until after the first login!</blockquote><blockquote><strong>Detailed description and Workaround at the </strong><a href="#92e4"><strong>end of this article</strong></a>.</blockquote><h4>Step 3 — Set Up Testing PAM.d Rules</h4><p>Now comes the interesting part. Navigate to /etc/pam.d/ and check out the content of the directory.</p><pre>cd /etc/pam.d/ &amp;&amp; ls</pre><p>You should be able to see all the setting files:</p><pre>user@macbook:/etc/pam.d$ ls<br>authorization  cups           login.term     rshd           sshd<br>checkpw        ftpd           other          screensaver    su<br>chkpasswd      login          passwd         smbd           sudo</pre><p>The most important files for now are <strong>sudo</strong>, <strong>screensaver</strong> and <strong>authorization</strong>, although you can check out others if you want to.</p><p>For testing, let’s use the <strong>sudo config file</strong>. This file defines what authentication methods are allowed/required for sudo command. Open it up in your favorite text editor.</p><pre>user@macbook:/etc/pam.d$ sudo nano sudo</pre><p>(In this guide, we will be only editing “auth” realm of PAM. If you want to experiment with other realms, you can, but do so only if you know what you are doing! <a href="https://www.linux.com/news/understanding-pam">More info on PAM here</a>.)</p><blockquote><strong>WARNING!</strong></blockquote><blockquote>Keep in mind that if you misconfigure the files, you might lose access to sudo or to login functions, even. For testing, always use the “<strong>sufficient</strong>” flag.</blockquote><p>Now again, there is a different approach depending on your macOS system.</p><h4>Step 4A — macOS Without System Integrity Protection</h4><p>If you do not have System Integrity Protection and followed the instructions in Step 1, then add the following line as the second line in the file:</p><pre>auth sufficient pam_u2f.so</pre><p>In the end, your sudo config will look like this:</p><pre># sudo: auth account password session<br>auth        sufficient    pam_u2f.so<br>auth        required      pam_opendirectory.so<br>account     required      pam_permit.so<br>password    required      pam_deny.so<br>session     required      pam_permit.so</pre><p>Save the config file and exit text editor.</p><h4>Step 4B — macOS With System Integrity Protection</h4><p>If you do have System Integrity Protection, then you will have to write the full path of the module. If you have installed pam-u2f with Homebrew (like guided in Step 1), then add the following line to the configuration file as the second line in the file:</p><pre>auth sufficient /usr/local/Cellar/pam-u2f/1.0.4/lib/pam/pam_u2f.so</pre><p>The resulting config file will look like this:</p><pre># sudo: auth account password session<br>auth        sufficient    /usr/local/Cellar/pam-u2f/1.0.4/lib/pam/pam_u2f.so<br>auth        required      pam_opendirectory.so<br>account     required      pam_permit.so<br>password    required      pam_deny.so<br>session     required      pam_permit.so</pre><p>Save the config file and exit text editor.</p><h4>Step 4 — Test Your Setup</h4><p>Plug in your TREZOR/U2F device and fire up the Terminal. To be sure, run the command <em>sudo -k</em> in order to clear the sudo timestamp. This is necessary to test the new sudo configuration. Then, try the new config with any sudo command.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*c24csWzuQADlHjOCIbe7cg.jpeg" /><figcaption>Running sudo -k and then sudo sh, with TREZOR <strong>already</strong> plugged in.</figcaption></figure><p>Your TREZOR should wake up and show a request for you to authenticate.</p><h4>Step 5—Finalize Your PAM.d Rules</h4><p>There are 4 ways how to set up your PAM rules, but we will focus on two flags: <em>sufficient</em> and <em>required</em>. (In Step 3, we used “<em>sufficient</em>.”)</p><p>If you set <em>auth</em> to be “<em>sufficient</em>,” the system will let you sign on with just the module specified, ignoring the subsequent auth modules. (Order of configuration matters.) “<em>auth sufficient pam_u2f.so</em>” thus allows you to use the<strong> U2F token only</strong>.</p><p>On the other hand, if you set “<em>required</em>” as the condition to all <em>auth</em>, <strong>both password and the token will be required</strong> at login. (More about PAM config <a href="https://www.linux.com/news/understanding-pam">here</a>.)</p><blockquote><strong>WARNING!</strong></blockquote><blockquote>If you use<strong> Full Disk Encryption</strong> (FDE), you will need your password to decrypt your disk. Therefore U2F cannot replace your password, otherwise you might not be able to log in. DO NOT remove “auth required pam_opendirectory.so” from the configuration file for <strong>authentication</strong> and DO NOT set “auth required pam_u2f.so” in this file!</blockquote><blockquote><strong>Detailed description and Workaround at the </strong><a href="#92e4"><strong>end of this article</strong></a>.</blockquote><pre><strong># U2F only; If no U2F present, use Password</strong></pre><pre>auth sufficient pam_u2f.so<br>auth required   pam_opendirectory.so</pre><pre><strong># Both Password and U2F Required</strong></pre><pre>auth required pam_u2f.so<br>auth required pam_opendirectory.so</pre><p>If everything is working well, go back to Step 3 and edit other configuration files, like screensaver and authentication. Screensaver file sets up rules for wakeup from sleep, and authentication defines rules for standard login. Feel free to change other files <strong>if you know what you are doing</strong>.</p><blockquote><strong>Always test with “sufficient” flag!</strong></blockquote><blockquote>Leave the Authentication configuration as the last setting file you are going to edit. If misconfigured, you might lose access to your entire computer!</blockquote><p><strong>Remember</strong> that with “required” flag, you will be locked out if you do not have your U2F dongle.</p><p>Thank you for making it to the end! Hope you have enjoyed the short write up! If you see any mistakes and improvements, feel free to comment or contact me on Twitter!</p><h3>FileVault 2 Encryption</h3><blockquote>In general, it seems like Apple’s FDE <strong>limits the usability </strong>of U2F login, at least for the first login to decrypt. This is because the pam-u2f module, installed through Homebrew, is located in /usr/local/, and the credentials file is in Home directory. These folders are encrypted and thus unreadable for U2F, before the first login.</blockquote><h4>Disk Password-based DEK (Edit: 16/12/16)</h4><p>It has been brought to my attention that there is a way around the Full Disk Encryption limitation. (Thanks, kind stranger!) <strong>You can encrypt the disk before installing the macOS</strong> (or restore your macOS on an encrypted partition). Under this scenario, you will be asked to decrypt the disk before a complete OS boot-up — immediately after powering up your Mac. This encryption password would be independent of your user account’s password.</p><p>Only after unlocking FDE, the computer would boot and you would be greeted with a login screen. At this point, since the disk is decrypted, PAM can read custom modules and configuration files, which allows you to use U2F for login.</p><p>While this workaround still forces you to use a password, to unlock your encrypted drive at boot, it successfully allows you to use U2F for all subsequent authentication requests in the OS.</p><blockquote>A neat way around the FDE paradox is to encrypt the boot partition with HFS+ before installing macOS (this also works if you restore a clone backup to a previously-encrypted partition).</blockquote><blockquote>Then, you’ll have a separate FDE password immediately after powering up the Mac, followed by separate and independent logins for each user, at the Login Screen — just as normal. Under this scenario, no user’s password has FDE-unlock privileges, and the key files are available for 2FA login.</blockquote><p><strong>Resources:</strong></p><ul><li><a href="http://apple.stackexchange.com/questions/59857/for-a-filevault-user-of-mountain-lion-can-i-avoid-the-automated-login-which-no">Stack Exchange: Encrypt the startup volume with Core Storage without FileVault</a></li><li><a href="http://www.training.apple.com/pdf/WP_FileVault2.pdf">Apple White Paper: File Vault 2</a> (search for Disk password–based DEK)</li></ul><h4>[Deprecated] U2F for Everything Else but First Login (Edit: 12/12/16)</h4><p>Further testing is necessary to have U2F work with encryption (for login). But it seems like that for decrypting the FileVault, you will <strong>always</strong> need to use your password. <strong>After the decryption, login with U2F works fine.</strong></p><blockquote><em>Remember, test only with the “sufficient” flag to avoid being locked out from your computer! Do not remove “</em>auth required pam_opendirectory.so use_first_pass nullok,” <em>otherwise you won’t be able to log in!</em></blockquote><p><strong>Tl;dr:</strong> With FileVault, it appears that U2F tokens are best used for wakeup from sleep or sudo operations in Terminal. No need to change anything in configuration.</p><h3>Links/Sources</h3><ul><li><a href="https://www.linux.com/news/understanding-pam">Understanding PAM</a> at Linux.com</li><li><a href="https://developers.yubico.com/yubico-pam/MacOS_X_Challenge-Response.html">Yubico-PAM</a> at Development Yubico</li><li><a href="https://developers.yubico.com/pam-u2f/">pam-u2f</a> at Development Yubico</li><li><a href="https://steemit.com/trezor/@shaneantyr/secure-two-factor-authentication-with-trezor-u2f-on-linux-mint">Secure Two-Factor Authentication with TREZOR — U2F on Linux Mint</a> by shaneantyr</li><li><a href="http://nicluo.com/secure-your-mac-with-yubico-u2f-fido/">Secure your OS X logins with Fido U2F Yubikey, then your Mac with Filevault</a> by Nic Luo</li><li><a href="https://microamps.gibsjose.com/u2f-authentication-on-os-x/">U2F Authentication on OS X</a> by Joe Gibson</li></ul><p>Don’t forget to check out <a href="https://bitcointrezor.com/">TREZOR</a>!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9fdd808b0aa4" width="1" height="1" alt=""><hr><p><a href="https://blog.trezor.io/trezor-u2f-login-into-your-mac-os-x-9fdd808b0aa4">TREZOR/U2F Login into Your macOS (Updated)</a> was originally published in <a href="https://blog.trezor.io/">Trezor Blog</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Blameshifting in the wake of Brexit]]></title>
            <link>https://medium.com/@xbach/blameshifting-in-the-wake-of-brexit-2a5530f85c4b?source=rss-170d778cc259------2</link>
            <guid isPermaLink="false">https://medium.com/p/2a5530f85c4b</guid>
            <category><![CDATA[brexit]]></category>
            <category><![CDATA[uk-politics]]></category>
            <dc:creator><![CDATA[Bach N.]]></dc:creator>
            <pubDate>Wed, 29 Jun 2016 12:43:02 GMT</pubDate>
            <atom:updated>2016-06-30T01:20:40.816Z</atom:updated>
            <content:encoded><![CDATA[<p>When the Brexit results were announced and it became clear that the United Kingdom has narrowly voted itself out of the European Union, the search for someone to blame the result on ignited. With the ferocity of a wildfire (GoT reference) news outlets, commentators, analysts, or just unsatisfied voters looked for the cause of their misery-to-come. Typical targets like political actors were blamed at first, such as Cameron for promising the referendum, but since it was a public vote, analyses quickly caused the Remain camp’s anger to shift their focus on specific groups in the society.</p><p>Votes on contentious issues such as Brexit with only two choices are likely to divide a society in two halves. People with radically opposing ideas will, in high likelihood, not accept the other’s point of view, and thus reject the outcome, unless it is favourable to them. Moreover, if the campaign is based on negative emotions and threats, it will have negative consequences on the society post-vote, as it edged groups against each other. Negative campaigns also tend to undermine the opponents arguments by attacking the integrity of the opposition, rather than presenting valid counterpoints, thus this further delegitimizes both sides in the eyes of the others. Emotional arguments, instead of reasoning, instill radical views, separating the groups even more. Therefore, it is not surprising that in the aftermath of a vote the society will be already divided.</p><p><strong>If the society is already split in half, it is unnecessary to find further divisions, which exacerbate the already inflamed situation. This was, unfortunately, exactly what happened.</strong></p><p>There is nothing wrong with statistics, what matters is how one uses them. The exit polls showed the tendency of younger people to vote for remain, but the media interpreted this as the young generation’s battle for their future against the arrogant future-prospects-indifferent old generation. Statistical data pointing towards educational level as a factor in voting showed that people with high levels of education tended to vote for remain; while it is a fact, it was used to pitch educated citizens against the illiterate folk. This list could go on, with divisions portrayed between cities and rural areas, wealth, etc.</p><p>The divisions are not as simple as portrayed, however; there were young people voting for Brexit in the same way as there were old people voting for Remain. The flawed logic of this simplification is no different than the logic behind xenophobia: all foreigners are the same, stealing jobs and bringing crime into the country. Furthermore, it creates the classical us vs. them mentality, alleviating the own group from all sense of blame for the result.</p><p>All of this causes people to forget the real reason for the Brexit crisis: the referendum and the negative campaign. Instead of using information and valid positive reasoning for arguments, both sides opted for threats and lies, causing people to fear Brexit or fear the EU to the point that they hated the other side. Xenophobia, used by the Brexit camp, pitched neighbours against each other, playing on the emotions instead of reason. Remain camp forgot to highlight the positive contributions of the EU, instead of which it spread apocalyptic scenarios that a citizen might not understand or refuse to acknowledge. The fault lies on both sides. <strong>Ultimately, it does not really matter how the referendum ended, as the society would be divided anyway. </strong>The disputes over the result would surely arise even if the Remain camp won.</p><p>Indeed, the United Kingdom is divided in the aftermath of Brexit, however the sense of unity was undermined by the referendum and the campaigns, rather than by the result. Searching for lines between the society and blaming certain groups for the result is not helping the country to find its unity.</p><p><em>Personally, I am pro-Remain. Britain would be stronger in the EU. However, as flawed as referenda are, and as much as I would support a higher threshold for a vote to pass, the rules were made and decided as they are. It is, however, unacceptable for me to find blame where the blame is not. Oversimplifications and generalizations are the factors which cause xenophobia. Old people are not to blame, poor people are not to blame, villagers are not to blame. Non-voters, regretting Brexit voters, in the same way as the Remain camp’s campaign share some degree of responsibility for the Brexit’s win. Even so, what is done is done; the Remain camp should focus on how to keep the UK as much aligned to Europe as possible.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=2a5530f85c4b" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Frontex: a misunderstood agency]]></title>
            <link>https://medium.com/@xbach/frontex-a-misunderstood-agency-b1451d1e7081?source=rss-170d778cc259------2</link>
            <guid isPermaLink="false">https://medium.com/p/b1451d1e7081</guid>
            <category><![CDATA[refugees]]></category>
            <category><![CDATA[frontex]]></category>
            <category><![CDATA[europe]]></category>
            <dc:creator><![CDATA[Bach N.]]></dc:creator>
            <pubDate>Wed, 17 Feb 2016 01:09:37 GMT</pubDate>
            <atom:updated>2016-02-17T01:09:37.662Z</atom:updated>
            <content:encoded><![CDATA[<p>Co-authored by: Korneel DE SCHAMP, Benjamin GUICHARD-SULGER, Iryna SHUVAIEVA, and Sarah HAMOUDA</p><p>Since the dawn of the European migrant and refugee crisis, the European Border Management agency (Frontex) has taken a central place in the discussion. However, its role has frequently been mischaracterized and misunderstood. While the agency can serve as an important part of acoordinated response on the common European border, it is currently marred by a series of problems and inefficiencies, increasingly brought to the fore by its inability to respond to the current crisis. However, these inefficiencies are mostly the result of the way in which the agency was constructed by the European Commission, the Council and the Parliament. It is thus unfair to scapegoat Frontex for the mishandling of the crisis - it was not constructed to face a crisis on this scale.</p><p>Continued at <a href="http://www.natolinblog.com/#!Frontex-a-misunderstood-agency/cmbz/56bb1b120cf2b4e0b6238527">http://www.natolinblog.com/#!Frontex-a-misunderstood-agency/cmbz/56bb1b120cf2b4e0b6238527</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b1451d1e7081" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[A Few Study Abroad Tips]]></title>
            <link>https://medium.com/@xbach/a-few-study-abroad-tips-3bedbed2e719?source=rss-170d778cc259------2</link>
            <guid isPermaLink="false">https://medium.com/p/3bedbed2e719</guid>
            <category><![CDATA[travel]]></category>
            <category><![CDATA[tips]]></category>
            <category><![CDATA[study-abroad]]></category>
            <dc:creator><![CDATA[Bach N.]]></dc:creator>
            <pubDate>Mon, 27 Jul 2015 15:46:33 GMT</pubDate>
            <atom:updated>2015-07-28T13:21:26.723Z</atom:updated>
            <content:encoded><![CDATA[<p>Congratulations, if you’re about to leave the comfort of your home to pursue education abroad, be it university-level or just a high school exchange for a semester. It will be an amazing experience, no matter where you are going, I can promise you that. <em>(If you’re just considering ever going abroad, I hope you will think about it more seriously after reading this list.)</em></p><p>I wanted to share a few tips to ease the transition and maybe to help with some insecurities. Going into a new place might be frightening, but everyone making this step has survived it and (I hope) never regretted the decision. This list is not comprehensive and it is personal, out of my own experience — very subjective.</p><ol><li>Far from family, finally some personal freedom? Yes, you are free from the constant oversight of your caring parents, but do not forget that it is thanks to them you’re there. Call them from time to time. You do not need to tell them everything that you have done, but they would be happy to know that you’re enjoying your “new” life there. Put some pictures online for your family and friends to see.</li><li>Finding new friends might be a scary thing for some, but if you think about your current friends in your hometown, you might not even remember how you have met some of them. This will be true for your new friends too. Just remember: branch out. <strong>Stay out of your comfort zone</strong>, meet new people that are different than you are. If you’re going to France, meet French people and not only people from your country. Yes, your mother tongue might be a “safe space,” but your foreign experience will lose its value if you’re not actively participating in the environment. <em>(I am also not saying that you should not meet people from your country, or that you should only talk to French people.)</em> <strong>Adopt the local culture.</strong></li><li>Find friends everywhere you go. Soon you will know at least one person in every country you visit. It is amazing how, thanks to technology, we have the chance to talk to people that live on the other side of the globe. So use this opportunity and get to know fellow study aboraders. Who knows, maybe you will visit one of them during your holidays. <strong>Build your world network of friends.</strong></li><li>Classes are important, but so are extracurriculars. School is not only about classes. A school is just providing a convenient environment for education, but <strong>we learn every second of our lives</strong>. That means, you are learning during the time you’re sitting in the clubroom, talking to fellow members, when you are volunteering downtown, even when you’re sitting in a pub with your new friends. Everyone has a different experience and sharing it expands others’ knowledge. <em>(That is also why it is important to meet people outside of your cultural setting, ad 1.)</em></li><li><strong>Go out and experience the social life </strong>of the country you are in. Do not think the experience is all about books and school clubs. It is surprising how some people tend to talk about politics over a glass of beer (or any alcohol, for that matter). People are also much more open after drinking. Of course, everything in moderation, right? <em>(I am also not suggesting you should drink if you’re underage.)</em></li><li><strong>Learn a new language.</strong> This might be a mute point for people studying in England, USA, Australia, NZ or anywhere where they speak the same language as your mother tongue, but the earlier you start learning a language, the easier it will be for you to learn. Trust me, I am 23 and I already feel the difficulty increasing. It does not matter that you will not be fluent by the end of the semester, you learn so much more about the culture of a country through the language you’re trying to acquire.</li><li><strong>Travel around the country or the continent.</strong> This has a lot to do with point 1, 2 and 3; by exploring the environment you’re learning again. Also, you’re not going to have a better time to travel than during your studies. Learn by doing, by experiencing. Do a Eurotrip at the end of your semester in Europe. Fly around East Asia if you’re studying in Beijing. Embark on a roadtrip around the US, before you graduate. <em>(I do realize most of these cost a lot of money, but there are ways how to do these while on a student budget. Also, ad 3.)</em></li><li>If you really, really have the need to break the rules, be smart about it. Campus Security exists to help you, not to catch you for the stupid things that you do. <strong>Do not get into trouble that you can avoid</strong>, as sometimes even a small mistake can have huge consequences. Yes, there are ways how to drink underage, but if you have no self-control, there is a higher chance that you will get caught. Also, if an EMT is called for help due to suspected alcohol poisoning, it is not because security is trying to ruin your life with an underage drinking charge (USA), but it is to potentially save your life. Thank them, blame yourself. Even so, it is not the end of the world. <em>(Internet has also made some mistakes somewhat permanent: if your friends are so smart to put photos of you passed out in your own vomit, people will be able to google them in the next years to come.)</em></li><li>At times, you might feel homesick. Yes, when you hit a hurdle, be it because of the curriculum or social life or just the amount of stress, you will miss the apparent easy life at home. At those times, just relax. You have made it this far. <strong>Remind yourself why you wanted to study abroad</strong>. Think about how it has changed you so far.</li><li><strong>Studying abroad is a privilege</strong>. Never forget that you are one of a few that has the opportunity to study in a foreign country and open up your horizons to new point of views. Studying abroad is expensive and either you, your parents or some benefactor is paying for it. There are many others that would love to study abroad or even study at all, in the first place. By remembering this you will value the experience more and you might try harder too.</li><li><strong>Make it your own experience.</strong> Why are you reading this? You do not want anyone to tell you how to behave right? Consider these, but feel free to adapt it to your own interpretation of what should be right. I may have 6 years of studying abroad experience, but that does not make me an expert. I have made mistakes too, and I still do; <strong>you are free to make your own mistakes</strong>. We can learn the hard way.</li></ol><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=3bedbed2e719" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[On Ultra-liberal College Campuses]]></title>
            <link>https://medium.com/@xbach/on-ultra-liberal-college-campuses-9d04b6b1a701?source=rss-170d778cc259------2</link>
            <guid isPermaLink="false">https://medium.com/p/9d04b6b1a701</guid>
            <category><![CDATA[liberal-arts]]></category>
            <category><![CDATA[social-justice]]></category>
            <category><![CDATA[college]]></category>
            <dc:creator><![CDATA[Bach N.]]></dc:creator>
            <pubDate>Sun, 26 Jul 2015 19:23:39 GMT</pubDate>
            <atom:updated>2016-02-17T01:10:44.662Z</atom:updated>
            <content:encoded><![CDATA[<h4>Since when is silencing dissent liberal?</h4><p>Dear future college students,</p><p>Firstly, I think that it is great you chose a liberal arts education. I can´t stress enough how amazing my four years of liberal arts education were; surely I wouldn&#39;t be able to receive this experience anywhere else. There is a unique charm to liberal arts colleges, especially those isolated away from the rest of the world, but I think it is the curriculum and the inclusive teaching methods that makes these small university-level institutions so attractive.</p><p>So what was your reason for picking liberal arts colleges? If you asked me that, I would answer: “I have no idea.”</p><p>As an international student in the United States, I have always wondered what the term “liberal arts” meant. Is it liberal as in free? What are arts? Why do arts need to be liberal; isn&#39;t painting about self-expression and freedom? A quick Wikipedia search will show you the antique definition and a vague modern definition: “anything that is not professional, vocational or technical.” Well, that´s a great start, I am not going to learn anything practical.</p><p>The antique definition is a bit more reassuring though: “liberal arts are […] skills that […] were considered essential for a free person.” I personally think this is a very nice way how to put it. In fact, no matter what you major in at a liberal arts college, the most important things you will (ideally) learn is to think critically, to analyse and to dissect problems that are laid in front of you. It does not matter if it is Maths, English, or Biology. The underlying teaching effort of professors focuses on critical thinking. This is what you need to think for yourself, <strong>not simply just repeating someone else’s opinion</strong>, ergo be a free person.</p><p>Well, this is great right? You will become an independent, free thinking individual after just four years. Unfortunately, nothing is ever perfect; including these colleges I just glorified.</p><p>Being in a liberal school, one could expect that the people there will be like minded: same ideas, same ideals, same living style. This is a very stupid expectation, to be absolutely honest with you. <strong>How are you going to learn from a person that is similar to you?</strong> If no one challenges your opinions, how can you be sure that they are right? And, who are you to be 100% sure that you are right? Humans learn for their entire life, humans learn from their mistakes. Coming to a college with the know-it-all attitude is the biggest barrier to develop oneself. The next-worst barrier is expecting everyone to have the same mindset as you.</p><p>Of course, what you will hear from most of the liberal students is that they are open minded and prepared to discuss issues in a polite and respectful manner. Unfortunately, when it comes to challenging the liberal ideas, even liberals tend to be on the defensive.</p><p>I consider myself a liberal. Liberal for me means open-minded, prepared to change and reform to implement better or more efficient, egalitarian alternatives. To reach these goals, one must be prepared to hold an open conversation with other people, including conservatives. Liberal means non-exclusive. Liberal means conversation. Remember critical thinking? How are you going to analyse something if you are ignoring everything else?</p><p>This applies to all topics of discussion. From U.S. politics, to the economic order of the world, but even racial issues, and sexual violence on college campuses. No matter how uncomfortable the topic is, in a truly inclusive liberal environment, it can be (and should be) discussed. And luckily colleges have created spaces for these issues to be discussed. It is just that if you have a different idea, you won´t be welcome in that space.</p><p>Yes, I do not deny that there are certain topics that are just settled. For example, the Third Reich was a state of terror, slavery is inherently wrong, and rape should not be condoned. Smart people irrespective of political standing will agree on these assertions. Where interpretations might differ is the extent to which this should be remedied, the extent of governmental oversight, or what policies should be implemented. By having a different opinion on some issues, it does not mean that they are a bad or a stupid person. Also, you are not going to know if you don’t let them talk. Shutting up people based on their political allegiance also counts as profiling.</p><p>It would actually be easier if the discussion is led with mutual respect. Only then one might change their mind. Of course, people do not change easily — that is also probably one of human’s bad natures. But, it is more likely one will “improve” own opinion after a series of discussions, rather than a series of slurs of how stupid one is. Fun fact: you can’t change their mind by shouting profanities at people (pro-tip, don’t ever argue ad hominem.)</p><p>What this causes is the ever increasing division between different groups. Liberals vs. Conservatives, Civil Rights vs. (Blind) Conservatives, Rich vs. Poor; you know, the typical us-vs-them thing. Like the extreme polarization of the U.S. political scene, this gets us nowhere. There is no discussion, just shouting and utter hatred. Disrespect and lack of compassion. Where is the empathy? You are not a truly free person if you cannot think without being influenced by your negative emotions.</p><p>Eventually, the conversations will cease and it will appear as the campus is liberal. Liberal students will celebrate and be proud of how their college is the perfect image of what the country should be, but they are forgetting one thing. By silencing their opponents they merely swept their opinions under a rug. And they should remember that no one likes to be silenced.</p><p>Why is this written as if directed against future college students? Because you can change things when you walk up on the college quad on the first day you are there. I already graduated and to be honest, my donations to my Alma mater are probably not going to be ever enough to influence anything. But you, as a member of the community can change the community for the better. Make it truly inclusive. Open your minds to even the most uncomfortable conversations. Become a “free person”.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9d04b6b1a701" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>