The Business Process Management Initiative (BPMI) has developed a standard Business Process Modeling Notation (BPMN). The BPMN 2.0 specification was released to the public in January, 2011. We have integrated BPMN to BPS server byusingthe Activiti engine which is a light-weight workflow and Business Process Management (BPM) Platform targeted at business people, developers and system admins. It's open-source and distributed under the Apache license. Activiti runs in any Java application, on a server, on a cluster or in the cloud. It is extremely lightweight and based on simple concepts.
As highlighted in the diagram below in red, you can upload BPMN artifacts (.bar extension) by navigating through Main -> Add BPMN
Once you uploaded the artifact successfully you can navigate to the BPMN deployed Processes list and view the deployed processes.
When you click on the package name you will be directed to a page to undeploy the package if necessary.
When you click on the Start link, there will be instance created for that particular process.
When you click on the Process ID you will be directed to Process Information page which contains the process details, process diagram and process definition.
In-order to view the BPMN process instances created, navigate to BPMN instances from the left side navigation panel as shown in the caption below.
You will be able to suspend/activate or delete instances in the Manage section.
In-order to access the BPMN rest service, you can use the following url pattern: https://localhost:9443/bpmn/{serviceName} with respective authentication (default username: admin and password: admin) headers.


We examine networks!
- whiteboard virtual relationships
- leverage enterprise synergies
- mesh enterprise users
- expedite real-time infrastructures
- reintermediate interactive communities
- evolve ubiquitous e-tailers
- orchestrate leading-edge supply-chains
- productize 24/365 networks
- enhance 24/7 web services
- transform virtual niches
- facilitate cross-media experiences


- iDecoded - Variable in class com.sss.safesecure.CryptoClass
-
Purpose: instantiates a boolean to check if the secret key is decoded.
- iEncoded - Variable in class com.sss.safesecure.CryptoClass
-
Purpose: instantiates a boolean to check if the secret key is encoded.
- iEncrypted - Variable in class com.sss.safesecure.CryptoClass
-
Purpose: instantiates a boolean to check if the data is encrypted.
- index_64 - Static variable in class com.sss.safesecure.BCrypt
-
- init_key() - Method in class com.sss.safesecure.BCrypt
-
Initialise the Blowfish key schedule
- InitialiseView() - Method in class com.sss.safesecure.IntroSplashScreen
-
Instantiate the image view component for the splash screen
- IntroSplashScreen - Class in com.sss.safesecure
-
Purpose: this class displays the welcome splash screen and allows the user to accept permissions -
it then launches the login activity.
- IntroSplashScreen() - Constructor for class com.sss.safesecure.IntroSplashScreen
-
- isBackPressed - Variable in class com.sss.safesecure.MainActivity
-
Declaration of a boolean to control if the back button is pressed.
- isBackPressed - Variable in class com.sss.safesecure.ui.home.HomeFragment
-
Instantiates a boolean to control if the back button is pressed.
- isCapital - Variable in class com.sss.safesecure.ui.reports.ReportsFragment
-
Purpose: instantiates a boolean to check passwords for upper case letters.
- isCharAccepted - Variable in class com.sss.safesecure.LoginActivity
-
Purpose: declares a boolean to check if pass code characters are accepted.
- isCodeValidated - Variable in class com.sss.safesecure.LoginActivity
-
Purpose: declares a boolean to check if pass code characters are validated.
- isCreated - Variable in class com.sss.safesecure.SQLiteDBHelper
-
- isDisplayingExpiredReport - Variable in class com.sss.safesecure.ui.reports.ReportsFragment
-
Purpose: instantiates a boolean to check if the expired report is displaying - used to show report help.
- isDisplayingReport - Variable in class com.sss.safesecure.ui.reports.ReportsFragment
-
- isDisplayingReusedReport - Variable in class com.sss.safesecure.ui.reports.ReportsFragment
-
Purpose: instantiates a boolean to check if the reused report is displaying - used to show report help.
- isDisplayingStrengthReport - Variable in class com.sss.safesecure.ui.reports.ReportsFragment
-
Purpose: instantiates a boolean to check if the strength report is displaying - used to show report help.
- isEditable - Static variable in class com.sss.safesecure.ui.details.DetailsFragment
-
Purpose: instantiates a boolean to check if the text fields are editable.
- isfading - Variable in class com.sss.safesecure.IntroSplashScreen
-
- isGenerated - Static variable in class com.sss.safesecure.ui.create.CreateFragment
-
Purpose: instantiates a boolean to handle password generation.
- isLoggingOut - Variable in class com.sss.safesecure.ui.home.HomeFragment
-
Declaration of a boolean to control if the app is logging out.
- isLower - Variable in class com.sss.safesecure.ui.reports.ReportsFragment
-
Purpose: instantiates a boolean to check passwords for lower case letters.
- isNumber - Variable in class com.sss.safesecure.ui.reports.ReportsFragment
-
Purpose: instantiates a boolean to check passwords for numbers.
- isOk - Variable in class com.sss.safesecure.ui.create.CreateFragment
-
Purpose: instantiates a boolean to check if the user clicks ok after saving.
- isOk - Variable in class com.sss.safesecure.ui.details.DetailsFragment
-
Purpose: instantiates a boolean to check if the user clicks ok after saving.
- isOk - Variable in class com.sss.safesecure.ui.existing.ExistingFragment
-
Purpose: instantiates a boolean to check if the user clicks ok after saving.
- isSpecial - Variable in class com.sss.safesecure.ui.reports.ReportsFragment
-
Purpose: instantiates a boolean to check passwords for special characters.
- isTempPopulated - Variable in class com.sss.safesecure.SQLiteDBHelper
-
- isValidated - Static variable in class com.sss.safesecure.ui.create.CreateFragment
-
Purpose: instantiates a boolean to handle data validation before saving.
- isValidated - Static variable in class com.sss.safesecure.ui.details.DetailsFragment
-
Purpose: instantiates a boolean to handle data validation before saving.
- isValidated - Static variable in class com.sss.safesecure.ui.existing.ExistingFragment
-
Purpose: instantiates a boolean to handle data validation before saving.


Exp date: 25/6/2006
Whenever I'm about to try a new drug I always check online first to see what to look out for and check if it's particularly dangerous, so with this in mind I wanted to write something about methamphetamine for first time users like I have been today. I want this to be useful for someone curious about the effects or thinking about trying it. A whole heap of entries here about meth are from people who were still buzzing when they wrote them. I wondered about this at first, but now I know why.
Some of my housemate's friends come around here every weekend and use all kinds of stuff, DXM, Ecstasy, Meth etc. I've dropped Ecstasy with them a couple of times, but hesitated about meth until today - you hear all kinds of crazy (bad crazy) stuff about it. They'd been bugging me to try it all weekend, saying it was really good stuff - they even waved their baggie of power under my nose, saying it smelt like honey. This afternoon I finally relented.
The baggie contained a faintly yellow fine powder. These guys either snort it or drink it with tea (they swear it still works in tea). They advised I snort it. They shook out two lines, about 4cm in length and 3mm in width. I snorted the first one, half in each nostril, and kept the second line until later - the guys were going off to run around or something, and I didn't want to use too much at once.
The smell/taste was kind of acrid, but not too bad - tasted like a chemical of some kind. My nose hurt for about 5 seconds and then the pain went away, I sniffed my nose for about 3 minutes to clear out the taste. I sat around and waited. In about ten minutes, I felt a sudden rush to my head, and I felt my heart quicken. Just then a good friend of mine called and asked to meet me at the mall 10 minutes away, so I walked over there. Along the way I felt very clear headed - no euphoria but a little more jittery than usual. Walking felt physically pretty good, I had funny tingles in my legs and arms. I wanted to run but didn't want to bring attention to myself. I met with my friend and told him what I'd done, and he said he was thinking of trying it too sometime. I had to resist the urge to talk at him constantly, but still found myself telling weird stories about stuff I'd forgotten ages ago.
About an hour after I snorted the first line, I returned home, not feeling it too strongly - I kept thinking 'Well, this is pretty cool, but it's speed! It's meant to be really hardcore!'. So I snorted the second line, which was bigger, 1h 5mins after the first. 7 minutes after this I felt the same rush, which has slowly got stronger and stronger. I felt the 'true' meth feeling then - an extremely acute awareness of everything happening around me, I could hear the cat scratching three rooms away. I felt a rush of euphoria, kind of similar to ecstasy, but much less fuzzy and lovey.  After the second line my hands, legs and chest got extremely tingly, almost numb, but that went away within about 20-30 minutes.
The main thing I want to do on meth, is do stuff. The urge to find something, anything to occupy myself is very strong. I had the feeling that my mind was perfectly synchronised with my body. On meth it is very easy to concentrate on one task without thinking about anything else - whatever I'm doing seems like the most interesting thing in the world - I can see how this stuff would be brilliant for studying, at least better than lots of vitamin B. The high is not at all similar to Ecstasy except in that I have alot more energy. Smoking cigarettes becomes a joy. In fact just about any task becomes, if not quite fun, absolutely doable.
I've enjoyed these two lines so much that I could easily see this become my drug of choice. If there were no side effects I could do it all the f***ing time and life would be a lot buzzier and funner.  It seems to fit in with the usual operation of my brain like a jigsaw - just increasing its clarity and effectiveness. Even now, about 2 hours after use, I still feel my energy increasing, if that's possible.
I can see how easy it would be to get into a cycle of use of this drug. The guy who gave it to me uses it every weekend, all weekend, and has sores all over his back that he constantly picks at.  The three of the guys haven't eaten or slept all weekend, but they've gone through a whole lot of cigarettes and chewing gum. They keep arguing with each other about nothing at all. If acne and sores were the only side effect, I can see myself trying to get my hands on as much meth as possible. But I can see now, already, after this first experience, that the sheer desirability of it is enough to make me think very carefully about trying it again (although I know I will), or any more often than once a month.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Describe your location with three words and a picture. Good combinations are: verb, noun, and adjective. Amoks have limited life time. They last longer if verified by others. The creator of an Amok can verify it only once.
Add picture and text. Observe how the count number increases. And the Amok now can grow older.
Zoom out the map to the area you want to see. Tap on the cloud button and wait. Keep in mind you can search the map area with the magnifier.
You can subscrive to recieve notifications when an Amok is created in a specified area. You can recieve notification when a givem Amok changes. You can recieve notification when a creator, makes a new Amok. You can have maximum of three subscriptions at a time.
See how many Amoks a user has created. Find how many verifications a user has done. Find how many dislikes an Amok has received.
Try tapping everywhere. You might find some surprises.


A monthly demo-centric early adopter support group.
A live map showing where you and everyone else is.
Collaborative canvas brainstorming board for the distributed team.
var Things = new Meteor.Collection("things")
Things.insert({ name: "Marmot" })
Ship tracking screensaver.
UA string harvester.
Communal hot tub photo party.
Collaborative playlist management.
Awesomized & NSA proof instant messaging.
<template name="theThings">

{{#each all}}
{{name}}
{{/each}}

</template>
Template.theThings.all = function () {
return Things.find()
}
Template re-renders when the collection changes


Why using hex?
Why using hex?
-
This document describes why I developed
hex
-
hex
is a system for Literate Programming
Literate Programming
Literate Programming
-
What is Literate Programming?
-
Origins of Literate Programming
-
Goals of Literate Programming
What is Literate Programming
What is Literate Programming
Literate Programming met a wide audience with Donald Knuth's
introduction of the TeX typesetting system.
Instead of source code in a specific programming language the input
files can generate a readable documentation.
Knuth and other authors even published their documentation as books.
The source code can also be extracted.
So there is one input file that contains the description of a program
and the documentation to understand the program.
Literate Programming Examples
Literate Programming Examples
-
TeX: The Program
-
METAFONT: The Program
-
Physically based Rendering
-
An optimizing C Compiler
-
Understanding MP3
Comparing with Doxygen
Comparing with Doxygen
-
Can be read in one go
-
Documentation is more important than the code
What is hex?
What is hex?
-
hex
is a command line tool
-
hex
is a macro expander
-
hex
is a build system


The drive train consists of a one-way clutch and driving and driven inertias. To demonstrate the behavior of the clutch's freewheel only, the clutch stays disengaged for all the time. The sine torque is applied on the driving inertia forcing inertia's speed change. On the driven side there is applied constant load torque only.
Simulate for 2 seconds and compare inertias' velocities
inertiaIn.w
and inertiaOut.w
to each
other.


Video Streaming Empires
Authored By: Robert Diasio
What would be entertainment online if not for video streaming services? A website like Youtube was way ahead of its time during its inception in 2005. A website that broke into the top ten most visited websites only a year after it was created. Currently Youtube is holding the No.2 spot, after competing and trading the spot with Facebook for several years.
Of course, Youtube is not the only video streaming service that exists. I'm sure that many people do not even think of Youtube when they think of video streaming. Many people default to Netflix, or even Hulu before thinking of Youtube. The truth of it is that Youtube most likely was the inspiration for Netflix streaming, as it was not until 2007 when Netflix introduced these services in the first place.
Not all streaming comes from prerecorded footage and movies. Twitch.tv is a live streaming platform where anyone can perform live for an audience. Most streamers on this platform defer to playing video games.
Youtube was the pioneer for a market that was mostly undiscovered. The success of the website cannot be understated. Twitch can be considered the website that achieved similar success in the live streaming area of media. Of course, Netflix, Hulu, HBO, and many other streaming services exist, however none truly hold a candle to the empire that is Youtube.
Changing the way we get entertainment
Most people under the age of 23 find they they are watching entertainment more often on streaming services than on traditional methods. Movie theaters and traditional television are losing viewers everyday.
Streamers: A term that is used in the Twitch.tv community to describe someone who live streams on the platform


Card 卡片
卡片容器，用来显示文字、列表、图文等元素。 API文档 组件问题反馈和讨论基础样式 #
最基本面板样式，可以同时展开多个面板。
Title
- This is content…This is content…
- This is content…This is content…
- This is content…This is content…
Title
- This is content…This is content…
- This is content…This is content…
- This is content…This is content…
含操作的卡片 #
如果操作超过4个可以收藏在汉堡菜单中。
Title
- This is content…This is content…
- This is content…This is content…
- This is content…This is content…
Title
- This is content…This is content…
- This is content…This is content…
- This is content…This is content…
Title
- This is content…This is content…
- This is content…This is content…
- This is content…This is content…
Title
- This is content…This is content…
- This is content…This is content…
- This is content…This is content…
无边框卡片 #
用在灰色背景色上。
Title
- This is content…This is content…
- This is content…This is content…
- This is content…This is content…
Title
- This is content…This is content…
- This is content…This is content…
- This is content…This is content…
简单卡片 #
只包含内容区域。
- This is content…This is content…
- This is content…This is content…
- This is content…This is content…
- This is content…This is content…
- This is content…This is content…
- This is content…This is content…
带图片的卡片 #
支持图片、头像、标题和描述信息的卡片。


Lists using AJAX work the same way as lists with local options.
In this example, our initial list has local options and all of its children lists are powered by AJAX.


Slide One
This is mini slider / carousel with Bootstrap. Blah blah, blah, blah blah. Lorem dolor?
October 13 2013 - Read more
Slide Two
Mini carousel with Bootstrap
October 15 2013 - Read more
Slider Three
Facebook-style paged image slider
October 19 2013 - Read more
Slider Six
Lorem Ipsum Dolor
October 24 2012 - Read more


Book Title
Select a book on the right
Search
Search
Select a book
Dr. Jekyll and Mr. Hyde
Alice in Wonderland
Lord of the Rings
Most used words
Least used words
Document stats


Examples
Different values
Numbers example
Arrays example
Objects example
Easings
Easing (Cubic.InOut)
Easing (Bounce.In)
Looping
Loop mode (repeat)
Loop mode (endless)
Loop mode (bounce)
Color plugin
Color (rgb)


pinout
View the current Raspberry Pi's GPIO pin-out information on the terminal with an ASCII diagram.
More information: home page
- View the pinout information and GPIO header diagram for the current Raspberry Pi:
pinout
- Open https://pinout.xyz/ in the default browser:
pinout -x


{% extends 'userena/site_signin.html' %} {% load url %} {% load i18n %} {% block title %} {{ request.site.name }} - Signup almost done {% endblock %} {% block content %}
Thank you for signing up to {{ request.site.name }}.
You have been sent an e-mail with an activation link. Please use the link in this email to complete your registration. Remember to check your SPAM folder for the email, just in case.
{% endblock %}


Zayo
by Andrew Linenfelser, Zach Lamb, Ming Liew
How much of each product is bought?
Andrew's Question
Ming's Question


I’d like to share my story with you in the hope that you will be inspired to develop your own brand. At the end of this book, I’ve also included a number of inspirational stories of people who have succeeded in business and personal branding in spite of being seen as outliers.
My roots are humble.  In the early 1900s, my grandfather was recruited from Korea to work the sugar cane fields in Hawaii. My grandmother, from whom I got my independent nature, ran away from her affluent home in Pusan, Korea, to escape an arranged marriage. When her audacious dream of a university education did not pan out, she became a “picture bride” to my grandfather, a perfect stranger.
My dad was a high school dropout with tough-guy tendencies and my mom was a well-read and artistic soul. (I guess opposites attract!) They were an unlikely couple to become farmers, something they knew nothing about. But it was hard to say no to my grandmother, the one-time picture bride and family matriarch. She believed that Dad, who was a pushover beneath his bad-boy image, should leave his job as a merchant seaman and buy a farm in Oregon for a better life for his young family. And so it was.
As a family, we planted and hoed cabbage fields, picked strawberries and tended to our sometimes struggling farm. For entertainment, I grew up playing with mud pies and exploring the backwoods. We had riding horses, but there were no ballets, no operas or violin concertos in our provincial lives. We were a happy family, but I dreamed of a life beyond our little farm.
When I was seventeen, I got a scholarship to attend Mills College, a private all-women’s college, in Oakland, California, which I later learned was where my mother had hoped to go to school. What I loved about Mills, beyond its proximity to the cultural delights of San Francisco, was its diverse community and the philosophy that women could become whatever they wanted. Mills encouraged me to follow my passion and make a difference in the world. This belief has become the bedrock for my personal brand.
You could argue that I am the poster child for reinventing one’s personal brand. I started my career with newspaper journalism jobs beginning with an internship at a newspaper in Paris (France) during my junior year abroad. I did a stint as a reporter at The (Portland) Oregonian soon after graduation from Mills. Hoping to land a reporting job on the East Coast, I attended Boston University’s graduate program in journalism. My BU degree and Oregonian clip file helped me to get a newspaper reporting job just outside of Boston. I must have done a good job of branding myself because, to my knowledge, I was the only one in my Master’s program who had a job offer at graduation. (However, my BU colleagues did get journalism jobs later.)
Returning to California after two years in Boston, I participated in the exciting growth of high tech marketing as a practitioner and later as an executive with agencies for public relations and advertising. I helped launch new companies and positioned them for successful initial public offerings (like Maxtor, which is now a Seagate brand), introduced industry-changing technologies and participated in creating new markets. Each time I changed jobs, I had to reposition myself to be seen of value to my new employers. For example. I have positioned myself at various times as a former journalist turned PR pro, a PR exec who could sell new programs to advertising clients, an ad agency exec with integrated marketing leadership, and a marketing strategist who could bridge strategies to implementation. Today, through my client work and social media reputation, I am positioned as a brand strategist for corporate and personal branding.
My real fortune was being hired by Regis McKenna Inc. (RMI), the eponymous firm of the marketing and brand guru, which did landmark brand positioning for Apple, Intel and Genentech. My orientation included being embedded in RMI’s Apple account team to learn first-hand the secrets of an Apple product launch. Many of these proven techniques—such as positioning, messaging and influencer (ecosystem) briefings—have been optimized for personal branding in the BrandingPays™ System. To prove that nothing is new under the sun, I have built upon these techniques as well as the positioning and relationship marketing concepts that were originally conceived by Regis McKenna, a true marketing visionary.
During my six years doing strategy consulting at RMI as a principal and partner, I enjoyed working with many of the best and the brightest consultants and clients. One of the RMI partners was Geoffrey Moore, the best-selling author of the marketing classic Crossing the Chasm. Geoff and I teamed on a number of strategy consulting projects at RMI. I am happy to say I’m still learning from him during our friendly breakfasts at Buck’s in Woodside, California.
One of the most dramatic rebranding examples in my life occurred during my venture into the Italian vacation business in 2004. During a two-year hiatus from Silicon Valley marketing consulting, I became co-founder and president of an Italian vacation company (our tagline: “Savor the Real Italy”). I immersed myself in everything Italian—language, culture, fashion, food and travel—and became trusted as an Italy expert among friends and potential clients. Building a successful brand in Italian travel taught me that personal branding and company branding are synergistic, especially if you are an entrepreneur.
I came back to consulting because, as a recent entrepreneur, I wanted to help other entrepreneurs understand the importance and power of branding their businesses and themselves. I created the BrandingPays System first for companies, but soon understood its applicability to people. The fact that I work with both companies and individuals is a plus. I can bring the discipline of corporate branding to individuals and the consumer and social media insights from personal branding to companies.
Over my career, I’ve consulted to or trained more than 150 companies—from Fortune 500 to start-up firms—and thousands of professionals on developing a compelling brand. The BrandingPays System has helped many individuals get their dream job or accelerate their career success. My dream is that all professionals learn both the art and science of personal branding, because it will yield dividends throughout their lifetime.
Personal branding is not as easy as filling in the blanks. If you truly want to stand out, you will have to be aware of your environment (the market, the trends and the competitive opportunities) and think critically about what assets you have and how to leverage them to your advantage. If you are willing to put in the time and effort, you will be richly rewarded. A strong personal brand can help you get a job, a promotion, investor funding or new clients.
Your brand is arguably your most important asset. Isn’t it worth investing in?


The 6 words below make up a random passphrase generated using the diceware list and method.
Enter the number of words you would like generated


Block Rewards
Transcript By: Bryan Bishop
Category: Conference
An Axiomatic Approach to Block Rewards
Tim Roughgarden
https://twitter.com/kanzure/status/1230574963813257216
https://arxiv.org/pdf/1909.10645.pdf
Introduction
Thank you, Bram. Can you hear me in the back? I want to talk about some work I have been doing with my colleagues. This is a paper about incentive issues in blockchain protocols. I am interested in thinking about whether protocols have been designed in a way that motivates users to behave in the way that the designer had hoped.
Game theory and mechanism design
A well studied part of economics is mechanism design. This is oftne referred to as “inverse game theory”. In game theory, you have players and a strategic situation. Examples are prisoner’s dilemma, tragedy of the commons, etc. The usual approach in game theory is descriptive where you write down your game, you passively reason about the equilibrium and you reason about the properties.
In mechanism design, you don’t start with a game: rather you start with an intended outcome and then you put on your engineering hat and ask is it possible to design the rules of the game so that the intended outcome arises as an equilibrium. I am interested in opportunities for tech transfer from mechanism design to blockchain design. Mechanism design is a well-developed, successful theory so it should be able to provide a blueprint for blockchain design.
Goals
Why are we such big fans of mechanism design? Let’s start simple. In mechanism design, you have a formal articulation of the design space. If you walk up to a random mechanism designer on the street, and use the phrase “space of all mechanisms”, he will understand what that is and wouldn’t it be nice if we had a mathematical description of the space of blockchain protocols. Once you have this formalization, you can pick your favorite objective function and optimize over the design space to find a protocol that is optimal. Once you have an optimization mindset, you wind up exploring parts of the design space that you wouldn’t otherwise consider.
The setup
We’re going to be analyzing in detail a very small piece of the overall puzzle. In exchange for that specifity, you will be rewarded with some crisp mathematical results. In this paper, we look at the shortest imaginable timescale of interest: the creation of a single block. The most famous incentive attacks on blockchain include selfish mining and forking attacks which take place over multiple blocks. But I am only talking about single epoch or single block incentive issues, like incentives for sybil attacks or collusion.
I want to look at how block rewards get distributed among miners. Think about bitcoin, perhaps. It’s a blockchain where each block creation is associated with some reward like a subsidy or transaction fees, and then somehow the protocol has to decide how the reward associated with this block gets distributed to miners. In proof-of-work, miners get reward as a function of their hashrate. Given the computational power that players bring to the table, how do we distribute the block reward?
The dominant paradigm in bitcoin is a proportional allocation: the expected reward to a miner is proportional to the hashrate amongst global total hashrate. The goal of this paper is to investigate this and ask, is there any reason to do anything different? Could we do some deviation from proportional allocation that would be better or equally interesting? Could we prove that the proportionate rule is optimal? I would be interested in this. Can we do better than the proportional rule?
Implementing non-proportional rules
What are the other options? The abstract formalization is that of an allocation: it’s a function from a vector of hashrates indexed by public key, to a vector of expected rewards indexed by public key. It maps distributed hashrates, back to public keys. I want to think about budget-balanced allocation rules. This would always distribute the entire block reward, nothing more nothing less. There’s a budget balance and a weak budget balance.
There might be other budget allocation rules. You might say that’s fine, but does it mean anything. When you think about proof-of-work type blockchains, you might wonder whether this PoW paradigm forces us into proportional allocation. It’s just a fact that if you’re 20% of the hashrate, then you’re 20% likely to be the first one to solve the problem and get the block reward.
At least in principle, we could in theory implement any alternative to the proportional allocation rule. How might you do that? The reason is the large of law numbers. Think about how bitcoin does leader election as taking a single sample from a probability distribution which is proportional to miner hashrates. The selected miner is the one that authorizes the block and takes the entire reward. What about instead taking thousands or tens of thousands of samples against the probability distribution over a single epoch. You will have an exact estimate of the hashrate of all the miners, and then the protocol would be free to distribute the rewards however it wants.
How would you implement these thousands and tens of thousands of samples? In principle, you could do it in the way that mining pools do it. You can in parallel to epochs ending, you can have a 10,000x easier version of the crypto puzzle and collect the easier solutions to the weak blocks and this gives you the sample from the hashrate. I am not saying we should deviate from proportional but that if we did want to here’s how.
Axiomatic approach
The axiomatic approach is a two-step recipe for reasoning about design decisions. In step one, you write down a formal mathematical specification of what you make. Specify the constraints on the design. Once you have written down these axioms or constraints, you explore the ramifications. Which part of the design space satisfies all the axioms written down?
There’s a few role models like von Neumann-Morgenstern which characterizes utility theory in terms of preferences over lotteries… then the arrow theorem about candidates and voting… or the shockley value as the unique cooperative game value satisfying a list of four particular axioms. These are the steps that we want to follow. We often end up proving impossibility proofs, showing that nothing satisfies the results, or uniqueness results meaning only one thing done. It doesn’t literally mean it’s impossible.
Take Arrow’s theorem… it’s not that we can’t run an election with more than 3 candidates, it’s that Arrow’s theorem tells us what compromises you have to make. It’s up to you to figure out which violation is the most palatable and then design your voting system accordingly. It’s about what you want to give up from the list of what you want.
Axioms
There will be three axioms.
The first strawman allocation rule is going to be the “uniform allocation” rule. You take all the public keys you have ever heard of, and you pick one uniformly at random, and that’s who gets to authorize the next block. Terrible idea, and it totally misses the point of a permissionless blockchain where there are sybil attacks and identity issues. If you implemented this, everyone would be making sybil attacks to increase their probability of collecting reward. So we would like to reject any protocol that suffers from this same flaw.
So the first axiom is sybil resistance. If you start from any given hashrate, and if you think about one miner shattering themselves into sybils, which of course won’t be higher than their original hashrate, and whenever they shatter this, then the total reward earned by all the sybils can only go down and never up. The miner is at least as well off when doing the sybil attack as they were before, but the total reward is going to be the same as before or the change is going to go down.
The proportional allocation rule is by design sybil proof. The collected reward of the two sybils is the same as it was before, it’s proportional. The uniform allocation rule does not satisfy this axiom. So that’s the first axiom.
How about a second crazy allocation rule: the winner take all rule. Say we take thousands or tens of thousands of samples in an epoch and we have a good estimation of everyone’s hashrate. Then we could deterministically allocate the entire block reward to the miner that contributed the largest hashrate during that epoch. This is again probably immediately bothers you. Notice that the issue isn’t sybil resistance. This is already sybil resistant because there’s no incentive to shatter into hashrate small miners. The problem is that this incentivizes collusion and centralization. If you only reward the biggest miner and not the others, then what would you expect miners to do other than form a 51% pool to guarantee a reward.
The second axiom is collusion proofness: given a vector of hashrates, if a bunch of miners get together and combine forces. Their combined hashrate will be the sum of their original hashrates. The total reward that they earn when they do this shouldn’t go up- it should either stay the same or get worse. The proportional rule by design is collusion-proof.
We’re going to need to get a third axiom. The axiom is anonymity. This basically says that the way rewards are distributed should not depend on what your public key actually is, only on the hashrate you see. If you permutate everyone’s hashrates, then the reward should be permuted in the same ways. This throws away rules like dictatorship where it always allocates to the lexographically first public key you heard about, and it obviously violates anonymity. Proportional allocation is of course anonymous in this sense.
The proportionality rule satisfies all three axioms. The question is, is there anything else? The theorem of the paper gives a negative answer to this: the rule that satisfies these is the proportionality rule, and if you insist on all those axioms then there is nothing else you can do. The interpretation of this that I like is that, well maybe you don’t or do want to deviate from proportionality, but if you do then you have to relax or give up one of these three axioms.
I found out recently that basically the same result was proven in parallel in some unpublished work from Leshno/Strack.
Proof of uniqueness theorem
For the proof, I’ll just assume all the miners hashrates are positive integers. There’s a boring argument that extends it to rational hashrates. The proof is by induction on number of miners with hashrate greater than 1. But you have to deal with sybil attacks that changes the number of public keys out there. So instead we’re going to induct on the number of miners that have contributed a hashrate bigger than some minimum. With this induction parameter, the rest of the proof writes itself.
The base case when there’s no miners with more than the minimum hashrate, each with hashrate exactly 1. If everyone is contributing the same hashrate, then they should all get the same reward by anonymity, and by strong budget balance they should get the same expected rewards. 1/hashrate you should get 1/reward.
What about the inductive steps? Think about the hashrate vector with at least one hashrate with more than two, and fix one such miner basically what we’re going to send is that sybil proofness gives a lower bound, and then an upper bound is established by another axiom…. The inductive hypothesis applies, and the sybils will be paid proportionally, and the little sybils get collectively more than the miner was originally getting strictly less than that. That’s a successful sybil attack because one miner was underpaid.
Case two works in another way: say the rule tries to deviate by overpaying some miner. Now we have a collusion attack. If the real world is actually H prime, so imagine before H prime had these sybils, imagine they are not sybils but legitimate miners that each happened to have a low hashrate of like 1. If you overpay a miner, then those hashrate 1 miners have an incentive to collude and get the bigger than proportional rule in the hashrate vector. So that’s how the proof goes and how the axioms team up to get us there.
Variations on the uniqueness theorem
You can poke the setup in a lot of ways. You could relax a few things. You could give the protocol the option to keep some of its reward for itslef. So the question is can we escape the uniqueness theorem by relaxing the budget balancing? You could keep half the block reward yourself and split the rest proporitonally among everyone, but more generally this takes a proof that you can scale the proportional allocation rule to any value between 0 and 1 and it’s a function of the hashrates. These are called generalized proportional allocation rules, where it is scaled by some non-decreasing function.
The theorem is that there’s nothing else: if you’re weakly-budget balanced, and you satisfy the three axioms, then this generalized proportional allocation rule must be used.
Risk-averse miners
So far I have been assuming that miners are risk-neutral and they are indifferent to having a 20% chance of getting the whole reward, o 100% chance of getting 0.2% of the block reward or something. In reality, there is evidence that miners are not risk-neutral. Miners join a mining pool to smooth out rewards. It’s a standard economic model to talk about risk aversion. Don’t think about miners trying to maximize their reward, but think of them acting to maximize the utility of their reward for some utility function like a square root function or a logarithm function. All else being equal, miners are going to prefer certain….. variance is a bad thing if you hold a fixed expectation.
If we relax our assumption and allow miners to be risk-adverse instead of risk-neutral, it turns into an impossibility theorem: the proportional rule no longer satisfies the collusion proofness, or at least the standard randomized allocation of the proportional allocation rule does not satisfy collusion-proofs with risk-averse miners. Why? There’s an incentive to form mining pools to keep high expected rewards but lower their variance.
Interestingly, we can also think about implementing it in a deterministic way. Say you have 10,000 samples in an epoch. One way to use those samples is to split the block reward deterministically. So with 30% of the hashrate, it’s not a 30% chance of getting everything, it’s that you deterministically get a fraction of the block reward. Once rewards are deterministic, it doesn’t matter if you are risk-adverse or risk-neutral.
A reviewer pointed out to us that you could interpret a chain as a kind of implementation of this idea if you pick the parameters properly. I’m out of time, thank you.
Sponsorship: These transcripts are sponsored by Blockchain Commons.
Disclaimer: These are unpaid transcriptions, performed in real-time and in-person during the actual source presentation. Due to personal time constraints they are usually not reviewed against the source material once published. Errors are possible. If the original author/speaker or anyone else finds errors of substance, please email me at<EMAIL_ADDRESS>for corrections or contribute online via github/git. I sometimes add annotations to the transcription text. These will always be denoted by a standard editor’s note in parenthesis brackets ((like this)), or in a numbered footnote. I welcome feedback and discussion of these as well.
Tweet: Transcript: “An Axiomatic Approach to Block Rewards” https://diyhpl.us/wiki/transcripts/stanford-blockchain-conference/2020/block-rewards/ @algo_class @CBRStanford #SBC20


About Me
I'm a INDIA based UX/UI Designer creating awesome and effective visual identities for companies of all sizes around the globe.It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here
Personal Information
- Name : Himanshu KLantharia
- Age : 19 Years
- Phone : +918511357339
- Email<EMAIL_ADDRESS>- Address : Surat,Gujarat,india
Skills
The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here.It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English


Africa has been home to over 60 revolution events over the past thirty years.
Even with the best of intentions, a coup can have a multitude of results,
from a public democracy, to military dictatorship, and everything in between.
This chart examines the relationship between political violence,
revolution events, and
income inequality,
per country in Africa, over the last forty years, to further the causes anmes of those connected histories.